CBZC - test wiedzy o informatyce: Skrót z teorii

WSTĘP:

Poniżej znajduje się opracowanie zakresu tematycznego do testu wiedzy i umiejętności dla kandydatów do służby ubiegających się o przyjęcie do służby w Centralnym Biurze Zwalczania Cyberprzestępczości na stanowisko związane z bezpośrednim rozpoznawaniem i zwalczaniem przestępstw popełnionych przy użyciu systemu informatycznego, systemu teleinformatycznego lub sieci teleinformatycznej oraz zapobieganiem tym przestępstwom, a także wykrywaniem i ściganiem sprawców tych przestępstw.

Kandydat do służby ubiegający się o przyjęcie do służby w CBZC na stanowisko związane z bezpośrednim rozpoznawaniem i zwalczaniem przestępstw popełnionych przy użyciu systemu informatycznego, systemu teleinformatycznego lub sieci teleinformatycznej oraz zapobieganiem tym przestępstwom, a także wykrywaniem i ściganiem sprawców tych przestępstw powinien posiadać wiedzę ogólną z zakresu informatyki oraz szczegółową wiedzę, w zależności od stanowiska, obejmującą wybrane, wskazane zagadnienia i tematy:

OPRACOWANIE POJĘĆ:

1. Funkcjonowanie Internetu (pojęcia):

a) Protokoły TCP/IP:

Protokoły TCP/IP to zbiór protokołów służących do transmisji danych przez sieci komputerowe. Wyróżniamy model TCP/IP (model protokołów) oraz model OSI (model odniesienia). W tym pierwszym każda z warstw wykonuje konkretne zadania, do realizacji których wykorzystywane są konkretne protokoły. Ten drugi służy do analizy. Pozwala on lepiej zrozumieć procesy komunikacyjne, które zachodzą w sieciach.


Model TCP/IP:
Warstwa aplikacji - udostępnia użytkownikom możliwość korzystania z usług sieciowych
Warstwa transportu - zapewnia obsługę komunikacji między urządzeniami; dane są dzielone na mniejsze części, dodawane są dodatkowe informacje, które pozwalają dostarczyć dane do odpowiedniego odbiorcy w odpowiedniej kolejności
Warstwa internetowa - zapewnia odnalezienia najkrótszej i najszybszej drogi do urządzenia docelowego przez sieć rozległą
Warstwa dostępu do sieci - koduje dane do postaci czystych bitów i przekazuje je do medium transmisyjnego, adresuje je poprzez adresy fizyczne (MAC)

Model OSI:
Warstwa aplikacji - zapewnia dostęp do sieci aplikacjom użytkownika.
Warstwa prezentacji - odpowiada za reprezentację danych, czyli obsługę znaków narodowych, kompresję, szyfrowanie itp., określa jaki typ danych będzie przesyłany
Warstwa sesji - zapewnia aplikacjom komunikację pomiędzy różnymi systemami, zarządza sesjami transmisyjnymi przez nawiązywanie i zrywanie połączeń między nimi
Warstwa transportowa - zapewnia połączenie między aplikacjami w różnych systemach komputerowych, dba o kontrolę poprawności danych, dzieli dane na segmenty numerując je i wysyłając do stacji docelowej. 
Warstwa sieciowa - zapewnia metody łączności (obsługuje routing i adresację logiczną), wyznacza najlepszą ścieżkę przesyłania danych
Warstwa łącza danych - odpowiada za poprawną transmisję danych przez konkretne media transmisyjne, warstwa ta operuje na fizycznych adresach interfejsów sieciowych (MAC), adresuje dane w celu przesyłania ich pomiędzy hostami w sieci LAN
Warstwa fizyczna - odbiera dane z warstwy łącza danych, koduje je i przesyła je w medium transmisyjnym jako bity reprezentowane w konkretny sposób.

Proces komunikacji w sieciach internetowych:
Użytkownik sieci tworzy dane w warstwie aplikacji, następnie dane przekazywane są w dół stosu, do warstwy transportowej, gdzie dzieli się je na mniejsze paczki, potem do warstwy internetowej, gdzie nadawany jest adres pozwalający przesłać dane przez sieć rozległą. Potem dane trafiają do warstwy dostępu do sieci, gdzie nadawany jest adres urządzenia w sieci lokalnej, a na koniec dane wprowadzane są do medium transmisyjnego i przesyłane do urządzenia końcowego, w którym to dane przechodzą w górę stosu, aż zostaną spakowane w całość i przekazywane do warstwy aplikacji.

Informacje sterujące to takie dane, które są konieczne, aby mogły trafić do odpowiedniego hosta:
  • numery portów aplikacji - warstwa transportu (port aplikacji na hoście źródłowym oraz port aplikacji na hoście docelowym)
  • adresy IP - warstwa internetowa lub sieciowa (hosta źródłowego i docelowego)
  • adresy MAC - warstwa dostępu do sieci lub łącza danych (hosta źródłowego oraz routera sieci lokalnej)
Enkapsulacja - podział danych na mniejsze fragmenty oraz dodawanie informacji sterujących (przechodzenie w dół stosu)

Dekapsulacja - łączenie danych w jedność oraz usuwanie dodatkowych informacji na urządzeniu docelowym (przechodzenie w górę stosu)

Nazewnictwo:

b) Adresacja IP w wersji 4 oraz wersji 6.

Adres fizyczny (MAC) to 48-bitowy adres zakodowany w systemie szesnastkowym na karcie urządzenia końcowego. Pierwsza połowa oznacza identyfikator producenta, druga identyfikator karty. Służy on do odnajdywania hostów w sieciach lokalnych. Dodawany jest w procesie enkapsulacji w warstwie dostępu do sieci w modelu TCP/IP oraz w warstwie łącza danych w modelu ISO/OSI. 

Adres IP to adres logiczny składający się z 32-bitowego ciągu zera i jedynek. Składa się z czterech oktetów. Maska podsieci określa jaka część bitów w adresie IP przeznaczona jest na adres sieci, a jaka jest liczba hostów w tej sieci. Istnieje jeszcze:
  • adres sieciowy - który określa całą sieć
  • adres rozgłoszeniowy - adres używany do w celu wysyłania danych do wszystkich hostów w określonej sieci
  • adres hosta (interfejsu urządzenia końcowego) - adres przyporządkowany urządzeniu końcowemu pracującemu w sieci
Obliczanie adresu sieci - instrukcja:
1. Zamień adres IP oraz maskę na postać binarną
2. Na otrzymanych liczbach wykonaj operację AND 
3. Przekonwertowaną liczbę przekonwertuj na postać dziesiętną

Obliczanie adresu rozgłoszeniowego:
1. Przekonwertuj na postać binarną maskę podsieci
2. Wykonaj operację logiczną NOT (1 to 0, 0 to 1).
3. Zamień otrzymaną liczbę na postać dziesiętną
4. Dodaj tą liczbę do adresu sieci

