TI/Od operatora do systemu operacyjnego

Z Brain-wiki

TI/ System operacyjny

Komputer, klawiatura i monitor to sprzęt (hardware). Może być ładny lub brzydki, ale ma niewiele wspólnego z łatwością obsługi (chyba że np. nie można znaleźć wyłącznika). To, z czym naprawdę będziemy się borykać po włączeniu komputera, to zainstalowany w nim system operacyjny i programy (software). System operacyjny to pierwszy i najważniejszy program, 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

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.

Administrator komputera domowego?

Opisane powyżej mechanizmy w dniu dzisiejszym znajdują się właściwie we wszystkich systemach operacyjnych — nawet pracując na swoim komputerze domowym, możemy raz przedstawiać się jako administrator, a innym razme jako "zwykły" użytkownik. Śmieszne? Wcale nie. Jeśli pracując na codzień logujemy się jako "zwykły" użytkownik, bez przywilejów adminisratora, to:

  • nawet jeśli nieopatrzenie i nieświadomie uruchomimy wirusa czy inny złośliwy program, to program ten będzie miał tylko takie przywileje, jak użytkownik, który go uruchomił. Jeśli nie będą to przywileje administratora, to, poza przypadkiem luk w bezpieczeństwie systemu, program nie powinien być w stanie popsuć systemu komputera — co najwyżej pliki będące własnością użytkownika, który go uruchomił
  • mniejsze będą również konsekwencje ewentualnej pomyłki, gdyż praucjąc jako "zwykły" użytkownik nie będziemy mogli "popsuć" systemu.

Powtórzmy raz jeszcze na głos: nie należy logować się z przywilejami administratora bez powodu.

Opcja ta często bywa ukryta pod postacią przypisania użytkownikowi uprawnień administratora (potrzebnych czasami np. do instalacji niektórych gier w systemie MS Windows — choć dobrze napisany instalator nie powinien ingerować w zasoby systemowe) zamiast explicite osobnego konta.

Wirusy komputerowe

Wirusy to programy komputerowe tworzone specjalnie po to, aby wyrządzać szkody lub co najmniej uprzykrzać życie użytkownikom komputerów. Nazwa pochodzi od wyróżniającej je zdolności do rozprzestrzeniania się. Zwykle "przyklejają się" do jakiegoś normalnego programu — taki program staje się zawirusowany. Gdy uruchomimy zawirusowany program, kontrolę przejmuje ukryty w nim wirus.

Przede wszystkim rozprzestrzenia się na inne dostępne programy — zostają one zawirusowane tak samo jak program, na którym wirus "przyjechał". Dostępne programy to te, które znajdują się na dysku naszego komputera lub w dostępnych dla nas obszarach np. firmowej sieci, czyli tam, gdzie mamy prawo zapisu i modyfikacji plików. W odniesieniu do najważniejszych plików systemowych takie prawo powinien mieć wyłącznie administrator systemu, toteż wirus uruchomiony z naszego konta nie powinien wyrządzić w nich szkód. Zwykle wirus ma też również funkcję docelową, np. niszczenie plików. Często ta funkcja ujawnia się dopiero po jakimś czasie, gdy wirus zdążył się rozprzestrzenić.

Zrozumienie podstawowych zasad bezpieczeństwa, przedstawionych poniżej, pozwoli zminimalizować ryzyko.

  • Wirusy przenoszą się tylko w plikach wykonywalnych (nazwy programów wykonywalnych w MS Windows kończą się na ".exe" lub ".com", mają nazwy postaci nazwa.exe lub nazwa.com. W skrócie piszemy, że np. pliki o nazwach kończących się na ".exe" to pliki *.exe. MS Windows może domyślnie ukrywać przed nami rozszerzenia nazw, zamiast tego oznaczając pliki różnych typów odpowiednimi ikonkami), czyli programach lub skryptach (skrypt to ciąg poleceń zapisanych w ASCII, w MS Windows nazwy tych plików kończą się zwykle na .vbs, .vsh czy .bat), a nie w plikach z danymi. Wyjątki:
    • pliki z danymi programów MS Word i Excel (*.doc, *.xls, *.xlw) zawierające rozbudowane makra, czyli małe programy uruchamiane automatycznie po ich otwarciu, (między innymi z tego właśnie powodu lepszym niż *.doc formatem do przesyłania tekstów, których adresat nie musi edytować, jest PDF, aczkolwiek w nim także mogą być ukryte wirusy.),
    • dyskietki bądź cd-romy pozostawione w napędzie przy uruchamianiu komputera.
  • Wirus może się uaktywnić (i rozprzestrzeniać) dopiero po uruchomieniu zainfekowanego programu lub skryptu. Wyjątki: jak w punkcie 1, (niektóre "ułatwienia" obsługi poczty w MS Outlook mogą powodować automatyczne (po otwarciu przesyłki) uruchamianie zawartych w niej skryptów lub programów; aby tego uniknąć, należy wyłączyć (w ustawieniach Outlooka) ActiveX i w ogóle wszystkie możliwe ustawienia wybrać w kierunku maksymalizacji bezpieczeństwa)
  • Programy antywirusowe wykrywają tylko wirusy znane od pewnego czasu i wystarczająco rozpowszechnione. Możemy trafić na wirusa, który nie dotarł (jeszcze) do firm produkujących "lekarstwa".

