TI/Od operatora do systemu operacyjnego

Z Brain-wiki

System operacyjny

ENIAC: Electronic Numerical Integrator And Computer: szukanie "buga", zdjęcie z 1947

Komputer, klawiatura i monitor to sprzęt (hardware). System operacyjny to pierwszy i najważniejszy program (software), który startuje po uruchomieniu komputera (po zakończeniu testów POST, czyli Power On Self Test) i służy głównie do uruchamiania wszystkich innych programów oraz zarządzania plikami. Inne programy, np. edytor tekstów czy przeglądarka Internetu, są tworzone dla konkretnego systemu, tak jak system operacyjny dla konkretnego komputera.

W czasach pierwszych komputerów, działających na lampach i zajmujących wielkie pomieszczenia, tak drogim i ważnym sprzętem opiekował się non-stop operator. Do jego obowiązków należało m.in. przyjmowanie od użytkowników zadań, czyli programów, które miały być na komputerze wykonane/przeliczone (wejście) i oddawanie odpowiednim użytkownikom wyników — najczęściej w formie wydruków. Dzisiaj operatora zastępuje system operacyjny.

Pliki w katalogach: nazwa i ścieżka

Wiemy już, że pliki (programy, dane — nawet teksty) zapisujemy na dysku w postaci zer i jedynek. Problemem, jak je później odnaleźć, zajmuje się system operacyjny komputera. I choć jest wiele różnych systemów operacyjnych, opis dostępu do plików jest na szczęście ujednolicony.

Podstawowym pojęciem jest folder (katalog, directory), czyli teczka. W dodatku teczka niejako z rozciągliwej gumy, dzięki czemu do folderu możemy wkładać zarówno pliki, jak i inne foldery, do nich inne foldery itd. Aby jednoznacznie zidentyfikować plik, trzeba znać jego nazwę i lokalizację folderu, w którym się znajduje. Dlatego w jednym folderze nie mogą współistnieć dwa pliki o jednakowych nazwach.

Jeśli w folderze dokumenty utworzymy folder korespondencja, a w nim foldery przychodząca i wychodząca, to listy wysyłane będziemy umieszczać w folderze dokumenty/korespondencja/wychodząca. Jeśli umieścimy w nim list oferta.txt, to jego pełną lokalizację opiszemy jako dokumenty/korespondencja/wychodząca/oferta.txt.

Zapis taki określa się mianem ścieżki (path) — faktycznie, aby dojść do pliku, należy najpierw "wejść" do folderu dokumenty (...) a w końcu w folderze wychodząca znaleźć plik oferta.txt. Jest to przyjęty w Internecie standard, wywodzący się z Unixa. W wywodzącym się z MS DOS systemie MS Windows różnica polega na użyciu \ zamiast / i dodaniu przed ścieżką litery oznaczającej nazwę dysku (np. c:): c:\dokumenty\korespondencja\wychodząca\oferta.txt.

Co się dzieje, gdy klikamy ikonkę?

  • jeśli ikonka reprezentuje program, to jej kliknięcie jest równoważne wywołaniu programu. Właściwości danej ikonki — dostępne zwykle z menu kontekstowego otwieranego po kliknięciu prawym guzikiem myszy — zawierają zwykle pełną ścieżkę do programu i ew. parametry z którymi program wywołujemy
  • jeśli ikonka reprezentuje plik, sytuacja jest bardziej skomplikowana...
    1. system operacyjny stara się rozpoznać rodzaj pliku — najczęściej po rozszerzeniu, czyli ostatniej części nazwy (zwykle ostatnie trzy znaki po kropce)
    2. jeśli rozpoznany rodzaj pliku jest w systemowej bazie danych skojarzony z odpowiednim programem, system wywołuje ten program podając nazwę pliku jako argument, co powinno prowadzić do uruchomienia programu i wczytania pliku.
    3. system daje nam na ogół możliwość wyboru aplikacji przy pomocy której chcemy otworzyć/odtworzyć plik. Na przykład możemy mieć zainstalowanych wiele odtwarzaczy jakiegoś formatu video, jeden z nich na ogół będzie przypisany jako domyślny, ale i tak możemy zdecydować, że tym razem chcemy użyć innego, na ogół wybierając z menu kontekstowego otwieranego po kliknięciu prawym przyciskiem myszy