Obliczanie maksymalną liczbę hostów w sieci:
1. Skorzystaj ze wzoru (2^(32-skrócony zapis maski podsieci)-2)
2. Określ adres pierwszego hosta w sieci (adres sieci + 0.0.0.1) oraz adres ostatniego hosta w sieci ( adres sieci - 0.0.0.1)

DHCP jest metodą przydzielania adresów IP hostom w większych sieciach, ponieważ robione jest to automatycznie.

Metody komunikacji hostów w sieci IPv4:
  • unicast - proces polegający na wysyłaniu pakietu z jednego hosta do innego konkretnego hosta
  • broadcast - proces polegający na wysłaniu pakietu z jednego hosta do wszystkich hostów w sieci
  • multicast - proces polegający na wysłaniu pakietu z jednego hosta do określonej grupy hostów w sieci
Zakresy adresów prywatnych:
  • od 10.0.0.0 do 10.255.255.255 (10.0.0.0/8)
  • od 172.16.0.0 do 172.31.255.255 (172.16.0.0./12)
  • od 192.168.0.0 do 192.168.255.255 (192.168.0.0/16)
Protokół IPv6 został zaprojektowany jako następca protokołu IPv4. Ma on większą, bo 128-bitową przestrzeń adresową, zapewniającą 360 sekstylionów adresów. Eliminuje on ograniczenia IPv4 oraz wprowadza dodatkowe udoskonalenia, takie jak ICMPv6.

adres pełny: 2500:966C:0032:0000:0000:0000:0000:0001
adres skrócony: 2500:966C:32::1

Rodzaje adresów IPv6:
  • unicast (unikatowy identyfikuje interfejs urządzenia obsługującego IPv6)
  • link-local - używany do komunikacji z innymi urządzeniami w tej samej sieci
  • globalny unicast - adresy routowalne w Internecie, globalnie unikatowy, podobny do publicznego adresu IPv4
  • unikalny adres lokalny - podobny do adresów prywatnych IPv4; używany do adresacji w ramach pojedynczej sieci lub ograniczonej liczby sieci.
Podział sieci na podsieci: TUTAJ!

c) LAN, WAN, routing, maska podsieci:

LAN - sieć lokalna, umożliwiająca dostęp dla użytkowników i urządzeń końcowych na małym obszarze. 
Technologie sieci LAN: Ethernet, FDDI, Token Ring
Właściwości LAN: łączy ze sobą na małym obszarze, jedna osoba jest administratorem, wysokie przepustowości 

WAN - infrastruktura sieciowa, umożliwia dostęp do sieci na dużym obszarze geograficznym.
Technologie WAN: sieć ISDN, sieć SONET, sieć Frame Relay, sieci komutowane, linie DSL
Właściwości WAN: łączy ze sobą na dużym obszarze, administruje kilka dostawców usług, wolniejsze połączenie (w porównaniu do LANa)

PAN - sieć o zasięgu kilku metrów, wykorzystywane np. do połączenia telefonu ze słuchawką

MAN - sieci o zasięgu miasta, szybkie, połączenie między sieciami lokalnymi (np. organów administracji)

VPN - prywatna sieć w ramach infrastruktury sieci publicznej, tj. światowa sieć Internet.

Tablica ARP używana jest do znalezienie adresu warstwy łącza danych, który jest zmapowany z docelowym adresem IPv4. Gdy węzeł odbiera ramki z medium, to zapisuje adres IP źródłowy i adres MAC w tabeli ARP.

Routing to proces określania trasy przesyłu pakietów pomiędzy różnymi sieciami. Aby host mógł wysłać pakiet do hosta pracującego w innej sieci, musi mieć zdefiniowany adres bramy domyślnej, czyli interfejs routera lub serwera, który jest podłączony do tej samej sieci co host.

Krok po kroku jak przebiega routing:
1. Komputer 1 chce wysłać dane do komputera 3
2. Pakiet trafia do interfejsu routera stanowiącego bramę dla komputera 1
3. Router 1 sprawdza w nagłówku pakietu adres IP hosta docelowego i porównuje go ze wpisami do swojej tablicy routingu
4. Router 1 wysyła pakiet do routera 2, będący następnym skokiem na trasie
5. Router 2 odczytuje pakiet i sprawdza w swojej tablicy routingu czy ma trasę do sieci, do której ma zostać wysłany pakiet
6. Router przesyła pakiet do routera 3
7. Router 3 odczytuje adres IP i sprawdza tablicę routingu
8. Sieć docelowa jest siecią bezpośrednio podłączoną routera 3, zatem router 3 przekazuje pakiet do hosta docelowego, czyli komputera 3.

Routery zdobywają informacje o trasach w sposób statyczny lub dynamiczny:
  • routing statyczny - administrator sieci ustawia na sztywno trasy na routerze
  • routing dynamiczny - router automatycznie uczy się tras, bez ingerencji administratora. Wykorzystywane są protokoły RIPv1, RIPv2, EIGRP oraz OSPF.
Maska podsieci określa jaka część bitów w adresie IP przeznaczona jest na adres sieci, a jaka jest liczba hostów w tej sieci - wyjaśnione szczegółowo wyżej.

d) ISP i ICP

ISP jest dostawcą usług internetowych. Dostawca dostępu do Internetu odpowiada przede wszystkim za tworzenie połączeń na skalę lokalną, regionalną, lub krajową, które pozwalają użytkownikom na transmisję danych pomiędzy sobą. Do głównych zadań ISP należą:
  • umożliwienie klientom stałego dostępu do internetu
  • przekierowanie ruchu internetowego
  • hosting
  • rejestracja nazw domen
  • dostarczanie usług poczty elektronicznej
  • utrzymywanie infrastruktury technologicznej
ISP poziomu 1 - udostępnia połączenia na poziomie narodowym i międzynarodowym
ISP poziomu 2 - mniejsi dostawcy usług, zapewniają połączenia na poziomie regionalnym
ISP poziomu 3 - dostawcy lokalni; podłączają oni bezpośrednio użytkowników końcowych

ICP to dostawca treści. Zajmuje się on elektroniczną dystrybucją dóbr multimedialnych (czyli filmów, zdjęć, grafikę, dźwięk) w celu dostarczenia odbiorcom informacji lub rozrywki.

e) Domeny internetowe

Domena internetowa to jeden z elementów adresu internetowego strony www oraz ciągiem nazw systemu DNS. 


Domeny dzielimy na:
  • domeny funkcyjne (np. xxxxgov.pl)
  • domeny krajowe (np. xxxx.pl )
  • domeny globalne (np. xxxxx.com)
Subdomena pozwala na rozbudowę własnej strony i stworzenie osobnego adresu dla forum lub dla każdego działu. Jeśli domena firmy to sklep.pl można ją na przykład rozbudować o subdomeny jedzenie.sklep.pl.

System DNS pozwala na rejestrację nazw domen internetowych i ich powiązanie z numerami IP. Oprócz Internetu stosuje się go do lokalizacji serwerów, komputerów i usług w sieciach lokalnych.