Jak uniknąć wirusów

W obecnych czasach podstawową drogą rozprzestrzeniania się wirusów jest internet. Istniejące oprogramowanie — zarowno jako całe systemy operacyjne, jak i poszczególne aplikacje, np. przeglądarki internetowe — posiada wiele luk umożliwiających twórcom wirusów umieszczenie ich na naszym komputerze bez naszej wiedzy i zgody. Można jednak zminimalizować to ryzyko stosując podstawowe środki zapobiegawcze:

  1. Pamiętajmy o regularnym instalowaniu aktualizacji systemu operacyjnego i oprogramowania. Proces ten jest maksymalnie ułatwiany przez producentów systemów. W większości wersji MS Windows, w głównym menu znajdziemy pozycję Windows update 3) — jeśli jej brak, możemy się samodzielnie połączyć z poświęconą uaktualnieniom witryną http://windowsupdate.microsoft.com. Dostęp do uaktualnień w systemach GNU/Linux zależy od dystrybucji, ale zawsze jest gdzieś pod ręką.
  2. W MS Windows wskazane jest zainstalowanie na stałe któregoś z programów antywirusowych, kontrolujących stan kluczowych dla systemu plików.
  3. Narażenie komputera na działanie atakujących go robaków internetowych jest tym większe, im bardziej jest on otwarty na świat. Zaporą zmniejszającą szanse powodzenia takich ataków jest firewall, nie dopuszczający do naszego komputera większości połączeń z zewnątrz. Może on być zainstalowany bezpośrednio w naszym systemie, jest też zwykle oferowany przez dostawców Internetu jako usługa lub opcja.
  4. Otrzymawszy potencjalnie niebezpieczną przesyłkę, jak np. mail z załącznikiem zawierającym program nieznanego, najlepiej od razu skasować wiadomość, a w każdym razie nie wypakowywać i nie uruchamiać zawartego w niej programu czy skryptu.
  5. Często słyszymy "Tego pendrive'a (program, plik) sprawdzałem programem antywirusowym, jest czysty". Takie stwierdzenie nie bierze pod uwagę podstawowej prawdy: Najpierw powstaje wirus, później wirus się rozpowszechnia, aż wreszcie zostaje ewentualnie "schwytany", a na końcu dołącza do listy wirusów rozpoznawanych (i ew. usuwanych) przez specjalizowane programy. W środkowym stadium swego życia wirus może hulać w zasadzie bezkarnie. Nie znaczy to oczywiście, że używanie programów antywirusowych nie ma sensu. Wręcz przeciwnie, większość szkód jest wyrządzana przez błąkające się po świecie stare wirusy, które programy antywirusowe potrafią od dawna wykrywać i często nawet z nich leczyć.
  6. Wirusy powstają przede wszystkim na środowisko Microsoft Windows.

Bezpieczeństwo danych - kopie zapasowe (ang backups)

"Mądrość ludowa" mówi, że ludzie dzielą się na tych co regularnie robią kopie zapasow i tych co zaczną regularnie robić kopie zapasowe. Oznacza to, że wagę probemu dostrzegamy zwykle za późno — czyli wtedy, kiedy stracimy dane, które kosztowały nas dużo pracy.

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

  • przez awarię sprzętu (np. dysku)
  • 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 sracimy. Oczywiście nie ma sensu kopiować plików, które możemy łatwo odtworzyć np. z płyt instalacyjnych.