Systemy plików (ang. filesystems)

FAT (ang. File Allocation Table) to nazwa systemu plików wdrożonego ponad pół wieku temu, wykorzystywanego w systemach MS DOS i wcześniejszych wersjach MS Windows (95, 98, Me). Oryginalnie stworzony w celu organizacji plików na dyskietkach, do dzisiaj bywa wykorzystywany na mniejszych, przenośnych nośnikach pamięci. Poniżej wykorzystamy jesgo strukturę dla ilustracji idei metainformacji, czyli informacji o rozmieszczeniu bitów należących do poszczególnych plików, na nośnikach pamięci. Nazwa tego systemu plików jest tożsama z nazwą tablicy, w której te informacje są przechowywane.

Poniższy przykład ilustruje symbolicznie zjawisko fragmentacji dysku, występujące przy kolejnych zapisach nowych i usuwaniu starych plików.

zjawisko fragmentacji plików w FAT


Poniżej ekran programu służącego defragmentacji plików w starszych systemach MS Windows. W przypadku dysków SSD defragmentacja nie poprawia wydajności.

Defragmentator dysków w MS Windows



System wielodostępny: jeden komputer, wielu użytkowników

Zastanówmy się nad sytuacją, gdy z jednego komputera — w firmie czy na uczelni — korzysta więcej niż jedna osoba. Nie chcielibyśmy, żeby ktoś przez przypadek wymazał nasze pliki, albo "pomieszał" konfigurację systemu. Aby temu zapobiec, wymyślono prawa dostępu do plików, różne dla różnych użytkowników. Przede wszystkim system musi wiedzieć, z kim ma do czynienia w danej chwili. Użytkownicy identyfikowani są na podstawie nazw — zwykle tworzonych z pierwszej litery imienia i części nazwiska, ale nic (poza łatwością skojarzenia nazwy z osobą) nie stoi na przeszkodzie, by wybrać sobie dowolną nazwę użytkownika, np. magik.

Żeby rozpocząć pracę w systemie wielodostępnym, musimy najpierw podać przypisaną nam nazwę użytkownika (user ID, login — przyjmijmy magik). Aby potwierdzić, że to rzeczywiście my, wpisujemy następnie tajne hasło, które podczas wpisywania nie pojawia się na ekranie (ew. zamiast wpisywanych liter pojawiają się gwiazdki). Jeśli w systemie istnieje konto użytkownika magik i jego hasło zgadza się z wpisanym przez nas, proces uwierzytelnienia (authentication) zostaje zakończony pomyślnie. Od tej chwili mamy m.in. dostęp do skrzynki pocztowej użytkownika magik, możemy czytać i wysyłać listy w jego imieniu oraz usuwać lub modyfikować dowolne inne pliki będące jego własnością.

Oczywiście jeśli to nasze konto, to wszystko OK — tak właśnie powinno być. Ale jeśli hasło zostawimy na karteczce przyklejonej do monitora, to każdy, kto usiądzie przy tym komputerze, będzie mógł się za nas podać. Jest to niebezpieczne nie tylko dla naszych plików i poczty — podszywający się pod nas intruz może bezkarnie ("na nasze konto") próbować wyrządzić szkody w systemie. I choć w dobrze skonfigurowanym i zabezpieczonym systemie powinno to być, dla użytkownika bez uprawnień administratora, co najmniej bardzo trudne, to jednak takie włamania się zdarzają. Uzyskanie dostępu do konta użytkownika w systemie, do którego ktoś chce się włamać, jest zwykle pierwszym etapem do ataku na uprawnienia administratora. Gdyby pewnego dnia się okazało, że to akurat z naszego konta ktoś dokonał włamania i spustoszeń, sytuacja byłaby raczej nieprzyjemna.