f) Serwisy WHOIS

WHOIS to ogólnodostępna baza danych o domenach internetowych oraz ich właścicielach. Po zarejestrowaniu domeny, informacje na jej temat oraz dane jej właściciela będą dostępne w WHOIS


Informacje:
  • stan - czy domena jest aktywna
  • kiedy została utworzona domena
  • koniec okresu rozliczeniowego - kiedy domena wygasa
  • nazwy serwerów DNS, które obsługuje domena
  • ostatnia modyfikacja
  • kto jest właścicielem domeny
  • w jakiej firmie domen została zarejestrowana
  • kiedy założono dodatkowe opcje na domenę
2. Techniki anonimizacji

Anonimizacja danych polega na przekształcenie danych osobowych w informacje niemożliwą do przyporządkowania danej osobie. Pozwala ona na usunięcie powiązań pomiędzy danymi osobowymi, a osobą, której dotyczą. W ten sposób informacje, które przed anonimizacją były danymi osobowymi, przestają nimi być.

Metody anonimizacji:
a) Randomizacja - losowy rozdział danych w celu wyeliminowania ścisłego związku między danymi a konkretną osobą fizyczną
b) Generalizacja - obniżenie precyzji danych (zmiana dokładnego wieku osoby na przedział wiekowy)
c) Supresja atrybutów - usunięcia partii danych w zestawie danych
d) Supresja rejestrów - usunięcie całego rejestru w zestawie danych
e) Maskowanie znaków - zmiana znaków wartości danych poprzez użycie stałego znaku (np. wpisując hasło widzimy gwiazdkę lub kropkę)
f) Kodowanie (pseudonimizacja) - zmiana wartości danych na fikcyjne
g) Perturbacja danych - za dane rzeczywiste podstawiane są wartości, które lekko odbiegają od oryginału
h) Dane syntetyczne - sztucznie wygenerowane dane, nie mają związku ze zbiorem danych rzeczywistych
i) Agregacja danych - zgrupowanie danych

Narzędzia do anonimizacji danych - np. Microsoft Azure, Oracle Advanced Security, IBM Security Guardium, CA Data Manager.

MD5 - algorytm kryptograficzny, algorytm skrótu stosowany do konwersji dowolnego tekstu na ciąg 128-bitowej wartości skrótu. Algorytm ten działa na zasadzie przekształcenia wejściowego tekstu (np. hasła) na ciąg zer i jedynek o stałej długości 128 bitów. Wartość skrótu uzyskana za pomocą szyfrowania MD5 jest unikalna dla każdego tekstu wejściowego, co oznacza, że ​​dwie różne wiadomości nie powinny mieć tego samego skrótu.

Polecenie md5sum w systemach operacyjnych Linux służy do wygenerowania wartości skrótu MD5 dla plików lub tekstów - np. md5sum plik.txt zwróci 128-bitowy ciąg znaków, który jest wartością skrótu MD5 dla tego pliku.

3. OSINT

OSINT (biały wywiad) to techniki pozyskiwania informacji na temat ludzi oraz firm na podstawie ogólnodostępnych źródeł. 

Przykładowe źródła:
  • wyszukiwarki internetowe
  • shodan.io (służy do znajdowania i opisywania wszystkich urządzeń posiadających publiczny adres IP)
  • http://web.archive.org/ - archiwum Internetu
  • Maltego - program zbierający dane przydatne do białego wywiadu przedstawiający je w formie graficznej
  • media społecznościowe
  • strony szkół i uczelni
  • portale pozwlające sprawdzić nr VIN pojazdu
  • media
Cyberanalityk jest osobą odpowiedzialną za identyfikację danych, wykonanie analizy, wybór optymalnych danych do badania, walidację i potwierdzenie pozyskanych źródeł lub danych.

4. Metadane plików, ich pozyskiwanie i analiza

Metadane to uporządkowany zestaw informacji o danych. Są to określenia umożliwiające wyszukanie pożądanej informacji np.
  • data i czas utworzenia pliku
  • adres lub położenie geograficzne miejsca utworzenia pliku
  • imię i nazwisko, nazwę firmy, nazwę komputera lub adres IP
  • nazwy wszystkich współtwórców dokumentu lub dodane komentarze
  • typ użytego aparatu i jego ustawienia podczas robienia zdjęcia
  • typ użytego aparatu i jego ustawienia podczas wykonywania zdjęcia
  • typ użytego urządzenia rejestrującego audio lub wideo i jego ustawienia podczas nagrywania
  • informacje o marce lub modelu smartfona
 Typy metadanych:
  • opisowe - służą do odnajdywania i identyfikacji kluczowych informacji, które umożliwiają lokalizację obiektu (informacje o autorze, słowa kluczowe, wydawnictwo, tytuł)
  • strukturalne - opisują strukturę całego obiektu (liczba rozdziałów, stron)
  • administracyjne - informacje techniczne, w których są zawarte np. informacje o czasie i utworzenia pliku
Pliki można analizować np. w systemie Windows we właściwościach pliku, albo w sekcji <head> w przypadku pliku HTML. 

Sposoby usuwania metadanych:
  • ręczne usuwanie z pliku tekstowego
  • programowe (np. Doc Scrubber)
Jednym z najpopularniejszych programów przeznaczonych jest FOCA. Za pomocą odpowiedniego zapytania kierowanego do wyszukiwarki Google, Bing i Exalead, odnajdziemy dokumenty opublikowane przez interesującą nas organizację i analizuje zawarte w nich metadane. Po utworzeniu nowego projektu i wybraniu docelowej domeny możemy od razu rozpocząć poszukiwanie publicznie dostępnych dokumentów. Program FOCA bez problemu odnajdzie dokumenty umieszczone na testowanej domenie. Po zakończeniu wyszukiwania i wybraniu opcji Download All można pobrać wszystkie odnalezione pliki, a dzięki Extract ALL Metadata / Analyze All Metadata otrzymujemy zbiór metadanych, które uzyskał dla nas FOCA.


Ważnym programem do wyłuskiwania danych ze zdjęcia, w systemie Linux jest exiftool
Parametr ver pokazuje wersję programu, natomiast wskazanie konkretnego pliku wraz z rozszerzeniem pokazuje metadane pliku takie jak: lokalizacja utworzenia zdjęcia, model aparatu, rozdzielczość zdjęcia, data wykonania zdjęcia itp.

Film z działania komendy znajdziesz: TUTAJ!

