Pojęcie informacji
Informacja, jest to zbiór danych zgromadzonych w celu ich przetworzenia i uzyskania wyników. Przykładem informacji może być sygnał wysłany latarnię morską – sygnał ten informuje kapitana statku o bliskości lądu. Kapitan, na podstawie informacji z latarni morskiej podejmuje decyzję czy płynąć do brzegu, czy też zmienić kurs i ominąć wybrzeże.
W podanym przykładzie kapitan pełni rolę komputera, który przetwarza uzyskaną informację na wynik. Oczywiście nie byłby on w stanie podjąć decyzji, gdyby nie wiedział wcześniej, którędy i gdzie chce dopłynąć. Kapitan musi więc mieć mapy oraz pewien plan podróży. W komputerze tę rolę pełni programem.
Fizyczna reprezentacja informacji w komputerze
Ponieważ komputer jest urządzeniem elektrycznym, to wszelkie informacje, jakie do niego docierają muszą być reprezentowane również przez sygnały elektryczne. Wszystkie dzisiejsze komputery budowane są w taki sposób, że rozróżniają jedynie dwa stany elektryczne: 1 – gdy sygnał elektryczny dochodzi do komputera, oraz 0 – gdy sygnału brak. Można to porównać do sposobu działania lampki, która zaświeca się, gdy dochodzi do niej prąd elektryczny i gaśnie, gdy ten prąd zanika.
Logiczna reprezentacja informacji w komputerze
Przytoczony przykład z lampką obrazuje sposób przekazywania najprostszej informacji: lampka świeci lub nie świeci. Taka podstawowa informacja nosi nazwę bitu informacji. Za pomocą jednego bitu można zapisać dwa stany informacji: świeci, lub nie, ale już za pomocą dwóch bitów takich stanów można zapisać 4. Mając do dyspozycji dwa bity, to tak, jakbyśmy mieli dwie lampki; możemy w ten sposób dostarczyć następujących informacji: 1. żadna z lampek się nie świeci, 2. świeci się lampka nr 1, 3. świeci się lampka nr 2, 4. świecą się obie lampki.
Podobnie, za pomocą 3 bitów można zapisać już 8 stanów informacji.
Ilośc stanów jakie da się zapisac: 2n, n – ilośc bitów
BIT – Binary Digit
Systemy liczbowe
W życiu codziennym przyzwyczajeni jesteśmy do wykonywania rachunków w systemie dziesiętnym. Zupełnie nieświadomie korzystamy z tzw. pozycyjnego systemu liczenia. Przykładowo liczbę 118 można zapisać w następującej postaci:
1 x 102 + 1 x 101 + 8 x 100
Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. W systemie dziesiętnym wykorzystuje się 10 cyfr : 0,1,2,3,4,5,6,7,8,9.
System liczbowy, jakim posługują się komputery wykorzystuje, jak już powiedzieliśmy wcześniej, tylko dwie cyfry: 0 i 1.
Dlatego system ten jest nazywany systemem dwójkowym.
Oprócz systemu dwójkowego, zwanego też binarnym, programiści często używają systemu szesnastkowego (heksadecymalnego), w którym występuje aż 16 cyfr: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Zajmiemy się teraz zamianą liczb dwójkowych ( binarnych ) na liczby dziesiętne i odwrotnie.
Zadanie: Zamień liczbę binarną 1111 (2) na liczbę dziesiętną:
3 | 2 | 1 | 0 |
23 | 22 | 21 | 20 |
8 | 4 | 2 | 1 |
1 x 8 | 1 x 4 | 1 x 2 | 1 x 1 |
Odp.: 1111 (2) = 8 + 4 + 2 +1 = 15 (10)
Zadanie: Zamień liczbę dziesiętną 15(10) na liczbę binarną:
Dzielenie | Iloraz | Reszta z dzielenia | Cyfra |
15 : 2 | 7 | 1 | C0 |
7 : 2 | 3 | 1 | C1 |
3 : 2 | 1 | 1 | C2 |
1 : 2 | 0 | 1 | C3 |
Dzielenie wykonujemy aż iloraz osiągnie 0.
Otrzymana liczba wynosi : (1111) 2
Ponieważ za pomocą bitu można przedstawić bardzo małą ilość informacji, dlatego wprowadzono jednostki o większej pojemności czyli: bajty, kilobajty, megabajty, gigabajty, terabajty itd.
1 Bajt = 8 bitów
1 KB = 210 B = 1024 Bajty
1 MB = 210 KB = 1024 KB
1 GB = 210 MB = 1024 MB
Kod ASCII
Proces przetwarzania wymaga uprzedniego wprowadzenia informacji i zapamiętania ich. Informacje są wprowadzane do komputera najczęściej w postaci ciągów znaków którymi są na ogół liczby lub teksty. Zbiór akceptowanych przez komputer znaków można traktować jako szerzej pojęty alfabet. Wprowadzenie do komputera znaków w nie zmienionej postaci graficznej byłoby wygodne dla człowieka, ale wymagało by stosowania bardzo skomplikowanych urządzeń odczytujących, przetwarzających i zapisujących. Dlatego każdy znak jest w komputerze kodowany, czyli otrzymuje jednoznaczną reprezentację liczbową.
W komputerach zgodnych ze standardem IBM używa się kodu ASCII, w którym określono kody 128 znaków Stanowiących uniwersalny alfabet informatyki. Kod ASCII zawiera kody 128 znaków podstawowych (o wartościach od 0 do 127) odpowiadających znakom widocznym na klawiaturze oraz znakom sterującym.
Każdy znak w kodzie ASCII jest zapisany w postaci dwójkowej za pomocą jednego bajta (8 bitów).np.:
litera A = 1000001 (1 bajt)
litera B = 1000010 (1 bajt)
Zapis obrazu i dźwięku
Opisany kod ASCII służy do cyfrowego zapisu znaków. W komputerach mamy jednak często, oprócz znaków, do czynienia z obrazem i dźwiękiem. Aby zapisać w postaci cyfrowej obraz, komputer musi go podzielić na drobne punkty (tak, jakbyśmy nałożyli na niego kalkę z papierem milimetrowym). Każdemu z tych punktów jest są przypisane liczby określające jego współrzędne: X (inaczej H-czyli Horizontal tzn. Poziomo) i Y (inaczej V-czyli Vertical tzn. Pionowo), oraz numer koloru. W ten sposób otrzymywany jest zapis cyfrowy obrazu. Otrzymane punkty nazywamy pikselami, a maksymalną ilość punktów na osi X i Y rozdzielczością poziomą i pionową lub w skrócie rozdzielczością (np. 800 x 600).
Podobnie rzecz się ma z dźwiękiem – przetwarzany na postać cyfrową dźwięk jest próbkowany, tzn. dzielony z określoną częstotliwością (np. 44kHz, czyli 44 tysiące razy na sekundę) na króciutkie fragmenty, zwane próbkami, których natężenie wyrażone w postaci napięcia sygnału analogowego (przed zamianą na postać cyfrową) jest przeliczane na postać binarną.
Procesor (CPU – Central Processing Unit)
Mikroprocesor to najistotniejszy element komputera (który jest, jak powiedziano,
systemem mikroprocesorowym), decydujący w znacznej mierze o jego możliwościach.
Jest głównym elementem, który przetwarza informację. Szybkość przetwarzania
informacji przez procesor, zwana bardzo często jego mocą obliczeniową, zależy
przede wszystkim od dwóch czynników:
maksymalnej długości argumentów, na których potrafi operować
szybkości wykonywania instrukcji – zależy ona między innymi od częstotliwości zegara taktującego pracę
Pamięci
Pamięciami półprzewodnikowymi nazywamy cyfrowe układy scalone przeznaczone do przechowywania większych ilości informacji w postaci binarnej.
Główne parametry pamięci:
Pojemnością pamięci nazywamy maksymalną liczbę informacji, jaką możemy przechować w danej pamięci. Pojemność pamięci podajemy w bitach (b) lub bajtach (B).
Czasem dostępu do pamięci nazywamy czas, jaki musi upłynąć od momentu podania poprawnego adresu słowa w pamięci do czasu ustalenia się poprawnej wartości tego słowa na wyjściu pamięci w przypadku operacji odczytu lub w przypadku operacji zapisu - czas, jaki upłynie do momentu zapisania wartości do tego słowa z wejścia pamięci.
Transferem danych pamięci nazywamy maksymalną liczbę danych, jaką m o ż e m y odczytywać z pamięci lub zapisywać do pamięci w jednostce czasu.
RAM (Random Access Memory) – pamięć o dostępie swobodnym. Do zapisu i odczytu, ulotna (po wyłączeniu jej zasilania informacja jest tracona)
DRAM – pamięci dynamiczne (wolniejsze, trzeba je odświeżac, ale tańsze i pojemniejsze)
SRAM – pamięci statyczne
ROM (Read-Only Memory) – pamięc tylko do odczytu, nieulotna
CACHE – pamięc podręczna, bardzo krótki czas dostępu, używana do przechowywania danych, które będą w niedługim czasie przetwarzane. Na współczesnych procesorach 2, 3 poziomy pamięci: L1 (zintegrowana z procesorem, pojemnośc 64kB), L2 (64kB-12MB)
Urządzenie peryferyjne (ang. peripheral device) - dowolna część komputera inna niż procesor (CPU) i pamięć operacyjna, jak np. klawiatura, monitor, mysz, drukarka, skaner,napęd taśmowy, mikrofon, głośnik, aparat fotograficzny, dżojstik, kamera internetowa.
Szybka pamięć robocza, jak RAM, ROM czy, dawniej, rdzeń, nie może być określana mianem urządzenia peryferyjnego.
Współczesne określenie "urządzenie" jest ogólniejsze w tym sensie, że jest odnoszone do obiektów takich, jak dalekopis, RAM-drive czy karta sieciowa.
JĘZYK WEWNĘTRZNY KOMPUTERA – chyba chodzi o system binarny?
System operacyjny (ang. Operating System, skrót OS) – oprogramowanie zarządzające systemem komputerowym, tworząceśrodowisko do uruchamiania i kontroli zadań użytkownika.
W celu uruchamiania i kontroli zadań użytkownika system operacyjny zajmuje się:
planowaniem oraz przydziałem czasu procesora poszczególnym zadaniom,
kontrolą i przydziałem pamięci operacyjnej dla uruchomionych zadań,
dostarcza mechanizmy do synchronizacji zadań i komunikacji pomiędzy zadaniami,
obsługuje sprzęt oraz zapewnia równolegle wykonywanym zadaniom jednolity, wolny od interferencji dostęp do sprzętu.
Dodatkowe przykładowe zadania, którymi może ale nie musi zajmować się system operacyjny to:
ustalanie połączeń sieciowych
zarządzanie plikami.
Języki programowania
1. C/C++
Zdecydowanie najbardziej zaawansowany język programowania, który powstał w wyniku pracy nad uniwersalnym językiem dającym możliwość pisania programów na różne platformy. W Polsce pojawił się on dość późno gdyż komputery wyposażone były przede wszystkim w systemy typu DOS, które potrafiły interpretować polecenia BASIC-a (język wykorzystywany niegdyś między innymi w Commodore i ZXspectrum), a jedynym popularnym językiem dostępnym na ten system był Turbo Pascal firmy Borland. Na zachodzie natomiast, zastosowanie we wszystkim, co było związane z komputerami znalazł przede wszystkim Unix, który do tej pory jest najlepiej opracowanym systemem. Doczekał się wielu mutacji i wersji w zależności od potrzeb i zastosowania. Kompilator C/C++ wchodzi w skład podstawowych narzędzi niemal każdej wersji tego systemu (za wyjątkiem systemu Xenix, który jest bardzo ubogi).
Z założenia, programy napisane w C mają być małe, szybkie i zajmować mało pamięci, co ma swoje odbicie w wygodzie pisania programów i nauce programowania. Kod programu, w stosunku do innych języków, zawiera znacznie mniejszą ilość znaków poprzez stosowanie krótszego zapisu, który (w przeciwieństwie do np.: Pascala czy Basica) z reguły nie jest logiczny.
2. Turbo Pascal
Język ten, ze względu na mały stopień trudności w opanowaniu, wykorzystywany jest przede wszystkim w nauczaniu programowania. Opanowanie Pascala przybliża do języków bardziej zaawansowanych i ułatwia ich późniejszą naukę, bo wprowadza w programowanie sekwencyjno- proceduralno-modularne. Obecnie pierwszym etapem nauczania w szkołach o profilu informatycznym jest Turbo Pascal.
Na program utworzony w Pascalu składają się następujące symbole i słowa kluczowe:
Znakami języka Pascal są litery alfabetu angielskiego (wielkie i małe), spacja, cyfry dziesiętne oraz znak podkreślenie: _
Symbolami są:
· operatory arytmetyczne: + - * /
· operatory relacji: = < > <= >= <>
· nawiasy: okrągłe (w wyrażeniach), klamrowe {w komentarzach} i kwadratowe [w tablicach]
· inne symbole: . , ; : ' @ # $ " ? ! % & ~ \ ^
Słowa kluczowe są stosowane do formułowania poleceń i do definiowania zmiennych np.: PROGRAM, BEGIN, END, DIV, MOD, AND, NOT, OR, IF, THEN, ELSE, FOR, TO, DOWNTO, DO, CASE, REPEAT, UNTIL, WHILE, VAR, TYPE, CONST, STRING, FILE, USES.
Program w języku Pascal ma następującą strukturę:
-Nagłówek programu, zaczynający się od słowa PROGRAM, po którym następuje nazwa danego programu lub też jakieś inne informacje.
-Opis elementów programu, zawierający przede wszystkim deklaracje zmiennych oraz podprogramów. Mogą się tu znajdować również definicje stałych i definicje typów. Definicje występują w stałej kolejności:
stałe (CONST), typy (TYPE), zmienne (VAR) – umieszcza się tu wszystko, co jest potrzebne w programie.
-Część wykonawcza programu, rozpoczynająca się słowem BEGIN i kończąca słowem END, po którym następuje kropka.
Każda instrukcja zakończona jest średnikiem za wyjątkiem BEGIN. Na końcu programu zawsze powinna być kropka – END.
Borland Turbo Pascal jest językiem 16-bitowym mającym zastosowanie w systemie DOS i trybie MS-DOS pod kontrolą systemu Windows, a w przypadku systemów typu Unix tylko w konsoli ale te drugie rzadko posiadają kompilatory i interpretery poleceń Pascala ze względu na małą przydatność w tych systemach. Używa się innych bardziej złożonych i lepiej przystosowanych języków do pracy z jądrami tych systemów (np.: C++, Python itp.).
Za pomocą Turbo Pascala możemy operować na plikach, czego najlepszym przykładem były pierwsze wersje systemów antywirusowych Nortona napisanych właśnie w Pascalu (na owe czasy Pascal dawał duże możliwości)- dziś te aplikacje jak i większość innych dobrych programów (np.: MS Word) pisana jest w C++. Możemy na przykład pisać programy przeliczeniowe, w TP można wykonywać dość skomplikowane zadania matematyczne, a amatorzy rzeczy mniej pożytecznych mogą przeformatować cudzy dysk albo pisać w nim wirusy, które po mimo swojej prostoty i łatwości w usunięciu przez prawie każdy nawet mało rozbudowany program antywirusowy, są zabójcze dla systemu, gdy programów przeciwdziałających nie ma.
3. Assembler
Assembler należy do najbardziej skomplikowanych języków wysokiego poziomu. Bazuje on na tzw. przerwaniach DOSa i mapie pamięci komputera PC więc by zacząć programować w Assemblerze należy zaopatrzyć się w odpowiednią dokumentację i na pewno przyda się doświadczenie w programowaniu.
4. Języki programowania wykorzystywane w Internecie
Popularność Internetu ciągle wzrasta, co ciągnie za sobą konieczność stosowania coraz to nowszych technik tworzenia i realizowania usług sieciowych. Na równi z utworzeniem protokołu http powstał język służący do tworzenia stron internetowych - HTML, który do tej pory tak naprawdę jest nieodłącznym ich elementem. W porównaniu do innych języków programowania HTML charakteryzuje się prostotą zbudowanego dokumentu (rozszerzenia *.htm i *.html), a do odczytania tych dokumentów służą przeglądarki internetowe.
Kompilator – program służący do automatycznego tłumaczenia kodu napisanego w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku wynikowym) [1]. Proces ten nazywany jest kompilacją. W informatyce kompilatorem nazywa się najczęściej program do tłumaczenia kodu źródłowego w języku programowania na język maszynowy. Niektóre z nich tłumaczą najpierw do języka asemblera, a ten na język maszynowy jest tłumaczony przez asembler.
W najprostszym modelu wykonanie programu (zapisanego w postaci zrozumiałej dla maszyny) polega na umieszczeniu go w pamięci operacyjnej komputera i wskazaniu procesorowi adresu pierwszej instrukcji. Po tych czynnościach procesor będzie wykonywał kolejne instrukcje programu, aż do jego zakończenia. Program może zakończyć się w dwojaki sposób:
poprawnie (zgodnie z życzeniem twórcy programu i jego użytkownika);
błędnie (z powodu awarii sprzętu bądź wykonania przez program niedozwolonej operacji, np. dzielenia przez zero).
EDYTORY TEKSTÓW
Edytory tekstów są najczęściej używanym rodzajem programów. Nowoczesny edytor to nie tylko możliwość napisania każdego tekstu, ale jest to również możliwość tworzenia złożonych rysunków w programie, wstawianie dowolnych obiektów (rysunków utworzonych w innych programach, arkuszy kalkulacyjnych, baz danych, a nawet plików dźwiękowych i sekwencji video), sortowanie elementów tekstu, sporządzanie tzw. korespondencji seryjnej, sprawdzanie ortografii, korzystanie z gotowych i przygotowanych przez nas samych wzorów i szablonów, automatyczne tworzenie wykresów, wysyłanie tworzonych dokumentów w formie plików i cała garść innych możliwości.
Większa część ekranu jest przeznaczona na obszar roboczy dokumentu. W jego lewym górnym rogu widnieje migający kursor, oznaczający miejsce pojawienia się znaku wpisywanego z klawiatury. Tekst w oknie będzie można przewijać za pomocą pasków
( pionowego i poziomego), oczywiście wtedy gdy tekstu przybędzie na tyle, że przestanie się on mieścić w oknie roboczym. Na samym dole ekranu znajduje się pasek stanu. W jego kilku polach znajduje się szereg informacji o aktualnym stanie. Z lewej strony znajduje się pasek wyboru. W rzeczywistości nie jest on widoczny. Górną część ekranu zajmuje szereg pasków. Są to, licząc od góry:
· Pasek tytułowy – obok nazwy programy widnieje na nim nazwa dokumentu
· Pasek menu – z szeregiem opcji. Jest to menu rozwijalne. Po kliknięciu nazwy opcji ukazuje się okno zawierające szereg pozycji.
· Pasek narzędzi – zawierający zestaw standardowych narzędzi, reprezentowanych przez poszczególne ikony. Ich kliknięcie rozwija okno, kolejny pasek narzędzi lub powoduje podjęcie określonej operacji.
· Linijka – specyficzny obszar pełniący zarówno rolę informacyjna jak i operacyjną. Można za jego pomocą szybko ustawić marginesy, tabulatory, wcięcia tekstu.
Arkusz kalkulacyjny to program komputerowy przedstawiający dane, głównie liczbowe, w postaci zestawu dużych tabel dwuwymiarowych, pozwalający na automatyczną obróbkę tych danych oraz na prezentację ich w różny sposób. Popularny program stosowany w księgowości oraz w biurze.
Najważniejszym narzędziem arkusza kalkulacyjnego są funkcje (matematyczne, statystyczne, daty i czasu, finansowe, bazodanowe, logiczne), za pomocą których wprowadzone do arkusza dane są automatycznie przetwarzane. Możliwe jest także tworzenie różnego rodzaju symulacji.
Za pomocą arkusza kalkulacyjnego można także wizualizować dane, prezentując je w postaci wykresów (kolumnowych, słupkowych, kołowych, liniowych, warstwowych itd.), które pozwalają łatwiej zorientować się we wzajemnych zależnościach i tendencjach.
W zaawansowanych arkuszach kalkulacyjnych dostępne są również języki makropoleceń i języki programowania, przetwarzanie danych.
Popularnym narzędziem są Pivot tables (tabele przestawne) pozwalające tworzyć rozmaite układy danych w oparciu o tabelę podstawową i wyświetlać te same dane co w tabeli podstawowej, ale odmiennie układając zakres i położenie wierszy i kolumn, co uwypukla zależności niewidoczne w pierwotnym układzie.
W środowisku Windows najbardziej znanym arkuszem kalkulacyjnym jest Microsoft Excel z pakietu Microsoft Office. Do najbardziej zaawansowanych produktów tej kategorii można także zaliczyć arkusze w pakietach biurowych WordPerfect Office (Quattro Pro) i OpenOffice.org (OpenOffice.org Calc)
Wyżej przykład algorytmu w arkuszu kalkulacyjnym
Języki
Język maszynowy (kod maszynowy) – język programowania, w którym zapis programu wymaga instrukcji bezpośrednio jako liczb, które są rozkazami i danymi bezpośrednio pobieranymi przez procesor wykonujący ten program.
Kod maszynowy może być generowany w procesie kompilacji (w przypadku języków wysokiego poziomu) lub asemblacji (w przypadku asemblera). W trakcie procesu tworzenia kodu maszynowego tworzony jest często kod pośredni, który może być zapisywany w pliku o odpowiednim formacie. Kod pośredni poddawany jest linkowaniu, które wygeneruje ostateczny obraz programu w taki sposób, że system operacyjny będzie mógł go wczytać, z ewentualnym dostosowaniem argumentów będących adresami do adresów odpowiednich bloków programu w pamięci, i wykonać zawarte w nim instrukcje. Ponieważ każdy typ procesora ma swój własny język maszynowy, jest to najmniej przenośny język programowania.
Asembler (z ang. assembler) – termin informatyczny związany z programowaniem i tworzeniem kodu maszynowego dla procesorów. W języku polskim oznacza on program tworzący kod maszynowy na podstawie kodu źródłowego (tzw. asemblacja) wykonanego w niskopoziomowym języku programowania bazującym na podstawowych operacjach procesora zwanym językiem asemblera, popularnie nazywanym również asemblerem.
Język wysokiego poziomu (autokod) – typ języka programowania, którego składnia i słowa kluczowe mają maksymalnie ułatwić rozumienie kodu programu dla człowieka, tym samym zwiększając poziom abstrakcji i dystansując się od sprzętowych niuansów. Kod napisany w języku wysokiego poziomu nie jest bezpośrednio „zrozumiały” dla komputera – większość kodu stanowią tak naprawdę normalne słowa, np. w języku angielskim. Aby umożliwić wykonanie programu napisanego w tym języku należy dokonać procesu kompilacji.
Przykładowe typy danych[edytuj]
Przykładowe typy występujące w wielu językach programowania:
typ całkowity (w C, C++, Javie np. int, w Pascalu np. integer) – typ reprezentujący liczbę całkowitą z jakiegoś zakresu zależnego od języka a nawet konkretnej implementacji.
typ zmiennoprzecinkowy (w C, C++, Javie np. double, w Pascalu np. real) – typ reprezentujący przybliżoną wartość liczby rzeczywistej.
typ stałopozycyjny (w PL/1, Cobol – typ reprezentujący liczbę wymierną o stałym mianowniku.
typ znakowy (w C, C++, Javie, Pascalu np. char) – typ reprezentujący pojedynczy znak (ASCII lub w nowszych implementacjach Unicode)
typ tekstowy (w Javie string, w C++, Pascalu np. string) – typ reprezentujący cały tekst. W C jego rolę pełni wskaźnik do literału znakowego – const char*
typ wskaźnikowy – oznacza wskaźnik na zmienną zadanego typu.
typ referencyjny – odmiana wskaźnika, referencja jest różnie pojmowana w poszczególnych językach.
typ wyliczeniowy – typ mogący przyjmować jedną z zadanych symbolicznych wartości, np. (czerwony, zielony, niebieski)
typ tablicowy – ciąg zmiennych zadanego typu indeksowanych liczbą naturalną z pewnego przedziału (w większości języków programowania) lub dowolnym unikalnym kluczem który może być zarówno liczbą jak i ciągiem znaków (w PHP)
typ strukturalny – zespół połączonych w jedną całość zmiennych zwanych polami struktury. Do każdego pola można się odwoływać oddzielnie.
klasa (typ obiektowy) – odmiana struktury, w której oprócz zespołu danych dodane są także procedury działających na tych danych. Zmienna typu klasy nazywa się obiektem. Pojęcie klasy spowodowało powstanie nowego paradygmatu programowania, zwanego programowaniem obiektowym i zrewolucjonizowało sposób myślenia programisty, który od tej pory patrzy na program jako na zbiór autonomicznych obiektów.
typ pusty (np. void w C i C++) – występuje np. w oznaczaniu funkcji nie zwracających żadnych wartości.
typ logiczny (np. bool w C++) – może przyjmować wartości logiczne 1 (true, t) lub 0 (false, nil).
typ bitowy reprezentujący ciąg bitów, (np. '01101'B – PL/I).
typ zbiorowy reprezentujący zbiory elementów (np. [pon, wt, sr, czw, pt] – Pascal).
typ zespolony reprezentujący liczby zespolone.
typ etykietowy reprezentujący wartości będące etykietami instrukcji, wskazaniami instrukcji.
Języki interpretowane to języki programowania, które zazwyczaj implementowane są w formie interpretera, a nie kompilatora. Teoretycznie każdy język może być kompilowany i interpretowany, dlatego rozróżnienie to polega na najczęściej stosowanych rozwiązaniach, a nie zależy od cech samego języka. Program w języku interpretowanym nie jest kompilowany, lecz jest przechowywany w postaci kodu źródłowego i dopiero podczas uruchomienia wczytywany, interpretowany i wykonywany przez interpreter języka.
Języki interpretowane ułatwiają pisanie programów przenośnych, czyli zgodnych z wieloma systemami operacyjnymi.
Przykładowe języki interpretowane to:
Bash
Maxima
Perl
Python
Ruby
JavaScript
Język kompilowany - język programowania, który by uzyskać działający program musi zostać wpierw skompilowany do postaci kodu maszynowego (inaczej: do postaci binarnej, w slangu komputerowym binarka). Najpopularniejszymi takimi językami są C++, C, Pascal. Teoretycznie każdy język może być zarówno kompilowany jak i interpretowany, dlatego rozróżnienie opiera się raczej na najpopularniejszych implementacjach niż na cechach samego języka.
Konsolidator (ang. linker) lub program konsolidujący to jeden z programów składowych kompilatora. Konsolidator w trakcie procesu konsolidacji łączy zadane pliki obiektowe i biblioteki statyczne tworząc w ten sposób plik wykonywalny. W systemach uniksowych jest to zazwyczaj program o nazwie ld.
Kompilator – program służący do automatycznego tłumaczenia kodu napisanego w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku wynikowym). Proces ten nazywany jest kompilacją. W informatyce kompilatorem nazywa się najczęściej program do tłumaczenia kodu źródłowego w języku programowania na język maszynowy. Niektóre z nich tłumaczą najpierw do języka asemblera, a ten na język maszynowy jest tłumaczony przez asembler.
Różnica pomiędzy kompilatorem a asemblerem polega na tym, iż każde polecenie języka programowania może zostać rozbite na wiele podpoleceń języka maszynowego (przy czym nowoczesne asemblery również posiadają składnię umożliwiającą zapis wielu poleceń maszynowych jako jednego polecenia kodu źródłowego oraz opcje optymalizacji kodu). Kompilatory mogą posiadać możliwość automatycznej alokacji pamięci dla zmiennych, implementowania struktur kontrolnych lub procedur wejścia-wyjścia.
Stosowanie kompilatorów ułatwia programowanie (programista nie musi znać języka maszynowego) i pozwala na większą przenośność kodu pomiędzy platformami.
Obliczenia symboliczne – operacje matematyczne wykonywane na wyrażeniach matematycznych.
Ogólnie obliczenia możemy wykonywać na liczbach i na symbolach. Wykonując obliczenia na liczbach mamy do czynienia z obliczeniami numerycznymi.
Przykłady obliczeń symbolicznych
uproszczenie równania x3 + 4•x - 6•x daje wynik x3 - 2•x
obliczenie całki nieoznaczonej ∫ x dx – wynikiem jest x2/2 + C
Metody numeryczne – metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane tą drogą wyniki są na ogół przybliżone, jednak dokładność obliczeń może być z góry określona i dobiera się ją zależnie od potrzeb.
Metody numeryczne wykorzystywane są wówczas gdy badany problem nie ma w ogóle rozwiązania analitycznego (danego wzorami), lub korzystanie z takich rozwiązań jest uciążliwe ze względu na ich złożoność.
Deklaracje w kodzie źródłowym, zwykle musi poprzedzać pierwsze użycie danego identyfikatora w definiowanym algorytmie. Deklaracja stanowi więc informację dla translatora, która nie generuje kodu wykonywalnego (lecz często powoduje rezerwację pamięci).
Składnia większości języków programowania narzuca umieszczanie deklaracji w określonym miejscu kodu źródłowego. Jest to albo specjalna sekcja programu (modułu, podprogramu, pakietu), albo początek określonego bloku (czyli wszystkie deklaracje muszą zostać umieszczone w tekście programu przed pierwszą instrukcją danego bloku).
Zacznijmy od zmiennych lokalnych.
Podstawową formą deklarowania jest użycie słowa kluczowego “Dim” przed nazwą zmiennej deklarowanej bezpośrednio w procedurze lub funkcji:
Sub p1() |
---|
Dim zmienna1 as Integer |
zmienna1 = 1 |
MsgBox zmienna1 |
End Sub |
Taka deklaracja wskazuje na to, że zostanie utworzona pamięć o nazwie “zmienna1″ będzie przechowywać dane typu “Integer”.
Próba przypisania danych innego typu spowoduje błąd typu, np.
Sub p2() |
---|
Dim zmienna1 as Integer |
zmienna1 = "a" |
MsgBox zmienna1 |
End Sub |
Debug
W przedstawionym wyżej przykładzie błędnym jest próba przypisania litery “a” do zmiennej typu “Integer”. Litera ”a” nie jest przecież liczbą całkowitą.
W języku VBA nie ma trzeba używać destruktora, czyli wystarczy, że coś zadeklarujemy i możemy liczyć na to, że po zakończeniu działania makro automatycznie usunie zmienną z pamięci jednocześnie zwalniając zasoby komputera.
Sposób deklarowania zmiennej z użyciem słowa “Dim” powoduje, że zadeklarowana zmienna jest widoczna lokalnie w danej procedurze / funkcji, gdzie zmienna została zadeklarowana. Czyli nic nie stoi na przeszkodzie, aby inne makra posiadały zmienną o tej samej nazwie, nawet innego typu.
Klucze (ciągi znaków) wykorzystywane do szyfrowania i rozszyfrowania danych. Klucz publiczny jest znany wszystkim, natomiast klucz prywatny znany jest tylko jego właścicielowi. Gdy osoba A chce wysłać poufną wiadomość do osoby B, szyfruje ją, używając klucza publicznego osoby B (ponieważ klucze publiczne są ogólnie znane, nie ma z tym żadnego problemu). Następnie osoba B używa swojego klucza prywatnego, aby tę wiadomość odszyfrować. W tej metodzie wykorzystywany jest klucz publiczny i klucz prywatny tej samej osoby zarówno do szyfrowania, jak i rozszyfrowania. Znając klucz publiczny osoby B, wciąż nic nie wiemy o jej kluczu prywatnym. Jedną z metod, która wykorzystuje technologię klucza prywatnego i publicznego, jest PGP.
Istota kluczy publicznych i prywatnych oparta jest na szyfrowaniu asymetrycznym. Staje się ono coraz
popularniejszym i bardzo bezpiecznym sposobem przesyłania poufnych informacji. Największą zaletą tej
metody szyfrowania jest to, że klucz kodujący pliki, tekst, itp., jest powszechnie znany i dostępny. Taki klucz
nazywa się kluczem publicznym. Dzięki niemu unika się przesyłania tajnych haseł niepewnymi kanałami.
Aby wysłać zaszyfrowany tekst, plik lub załącznik listu do odbiorcy, należy posiadać jego klucz publiczny
oraz, oczywiście, odpowiedni program za pomocą którego będzie można szyfrować, deszyfrować i zarządzać
własnymi zbiorami kluczy. Odbiorca zaszyfrowanej jego kluczem publicznym informacji, odszyfruje ją tylko za
pomocą swojego klucza prywatnego (który jest tajny i powinien być dobrze zabezpieczony - „schowany”).
Klucz publiczny i klucz prywatny tworzą ściśle ze sobą związaną parę kluczy. Tylko klucz prywatny odbiorcy
może odszyfrować informację zakodowaną jego kluczem publicznym. Kluczem publicznym odbiorcy szyfruje
się informacje przeznaczone dla niego. Nie jest możliwe przy jego pomocy odszyfrowanie zakodowanej
informacji, ani poznanie hasła odblokowującego klucz prywatny. Znajomość klucza publicznego nie
pozwala także na poznanie (czyli po prostu na ”odgadnięcie”) klucza prywatnego.
Technologia szyfrowania asymetrycznego z kluczami publicznymi/prywatnymi, umożliwia wprowadzenie
podpisu elektronicznego . Pozwala on na jednoznaczne i nie budzące watpliwości (w sensie autorstwa)
podpisywanie waznych dokumentów, plików, programów, itp.. Klucz prywatny wraz z funkcją haszującą
(funkcjami "hash" są np. SHA-1 i MD5) tworzą podpis elektroniczny dokumentu - pliku, natomiast klucz
publiczny weryfikuje taki podpis, sprawdzając jego prawdziwość. Podpis elektroniczny i narzędzia do
jego weryfikacji, stają się zatem ważnymi elementami strategii uwierzytelniania zasobów danych.
Jak dotąd nie są znane przypadki odszyfrowania informacji zakodowanych współczesnymi (1024-bitowymi
i dłuższymi) kluczami asymetrycznymi przez napastników nie znających odpowiednich kluczy prywatnych.
Świadczy to bardzo dobrze o skuteczności zabezpieczania poufnych informacji przy pomocy tej techniki.
Teoria liczb - dziedzina matematyki, zajmująca się badaniem własności liczb – początkowo tylko naturalnych, i do dziś dla wielu specjalistów są one szczególnie atrakcyjne.
Podstawowe twierdzenie arytmetyki – ważne twierdzenie teorii liczb o rozkładzie liczb naturalnych na czynniki pierwsze.
Treść twierdzenia
Każdą liczbę naturalną większą od 1 można jednoznacznie przedstawić w postaci iloczynu liczb pierwszych.
W szczególności, liczbę pierwszą można przedstawić jako iloczyn zawierający jeden czynnik.
Jednoznaczność rozkładu oznacza, że jeśli liczba n jest przedstawiona jako iloczyn pewnych liczb pierwszych na dwa sposoby, to oba iloczyny zawierają te same czynniki i w tej samej ilości, a różnią się jedynie ich kolejnością.
Sito Eratostenesa - przypisywany Eratostenesowi z Cyreny algorytm wyznaczania liczb pierwszych z zadanego przedziału [2;n]
Ze zbioru liczb naturalnych z przedziału , tj. , wybieramy najmniejszą, czyli 2, i wykreślamy wszystkie jej wielokrotności większe od niej samej, to jest .
Z pozostałych liczb wybieramy najmniejszą niewykreśloną liczbę (3) i usuwamy wszystkie jej wielokrotności większe od niej samej: , przy czym nie przejmujemy się tym, że niektóre liczby (na przykład 6 czy 12) będą skreślane więcej niż raz.
Według tej samej procedury postępujemy dla liczby 5.
Następnie dla 7, 11, 13; aż do sprawdzenia wszystkich niewykreślonych wcześniej liczb.
Wykreślanie powtarzamy do momentu, gdy liczba , której wielokrotność wykreślamy, będzie większa niż .
Dla danej liczby wszystkie niewykreślone liczby mniejsze, bądź równe są liczbami pierwszymi.
Teoria złożoności obliczeniowej – dział teorii obliczeń, którego głównym celem jest określanie ilości zasobów potrzebnych do rozwiązania problemów obliczeniowych. Rozważanymi zasobami są takie wielkości jak czas, pamięć lub liczba procesorów.
Za twórców tej teorii uważani są Juris Hartmanis i Richard Stearns. Jako przykłady problemów t.z.o. można podać problem spełnialności, problem najkrótszej ścieżki, problem faktoryzacji oraz wiele innych, o których wiadomo, że są obliczalne. Kwestią obliczalności zajmuje się teoria obliczalności będąca drugą ważną gałęzią teorii obliczeń.
Sieć lokalna – sieć komputerowa łącząca komputery na określonym obszarze takim jak blok, szkoła, laboratorium, czy też biuro. Główne różnice LAN, w porównaniu z siecią WAN, to m.in. wyższy wskaźnik transferu danych, czy też mniejszy obszar geograficzny.
Pierwsze okablowanie w sieciach LAN zawsze bazowało na różnych typach kabla współosiowego. Jednak skrętka ekranowana była używana w implementacjach Token Ring w IBM, w 1984 r.StarLAN ukazał możliwości prostej skrętki nieekranowanej używając kabla Cat3. To doprowadziło do rozwoju modelu 10Base-T oraz okablowania, które do tej pory jest podstawą większości dzisiejszych sieci LAN. Coraz częściej używa się także światłowodów
Bezprzewodowa sieć lokalna – sieć lokalna, w której połączenia między urządzeniami sieciowymi zrealizowano bez użycia przewodów .Sieci tego typu wykonywane są najczęściej z wykorzystaniem mikrofal jako medium przenoszącego sygnały, ale również z użyciem podczerwieni.
Karta sieciowa- karta rozszerzenia, która służy do przekształcania pakietów danych w sygnały, które są przesyłane w sieci komputerowej. Karty NIC pracują w określonym standardzie, np. Ethernet, Token Ring Dla większości standardów karta NIC posiada własny, unikatowy w skali światowej adres fizyczny, znany jako adres MAC, przyporządkowany w momencie jej produkcji przez producenta, zazwyczaj umieszczony na stałe w jej pamięci ROM. Karta sieciowa pracuje tylko w jednym standardzie np. Ethernet
Kabel nieskrosowany – kabel sieciowy komputerowy, używany do budowy większych sieci lokalnych. Piny na obu końcach są tak samo ułożone i mogą występować w standardzie EIA/TIA568A lub EIA/TIA568B .Kabel nieskrosowany jest użyteczny tylko wtedy, gdy chcemy zbudować sieć za pomocą urządzeń pośrednich, takich jak router, koncentrator lub przełącznik. Kabel nieskrosowany możemy podłączyć np. do bezprzewodowego routera lub dysku siecioweg
Przełącznik (komutator, także z ang. switch) – urządzenie łączące segmenty sieci komputerowej pracujące głównie w drugiej warstwie modelu ISO/OSI(łącza danych), jego zadaniem jest przekazywanie ramki między segmentami sieci z doborem portu przełącznika, na który jest przekazywana.
Przełącznik określa się też jako wieloportowy most lub inteligentny koncentrator, gdyż:
przekazuje ramki wyłącznie do docelowego segmentu sieci (podobnie do mostu, w przeciwieństwie do koncentratora),
umożliwia połączenie wielu segmentów sieci w gwiazdę (podobnie do huba, w przeciwieństwie do mostu ograniczonego do dwóch segmentów),
działa w trybie dupleks (w przeciwieństwie do koncentratora).
Router (po polsku - trasownik, IPA: /'rutɛr/) – urządzenie sieciowe pracujące w trzeciej warstwie modelu OSI. Służy do łączenia różnych sieci komputerowych (różnych w sensie informatycznym, czyli np. o różnych klasach, maskach itd.), pełni więc rolę węzła komunikacyjnego. Na podstawie informacji zawartych w pakietach TCP/IP jest w stanie przekazać pakiety z dołączonej do siebie sieci źródłowej do docelowej, rozróżniając ją spośród wielu dołączonych do siebie sieci. Proces kierowania ruchem nosi nazwę trasowania, routingu lub rutowania.
MAC – akronim posiadający szereg znaczeń w elektronice i informatyce:
podwarstwa warstwy łącza danych (ang. Data Link Layer, DLL) w modelu OSI
sprzętowy adres karty sieciowej Ethernet i Token Ring, unikatowy w skali światowej, nadawany przez producenta danej karty podczas produkcji.
Podwarstwa warstwy łącza danych modelu OSI pełni następujące funkcje:
kontrola dostępu do medium transmisyjnego
ochrona przed błędami
adresowanie celu
kontrola przepływu pomiędzy stacją końcową a urządzeniami sieciowymi
filtrowanie ramek w celu redukcji propagacji w sieciach LAN i MAN.
Kabel koncentryczny (ang. coaxial cable, zwany także kablem współosiowym) – przewód telekomunikacyjny, wykorzystywany do transmisji sygnałów zmiennych małej mocy.
Skrętka (ang. twisted-pair cable) – rodzaj kabla sygnałowego służącego do przesyłania informacji, który zbudowany jest z jednej lub więcej par skręconych ze sobą żył w celu eliminacji wpływu zakłóceń elektromagnetycznych oraz zakłóceń wzajemnych, zwanych przesłuchami. Skręcenie żył powoduje równocześnie zawężenie pasma transmisyjnego. Skrętki mają zastosowanie w łączach telekomunikacyjnych oraz sieciach komputerowych, obecnie najczęściej wykorzystywana jest w telefoniianalogowej oraz w sieciach Ethernet. Skrętka ma zastosowanie przy przesyłaniu danych w postaci analogowej jak i cyfrowej.
Kabel krosowany (skrosowany, cross-over) – kabel sieciowy komputerowy, używany do bezpośredniego łączenia dwóch komputerów. Piny na obu końcach mają różną kolejność, jest to standard EIA/TIA568B. Kabel skrosowany używany jest jedynie do bezpośredniego łączenia np. komputera z komputerem (bez urządzeń pośredniczących).
Kabel nieskrosowany (kabel prosty, bez przeplotu) – kabel sieciowy komputerowy, używany do budowy większych sieci lokalnych. Piny na obu końcach są tak samo ułożone i mogą występować w standardzie EIA/TIA568A lub EIA/TIA568B .
Kabel nieskrosowany jest użyteczny tylko wtedy, gdy chcemy zbudować sieć za pomocą urządzeń pośrednich, takich jak router, koncentrator lub przełącznik. Kabel nieskrosowany możemy podłączyć np. do bezprzewodowego routera lub dysku sieciowego. W kablach tych w niektórych gotowych modelach znajdziemy w środku srebrną lub złotą osłonkę, która zapobiega zakłócaniu na działania zewnętrzne. Takie zabezpieczenie przydaje się, gdy sieć znajduje się blisko elektrowni. Kabel nieskrosowany nie może być używany do bezpośredniego połączenia dwóch komputerów ponieważ zostałyby połączone piny do nadawania i odbioru, co powoduje kolizję przesyłu pakietów w sieci
Światłowód – przezroczysta struktura (włóknista, warstwowa lub paskowa), w której odbywa się propagacja światła.
Kabel telekomunikacyjny umożliwiający przesyłanie sygnału optycznego, wykorzystywany w telekomunikacji, telewizji kablowej i lokalnych sieciach komputerowych. Nośnikiem informacji jest znajdujące się wewnątrz kabla włókno światłowodowe o średnicy nieco większej od średnicy ludzkiego włosa. Wykorzystywane zalety światłowodu to zasięg i pasmo transmisji większe niż dla innych mediów transmisji.
Dowolna struktura zamknięta zdolna prowadzić światło na odległości od ułamków milimetra do setek kilometrów. Struktury światłowodowe wykorzystywane są w telekomunikacji, technice laserowej, czujnikach, medycynie, dla celów oświetleniowych lub dekoracyjnych i w innych dziedzinach nauki i techniki. Struktury światłowodowe mogą przyjmować formę włókien, warstw lub pasków.
Modem (od ang. MOdulator-DEModulator) – urządzenie elektroniczne, którego zadaniem jest zamiana danych cyfrowych na analogowe sygnałyelektryczne (modulacja) i na odwrót (demodulacja) tak, aby mogły być przesyłane i odbierane poprzez linię telefoniczną (a także łącze telewizji kablowej lub fale radiowe). Jest częścią DCE (Data Communications Equipment), które w całości wykonuje opisane wyżej czynności. Nieodzowne do współpracy jest DTE (Data Terminal Equipment) i to dopiero stanowi całość łącza przesyłania danych. Dzięki modemowi można łączyć ze sobąkomputery i urządzenia, które dzieli znaczna odległość.
Modemy akustyczne- W najstarszych modemach dane były zamieniane na przerywane dźwięki o częstotliwości 5 kHz i składały się z przetwornika elektrycznego, głośnika imikrofonu. W urządzenie to wkładało się zwykłą słuchawkę telefoniczną, która ponownie przetwarzała dźwięki na impulsy elektryczne
Modemy elektryczne-Współczesne modemy generują wprost impulsy elektryczne, które przesyłane są bezpośrednio do kabla telefonicznego bez pośrednictwa jakichkolwiek głośników i mikrofonów. Współczesne modemy wykorzystujące sieć telefoniczną nie generują przerywanych dźwięków o stałej częstotliwości, lecz sygnał jest kodowany za pomocą modulowanych fal o częstotliwości od 5 do 15 kHz
Topologia sieci komputerowej – model układu połączeń różnych elementów (linki, węzły itd.) sieci komputerowej. Określenie topologia sieci może odnosić się do konstrukcji fizycznej albo logicznej sieci.
Topologia fizyczna opisuje fizyczną realizację sieci komputerowej, jej układu przewodów, medium transmisyjnych. Poza połączeniem fizycznym hostów i ustaleniem standardu komunikacji, topologia fizyczna zapewnia bezbłędną transmisję danych. Topologia fizyczna jest ściśle powiązana z topologią logiczną np. koncentratory, hosty.
Topologia logiczna opisuje sposoby komunikowania się hostów za pomocą urządzeń topologii fizycznej.
topologie fizyczne ;
Topologia liniowa (ang. Line) – wszystkie elementy sieci oprócz granicznych połączone są z dwoma sąsiadującymi
Topologia magistrali (szyny, liniowa) (ang. Bus) – wszystkie elementy sieci podłączone do jednej magistrali
Topologia pierścienia (ang. Ring) – poszczególne elementy są połączone pomiędzy sobą odcinkami kabla tworząc zamknięty pierścień
Topologia podwójnego pierścienia – poszczególne elementy są połączone pomiędzy sobą odcinkami tworząc dwa zamknięte pierścienie
Topologia gwiazdy (ang. Star) – komputery są podłączone do jednego punktu centralnego, koncentratora (koncentrator tworzy fizyczną topologię gwiazdy, ale logiczną magistralę) lubprzełącznika
Topologia gwiazdy rozszerzonej – posiada punkt centralny (podobnie do topologii gwiazdy) i punkty poboczne (jedna z częstszych topologii fizycznych Ethernetu)
Topologia hierarchiczna – zwana także topologią drzewa, jest kombinacją topologii gwiazdy i magistrali, budowa podobna do drzewa binarnego
Topologia siatki – oprócz koniecznych połączeń sieć zawiera połączenia nadmiarowe; rozwiązanie często stosowane w sieciach, w których jest wymagana wysoka bezawaryjność
Topologia liniowa
Topologia magistrali
Topologia pierścienia
Topologia podwójnego pierścienia
Topologia gwiazdy
Topologia rozszerzonej gwiazdy
Topologia hierarchiczna
Topologia siatki
Mb/s (Mbit/s), megabit na sekundę
1 Mb/s = 106 b/s = 1 000 000 b/s.
Gb/s, gigabit na sekundę
1 Gb/s = 109 b/s = 1 000 000 000 b/s.
Tb/s, terabit na sekundę
1 Tb/s = 1012 b/s = 1 000 000 000 000 b/s.
1 kB/s (1 kB = 8 kb).
Adres IP (ang. Internet Protocol) – numer nadawany interfejsowi sieciowemu, grupie interfejsów bądź całej sieci komputerowej opartej na protokole IP, służąca identyfikacji elementów warstwy trzeciej modelu OSI – w obrębie sieci oraz poza nią (tzw. adres publiczny).
Adres IP nie jest "numerem rejestracyjnym" komputera – nie identyfikuje jednoznacznie fizycznego urządzenia – może się dowolnie często zmieniać (np. przy każdym wejściu do sieci Internet) jak również kilka urządzeń może dzielić jeden publiczny adres IP. Ustalenie prawdziwego adresu IP użytkownika, do którego następowała transmisja w danym czasie jest możliwe dla systemu/sieci odpornej na przypadki tzw. IP spoofingu (zapora sieciowa, ettercap) – na podstawie historycznych zapisów systemowych.
W najpopularniejszej wersji czwartej (IPv4) jest zapisywany zwykle w podziale na oktety w systemie dziesiętnym (oddzielane kropkami) lub rzadziej szesnastkowym bądź dwójkowym (oddzielane dwukropkami bądź spacjami).
Adres prywatny – adres IP przydzielany urządzeniom przyłączonym do sieci lokalnej (LAN). Używanie adresów prywatnych w sieci lokalnej jest kluczowe, ponieważ używając adresu publicznego można przesłonić część adresów w Internecie. Adresy IP są również unikalne, więc można w ten sposób doprowadzić do konfliktu adresów IP.
Host może oznaczać:
Komputer podłączony do sieci komputerowej używającej protokołu komunikacyjnego TCP/IP, posiadający adres IP. Jeżeli użytkownik komputera łączy się z siecią komputerową, to karta sieciowa lub modem jego komputera otrzymuje adres IP i wtedy staje się hostem. W tym znaczeniu host jest dowolną maszyną, uczestniczącą w wymianie danych poprzez sieć komputerową, np. poprzez Internet.
Serwer - program świadczący usługi na rzecz innych programów, zazwyczaj korzystających z innych komputerów połączonych w sieć.
Klient-serwer ((ang.) client/server, client-server model) – architektura systemu komputerowego, w szczególności oprogramowania, umożliwiająca podział zadań (ról). Polega to na ustaleniu, żeserwer zapewnia usługi dla klientów, zgłaszających do serwera żądania obsługi
Ze względu na podział wykonywanych zadań wyróżnia się następujące typy architektury klient-serwer:
architektura dwuwarstwowa – przetwarzanie i składowanie danych odbywa się w jednym module
architektura trójwarstwowa – przetwarzanie i składowanie danych następuje w dwóch osobnych modułach
architektura wielowarstwowa – przetwarzanie, składowanie i inne operacje na danych odbywają się w wielu osobnych modułach.
P2P (ang.) Peer-to-Peer – model komunikacji w sieci komputerowej, zapewniający wszystkim hostom te same uprawnienia, w odróżnieniu od architektury klient-serwer
Serwer pośredniczący (pośrednik, często z ang. proxy) – oprogramowanie lub serwer z odpowiednim oprogramowaniem, które dokonuje pewnych operacji (zwykle nawiązuje połączenia) w imieniu użytkownika. Często utożsamiany z pośrednikiem HTTP (HTTP proxy).
Użytkownik zleca pośrednikowi zadania za pomocą odpowiedniego klienta. W przypadku usług FTP i HTTP jest to klient FTP i przeglądarka internetowa. Obok tych popularnych rozwiązań znane są także inne, jak np. pośredniki (proxy) aplikacyjne, transferujące zapytania aplikacji, w istocie pełni ono funkcję oprogramowania pośredniczącego i realizuje "trasowanie zależne od danych". Inne rodzaje pośredników mogą obsługiwać np. sieciowe protokoły transmisji głosu i innych usług.
Zalety:
dużo krótszy czas oczekiwania na załadowanie się strony WWW (gdyż jest ona ściągana z blisko położonego serwera w sieci W3cache, który przeważnie używa szybkich łącz o wysokiej przepustowości),
proxy-serwer ma lepsze łącza, niż bezpośrednie korzystanie z docelowego serwera – jeśli jest on wolny,
zmniejszenie przepływu danych na dalekich dystansach (odciążenie słabszych łącz internetu),
jeśli ktoś przed nami pobierał strony, lub inne zasoby przez ten proxy-serwer, to nasz komputer ściągnie ją z proxy od razu,
ukrywanie adresu IP komputera na którym pracujemy.
IPv4 (ang. Internet Protocol version 4) – czwarta wersja protokołu komunikacyjnego IP przeznaczonego dla Internetu. Identyfikacja hostów w IPv4 opiera się na adresach IP. Dane przesyłane są w postaci standardowych datagramów. Wykorzystanie IPv4 jest możliwe niezależnie od technologii łączącej urządzenia sieciowe – sieć telefoniczna, kablowa, radiowa, itp. IPv4 znajduje się obecnie w powszechnym użyciu
IPv6 (ang. Internet Protocol version 6) – protokół komunikacyjny, będący następcą protokołu IPv4, do którego opracowania przyczynił się w głównej mierze problem małej, kończącej się liczby adresów IPv4. Podstawowymi zadaniami nowej wersji protokołu jest zwiększenie przestrzeni dostępnych adresów poprzez zwiększenie długości adresu z 32-bitów do 128-bitów, uproszczenie nagłówka protokołu oraz zapewnienie jego elastyczności poprzez wprowadzenie rozszerzeń, a także wprowadzenie wsparcia dla klas usług, uwierzytelniania oraz spójności danych
Do czego służy protokół TCP/IP?
Protokół TCP/IP to zestaw standardowych protokołów używanych do ustanawiania połączeń między komputerami w sieciach. Protokół TCP/IP pozwala komputerom z systemem operacyjnym Windows na łączenie się i wymianę informacji z innymi systemami firmy Microsoft lub systemami innych firm
DNS (ang. Domain Name System, system nazw domenowych) – system serwerów, protokół komunikacyjny oraz usługa zapewniająca zamianę adresów znanych użytkownikom Internetu na adresy zrozumiałe dla urządzeń tworzących sieć komputerową. Dzięki wykorzystaniu DNS nazwa mnemoniczna, np. pl.wikipedia.org, może zostać zamieniona na odpowiadający jej adres IP, czyli 91.198.174.232 Usługa DNS warstwy aplikacji modelu TCP/IP, jest związana z portem 53 TCP/UDP.
Adresy DNS składają się z domen internetowych rozdzielonych kropkami. Dla przykładu w adresie Wikipedii org oznacza domenę funkcjonalną organizacji, wikipedia domenę należącą do fundacji Wikimedia, a pl polską domenę w sieci tej instytucji. W ten sposób możliwe jest budowanie hierarchii nazw, które porządkują Internet.
DNS to złożony system komputerowy oraz prawny. Zapewnia z jednej strony rejestrację nazw domen internetowych i ich powiązanie z numerami IP. Z drugiej strony realizuje bieżącą obsługę komputerów odnajdujących adresy IP odpowiadające poszczególnym nazwom.
Wirus komputerowy – program komputerowy posiadający zdolność replikacji, tak jak prawdziwy wirus, stąd jego nazwa. Wirus do swojego działania potrzebuje i wykorzystuje system operacyjny, aplikacje oraz zachowanie użytkownika komputera.
Wirusa komputerowego zalicza się do złośliwego oprogramowania.
Wirus komputerowy przenosi się poprzez pliki, co wymaga obecności systemu plików, lub przez bezpośredni zapis w wybranym sektorze bądź jednostce alokacji zewnętrznego nośnika danychnp. dysku twardego, dyskietki lub pendrive'a. Proces replikacji wirusa komputerowego polega na odpowiedniej modyfikacji zawartości pliku, sektora lub jednostki alokacji. Tak zmodyfikowany nośnik danych nazywa się nosicielem wirusa komputerowego, analogicznie do prawdziwego nosiciela wirusa.
Rozmiary pierwszych wirusów komputerowych zawierały się w granicach od kilkudziesięciu bajtów do kilku kilobajtów. Obecnie, takie klasyczne wirusy spotyka się rzadziej, częściej jest to połączenie wirusa z robakiem komputerowym o rozmiarze rzędu kilkadziesiąt kilobajtów. Taką, stosunkowo niewielką ilość kodu binarnego, z łatwością można ukryć w dużym pliku zawierającymprogram komputerowy, o rozmiarze rzędu kilku megabajtów. Sam rozmiar wirusa zależy od czynników takich jak:
umiejętności programistyczne twórcy wirusa – wirus lepszego programisty napisany w tym samym języku będzie mniejszy lub będzie miał więcej funkcji;
użyty język programowania – wirus o podobnej funkcjonalności napisany w języku maszynowym (asembler) zwykle będzie mniejszy niż w języku skryptowym czy języku wysokiego poziomu;
przewidywana funkcjonalność wirusa – prosty wirus będzie mniejszy od szkodnika wykonującego wiele różnych czynności; najmniejsze wirusy potrafią tylko się powielać;
wykorzystanie cech środowiska operacyjnego – wirus napisany jako maksymalnie niezależny musi mieć wbudowane wszystkie potrzebne biblioteki, wirus korzystający w pełni ze środowiska ma tylko minimum kodu niezbędne do wywołania dostępnych w tym środowisku funkcji.
Od programisty zależą także efekty, jakie wirus będzie wywoływał po zainfekowaniu systemu, na przykład:
nieupoważnione kasowanie danych
rozsyłanie spamu poprzez pocztę elektroniczną
kradzież danych: hasła, numery kart płatniczych, dane osobowe
zatrzymanie pracy komputera, w tym całkowite wyłączenie
wyświetlanie grafiki i/lub odgrywanie dźwięków
utrudnienie lub uniemożliwienie pracy użytkownikowi komputera
przejęcie przez osobę nieupoważnioną kontroli nad komputerem poprzez sieć
tworzenie grupy hostów zarażonych danym wirusem, tzw. botnet
Program antywirusowy (antywirus) – program komputerowy, którego celem jest wykrywanie, zwalczanie i usuwanie wirusów komputerowych. Współcześnie najczęściej jest to pakiet programów chroniących komputer przed różnego typu zagrożeniami.
Programy antywirusowe często są wyposażone w dwa niezależnie pracujące moduły (uwaga: różni producenci stosują różne nazewnictwo):
skaner – bada pliki na żądanie lub co jakiś czas; służy do przeszukiwania zawartości dysku
monitor – bada pliki ciągle w sposób automatyczny; służy do kontroli bieżących operacji komputera
Program antywirusowy powinien również mieć możliwość aktualizacji definicji nowo odkrytych wirusów, najlepiej na bieżąco, przez pobranie ich z Internetu, ponieważ dla niektórych systemów operacyjnych codziennie pojawia się około trzydziestu nowych wirusów.