Jeśli sieć firmowa jest otwarta na świat, czyli mamy dostęp do naszego konta, poczty i plików przez Internet, to włamywacz nie musi już wchodzić do pokoju, w którym stoi nasz komputer — wystarczy mu znajomość adresu komputera i nasze hasło. Dlatego haseł trzeba strzec, np. nie należy ich wysyłać otwartym tekstem w poczcie elektronicznej. Poza tym hasło nie powinno być wyrazem łatwym do zgadnięcia w skojarzeniu z naszą osobą ani w ogóle znajdującym się w słowniku.

Administrator

System, w którym każdy użytkownik może modyfikować wyłącznie swoje pliki i nie ma prawa modyfikacji plików systemowych, jest bezpieczny. Jeśli pracujemy jako zwykły użytkownik, to nawet przez pomyłkę nie popsujemy konfiguracji komputera, bo system nam na to po prostu nie pozwoli. Ale ktoś musi mieć tę możliwość — tworzenia kopii zapasowych, instalowania nowych wersji, poprawiania błędów w konfiguracji... Do tego celu przeznaczone jest specjalnie wyróżnione konto administratora (root, superuser). Administrator (i uruchamiane przez niego programy) ma prawo dostępu (czytania i modyfikacji) do wszystkich plików — nie tylko systemowych, ale również plików innych użytkowników.

Warto uświadomić sobie, że z punktu widzenia systemu (komputera) administrator to nie konkretna osoba, tylko ten, kto podał odpowiednie hasło. Hasło może być znane kilku osobom, które "wspólnie" administrują systemem (zwykle nie jest to dobre rozwiązanie), lub komuś, kto wszedł w jego posiadanie inną drogą. Z drugiej strony, nawet administrator na codzień powinien pracować z komputerem jak zwykły użytkownik, a jako "root" zgłaszać się tylko wówczas, gdy wymagają tego wykonywane czynności — zmniejsza to szansę groźnej pomyłki. Takie "rozdwojenie jaźni" może być korzystne nawet w przypadku komputera w domu. Jeśli pozwolimy z niego korzystać np. dziecku, ale założymy mu w systemie wielodostępnym (np. GNU/Linux) osobne konto, to mamy gwarancję, że nie zamaże naszych plików ani nie popsuje konfiguracji systemu.

Tak więc technicznie administrator ma możliwość przeglądania naszych plików i poczty — czy to faktycznie robi, to już osobna sprawa. W każdym razie jedynym sposobem, dającym pewność całkowitej prywatności, jest szyfrowanie.


Bezpieczeństwo danych — kopie zapasowe (ang backups)

Ludzie dzielą się na tych, którzy regularnie robią kopie zapasowe i tych, którzy zaczną regularnie robić kopie zapasowe. Oznacza to, że wagę probemu dostrzegamy zwykle za późno — czyli wtedy, kiedy już stracimy dane, które kosztowały nas dużo pracy.

Dane możemy stracić na wiele sposóbów:

  • przez awarię dysku — nawet jeśli uszkodzona zostanie tylko opisana powyżej tablica alokacji plików, odnalezienie bitów należących do poszczególnych plików może być co najmniej niezmiernie trudne i drogie
  • przez własny błąd (np. wymazanie pliku)
  • z winy wirusa lub innego złośliwego programu
  • przez awarię systemu lub włamanie do systemu
  • i na wiele innych sposobów, których nie potrafimy przewidzieć.

A skoro nie potrafimy przewidzieć, to nie da się przed nimi uchronić "na 100%". Jedyną radą jest robienie kopii zapasowych:

  • w chmurze (Dropbox, google drive, ...)
  • na pamięciach zewnętrznych USB,
  • na płytach zapisywalnych,
  • na dyskach przenośnych,
  • ważne pliki możemy nawet regularnie wysyłać "do siebie" przez email — w razie utraty lokalnej kopii ściągniemy załącznik z serwera
  • ... i w dowolnych innych miejscach.

Im częściej wykonujemy takie kopie, tym mniej pracy będzie nas kosztowało odtworzenie tego, co stracimy. Oczywiście nie ma sensu kopiować plików, które możemy łatwo odtworzyć (np. z płyt instalacyjnych).