Najpopularniejsze formaty plików graficznych:
  • JPEG - popularny format kompresji stratnej, stosowany głównie dla zdjęć i obrazów fotograficznych z dużą liczbą kolorów. Wysoki stopień kompresji powoduje utratę jakości obrazu, ale pozwala na zmniejszenie rozmiaru pliku.
  • PNG - format bezstratnej kompresji, który zachowuje jakość obrazu i jest idealny do przechowywania grafiki z przezroczystymi tłem. PNG jest często używany do tworzenia grafik na stronach internetowych.
  • GIF - format do animacji i krótkich klipów wideo, stosowany również dla grafiki rastrowej. GIF obsługuje animacje i przezroczystość, ale nie jest dobrym wyborem do przechowywania obrazów z dużą liczbą kolorów.
  • TIFF - format bezstratnej kompresji, który zachowuje jakość obrazu. TIFF jest często stosowany w branży graficznej i wydawniczej do przechowywania zdjęć i obrazów o dużej rozdzielczości.
  • BMP - format bez kompresji, który zachowuje jakość obrazu, ale może zajmować dużo miejsca na dysku. BMP jest często stosowany do przechowywania obrazów na komputerach z systemem Windows.
  • SVG  - format wektorowy, który zachowuje jakość obrazu bez względu na jego rozmiar. SVG jest idealny dla grafiki wektorowej, takiej jak loga i ikony.
  • RAW - specjalny format plików, w którym zapisywane są surowe dane z matrycy aparatu fotograficznego lub innego urządzenia rejestrującego obraz. Format RAW przechowuje informacje o kolorze, jasności, balansie bieli i innych parametrach, które później mogą zostać zmienione podczas obróbki w programach do edycji zdjęć.
5. Rodzaje telekomunikacji

Rodzaje sieci telekomunikacyjnej:
  • publiczna komutowana sieć telefoniczna (PSTN) - sieć telefoniczna analogowa lub cyfrowa w sieci szkieletowej
  • sieć komputerowa - zbiór komputerów i innych urządzeń połączonych z sobą kanałami komunikacyjnymi oraz oprogramowaniem wykorzystywanym w tej sieci
  • sieć Internet - ogólnoświatowy system połączeń między komputerami
  • sieć teletekstowa - pozwalały na przesyłanie dokumentów lub dostępu do baz (w chwili obecnej ich rolę przejęły usługi teleinformatyczne 
  • sieć cyfrowa ISDN - używana jest do przesyłania głosu, danych i obrazu oraz dostępu do nowoczesnych usług telekomunikacyjnych
6. Phishing - sposoby wyłudzania danych, socjotechnika w oszustwach

Phishing polega na podszywaniu się pod obdarzoną zaufaniem społecznym firmę prywatną lub instytucję w celu wyłudzenia poufnych danych. Tracą dwie strony: firma, której wizerunek jest wykorzystywany i ofiara przestępstwa. Najczęstszym celem ataku jest kradzież środków z konta lub dostęp do płatnych usług.

Rodzaje ataków phishingowych:
  • ataki spersonalizowane (spear phishing) - oszuści przygotowują się do ataku wcześniej. Ofiarami są zazwyczaj pracownicy firm, a celem pozyskanie poufnych danych firmy. Ofiary są starannie wybierane przez przestępców, a następnie są prześwietlane ich serwisy społecznościowe, lista kontaktów czy wypowiedzi na forach internetowych. W ten sposób łatwo o spersonalizowanie wiadomości, uśpienie czujności ofiary i pozyskanie wyjątkowo wrażliwych danych.
  • clone phising - klonowanie prawdziwej wiadomości e-mail. Przestępca może użyć wzoru podczas tworzenia nowej i załączyć zmienione linki prowadzące do złośliwej strony www. Ofiara ma pewność, że otrzymuje identyczną wiadomość od tego samego nadawcy.
  • whaling - atak spersonalizowany, który ma za zadanie przechwycenie danych od osób zajmujących najwyższe stanowiska w firmie.
  • brand phishing - oszuści podszywają się pod przedsiębiorstwo, świadczące usługi dla atakowanej firmy.
  • spoofing - polega na fałszowaniu domen. Cyberprzestępca podszywa się pod istniejącą domenę, aby jego e-mail wyglądał jak oryginalna wiadomość od wybranej organizacji.
  • smishing - atak wykorzystujący wiadomości SMS, zawierające złośliwy link.
Inną formą ataku socjotechnicznego jest próba złapania użytkowników Internetu na przynętę zawartą np. w reklamach online. Złośliwy banner reklamowy może proponować nam zdarzająca się raz w życiu, niespotykaną okazję - i znów, socjotechnika opiera się w takim wypadku na naszej lekkomyślności i chęci łatwego zysku, która "wyłącza" u wielu osób zdolności analityczne i powoduje, że nie zastanawiają się one nad konsekwencjami swojej łatwowierności. 

Problemy odbiorców:
  • skłonność do wiary w fałszywe e-maile
  • skłonność do kliknięcia w linki bez zastanowienia w jego rzetelność
Cyberataki oparte o socjotechnikę bazują głównie na naszych ludzkich słabościach

7. Kryptowaluty - zasady funkcjonowania

Kryptowaluty to wirtualne pieniądze. Opierają się na technice szyfrowania danych (kryptografii), która służy do weryfikacji transakcji oraz tworzenia nowych jednostek, zwanych monetami. Najpopularniejszą kryptowalutą jest Bitcoin. 

W kryptowaluty można inwestować w sposób bardzo podobny i zbliżony do tego jak inwestujemy w euro, dolary czy złotówki. Podstawową formą jest obrót tymi walutami. Wystarczy odpowiedni rachunek na platformie umożliwiającej to oraz środki finansowe już w tradycyjnych walutach na inwestycję. Większość popularnych kryptowalut, takich jak Bitcoin, Stellar, Ethereum, Solana czy Tezos rozliczanych jest w dolarach (USD). Oznacza to, iż wszystkie ich kursy są wyrażone w parze walutowej zawsze z dolarem amerykańskim.

Istotą kryptowalut jest zcentralizowany system, który w wielu przypadkach bazuje w blockchainie, czyli tzw. łańcuchu bloków, czyli publicznym rejestrze transakcji w ramach sieci danej kryptowaluty, które są zawierane, weryfikowane i szyfrowane przy wykorzystaniu kryptografii (skomplikowanych obliczeń matematycznych), czyli komputerów użytkowników o dużej mocy obliczeniowej, za co zyskują wynagrodzenie w postaci jednostek kryptowaluty (tzw. proces kopania kryptowalut). Technologia blockchain uniemożliwia fałszowanie kryptowalut oraz operacji, w których uczestniczą. Nie ma również pośredników, ponieważ transakcja odbywa się pomiędzy nadawcą i odbiorcą (peer-to-peer). Za obsługę transakcji i przechowywanie związanych z nimi informacji odpowiadają w tym przypadku użytkownicy sieci zwani górnikami (minerami). Proces, w którym weryfikują i dodają do publicznego rejestru transakcje, a także mechanizm wprowadzania do obiegu nowych jednostek kryptowaluty, nazywamy kopaniem (miningiem). Swoją pracę wykonuje jednocześnie wielu minerów, więc jeśli któryś z nich przestanie udostępniać swój sprzęt to nie wpływa to na funkcjonalność systemu.

Kryptowaluty przyciągają ogromnymi wzrostami cen, ale również ich potężnymi wahaniami, z których chętnie korzystają traderzy, zwłaszcza ci grający na kontraktach terminowych. 

Hodlowanie to inwestowanie długoterminowe. Hodlerzy zwykle trzymają na swoich portfelach kilka, kilkanaście, a nawet kilkadziesiąt różnych kryptowalut.

Halving jest to powszechnie stosowany model ekonomiczny w zarządzaniu wieloma kryptowalutami. Polega na tym, że gdy ilość kryptowalut krążących w sieci osiąga ilość maksymalną, ich wydobywanie przez górników zmniejsza się o 50%.

8. Wirtualizacja systemów komputerowych

Wirtualizacja polega na uruchomieniu za pomocą narzędzia wirtualizacji (np. VirtualBox, VMware) systemu operacyjnego wewnątrz już istniejącego - np. w celu sprawdzenia oprogramowania pod kątem bezpieczeństwa, nie stanowiąc zagrożenia dla komputera. Dzięki wirtualizacji otrzymujemy systemy pracujące jednocześnie na tej samej fizycznej maszynie, która rozdziela zasoby sprzętowe (pamięć operacyjna RAM, pamięć masowa, czas procesora) gościom według ich potrzeb. Wirtualna maszyna zapisana jest na dysku fizycznym komputera w postaci zestawu plików. Pamięć masowa emulowana jest poprzez stworzenie wirtualnego dysku twardego. Gość widzi go jako zwykły dysk, zaś gospodarz jako plik (lub pliki), który przechowuje zawartość dysku twardego maszyny wirtualnej. Poza nimi istnieją również inne pliki zawierające, np. informacje o konfiguracji maszyny. Aby wirtualizacja systemu się udała należy w BIOSie lub UEFI włączyć funkcję Intel Virtualization Technology.

Hypervisory możemy podzielić na dwie grupy, w zależności od wykorzystywanego typu wirtualizacji:
  • Wirtualizacja typu 1, z której korzysta min. Hyper-V. W tym typie hypervisor pracuje bezpośrednio na sprzęcie fizycznym (hardware-rze) przydzielając odpowiednie zasoby maszynom wirtualnym
  • Wirtualizacja typu 2, z której korzysta np. Virtualbox. W tym typie hypervisor jest „zwykłą” aplikacją, która pracuje wewnątrz systemu operacyjnego hosta. Przydziela on zasoby maszynom wirtualnym poprzez system operacyjny.
Programy do wirtualizacji systemów operacyjnych:
 9. Umiejętność zarządzania sieciami teleinformatycznymi

Malware (złośliwe oprogramowanie) to rodzaj oprogramowania zaprojektowanego w celu naruszania bezpieczeństwa systemów informatycznych, kradzieży danych, szpiegowania, wyświetlania niechcianych reklam, powodowania awarii systemu lub innych szkodliwych działań.

Rodzaje wirusów komputerowych:
  • Wirusy boot-sector - wirusy, które infekują sektor rozruchowy dysku, dzięki czemu wirus może się uruchomić przed systemem operacyjnym, który znajduje się na dysku.
  • Wirusy plików - wirusy, które dodają swoje instrukcje do plików wykonywalnych, a następnie infekują inne pliki, gdy zainfekowany plik jest uruchamiany.
  • Wirusy sieciowe - wirusy, które rozprzestrzeniają się przez sieć, infekując inne komputery za pośrednictwem sieci komputerowej.
  • Wirusy makro - wirusy, które atakują dokumenty i arkusze kalkulacyjne z zainfekowanymi makrami, co pozwala wirusowi na wykonanie swoich instrukcji po otwarciu dokumentu.
  • Trojan - wirusy, które ukrywają swoje szkodliwe funkcje w programach lub plikach, które wydają się być bezpieczne.
  • Robaki - programy, które są w stanie samodzielnie rozprzestrzeniać się przez sieć, wykorzystując luki w systemach komputerowych, a także urządzeniach sieciowych.
  • Ransomware - wirusy, które szyfrują pliki użytkownika i żądają okupu w zamian za odszyfrowanie danych.
  • Adware - wirusy, które wyświetlają reklamy na komputerze użytkownika, często przy użyciu natarczywych metod, takich jak automatyczne otwieranie okien przeglądarki.
  • Spyware - wirusy, które zbierają informacje o użytkowniku, takie jak hasła, numery kart kredytowych, a także przeglądane strony internetowe.
  • Rootkit - wirus, który umożliwia cyberprzestępcom zdalny dostęp i kontrolę nad zainfekowanym systemem, a także ukrywa swoją obecność przed użytkownikiem i antywirusami.
  • Backdoor - wirus, który tworzy ukryte wejście (tylne drzwi) do zainfekowanego systemu, umożliwiając cyberprzestępcom zdalny dostęp i kontrolę.
  • Keylogger - wirus, który monitoruje i rejestruje klawisze naciskane na klawiaturze, co pozwala cyberprzestępcom na kradzież poufnych informacji, takich jak hasła, numery kart kredytowych, itp.
  • Dropper - wirus, który ma na celu dostarczenie innych rodzajów wirusów na zainfekowany system.
  • MBR (Master Boot Record) - wirus, który infekuje główny rekord rozruchowy dysku, który pozwala na uruchomienie systemu operacyjnego.
  • Polimorficzny - wirus, który zmienia swoją postać, aby uniknąć wykrycia przez antywirusy.
  • Metamorficzny - wirus, który modyfikuje swój kod i strukturę, aby zmienić swoją sygnaturę i uniknąć wykrycia przez antywirusy.
  • Crypter - wirus, który szyfruje swoje instrukcje, aby uniknąć wykrycia przez antywirusy, a następnie używa dekryptora do odszyfrowania instrukcji podczas uruchamiania.
  • Fileless malware - wirus, który działa w pamięci RAM, a nie w plikach na dysku, co utrudnia jego wykrycie i usuwanie.
Interfejs sieciowy (ang. Network Interface Card, NIC) jest urządzeniem umożliwiającym komunikację między komputerem a siecią komputerową. Tryby pracy interfejsu sieciowego określają, w jaki sposób urządzenie to przetwarza dane.

Oto niektóre z podstawowych trybów pracy interfejsu sieciowego:
  • Tryb nasłuchiwania (ang. promiscuous mode): W tym trybie interfejs sieciowy przechwytuje wszystkie pakiety przesyłane przez sieć, niezależnie od tego, czy są one adresowane do niego czy nie. Tryb ten jest często stosowany przez narzędzia do analizy sieci i diagnostyki.
  • Tryb nienadzorowany (ang. unmanaged mode): W tym trybie interfejs sieciowy działa w sposób zautomatyzowany, bez potrzeby konfigurowania go przez użytkownika. Jest to tryb często stosowany w prostych sieciach domowych lub w przypadku, gdy nie jest potrzebna zaawansowana konfiguracja interfejsu sieciowego.
  • Tryb nadzorowany (ang. managed mode): W tym trybie interfejs sieciowy jest skonfigurowany i zarządzany przez użytkownika lub administratora sieci. Użytkownik może dostosować ustawienia interfejsu sieciowego do swoich potrzeb, takie jak adres IP, maskę podsieci, bramę domyślną itp.
  • Tryb monitorowania (ang. monitor mode): W tym trybie interfejs sieciowy może przechwytywać pakiety bez ich przetwarzania. Tryb ten jest często stosowany do analizy sieci bez wpływu na przesyłane dane.
  • Tryb wyłączony (ang. disabled mode): W tym trybie interfejs sieciowy jest wyłączony i nie może przetwarzać ani wysyłać danych sieciowych.
Karta sieciowa to urządzenie służące do komunikacji komputera z siecią. Karta sieciowa może działać w dwóch trybach: aktywnym i pasywnym.
  • Tryb aktywny, zwany również trybem wysyłania, polega na tym, że karta sieciowa aktywnie wysyła sygnały do sieci w celu nawiązania połączenia. W tym trybie karta sieciowa pobiera prąd i wysyła sygnały, co oznacza, że wymaga zasilania.
  • Tryb pasywny, zwany również trybem odbioru, polega na tym, że karta sieciowa jedynie odbiera sygnały z sieci bez aktywnego wysyłania. W tym trybie karta sieciowa nie pobiera prądu, co oznacza, że nie wymaga zasilania.
W praktyce większość kart sieciowych działa w trybie aktywnym i pasywnym jednocześnie. W trybie pasywnym karta sieciowa odbiera sygnały, natomiast w trybie aktywnym wysyła sygnały w celu nawiązania połączenia i przesyłania danych.

10. Systemy operacyjne:

Systemy plików w systemach operacyjnych:
  • NTFS - stosowany w systemie operacyjnym Windows, obsługuje duże partycje i pliki o dużej pojemności, zapewnia mechanizmy bezpieczeństwa i kontroli dostępu.
  • FAT32 - stosowany w starszych wersjach systemów operacyjnych Windows, jest prosty i łatwy do obsługi, ale ma ograniczenie wielkości plików do 4 GB.
  • exFAT - stosowany w systemie operacyjnym Windows, umożliwia obsługę dużych plików o pojemności ponad 4 GB i jest lepszy niż FAT32 pod względem wydajności i niezawodności.
  • EXT4 - stosowany w systemach operacyjnych Linux, obsługuje partycje o dużych pojemnościach i jest bardziej niezawodny niż poprzednie wersje systemów plików dla systemów Linux.
  • XFS - stosowany w systemach operacyjnych Linux, jest zaprojektowany do pracy z dużymi partycjami i plikami o dużych rozmiarach, zapewnia wysoką wydajność i skalowalność.
  • APFS - stosowany w systemie operacyjnym iOS i macOS, zapewnia szybsze i bardziej niezawodne zarządzanie plikami oraz obsługuje zaawansowane funkcje, takie jak kopiowanie migawkowe i szyfrowanie.
  • HFS+ - stosowany w starszych wersjach systemu operacyjnego macOS, obsługuje partycje o dużych pojemnościach i pliki o dużych rozmiarach, ale ma ograniczenia wydajności i nie oferuje tak zaawansowanych funkcji jak APFS.
a) Windows

Windows 

UTC (Coordinated Universal Time) to standardowy czas uniwersalny, który jest jednym z głównych standardów czasowych używanych na całym świecie. Jest to międzynarodowy czas referencyjny, który jest używany jako punkt odniesienia dla wszystkich innych stref czasowych. UTC opiera się na czasie atomowym i jest wyznaczany na podstawie czasu, jaki potrzebuje atom cezu 133 do wykonania określonej liczby oscylacji.

RAID to technologia, która umożliwia połączenie wielu dysków fizycznych w jeden logiczny dysk, w celu zapewnienia większej niezawodności, wydajności i pojemności przechowywania danych.
RAID opiera się na dzieleniu danych i/lub ich replikowaniu na wiele dysków fizycznych, co zapewnia redundancję danych i chroni przed utratą danych w przypadku awarii jednego lub kilku dysków. Istnieją różne poziomy RAID, które zapewniają różne poziomy redundancji i wydajności. Najpopularniejsze poziomy RAID to:
  • RAID 0 - poziom bez redundantności, gdzie dane są równomiernie rozłożone na wszystkich dyskach, co zapewnia wysoką wydajność, ale brak ochrony przed utratą danych w przypadku awarii jednego z dysków,
  • RAID 1 - poziom z lustrzaną redundantnością, gdzie dane są replikowane na co najmniej dwóch dyskach, co zapewnia wysoki poziom ochrony przed utratą danych w przypadku awarii jednego z dysków, ale kosztem mniejszej pojemności i wydajności,
  • RAID 5 - poziom z jednym dyskiem parzystości, gdzie dane są dzielone na co najmniej trzech dyskach, z jednym dyskiem służącym jako dysk parzystości, co zapewnia wyższą pojemność i wydajność niż RAID 1, ale kosztem mniejszej wydajności podczas odtwarzania danych w przypadku awarii jednego z dysków,
  • RAID 6 - poziom z dwoma dyskami parzystości, który zapewnia większą ochronę przed utratą danych w przypadku awarii dwóch dysków w porównaniu z RAID 5.

Przykładowe polecenia w systemie Windows:
  • assoc - wyświetla lub modyfikuje skojarzenia plików
  • attrib - zmienia atrybuty plików
  • chkdsk - sprawdza integralność systemu plików i naprawia błędy
  • cipher - szyfruje lub deszyfruje pliki i katalogi
  • cls - czyszczenie ekranu w konsoli
  • cmd - uruchamia konsolę systemową
  • comp - porównuje dwa lub więcej plików
  • compact - kompresuje lub dekompresuje pliki
  • convert - konwertuje system plików z FAT na NTFS
  • copy - kopiowanie plików
  • del - usuwanie plików
  • dir - wyświetla zawartość katalogu
  • diskpart - zarządzanie dyskiem twardym
  • driverquery - wyświetla listę zainstalowanych sterowników
  • echo - wyświetla tekst w konsoli lub zapisuje go do pliku
  • exit - zamyka konsolę lub skrypt wsadowy
  • expand - rozpakowuje skompresowane pliki
  • fc - porównuje dwa pliki i wyświetla różnice
  • find - wyszukuje określony tekst w plikach
  • format - formatuje dysk twardy lub dyskietkę
  • fsutil - konfiguruje i zarządza systemem plików
  • hostname - wyświetla nazwę hosta komputera
  • ipconfig - wyświetla informacje o konfiguracji sieci
  • label - zmienia etykietę woluminu dysku
  • md - tworzy nowy katalog
  • mkdir - tworzy nowy katalog
  • more - wyświetla zawartość pliku w konsoli
  • move - przenosi pliki i katalogi
  • net - wyświetla informacje o sieci i konfiguruje jej parametry
  • netsh - konfiguruje parametry sieciowe
  • nslookup - przetwarza nazwy domen na adresy IP
  • openfiles - wyświetla informacje o otwartych plikach i folderach
  • path - wyświetla lub modyfikuje zmienne środowiskowe
  • ping - sprawdza połączenie z danym adresem IP
  • powercfg - konfiguruje parametry zasilania
  • reg - zarządza rejestracją systemu
  • regedit - edytuje rejestr systemu
  • robocopy - kopiowanie plików i folderów z zachowaniem atrybutów
  • sc - zarządza usługami systemowymi
  • sfc - sprawdza integralność plików systemowych i naprawia błędy
  • shutdown - wyłącza lub restartuje komputer
  • sort - sortuje dane w pliku
  • subst - tworzy wirtualny dysk twardy z katalogu
  • systeminfo - wyświetla informacje o konfiguracji systemu
  • taskkill - zamyka działające procesy
  • tasklist - wyświetla listę procesów
  • tracert - śledzi trasę pakietów w sieci
  • type - wyświetla zawartość pliku
  • xcopy - kopiowanie plików i folderów z możliwością wyboru wielu opcji, takich jak kopiowanie tylko zmienionych plików lub kopiowanie z zachowaniem atrybutów plików.
b) Linux

Linux to rodzina systemów operacyjnych opartych na otwartym kodzie źródłowym, których rozwój jest koordynowany przez społeczność programistów i użytkowników. Systemy te charakteryzują się stabilnością, bezpieczeństwem oraz elastycznością w konfiguracji i dostosowaniu do indywidualnych potrzeb użytkownika.

Istnieje wiele różnych dystrybucji Linuxa, czyli wariantów systemu, które zawierają różne zestawy programów i narzędzi, różne środowiska graficzne oraz mają różne cechy i zastosowania. Przykłady popularnych dystrybucji to Ubuntu, Debian, Fedora, CentOS, Arch Linux, czy Mint.

Dystrybucje Linuxa mogą być przeznaczone dla różnych zastosowań, takich jak serwery, stacje robocze, urządzenia wbudowane czy systemy do nauki programowania. Każda dystrybucja ma swoje cechy, zalety i wady, dlatego warto zwrócić uwagę na to, co konkretna dystrybucja oferuje przed jej wyborem.

Skrót LTS oznacza "Long Term Support" (długotrwałe wsparcie) i odnosi się do wersji oprogramowania, która jest wspierana przez dłuższy czas niż standardowe wersje. W przypadku dystrybucji Linuxa, wersje LTS są utrzymywane przez okres zazwyczaj 3-5 lat, a czasami nawet dłużej. Podczas tego okresu dostępne są aktualizacje bezpieczeństwa oraz poprawki błędów, co pozwala na utrzymanie stabilności i bezpieczeństwa systemu operacyjnego. Wersje LTS są często wykorzystywane na serwerach, gdzie wymagana jest wysoka niezawodność i stabilność działania.

Przykładowe polecenia w systemie Linux:
  • ls - wyświetla zawartość katalogu
  • cd - zmienia aktualny katalog
  • pwd - wyświetla nazwę aktualnego katalogu
  • mkdir - tworzy nowy katalog
  • rmdir - usuwa katalog
  • rm - usuwa plik
  • cp - kopiuj plik
  • mv - przenosi lub zmienia nazwę pliku
  • touch - tworzy nowy pusty plik
  • cat - wyświetla zawartość pliku
  • less - wyświetla zawartość pliku w sposób umożliwiający przewijanie
  • grep - szuka wzorca w tekście
  • top - wyświetla informacje o procesach
  • ps - wyświetla informacje o procesach
  • kill - zabija proces
  • su - zmiana użytkownika
  • sudo - wykonanie komendy jako superużytkownik
  • apt-get - menadżer pakietów
  • ping - sprawdzenie połączenia sieciowego
  • ifconfig - wyświetla informacje o interfejsach sieciowych
  • ip - wyświetla informacje o sieciach i interfejsach sieciowych
  • scp - kopiowanie plików przez SSH
  • ssh - zdalne połączenie z serwerem
  • tar - archiwizacja i rozpakowywanie plików
  • gzip - kompresja plików
  • unzip - rozpakowywanie plików ZIP
  • crontab - dodawanie i usuwanie zadań wykonywanych cyklicznie
  • chmod - zmiana uprawnień pliku lub katalogu
  • chown - zmiana właściciela pliku lub katalogu
  • dd - służy do kopiowania i konwertowania plików. Może być używane do kopiowania zawartości dysku lub partycji, tworzenia obrazów dysków, kopiowania danych z jednego urządzenia na inne, kopiowania danych z urządzeń wejścia/wyjścia, itp.
  • du - wyświetla informacje o zajętości miejsca na dysku przez pliki i katalogi
  • find - wyszukuje pliki i katalogi pasujące do podanego wzorca
  • curl - pobiera zawartość strony internetowej lub pliku z serwera
  • wget - pobiera plik z serwera
  • uname - wyświetla informacje o systemie
  • date - wyświetla aktualną datę i czas
  • cal - wyświetla kalendarz
  • history - wyświetla historię poleceń
  • man - wyświetla dokumentację dla danego polecenia
  • passwd - zmiana hasła użytkownika
  • groupadd - dodawanie nowej grupy użytkowników
  • useradd - dodawanie nowego użytkownika
  • usermod - zmiana parametrów użytkownika
  • userdel - usuwanie użytkownika
W systemie operacyjnym Linux, polecenia i programy mają zwykle dokumentację, która opisuje, jak używać danego polecenia, jakie są jego parametry i jakie opcje są dostępne. W celu uzyskania dostępu do tej dokumentacji, można użyć polecenia man - np. man grep.

Struktura katalogów w systemie Linux jest hierarchiczna i zaczyna się od katalogu nadrzędnego "/", który jest nazywany katalogiem głównym (root). Poniżej przedstawiam krótki opis poszczególnych katalogów w systemie Linux:
  • /bin: zawiera podstawowe programy systemowe, które są niezbędne do działania systemu, takie jak ls, cp, mv, czy mkdir.
  • /boot: zawiera pliki potrzebne do uruchomienia systemu Linux w czasie rozruchu, w tym jądro systemu, pliki konfiguracyjne bootloadera (np. GRUB), czy też plik initrd.
  • /dev: zawiera pliki reprezentujące urządzenia systemowe, takie jak dyski twarde, karty sieciowe, klawiatury, myszy, etc. Pozwala na komunikację z urządzeniami w systemie.
  • /etc: zawiera pliki konfiguracyjne systemu oraz aplikacji, takie jak ustawienia sieci, kont użytkowników, plik /etc/fstab, który definiuje system plików, i wiele innych.
  • /home: katalog domowy dla użytkowników systemu. Każdy użytkownik ma swój własny podkatalog w tym katalogu, gdzie może przechowywać swoje pliki i dokumenty.
  • /lib: zawiera biblioteki współdzielone, czyli pliki zawierające kod, który jest wykorzystywany przez różne aplikacje systemowe i użytkownika.
  • /media: katalog, w którym są zamontowane urządzenia zewnętrzne, takie jak płyty CD/DVD czy dyski USB.
  • /mnt: katalog, w którym są zamontowane pliki systemów plików, takie jak np. zasoby sieciowe lub partycje dysków twardych.
  • /opt: katalog, w którym są instalowane aplikacje niewspółdzielone, czyli takie, które nie są dostarczane z systemem.
  • /proc: wirtualny system plików, który umożliwia dostęp do informacji o działających procesach, urządzeniach, pamięci systemowej i wielu innych parametrów systemowych.
  • /root: katalog domowy dla użytkownika root.
  • /sbin: zawiera programy systemowe, które są zwykle uruchamiane przez użytkownika root.
  • /tmp: katalog, w którym są przechowywane pliki tymczasowe, np. podczas wykonywania skryptów, czy też instalacji oprogramowania.
  • /usr: zawiera pliki binarne, biblioteki, pliki nagłówkowe i wiele innych plików związanych z aplikacjami użytkownika.
  • /var: zawiera pliki, które zmieniają się w czasie pracy systemu, takie jak pliki logów, pliki z bazami danych i wiele innych.
c) iOS

System iOS to mobilny system operacyjny opracowany przez firmę Apple Inc. i stosowany na ich urządzeniach mobilnych, takich jak iPhone, iPad i iPod Touch. iOS jest oparty na języku programowania Swift i jest zaprojektowany tak, aby zapewnić łatwą i intuicyjną obsługę urządzeń mobilnych.

iChat był komunikatorem opracowanym przez firmę Apple Inc. i zintegrowany z systemem operacyjnym macOS. iChat pozwalał na komunikację z innymi użytkownikami systemu macOS poprzez różne protokoły, takie jak AIM, Google Talk i Jabber. W 2012 roku iChat został zastąpiony przez aplikację Wiadomości.

Najnowsze komputery Macintosh firmy Apple korzystają z systemu plików APFS (Apple File System), który został wprowadzony w 2017 roku. System plików APFS został zaprojektowany specjalnie dla urządzeń firmy Apple, takich jak Mac, iPhone, iPad, Apple Watch i Apple TV.

APFS jest zaawansowanym systemem plików, który oferuje wiele nowych funkcjonalności i poprawia wydajność oraz niezawodność systemu plików w porównaniu z poprzednim systemem plików HFS+. APFS obsługuje funkcje, takie jak szyfrowanie plików, przestrzeń nazw dla plików, klonowanie plików, kopiowanie migawkowe i automatyczne odtwarzanie. W porównaniu z HFS+ ma też lepsze zarządzanie przestrzenią dyskową i szybsze działanie.

d) Android

11. Bazy danych

Język SQL (Structured Query Language) jest językiem programowania stosowanym w relacyjnych bazach danych. SQL jest językiem zapytań (query language), który umożliwia użytkownikom formułowanie i wykonywanie zapytań do bazy danych w celu pobierania, aktualizacji, usuwania i dodawania danych.

Istnieje wiele wariantów języka SQL, takich jak:
  • MySQL
  • Oracle SQL
  • Microsoft SQL Server
  • PostgreSQL
  • SQLite
  • IBM DB2
  • MariaDB
Wszystkie te warianty SQL są językami zapytań i umożliwiają użytkownikom korzystanie z tego samego zestawu poleceń języka SQL do zarządzania bazami danych. Jednakże, każda z tych wersji SQL ma swoje specyficzne cechy i różnice w syntaksie i funkcjonalnościach.

Polecenia w języku SQL można podzielić na kilka kategorii, takich jak:
  • DDL (Data Definition Language) - służące do tworzenia i zarządzania strukturą bazy danych, takie jak CREATE, ALTER, DROP, TRUNCATE;
  • DML (Data Manipulation Language) - służące do manipulowania danymi w bazie danych, takie jak SELECT, INSERT, UPDATE, DELETE;
  • DCL (Data Control Language) - służące do kontrolowania dostępu do danych, takie jak GRANT, REVOKE;
  • TCL (Transaction Control Language) - służące do zarządzania transakcjami, takie jak COMMIT, ROLLBACK.
Podstawowe polecenia w języku SQL to:
  • SELECT - służące do pobierania danych z tabeli lub widoku;
  • INSERT - służące do dodawania nowych rekordów do tabeli;
  • UPDATE - służące do aktualizacji istniejących rekordów w tabeli;
  • DELETE - służące do usuwania rekordów z tabeli;
  • CREATE - służące do tworzenia nowej tabeli lub innego obiektu bazy danych;
  • ALTER - służące do modyfikowania struktury tabeli lub innego obiektu bazy danych;
  • DROP - służące do usuwania tabeli lub innego obiektu bazy danych;
  • GRANT - służące do udzielania uprawnień użytkownikowi lub roli;
  • REVOKE - służące do cofania uprawnień użytkownikowi lub roli;
  • COMMIT - służące do zatwierdzania transakcji;
  • ROLLBACK - służące do wycofywania transakcji.
Powyższe polecenia są podstawą do tworzenia większości operacji w języku SQL, jednak istnieje wiele innych zaawansowanych poleceń i funkcji, które umożliwiają kompleksowe zarządzanie danymi w bazie danych.

Tutorial z używania poleceń w języku SQL: TUTAJ!


Ze względu na budowę kodu, wyróżniamy trzy podstawowe typy programowania:
  • Programowanie proceduralne - to typ programowania, w którym kod programu jest zorganizowany w sposób sekwencyjny, w postaci procedur i funkcji, które są wykonywane po kolei. Kod programu składa się z instrukcji, które są wykonywane krok po kroku, a każda procedura wykonuje konkretne zadanie. Typowe przykłady języków programowania proceduralnego to C, Pascal czy BASIC.
  • Programowanie obiektowe - to typ programowania, który skupia się na tworzeniu obiektów, które są instancjami klas. Każdy obiekt ma swoje własne atrybuty i metody, które umożliwiają mu interakcję z innymi obiektami w programie. Programowanie obiektowe umożliwia tworzenie bardziej skomplikowanych i elastycznych programów, które łatwiej skalować i modyfikować. Typowe przykłady języków programowania obiektowego to Java, C++, Python czy Ruby.
  • Programowanie deklaratywne - to typ programowania, który opiera się na zapisywaniu reguł i relacji między różnymi elementami programu, a nie na opisie kolejności wykonywania instrukcji. Programy deklaratywne opierają się na matematycznych modelach, takich jak logika lub teoria zbiorów. Typowe przykłady języków programowania deklaratywnego to SQL czy Prolog.
13. Techniczny język obcy