Podstawy pracy w systemie operacyjnym unix.

składać / Dom

Hamulce

System operacyjny UNIX Oficjalna data narodzin systemu operacyjnego UNIX-a rozpatrywany 1 stycznia 1970 r. Od tego momentu rozpoczyna się każdy system UNIX czas systemowy

. To bardzo dużo czasu dla systemu operacyjnego. Dziś, pomimo pojawienia się wielu innych systemów operacyjnych zbudowanych na innych zasadach, UNIX zdecydowanie zajmuje swoje miejsce wśród liderów.

Główne cechy UNIX-a, które pozwalają nam zrozumieć przyczyny długowieczności tego systemu, są następujące.

Kod systemu napisany jest w języku SI wysokiego poziomu, co ułatwia jego zrozumienie, zmianę i przeniesienie na inne platformy sprzętowe.

Pomimo różnorodności wersji UNIX, cała rodzina opiera się na zasadniczo identycznej architekturze i szeregu standardowych interfejsów. UNIX ma proste ale potężny zestaw

standardowe interfejsy użytkownika. Ujednolicony interfejs plików Systemy UNIX

zapewnia dostęp nie tylko do danych przechowywanych na dyskach, ale także do terminali, drukarek, taśm magnetycznych, płyt CD, sieci, a nawet pamięci.

Dla systemu UNIX opracowano wiele różnych aplikacji - od prostych edytorów tekstu po wydajne systemy zarządzania bazami danych.
.

Ogólnie rzecz biorąc, system operacyjny UNIX można przedstawić za pomocą modelu dwupoziomowego, jak pokazano na ryc. 8.1 W centrum jest jądro systemu . Jądro bezpośrednio współdziała ze sprzętem komputerowym, izolując programy użytkowe od cech jego architektury. Rdzeń obejmuje programy implementujące zestaw usług świadczonych przez programy użytkowe . Usługi jądra obejmują operacje we/wy, tworzenie procesów i zarządzanie nimi, synchronizację procesów itp. Kolejnym poziomem modelu są usługi systemowe, które świadczą interfejs użytkownika System operacyjny UNIX. Schemat interakcji z jądrem i aplikacjami oraz zadania systemowe

jest taki sam.

Funkcje systemu operacyjnego UNIX Aby wykonać zadania, system operacyjny UNIX współdziała ze sprzętem i zasobami oprogramowania komputera:

    następujące funkcje

    zarządzanie sprzętem;

    zarządzanie zasobami;

monitorowanie systemu;

Programy aplikacyjne nie mają możliwości bezpośredniego sterowania sprzętem komputerowym. Tylko system operacyjny realizuje funkcje zarządzania sprzętem, umożliwiając aplikacjom i innym programom dostęp do urządzeń peryferyjnych (eliminując jednocześnie konieczność znajomości specyfiki zarządzania takim urządzeniem). Koncepcja niezależności programu od konkretnej implementacji sprzętowej, wbudowana w system operacyjny, jest jednym z ważnych elementów zapewniających przenośność systemu operacyjnego UNIX, co pozwala na jego szerokie zastosowanie w różnorodnych konfiguracjach sprzętowych.

Zarządzanie zasobami

UNIX OS zarządza dystrybucją zasobów komputera pomiędzy wielu użytkowników wykonujących wiele zadań jednocześnie, często pracujących z różnymi obiektami, wspierając wielozadaniowość i tryby pracy wielu użytkowników. Tryb wielozadaniowości pozwala jednemu użytkownikowi na uruchamianie kilku programów jednocześnie, natomiast centralny procesor i BARAN współdzielone pomiędzy wieloma procesami.

Tryb wielu użytkowników umożliwia jednoczesną pracę wielu użytkowników poprzez współdzielenie zasobów komputera, w tym drogich urządzeń peryferyjnych, takich jak drukarki czy plotery. Ten sposób działania okazuje się bardziej opłacalny niż łączenie kilku maszyn z jednym użytkownikiem na każdej.

Obsługa interfejsu użytkownika

Jest to sposób zapewnienia interaktywnej (zapewniającej dialog) interakcji pomiędzy użytkownikami a systemem komputerowym.

Nowoczesne wersje systemu operacyjnego UNIX obsługują kilka typy interfejsów: linia poleceń, menu i graficzny interfejs użytkownika.

Linia poleceń zwykle wygodne dla użytkowników zaznajomionych z funkcjami i zespoły systemy. Podczas pracy z tego typu interfejsem użytkownik w „podpowiedzi” (domyślnie dla użytkownika jest to znak dolara) wprowadza każde polecenie z klawiatury. Interfejs ten nie zapewnia przeglądu systemu, ale umożliwia wykonanie dowolnego polecenia w systemie. Programy udostępniające taki interfejs nazywane są powłoki poleceń(powłoka). Istnieje wiele powłok poleceń: powłoka Bourne (sh), powłoka Bourne Again (bash), powłoka Korn (ksh), powłoka C (csh), powłoka Debian Almquist (kreska), Zsh itp. Najpopularniejszym jest bash.

Zwykle używany przez początkujących lub użytkowników, którzy muszą dokonać pewnych instalacji w systemie operacyjnym. Często taki interfejs pełni funkcję przewodnika: pozwala użytkownikowi wybrać z listy (menu) funkcję, która będzie wykonywana przez system. Zazwyczaj menu są zorganizowane w postaci tekstu warstwowego, oferując użytkownikowi wiele możliwości wyboru. Przykładem takiego interfejsu jest program sysadm, który pomaga administratorowi systemu w wykonywaniu prac związanych z konfiguracją i konfiguracją systemu.

Graficzny interfejs użytkownika skierowany zarówno do początkujących, jak i zaawansowanych użytkowników. Zapewnia kilka sposobów interakcji z komputerem: przegląd obiektów systemowych reprezentowanych przez ikony, wykonywanie poleceń poprzez wybieranie obraz graficzny(piktogramy) na ekranie wyświetlacza za pomocą „myszy” lub urządzenia śledzącego. UNIX OS udostępnia X.desktop jako graficzny interfejs użytkownika do pracy ze specjalnymi terminalami X lub system X Window do pracy ze zwykłymi terminalami graficznymi.

Bezpieczeństwo zdalny dostęp V sieć komputerowa

UNIX OS zapewnia użytkownikom dostęp do zasobów innych komputerów, na których działają sieć komputerowa. System operacyjny zawiera zestaw aplikacji sieciowych, które umożliwiają nawiązanie połączenia z komputerem zdalnym, rejestrację w systemie zdalnym, przesyłanie danych pomiędzy komputerami w sieci oraz korzystanie z poczty elektronicznej. UNIX obsługuje sieci System plików NFS(Sieć System plików), co umożliwia użycie poleceń systemu operacyjnego w celu uzyskania dostępu do systemu plików komputer zdalny.

Składniki systemu operacyjnego UNIX

Jak wspomniano powyżej, system operacyjny to zbiór programów udostępniających funkcje zarządzania procesami w systemie i realizujący interfejs pomiędzy użytkownikami a sprzętem systemowym. System UNIX zawiera trzy główne elementy: system poleceń, powłoka i jądro.

System operacyjny UNIX zawiera kilkaset poleceń realizujących zadania polegające na organizowaniu i przetwarzaniu danych oraz zarządzaniu środowiskiem użytkownika. Same polecenia to programy wykonujące określone funkcje, zwykle wymagające minimalnego wkładu i wykonywane stosunkowo szybko. Większość z nich jest dostępna dla wszystkich użytkowników, ale są też polecenia, które dostępne są jedynie dla administratora systemu, będącego użytkownikiem uprzywilejowanym. Czasami wywoływane są niektóre polecenia, które umożliwiają interaktywne wprowadzanie informacji po wykonaniu narzędzia. Przykłady narzędzi obejmują edytor tekstu vi i polecenie mail do zarządzania pocztą e-mail.

Muszle. Zwykle nazywane są muszlami programy interaktywne, zapewniając interfejs użytkownika z jądrem systemu operacyjnego. Powłoka staje się aktywnym procesem użytkownika od chwili zalogowania się do systemu aż do wylogowania. Programy te są interpreterami poleceń (czasami nazywanymi procesorami poleceń).

Jak wspomniano powyżej, system operacyjny UNIX zwykle korzysta z kilku powłok.

Powłoki z ograniczeniami (rsh i ksh są podzbiorami powłoki Bourne'a i Korna) są przeznaczone dla użytkowników, którzy muszą ograniczyć dostęp do systemu.

Rdzeń. Jądro systemu to rdzeń systemu operacyjnego, który realizuje podstawowe funkcje: tworzenie i zarządzanie procesami, alokację pamięci oraz zapewnianie dostępu do plików i urządzeń peryferyjnych.

Interakcja zadań aplikacji z jądrem odbywa się poprzez standardowy interfejs wywołań systemowych. Interfejs wywołań systemowych definiuje format żądań podstawowe usługi. Proces żąda podstawowej funkcji jądra poprzez wywołanie systemowe określonej procedury jądra. Jądro wykonuje żądanie i zwraca wymagane dane do procesu.

Rdzeń składa się z trzy główne podsystemy:

    1) podsystem zarządzania procesami i pamięcią;

    2) podsystem plików;

    3) podsystem wejścia/wyjścia.

Wykonuje Aby wykonać zadania, system operacyjny UNIX współdziała ze sprzętem i zasobami oprogramowania komputera:

    tworzenie i usuwanie procesów;

    dystrybucja zasobów systemowych pomiędzy procesami;

    synchronizacja procesów;

    interakcja procesów.

Specjalna funkcja jądra realizowana przez planistę procesów (harmonogram) rozwiązuje konflikty pomiędzy procesami konkurującymi o zasoby systemowe.

Zapewnia alokację pamięci pomiędzy procesami. Jeżeli nie ma wystarczającej ilości pamięci dla wszystkich procesów, jądro przenosi część procesu lub kilka procesów (zwykle pasywnych, oczekujących na jakieś zdarzenia w systemie) do specjalnego obszaru dysku (obszar „zamiany” ), uwalniając zasoby dla uruchomionych (aktywnych) procesów.

Podsystem plików zapewnia ujednolicony interfejs dostępu do danych znajdujących się na dyskach i urządzeniach peryferyjnych. Wykonuje operacje umieszczania i usuwania plików, wykonuje operacje zapisu/odczytu danych plików, a także kontroluje prawa dostępu do plików.

Wykonuje żądania z podsystemu plików i podsystemu kontroli procesu w celu uzyskania dostępu do urządzeń peryferyjnych. Współpracuje ze sterownikami urządzeń - specjalne programy jądra obsługujące urządzenia zewnętrzne.

Dostęp do systemu UNIX

Aby nawiązać kontakt z systemem UNIX, należy musi mieć:

    terminal;

Uzyskanie nazwy rejestracyjnej

Nazwa rejestracyjna to nazwa, której system UNIX używa do sprawdzania, czy jesteś autoryzowanym użytkownikiem systemu, gdy żądasz dostępu do niego.

Za każdym razem, gdy chcesz się zalogować, musisz podać swoją nazwę użytkownika.

Istnieje kilka zasad wyboru nazwy rejestracyjnej. Zazwyczaj długość nazwy wynosi od 3 do 8 znaków. Może składać się z wielkich lub małych liter, cyfr i znaków podkreślenia, ale nie może zaczynać się od cyfry.

Jednakże nazwa rejestracyjna może być specyficzna dla Twojej aplikacji. Przykłady prawidłowych nazw:

Komunikacja z systemem UNIX

Jeśli system operacyjny UNIX jest zainstalowany na komputer osobisty, możesz zarejestrować się w nim bezpośrednio za pośrednictwem tekstowej konsoli wirtualnej. Możliwe są jednak także inne opcje dostępu.

Załóżmy, że terminal jest podłączony bezpośrednio lub poprzez linię telefoniczną do komputera. Chociaż w tej sekcji opisano typową procedurę logowania, instrukcje te mogą nie dotyczyć Twojego systemu, ponieważ... Istnieje kilka sposobów logowania się do systemu UNIX za pośrednictwem linii telefonicznej.

Aby móc komunikować się z systemem należy włączyć terminal.

Jeśli jest podłączony bezpośrednio do komputera, w lewym górnym rogu natychmiast pojawi się monit:

Jeżeli jako terminal wykorzystywany jest komputer osobisty skonfigurowany do pracy w sieci z wykorzystaniem rodziny protokołów TCP/IP, konieczne jest nawiązanie połączenia z komputerem, na którym zainstalowany jest system operacyjny UNIX. Można to zrobić na kilka sposobów, na przykład za pomocą aplikacji sieciowej telnet znajdującej się w systemach operacyjnych Windows lub za pomocą narzędzi dostępu do Internetu. Należy pamiętać, że jest to niebezpieczny protokół, który praktycznie nie jest już dziś używany. Nowoczesną alternatywą jest Secure Shell (SSH).

Przykład.

Terminal to komputer osobisty z systemem Windows NT, skonfigurowany do pracy w sieci. Musisz zarejestrować się w systemie UNIX.

Wymagane dane wejściowe i działania:

    aby nawiązać połączenie z systemem operacyjnym UNIX, musisz znać nazwę sieciową zdalnego komputera lub jego adres IP (na przykład 192.168.2.19);

    znajdź aplikację telnet na swoim komputerze osobistym i uruchom ją;

    w oknie aplikacji, które zostanie otwarte, wybierz punkt menu Połączenie;

    wprowadź adres IP zdalnego systemu UNIX (na przykład 192.168.2.19);

    ustaw żądaną charakterystykę terminala.

Procedura rejestracji

Gdy pojawi się monit logowania:, wprowadź swoją nazwę logowania i naciśnij . Na przykład, jeśli Twoja nazwa logowania to all30123 , ciąg logowania będzie wyglądał następująco:

    login: all30123

Jeśli popełnisz błąd przy wpisywaniu loginu, możesz go poprawić za pomocą symbolu @ lub klawisza .

Pamiętaj, że wielkość wprowadzanych znaków ma znaczenie. Nazwy all30123 i ALL30123 należą do dwóch różnych użytkowników.

System poprosi Cię teraz o podanie hasła. Wprowadź hasło i naciśnij klawisz . Jeśli popełnisz błąd przy wprowadzaniu, możesz go poprawić za pomocą klawisza lub symbol @. UNIX nie wyświetla hasła na ekranie ze względów bezpieczeństwa.

Jeśli nazwa logowania i hasło są prawidłowe w systemie UNIX, system może wyświetlić aktualne informacje, a następnie monit wiersz poleceń.

Po zalogowaniu ekran terminala będzie wyglądał następująco:

    login: all30123

Jeśli popełnisz błąd podczas logowania, UNIX wyświetli komunikat:

    nieprawidłowe logowanie

Następnie otrzymasz drugą szansę na zalogowanie się przy użyciu loginu: zachęta. Ekran będzie wyglądał następująco:

    login: all30123

Jeżeli nigdy nie logowałeś się do systemu UNIX, Twoja procedura logowania może różnić się od opisanej powyżej. Może się to zdarzyć, jeśli administrator systemu posiada procedurę przypisywania haseł tymczasowych nowym użytkownikom. Jeśli posiadasz hasło tymczasowe, system wymusi wybranie nowego hasła przed umożliwieniem rejestracji.

Zmuszając Cię do wybrania nowego hasła wyłącznie na Twój użytek, system zapewnia większe bezpieczeństwo.

Procedura logowania:

    Nawiązujesz kontakt; Systemy UNIX wyświetlają monit logowania:. Wprowadź swoją nazwę logowania i naciśnij klawisz .

    Systemy UNIX wyświetlają hasło: monit. Wprowadź tymczasowe hasło i naciśnij klawisz .

    System poinformuje Cię, że Twoje hasło tymczasowe utraciło ważność i poprosi o wybranie nowego hasła.

    System poprosi Cię o podanie starego hasła. Wprowadź hasło tymczasowe.

    System poprosi Cię o podanie nowego hasła. Wpisz wybrane hasło.

Hasło musi się zgadzać następujące wymagania:

    każde hasło musi składać się z co najmniej 6 znaków;

    każde hasło musi zawierać co najmniej 2 znaki alfabetu i jedną cyfrę lub charakter specjalny. Znak alfabetu można wpisać dużą lub małą literą;

    Każde hasło musi różnić się od nazwy logowania. Wielkie litery i odpowiadające im małe litery są równoważne;

    Nowe hasło musi różnić się od starego o co najmniej trzy znaki.

Przykłady prawidłowych haseł:

Aby to sprawdzić, system poprosi Cię o ponowne wprowadzenie hasła. Wprowadź swoje hasło ponownie.

Jeżeli po raz drugi wpiszesz nowe hasło inaczej niż za pierwszym razem, system poinformuje Cię o niezgodności haseł i poprosi o ponowne powtórzenie procedury rejestracji. Gdy hasła będą zgodne, system wyświetli podpowiedź.

Poniższy ekran przedstawia opisaną procedurę:

    login: dko30123

    hasło:

    Twoje hasło wygasło

    Wybierz nowy

    Stare hasło:

    Nowe hasło:

    Wprowadź ponownie nowe hasło:

Identyfikacja użytkownika

Gdy administrator systemu rejestruje użytkownika w systemie, z nazwą logowania kojarzone są dwa elementy identyfikacyjne: identyfikator użytkownika(identyfikator użytkownika - UID) i identyfikator grupy do którego należy (identyfikator grupy - GID).

Nazwa użytkownika jest powiązana z unikalnym numerem. System wykorzystuje go jako narzędzie w różnych mechanizmach bezpieczeństwa UNIX-a, takich jak ochrona plików czy wykonywanie poleceń uprzywilejowanych.

Każdy system operacyjny UNIX ma jednego specjalnego superużytkownika z UID = 0, który jest zwykle powiązany z nazwą root. Oznacza to, że użytkownik ma wszystkie uprawnienia systemowe.

Z nazwą grupy kojarzona jest także liczba, która zwykle odnosi się do grupy użytkowników, których łączą wspólne zadania, np. pracownicy wydziałów, studenci tego samego strumienia itp. Z numeru tego korzystają także mechanizmy bezpieczeństwa w systemie. Jeśli użytkownik musi pracować z danymi z innych grup, identyfikator ten jest kojarzony z nazwami pozostałych grup.

Wszystkie informacje rejestracyjne dotyczące użytkowników systemu są przechowywane w pliku /etc/passwd.

W nowoczesnych wersjach systemu operacyjnego UNIX zaszyfrowane hasła i powiązane informacje o systemie przechowywane są w pliku /etc/shadow, którego strukturę i przeznaczenie pól przedstawiono na rys. 8.2
.

Rekordy danych o każdej zainstalowanej grupie zawarte są w pliku /etc/group, którego strukturę i przeznaczenie pól przedstawiono na rys. 8.3 .

Strukturę i przeznaczenie pól w pliku /etc/passwd pokazano na rys. 8.4
.

Konwencje wejściowe

Podczas interakcji z systemem UNIX należy pamiętać o konwencjach wprowadzania danych. System UNIX wymaga wprowadzania poleceń małymi literami (z wyjątkiem niektórych poleceń pisanych dużymi literami). Inne konwencje umożliwiają wykonywanie zadań, takich jak usuwanie liter lub usuwanie wiersza, poprzez naciśnięcie jednego lub dwóch klawiszy.

Tabela 8.1.
Umowy wejściowe

Klawisz

Funkcjonować

Wiersz poleceń systemu (prosi o wprowadzenie polecenia)

Lub<^h>

Usuń znak

Zatrzymaj wykonywanie programu lub polecenia

Usuń bieżący wiersz poleceń

W połączeniu z innym symbolem oznacza wykonanie specjalnej funkcji (zwanej sekwencją zmiany kodu). Używane w trybie edycji edytora vi oznacza koniec trybu wprowadzania tekstu i powrót do trybu poleceń

Oznacza koniec linii wejściowej i umieszcza kursor w nowej linii

Zatrzymaj logowanie lub wylogowanie (zamknij)

Cofnij się o jeden znak (w przypadku terminali, które nie mają klucza )

Tymczasowo zatrzymaj wyświetlanie obrazu na ekranie

Kontynuuj wyświetlanie informacji, których używanie zostało zatrzymane<^s>

Notatka. W tabeli Symbol 2.1 ^ oznacza znak kontrolny . Oznacza to, że w tym przypadku należy nacisnąć jednocześnie dwa klawisze: klawisz znaku sterującego i określoną literę.

Podpowiedź do polecenia

Standardowym wierszem poleceń dla użytkownika systemu UNIX jest znak dolara $. Dla użytkownika root - #. Gdy na ekranie terminala pojawi się monit, oznacza to, że system UNIX oczekuje na instrukcje od Ciebie. Właściwą reakcją na monit z Twojej strony jest wydanie polecenia, a następnie naciśnięcie klawisza .

Korygowanie błędów wejściowych

Istnieje kilka sposobów poprawiania błędów wejściowych. Symbol @ usuwa bieżącą linię i klawisze I<^h>usuwa ostatnio wprowadzony znak. Te klucze i znaki są wartościami domyślnymi. Wykonywane przez nie funkcje można przypisać do innych klawiszy.

Zatrzymywanie wykonywania poleceń

Aby zatrzymać uruchamianie większości poleceń, po prostu naciśnij skrót klawiaturowy . System UNIX zatrzyma program i wyświetli monit na ekranie. Ten znak zachęty służy jako sygnał, że ostatnie wykonywane polecenie zostało zatrzymane i system jest gotowy na przyjęcie następnego polecenia.

Gdy na ekranie pojawi się monit, system UNIX rozpoznał Cię jako autoryzowanego użytkownika i czeka na wprowadzenie polecenia.

Ogólnie linia poleceń ma następującą strukturę:

    nazwa [opcje] [argumenty]

Nazwa polecenia, opcje i argumenty muszą być oddzielone spacją lub tabulatorem. Przetwarzanie wiersza poleceń przez interpreter rozpoczyna się dopiero po naciśnięciu klawisza .

W dalszej prezentacji funkcji poleceń przyjmuje się, że:

Opcje (parametry):

    są oznaką modyfikacji polecenia i z reguły składają się z jednego znaku; duże i małe litery oznaczają różne modyfikacje;

    z reguły zaczynają się od symbolu „-” („minus”), który nie jest oddzielony spacją od innych znaków;

    można łączyć w dowolny sposób, ale znaku minus można użyć tylko raz.

Argumenty określają obiekty, które polecenie powinno przetworzyć, na przykład:

    nazwa pliku;

    numer procesu;

Jeśli wiesz, co powinien robić wywoływany program, ale nie jesteś pewien co do poprawnej składni, możesz podać opcję --help w wierszu poleceń po nazwie polecenia:

    $cal --pomoc

Aby móc otrzymać szczegółowe informacje UNIX OS posiada wbudowaną instrukcję (on-line), do której dostęp zapewniają polecenia man i apropos.

W najprostszym przypadku, aby uzyskać informacje o dowolnym poleceniu, należy podać jego nazwę jako argument polecenia man:

    człowiek nazwa_polecenie

apropos wyświetla listę poleceń według słowa kluczowego (wzorca) podanego jako argument polecenia:

    odpowiedni szablon

Przykłady.

Jeśli uruchomisz polecenie date i naciśniesz klawisz , system UNIX wywołuje program o nazwie date , wykonuje go i wyświetla wynik na ekranie:

    $data

    Wtorek, 18 września, 14:49:07 2000

Polecenie date wyświetla datę i godzinę.

Jeśli uruchomisz polecenie who i naciśniesz klawisz , wówczas ekran będzie wyglądał następująco:

    $ Kto

    dko30024

    18 października 8:30

    dko30001

    18 października 8:34

    dko30020

    18 października 8:32

    18 października 8:00

który wyświetla nazwy logowania użytkowników aktualnie uruchomionych w twoim systemie. Notacja tty (druga kolumna) nawiązuje do specjalne pliki, które odpowiadają każdemu terminalowi użytkownika. Trzecia i czwarta kolumna wskazują datę i godzinę rejestracji każdego użytkownika. .

Oznacza to, że pomyślnie zakończyłeś pracę z systemem i jest on gotowy do rejestracji nowego użytkownika.

Jeżeli logowałeś się ze zdalnego terminala, połączenie zostanie zerwane, o czym poinformuje Cię np. aplikacja telnet.

Notatka. Przed odłączeniem terminala należy wyłączyć system.

Kluczowe ustalenia

    UNIX jest systemem wielozadaniowym, obsługującym wielu użytkowników. Jeden potężny serwer może obsługiwać żądania dużej liczby użytkowników. System może pełnić różnorodne funkcje: pracować jako serwer obliczeniowy obsługujący setki użytkowników, jako serwer baz danych, jako serwer sieciowy lub router sieciowy.

    Ogólnie rzecz biorąc, system operacyjny UNIX można przedstawić jako model dwuwarstwowy. W centrum znajduje się rdzeń systemu (jądro). Jądro bezpośrednio współdziała ze sprzętem komputerowym, izolując programy użytkowe od cech jego architektury. Jądro zawiera programy, które implementują zestaw usług udostępnianych programom użytkowym. Usługi jądra obejmują operacje we/wy, tworzenie procesów i zarządzanie nimi, synchronizację procesów itp. Kolejnym poziomem modelu są usługi systemowe, które udostępniają interfejs użytkownika systemu operacyjnego UNIX. Schemat interakcji z jądrem zarówno aplikacji, jak i zadań systemowych jest taki sam.

    System operacyjny UNIX współdziała z zasobami sprzętowymi i programowymi komputera, wykonując następujące funkcje:

    • następujące funkcje

      zarządzanie sprzętem;

      obsługa interfejsu użytkownika;

      wprowadzanie i wyprowadzanie informacji;

      zarządzanie zasobami;

      zapewnianie zdalnego dostępu do sieci komputerowej.

    System UNIX składa się z trzech głównych komponentów: systemu poleceń, powłoki i jądra.

    System operacyjny UNIX zawiera kilkaset poleceń realizujących zadania polegające na organizowaniu i przetwarzaniu danych oraz zarządzaniu środowiskiem użytkownika. Same polecenia to małe programy, które wykonują określone funkcje, zwykle wymagające minimalnego wkładu i są wykonywane stosunkowo szybko.

    Powłoki są powszechnie określane jako programy interaktywne, które zapewniają interfejs użytkownika do jądra systemu operacyjnego. Powłoka staje się aktywnym procesem użytkownika od chwili zalogowania się do systemu aż do wylogowania. Programy te są interpreterami poleceń (czasami nazywanymi procesorami poleceń).

    Jądro systemu to rdzeń systemu operacyjnego, który realizuje podstawowe funkcje: tworzenie i zarządzanie procesami, alokację pamięci oraz zapewnianie dostępu do plików i urządzeń peryferyjnych.

    Jądro składa się z trzech głównych podsystemów:

    • podsystem zarządzania procesami i pamięcią;

      podsystem plików;

      podsystem wejścia/wyjścia.

    Aby nawiązać kontakt z systemem UNIX należy posiadać:

    • terminal;

      nazwa logowania, która identyfikuje Cię jako autoryzowanego użytkownika;

      hasło weryfikujące Twoją tożsamość;

      instrukcje dotyczące dialogu i dostępu do systemu UNIX, jeśli terminal nie jest bezpośrednio podłączony do komputera.

Pytania bezpieczeństwa

    Jakie problemy ma rozwiązywać klasa systemów operacyjnych UNIX?

    Jakie możliwości powinien zapewniać system operacyjny klasy UNIX?

    Jakie są zadania jądra systemu operacyjnego UNIX?

    Jakie są funkcje jądra systemu operacyjnego UNIX?

    Jaki jest cel komponentu Command System systemu operacyjnego?

    Czy można powiedzieć, że powłoka zapewnia użytkownikowi interaktywny interfejs do interakcji z systemem operacyjnym?

    Jak odbywa się uwierzytelnianie użytkownika w systemie UNIX?

Podstawy Linuksa

Linux jest inspirowany systemem operacyjnym Unix, który pojawił się w 1969 roku i nadal jest w użyciu i rozwijany. Wiele wewnętrznych mechanizmów UNIX-a istnieje w Linuksie, co jest kluczem do zrozumienia podstaw systemu.

Unix skupiał się głównie na interfejsie wiersza poleceń, a Linux go odziedziczył. Zatem graficzny interfejs użytkownika z oknami, obrazami i menu jest zbudowany na bazie głównego interfejsu - wiersza poleceń. Dodatkowo oznacza to, że system plików Linuksa został zaprojektowany tak, aby był łatwy w zarządzaniu i dostępny z wiersza poleceń.

Katalogi i system plików

Systemy plików w systemach Linux i Unix są zorganizowane według hierarchicznej struktury przypominającej drzewo. Najwyższy poziom systemu plików to / lub katalog główny . Oznacza to, że wszystkie pozostałe pliki i katalogi (w tym inne dyski i partycje) znajdują się w katalogu głównym. W systemie UNIX i Plik Linuxa brane jest pod uwagę wszystko - łącznie z dyskami twardymi, ich partycjami i nośnikami wymiennymi.

Na przykład /home/jebediah/cheeses.odt pokazuje pełną ścieżkę do pliku cheeses.odt. Plik znajduje się w katalogu jebediah, który znajduje się w katalogu domowym, który z kolei znajduje się w katalogu głównym (/).

Wewnątrz katalogu głównego (/) znajduje się wiele ważnych katalogów systemowych, które znajdują się w większości dystrybucji Linuksa. Poniżej znajduje się lista udostępnionych katalogów, które znajdują się bezpośrednio w katalogu głównym (/):

Prawa dostępu

Wszystkie pliki w systemie Linux mają uprawnienia zezwalające lub uniemożliwiające ich odczyt, modyfikację lub wykonanie. Superużytkownik „root” ma dostęp do dowolnego pliku w systemie.

Każdy plik ma następujące trzy zestawy dostępu, w kolejności ważności:

    właściciel

    odnosi się do użytkownika będącego właścicielem pliku

    grupa

    należy do grupy powiązanej z plikiem

    Inny

    dotyczy wszystkich pozostałych użytkowników systemu

Każdy z trzech zestawów definiuje prawa dostępu. Poniżej podano uprawnienia oraz sposób ich stosowania do różnych plików i katalogów:

    czytanie

    pliki można wyświetlać i otwierać do odczytu

    zawartość katalogu jest dostępna do przeglądania

    nagrywać

    pliki mogą zostać zmienione lub usunięte

    zawartość katalogów jest dostępna do zmian

    wykonanie

    pliki wykonywalne można uruchamiać jako programy

    można otwierać katalogi

Aby wyświetlić i edytować uprawnienia do plików i katalogów, otwórz plik Aplikacje → Akcesoria → Folder domowy i kliknij prawym przyciskiem myszy plik lub katalog. Następnie wybierz Właściwości. Uprawnienia istnieją w ramach Uprawnienia i zezwól na edycję wszystkich poziomów uprawnień, jeśli jesteś właścicielem pliku.

Aby dowiedzieć się więcej o uprawnieniach do plików w systemie Linux, przeczytaj stronę dotyczącą uprawnień do plików na Wiki Ubuntu.

Terminale

Praca z wiersza poleceń nie jest tak trudnym zadaniem, jak mogłoby się wydawać. Aby korzystać z wiersza poleceń, nie jest wymagana żadna specjalna wiedza. To program jak każdy inny. Większość rzeczy w Linuksie można wykonać za pomocą wiersza poleceń, chociaż dla większości programów dostępne są narzędzia graficzne. Czasem po prostu nie wystarczą. Tutaj przydaje się wiersz poleceń.

The Terminal znajduje się w Aplikacje → Terminal. Terminal jest często nazywany wierszem poleceń lub powłoką. W dawnych czasach był to sposób interakcji użytkownika z komputerem. Jednakże użytkownicy Linuksa odkryli, że użycie powłoki może być szybsze niż metoda graficzna i nadal ma pewne zalety. Tutaj dowiesz się jak korzystać z terminala.

Terminal był pierwotnie używany do zarządzania plikami i nadal jest używany jako przeglądarka plików, jeśli środowisko graficzne nie działa. Możesz używać terminala jako przeglądarki do zarządzania plikami i cofania wprowadzonych zmian.

Podstawowe polecenia

Wyświetl zawartość katalogu: ls

Zespół ls pokazuje listę plików w różnych kolorach z pełne formatowanie tekst

Tworzenie katalogów: mkdir (nazwa katalogu)

Zespół mkdir tworzy nowy katalog.

Przejdź do katalogu: cd (/adres/katalog)

Zespół płyta CD umożliwia przejście do dowolnego wskazanego katalogu.

Kopiowanie pliku lub katalogu: cp (która jest nazwą pliku lub katalogu) (gdzie jest nazwą katalogu lub pliku)

Zespół por kopiuje dowolny wybrany plik. Zespół cp -r kopiuje dowolny wybrany katalog z całą zawartością.

Usuwanie plików lub katalogów: rm (nazwa pliku lub folderu)

Zespół rm usuwa dowolny wybrany plik. Zespół rm -rf usuwa wybrany katalog wraz z całą jego zawartością.

Zmień nazwę pliku lub katalogu: mv (nazwa pliku lub katalogu)

Zespół mw zmienia nazwę lub przenosi wybrany plik lub katalog.

Znajdowanie katalogów i plików: zlokalizuj (nazwa katalogu lub pliku)

Zespół lokalizować pozwala znaleźć określony plik na komputerze. Indeksowanie plików służy przyspieszeniu pracy. Aby zaktualizować indeks wpisz komendę zaktualizowano. Uruchamia się automatycznie każdego dnia po włączeniu komputera. Aby uruchomić to polecenie, potrzebujesz uprawnień superużytkownika (patrz „Użytkownik root i polecenie sudo”).

Możesz także użyć symboli wieloznacznych, aby określić więcej niż jeden plik, na przykład „*” (dopasuj wszystkie znaki) lub „?” (dopasuj jeden znak).

Aby uzyskać bardziej szczegółowe wprowadzenie do wiersza poleceń systemu Linux, przeczytaj wprowadzenie do wiersza poleceń na wiki Ubuntu.

Edycja tekstu

Wszystkie konfiguracje i ustawienia w systemie Linux są zapisywane w plikach tekstowych. Chociaż konfiguracje można najczęściej edytować za pomocą interfejsu graficznego, czasami może zaistnieć konieczność ręcznej edycji. Podkładka pod mysz to domyślny edytor tekstu Xubuntu, który można uruchomić, klikając Aplikacje → Akcesoria → Podkładka pod mysz w menu pulpitu.

Czasami, Podkładka pod mysz uruchamiany z wiersza poleceń za pomocą aplikacji gksudo, który biegnie Podkładka pod mysz z uprawnieniami administracyjnymi, co pozwala na zmianę plików konfiguracyjnych.

Jeśli potrzebujesz edytora tekstu w wierszu poleceń, możesz go użyć nano- łatwy w użyciu edytor tekstu. Uruchamiając z wiersza poleceń, zawsze używaj następującego polecenia, aby wyłączyć automatyczne zawijanie słów:

Nano-w

Aby uzyskać więcej informacji na temat sposobu użycia nano, zapoznaj się z przewodnikiem na wiki.

W Ubuntu dostępnych jest także sporo innych edytorów terminalowych. Do popularnych należą KRZEPA I Emacs(za i przeciw każdego z nich są powodem do wielu przyjaznych debat w społeczności Linuksa). Są one często bardziej skomplikowane w użyciu niż nano, ale są też potężniejsze.

użytkownik root i polecenie sudo

Użytkownik root w systemie GNU/Linux to użytkownik mający dostęp administracyjny do twojego systemu. Zwykli użytkownicy nie mają takiego dostępu ze względów bezpieczeństwa. Jednak Ubuntu nie umożliwia użytkownikowi root. Zamiast tego dostęp administracyjny nadawany jest indywidualnym użytkownikom, którzy mogą używać aplikacji „sudo” do wykonywania zadań administracyjnych. Pierwsze konto użytkownika utworzone w systemie podczas instalacji będzie domyślnie miało dostęp do sudo. Możesz ograniczyć i włączyć dostęp sudo dla użytkowników za pomocą pliku Użytkownicy i grupy aplikacji (więcej informacji można znaleźć w części „Zarządzanie użytkownikami i grupami”).

Gdy otworzysz program wymagający uprawnień superużytkownika, sudo poprosi Cię o podanie hasła. Dzięki temu złośliwe aplikacje nie będą mogły uszkodzić Twojego systemu, a także przypomni Ci, że masz zamiar wykonać czynności wymagające szczególnej ostrożności!

Aby użyć sudo w wierszu poleceń, po prostu wpisz „sudo” przed poleceniem, które chcesz uruchomić. Następnie konieczne będzie wprowadzenie hasła.

Sudo zapamięta Twoje hasło przez 15 minut (domyślnie). Ta funkcja została zaprojektowana, aby umożliwić użytkownikom wykonywanie wielu zadań administracyjnych bez konieczności każdorazowego pytania o hasło.

Zachowaj ostrożność podczas wykonywania zadań administracyjnych – możesz uszkodzić system!

Oto kilka innych wskazówek dotyczących korzystania z Sudo:

    Aby używać terminala jako superużytkownik (root), wpisz „sudo -i” w wierszu poleceń

    Cały zestaw domyślnych graficznych narzędzi konfiguracyjnych w Ubuntu korzysta już z sudo, więc w razie potrzeby poprosi Cię o podanie hasła.

    Podczas uruchamiania aplikacje graficzne Zamiast „sudo” używane jest „gksudo”. Dzięki temu możesz poprosić użytkownika o podanie hasła w małym oknie graficznym. Polecenie „gksudo” jest przydatne, jeśli chcesz zainstalować przycisk Start Synaptyczny do panelu lub coś podobnego.

    Aby uzyskać więcej informacji na temat sudo programu i braku użytkownika root w Ubuntu, przeczytaj stronę sudo na wiki Ubuntu.

W 1965 roku firma Bell Telephone Laboratories (oddział AT&T) wraz z operatorem karnym i Massachusetts Institute of Technology (rIT) rozpoczęły prace nad nowym systemem operacyjnym o nazwie rULTIqS (rULTipleoed Information and Computing Service). Celem uczestników projektu było stworzenie wielozadaniowego systemu operacyjnego z podziałem czasu, zdolnego wspierać pracę kilkuset użytkowników. Z Bell Labs w projekcie wzięło udział dwóch uczestników: Ken Thompson i Dennis Ritchie. Choć system rULTIqS nigdy nie został ukończony (Bell Labs wycofało się z projektu w 1969 r.), stał się on prekursorem systemu operacyjnego, który później stał się znany jako Unio.

Jednak Thompson, Ritchie i wielu innych pracowników nadal pracowali nad stworzeniem wygodnego systemu programowania. Korzystając z pomysłów i osiągnięć, które wyłoniły się podczas pracy nad rULTIqS, w 1969 roku stworzyli mały system operacyjny, który zawierał system plików, podsystem zarządzania procesami i niewielki zestaw narzędzi. System został napisany w asemblerze i wykorzystany na komputerze nDn-7. Ten system operacyjny został nazwany UNIX, nazwą podobną do rULTIqS i wymyśloną przez innego członka zespołu programistów, Briana Kernigana.

Chociaż wczesna wersja UNIX-a obiecywała wiele, nie wykorzystałaby swojego pełnego potencjału bez zastosowania w jakimś prawdziwym projekcie. I taki projekt został znaleziony. Kiedy w 1971 roku dział patentowy Bell Labs potrzebował systemu do edycji tekstu, na system operacyjny wybrano UNIX. Do tego czasu został przeniesiony na mocniejszy nDn-11 i nieco urósł. 16 KB zajmował sam system, 8 KB przeznaczono na programy aplikacyjne, maksymalny rozmiar pliku ustalono na 64 KB przy 512 KB dysku. przestrzeń.

Wkrótce po stworzeniu pierwszych wersji asemblera Thomson rozpoczął pracę nad kompilatorem dla języka FxuTuAN, w wyniku czego opracował Język B. Był to interpreter ze wszystkimi ograniczeniami interpretera, a Ritchie rozwinął go na inny język, tzw. q, co umożliwiło generowanie kodu maszynowego. W 1973 roku jądro systemu operacyjnego zostało przepisane na język C wysokiego poziomu, co było wcześniej niespotykanym posunięciem, które miało ogromny wpływ na popularność UNIX-a. Oznaczało to, że system UNIX można było teraz przenieść na inne platformy sprzętowe w ciągu kilku miesięcy, a wprowadzenie zmian nie było szczególnie trudne. Liczba działających systemów UNIX w Bell Labs przekroczyła 25 i utworzono grupę UNIX Sgstem Proup (USp), aby utrzymywać system UNIX.

Wersje badawcze (AT&T Bell Labs)

Zgodnie z amerykańskim prawem federalnym firma AT&T nie miała prawa do komercyjnej dystrybucji UNIX-a i wykorzystywała go na własne potrzeby, jednak od 1974 roku zaczęto przekazywać system operacyjny uniwersytetom w celach edukacyjnych.

System operacyjny został unowocześniony, każdy nowa wersja został dostarczony z odpowiednim wydaniem Przewodnika Programisty, od którego same wersje otrzymały nazwę edycje (jdition). W latach 1971-1989 wydano łącznie 10 wydań. Poniżej wymieniono najważniejsze edycje.

Wersja 1 (1971)

Pierwsza wersja UNIX-a napisana w języku asemblera dla nDn-11. Zawiera język B oraz wiele dobrze znanych poleceń i narzędzi, w tym cat, chdir, chmod, cp, ed, find, mail, mkdir, mkfs, mount, mv, rm, rmdir, wc, who. Używany głównie jako narzędzie do edycji tekstu dla działu patentów Bell Labs.

Wersja 3 (1973)

W systemie pojawiła się komenda ss uruchamiająca kompilator języka C zainstalowanych systemów osiągnął 16.

Wersja 4 (1973)

Pierwszy system, w którym jądro jest napisane w języku wysokiego poziomu C.

Wersja 6 (1975)

Pierwsza wersja UNIX-a dostępna poza Bell Labs. System został całkowicie przepisany w języku C. Od tego czasu zaczęły pojawiać się nowe wersje, które nie były rozwijane w Bell Labs, a popularność UNIX-a zaczęła rosnąć. Ta wersja systemu została zainstalowana na Uniwersytecie Kalifornijskim w Berkeley, a wkrótce na jej bazie ukazała się pierwsza wersja systemu BSD (Berheleg Softkare Distributuion) UNIX.

Wersja 7 (1979)

Zawiera interpreter poleceń Bourne Shell i kompilator C firmy Kernighan i Ritchie. Rdzeń systemu został przepisany w celu umożliwienia jego przenoszenia na inne platformy. Licencję na tę wersję zakupiła firma ricrosoft, która stworzyła na jej podstawie system operacyjny XjNIX.

UNIX zyskiwał na popularności i do 1977 roku liczba systemów operacyjnych przekroczyła 500. W tym samym roku system został po raz pierwszy przeniesiony na komputer inny niż nDn.

Genealogia UNIX-a

Nie ma standardowego systemu UNIX; wszystkie systemy podobne do UNIX mają cechy i możliwości, które są dla nich unikalne. Jednak za różnymi nazwami i funkcjami nadal łatwo jest dostrzec architekturę, interfejs użytkownika i środowisko programistyczne UNIX-a. Wyjaśnienie jest dość proste: wszystkie te systemy operacyjne są bliskimi lub dalekimi krewnymi. Poniżej opisano najważniejszych przedstawicieli tej rodziny.

System III (1982)

Nie chcąc stracić inicjatywy w zakresie rozwoju UNIX-a, firma AT&T w 1982 roku połączyła kilka istniejących wersji systemu operacyjnego i stworzyła wersję o nazwie Sgstem III.

Ta wersja była przeznaczona do dystrybucji poza Bell Labs i AT&T i zapoczątkowała potężną gałąź systemu UNIX, która wciąż żyje i rozwija się.

System V (1983)

W 1983 roku wypuszczono System V, a później kilka kolejnych wydań:

  • SVR2 (1984): pamięć współdzielona komunikacji międzyprocesowej (IPC), semafory
  • SVR3 (1987): system strumieni we/wy, przełącznik systemu plików, biblioteki współdzielone
  • SVR4 (1989): gniazda NFS, FFS, BSD. SVR4 łączy w sobie możliwości kilku dobrze znanych wersji UNIX-a - SunOS, BSD UNIX i poprzednich wydań Systemu V.

Wiele komponentów tego systemu było obsługiwanych przez standardy ANSI, POSIX, X/Open i SVID.

UNIX BSD (1978) (w oparciu o 6. wydanie UNIX)

  • 1981, na zlecenie DAunA, stos Tqn/In został wbudowany w BSD UNIX (w 4.2BSD)
  • 1983 aktywnie używany technologie sieciowe i mógł połączyć się z siecią ARPANET
  • Wydano wersję 4.3BSD z 1986 roku
  • 1993 Wydano 4.4BSD i BSD Lite (ostatnie wydane wersje).

OSF/1 (1988) (Fundacja Otwartego Oprogramowania)

W 1988 roku IBM, DEC i HP połączyły siły, aby stworzyć wersję UNIX niezależną od AT&T i SUN i utworzyły organizację o nazwie OSF. Efektem działalności tej organizacji był system operacyjny OSF/1.

Standardy

Pojawiło się więcej różne opcje UNIX, tym bardziej oczywista stawała się potrzeba standaryzacji systemu. Posiadanie standardów ułatwia przenoszenie aplikacji i chroni zarówno użytkowników, jak i producentów. W rezultacie powstało kilka organizacji zajmujących się standardami i opracowano szereg standardów, które wpłynęły na rozwój UNIX-a.

IEEE POSIX (interfejs przenośnego systemu operacyjnego Instytutu Inżynierów Elektryków i Elektroników)

  • 1003.1 (1988) API (interfejs programowania aplikacji) Standaryzacja OC
  • 1003.2 (1992) definicja powłoki i mediów
  • 1003.1b (1993) API aplikacji czasu rzeczywistego
  • 1003.1c (1995) definicje „wątków”

ANSI (Amerykański Narodowy Instytut Normalizacyjny)

  • Standardowy X3.159 (1989)
  • Składnia i semantyka języka C
  • Zawartość standardowej biblioteki libc

X/Otwórz

  • Standard Xwindow z 1992 r
  • 1996 utworzenie wspólnie z OSF interfejsu użytkownika CDE (Common Desktop Environment) i jego interfejsu z powłoką graficzną Motiff

SVID (definicja interfejsu Systemu V)

Opisuje zewnętrzne interfejsy UNIXowych wersji Systemu V. Oprócz SVID wydano SVVS (System V Verification Suite) - zestaw programów tekstowych pozwalających określić, czy system jest zgodny ze standardem SVID i czy jest godzien noszący dumną nazwę System V.

Znane wersje UNIX-a

  • IBM AIX oparty na SVR2 z wieloma funkcjami SVR4, BSD, OSF/1
  • Wersja HP-UX HP
  • Wersja IRIX Silicon Graphics, podobna do SVR4
  • Cyfrowa wersja DEC dla UNIX-a oparta na OSF/1
  • SCO UNIX (1988) jeden z pierwszych systemów UNIX dla komputerów PC opracowany w oparciu o SVR3.2
  • Wersja Solaris UNIX SVR4 firmy Sun Microsystems

Zanim będziesz mógł opanować program , musisz biegle posługiwać się podstawowymi koncepcjami systemu Linux. Umiejętność pracy z Linuksem będzie bardzo przydatną umiejętnością, ponieważ serwery Linux działają duża liczba strony internetowe, e-mail i inne usługi internetowe.

W tej sekcji wyjaśnimy podstawowe pojęcia związane z Linuksem. Wierzymy, że realizując powierzone nam zadanie, posiadają Państwo już ogólną wiedzę na temat systemów komputerowych, w tym takich podzespołów jak jednostka centralna (CPU), pamięć o dostępie swobodnym (RAM), płyta główna, dysk twardy, a także inne kontrolery i urządzenia z nimi powiązane.

3.1

Termin „Linux” jest często używany w odniesieniu do całego systemu operacyjnego, ale Linux to w rzeczywistości jądro systemu operacyjnego uruchamiane przez moduł ładujący uruchamiany przez BIOS/UEFI. Jądro pełni rolę podobną do dyrygenta w orkiestrze, zapewniając harmonijne działanie sprzętu i oprogramowania. Rola ta obejmuje zarządzanie sprzętem, użytkownikami i systemami plików. Jądro jest wspólną bazą dla innych programów działających w danym systemie i najczęściej działa pierścień zerowy znany również jako przestrzeń jądra.

Przestrzeń użytkownika

Używamy terminu „przestrzeń użytkownika”, aby objąć wszystko, co dzieje się poza jądrem.

Wśród programów działających w przestrzeni użytkownika znajduje się wiele podstawowych narzędzi projektu GNU, z których większość zaprojektowano tak, aby można je było uruchamiać z wiersza poleceń. Można ich używać w skryptach do automatyzacji różnych zadań. Dodatkowe informacje Najważniejsze polecenia znajdziesz w rozdziale 3.4 „ ”.

Rzućmy okiem na różne zadania wykonywane przez jądro Linuksa.

3.1.1 Uruchomienie sprzętu

Celem jądra jest przede wszystkim zarządzanie i kontrolowanie głównych komponentów komputera. Wykrywa je i konfiguruje, gdy komputer jest włączony oraz gdy urządzenie jest montowane lub usuwane (na przykład Urządzenie USB). Dzięki uproszczonemu interfejsowi oprogramowania są one również dostępne dla oprogramowania wyższego poziomu, dzięki czemu aplikacje mogą korzystać z urządzeń bez konieczności zajmowania się takimi szczegółami, jak gniazdo rozszerzeń, do którego włożona jest karta. Interfejs programowania zapewnia również pewien poziom abstrakcji; pozwala to na wykorzystanie sprzętu do wideokonferencji, np. wykorzystanie kamery internetowej, niezależnie od jej modelu i producenta. Oprogramowanie może korzystać z interfejsu Film dla Linuksa(V4L), a jądro przetłumaczy wywołania interfejsu na rzeczywiste polecenia sprzętowe potrzebne do obsługi określonej kamery internetowej.

Jądro eksportuje dane o wykrytym sprzęcie poprzez systemy wirtualne /proc/ i /sys/. Aplikacje często uzyskują dostęp do urządzeń za pomocą plików utworzonych w /dev/ . Specjalne pliki reprezentujące dyski (na przykład /dev/sda), partycje (/dev/sdal), myszy (/dev/input/mouse0), klawiatury (/dev/input/event0), karty dźwiękowe(/dev/snd/*), porty szeregowe (/dev/ttyS*) i inne komponenty.

Istnieją dwa typy plików urządzeń: blokowe i znakowe. Te pierwsze mają cechy bloku danych: mają skończoną wielkość i dostęp do bajtów można uzyskać w dowolnym miejscu bloku. Te ostatnie zachowują się jak strumień znaków. Możesz czytać i zapisywać znaki, ale nie możesz wyszukiwać danej pozycji i modyfikować dowolnych bajtów. Aby poznać typ pliku urządzenia, sprawdź pierwszą literę wyniku polecenia Is -1. Może to być b dla urządzeń blokowych lub c dla urządzeń znakowych:

Jak można się domyślić, dyski i partycje używają plików urządzeń blokowych, podczas gdy mysz, klawiatura i porty szeregowe korzystają z plików urządzeń znakowych. W obu przypadkach interfejs oprogramowania zawiera specjalne polecenia, które można aktywować poprzez wywołanie systemowe ioctl.

3.1.2 Łączenie systemów plików

Systemy plików są ważnym aspektem jądra. Systemy uniksowe łączą wszystkie magazyny plików w jedną hierarchię, umożliwiając użytkownikom i aplikacjom dostęp do danych, znając ich lokalizację w tej hierarchii.

Punktem początkowym tego hierarchicznego drzewa jest korzeń, reprezentowany przez symbol „/”. Katalog ten może zawierać nazwane podkatalogi. Na przykład podkatalog domowy „/” nosi nazwę /home/. Ten podkatalog z kolei może zawierać inne podkatalogi itp. Każdy katalog może również zawierać pliki, w których będą przechowywane pliki. Zatem home/buxy/Desktop/hello.txt odnosi się do pliku o nazwie hello.txt, który jest przechowywany w podkatalogu Desktop, który znajduje się w podkatalogu buxy katalogu domowego, który jest obecny w źródło. Jądro kompiluje się pomiędzy danym systemem nazewnictwa a lokalizacją na dysku.

W przeciwieństwie do innych systemów Linux ma tylko jedną taką hierarchię i może integrować dane z wielu dysków. Jeden z tych dysków staje się rootem, a pozostałe są zamontowane w katalogu w hierarchii (to polecenie w systemie Linux nazywa się mount). Te inne dyski są następnie udostępniane w punktach montowania ( punkty mocowania ) Pozwala to na przechowywanie katalogów domowych użytkownika (które zwykle są przechowywane w /home/ ) na oddzielnym dysku twardym, który będzie zawierał katalog buxy (wraz z katalogami domowymi innych użytkowników). Po zamontowaniu dysku w katalogu /home/ katalogi te staną się dostępne w ich normalnej lokalizacji, a różne ścieżki, takie jak /home/buxy/Desktop/hello.txt, będą nadal działać.

Istnieje wiele formatów systemów plików odpowiadających wielu sposobom fizycznego przechowywania danych na dyskach. Najbardziej znane to ext2, ext3 i ext4, ale są też inne. Na przykład, VFAT to system plików, który był historycznie używany w systemie DOS i systemach operacyjnych Systemy Windows. Obsługa obsługi VFAT System Linux pozwala dyski twarde będzie dostępny zarówno w Kali, jak i Windows. W każdym razie musisz przygotować system plików na dysku przed jego zamontowaniem i ta operacja jest wywoływana formatowanie.

Polecenia takie jak mkfs.ext3 (gdzie mkfs oznacza Utwórz system plików) obsługuje formatowanie. Polecenia te wymagają jako parametru pliku urządzenia reprezentującego partycję, która ma zostać sformatowana (na przykład /dev/sdal, pierwsza partycja na pierwszym dysku). Ta operacja niszczy wszystkie dane i powinna być wykonana tylko raz, chyba że chcesz wyczyścić system plików i zacząć od nowa.

Istnieją również sieciowe systemy plików, takie jak NFS, które nie przechowują danych na dysku lokalnym. Zamiast tego dane są przesyłane przez sieć do serwera, który je przechowuje i udostępnia na żądanie. Dzięki abstrakcji systemu plików nie musisz się martwić o sposób mapowania tego dysku, ponieważ pliki pozostają dostępne w ich normalnej ścieżce hierarchicznej.

3.1.3 Zarządzanie procesami

Proces to wykonywalna instancja programu, która wymaga przechowywania w pamięci zarówno samego programu, jak i jego danych roboczych. Jądro jest odpowiedzialne za tworzenie i śledzenie procesów. Kiedy program jest uruchamiany, jądro najpierw przydziela część pamięci, ładuje kod wykonywalny z systemu plików do tej pamięci, a następnie uruchamia kod. Zawiera informacje o tym procesie, z których najważniejszym jest numer identyfikacyjny, tzw identyfikator procesu (identyfikator procesu(PID)).

Większość nowoczesnych systemów operacyjnych, a mianowicie tych, które działają Oparty na Unixie Jądra, w tym Linux, są w stanie wykonywać wiele zadań. Innymi słowy, pozwalają systemowi na uruchamianie wielu procesów jednocześnie.

W rzeczywistości w danym momencie działa tylko jeden proces, ale jądro dzieli czas procesora na małe części i uruchamia każdy proces po kolei. Ponieważ te wycinki czasu są bardzo krótkie (w milisekundach), tworzą wygląd procesy działające równolegle, chociaż są aktywne tylko w swoim przedziale czasowym i nieaktywne przez resztę czasu. Głównym celem jądra jest dostrojenie mechanizmów planowania w sposób pozwalający zachować ten wygląd przy jednoczesnym zwiększeniu wydajności systemu. Jeśli okres czasu jest zbyt długi, może przestać reagować prawidłowo. Cóż, jeśli będą za krótkie, system będzie marnował zbyt dużo czasu na przełączanie się między nimi.

Takie decyzje można kontrolować za pomocą priorytetów procesów, gdzie procesy o wysokim priorytecie będą działać przez dłuższe okresy czasu i w częstszych przedziałach czasu niż procesy o niskim priorytecie.

Systemy wieloprocesorowe (i inne warianty)

Opisane powyżej ograniczenia mówiące, że w danym momencie może być uruchomiony tylko jeden proces, nie mają zastosowania we wszystkich sytuacjach. Bardziej właściwe byłoby tak powiedzieć jeden rdzeń może pracować tylko z jednym procesem. Systemy wieloprocesorowe, wielordzeniowe lub hiperwątkowe umożliwiają równoległe działanie wielu procesów. Jednak ten sam system redukcji czasu stosowany jest w sytuacjach, gdy jest ich więcej aktywne procesy niż dostępne rdzenie procesorów. Nie jest to niczym niezwykłym: w podstawowym systemie, nawet całkowicie bezczynnym, prawie zawsze działają dziesiątki procesów.

Jądro pozwala na uruchomienie wielu niezależnych instancji tego samego programu, ale każda z nich ma dostęp tylko do swoich własnych przedziałów czasu i pamięci. Dzięki temu ich dane pozostają niezależne.

3.1.4 Zarządzanie prawami

Systemy uniksowe obsługują wielu użytkowników i grup oraz pozwalają kontrolować prawa dostępu. W większości przypadków proces jest definiowany przez użytkownika, który go uruchamia. Ten proces może wykonywać tylko te czynności, na które zezwala jego właściciel. Na przykład otwarcie pliku wymaga, aby jądro sprawdziło proces pod kątem niezbędnych uprawnień (więcej informacji na temat tego konkretnego przykładu można znaleźć w sekcji 3.4.4, „Zarządzanie uprawnieniami”)

3.2 Linia poleceń Linuksa

Przez „wiersz poleceń” rozumiemy interfejs tekstowy, który umożliwia wprowadzanie poleceń, wykonywanie ich i przeglądanie wyników. Możesz uruchomić terminal (ekran tekstowy na pulpicie graficznym lub konsolę tekstową poza dowolnym GUI) i znajdujący się w nim interpreter poleceń ( powłoka).

3.2.1

Kiedy Twój system działa poprawnie, jak najbardziej w prosty sposób Aby uzyskać dostęp do wiersza poleceń, należy uruchomić terminal w sesji graficznego pulpitu.


Rysunek 3.1 Uruchamianie terminala GNOME

Na przykład w systemie Kali Linux Domyślnie Terminal GNOME można uruchomić z listy ulubionych aplikacji. Możesz także wpisać „terminal” w oknie Działania (okno aktywowane po przesunięciu myszy w lewy górny róg) i kliknąć ikonę potrzebnej aplikacji, która się pojawi (rysunek 3.1, „”).

W przypadku jakichkolwiek zakłóceń lub nieprawidłowego działania GUI, nadal możesz uruchomić wiersz poleceń na konsolach wirtualnych (dostęp do maksymalnie sześciu z nich można uzyskać za pomocą sześciu kombinacji klawiszy, zaczynając od CTRL + ALT + F1 i kończąc na CTRL + ALT + F6 - Nie musisz naciskać klawisza CTRL, jeśli jesteś już w trybie tekstowym poza GUI Xorg Lub Waylanda).

Otrzymujesz zwykły ekran logowania, na którym wpisujesz swoją nazwę użytkownika i hasło przed uzyskaniem dostępu do wiersza poleceń z jego powłoką:

Nazywa się program, który przetwarza wprowadzone dane i wykonuje polecenia powłoka(powłoka lub interpreter wiersza poleceń). Domyślna powłoka dostępna w Kali Linux to Grzmotnąć(to znaczy Bourne Znowu Shell). Końcowy znak „$” lub „#” wskazuje, że powłoka czeka na Twoje dane wejściowe. Symbole te wskazują również, jak Bash Cię postrzega zwykły użytkownik(pierwszy przypadek ze znakiem dolara) lub jako superużytkownik (ostatni przypadek ze znakiem skrótu).

3.2.2

Ta sekcja zawiera jedynie krótki przegląd niektórych poleceń, z których każde ma wiele różnych opcji i możliwości, które nie są tutaj omówione, dlatego prosimy o zapoznanie się z obszerną dokumentacją dostępną na odpowiednich stronach podręcznika. W testach penetracyjnych najczęściej uzyskasz dostęp do systemu poprzez powłokę, po udanej eksploatacji, a nie przez użytkownika graficzny interfejs użytkownika. Jeśli chcesz odnieść sukces jako specjalista ds. bezpieczeństwa, niezbędna jest umiejętność prawidłowego korzystania z wiersza poleceń.

Po rozpoczęciu sesji polecenie pwd (co oznacza wydrukuj katalog roboczy) wyświetli Twoją bieżącą lokalizację w systemie plików. Twoja bieżąca lokalizacja może zostać zmieniona za pomocą polecenia cd nazwa katalogu(gdzie cd oznacza (zmień katalog)). W przypadku, gdy nie określiłeś katalogu, do którego chcesz się udać, automatycznie powrócisz do swojego katalogu domowego. Jeśli wpiszesz cd -, nastąpi powrót do poprzedniego katalogu roboczego (tego, w którym znajdowałeś się przed wprowadzeniem ostatniego polecenia cd). Katalog nadrzędny zawsze nazywa się .. (dwie kropki), natomiast katalog bieżący nazywa się .. (dwie kropki). (jeden punkt). Polecenie ls pozwala lista zawartość katalogu. Jeśli nie określisz dodatkowe parametry ls polecenie wyświetli zawartość bieżącego katalogu.

Możesz utworzyć nowy katalog za pomocą polecenia mkdir nazwa katalogu, a także usuń istniejący (pusty) katalog za pomocą polecenia rmdir nazwa katalogu. Polecenie mv ci na to pozwoli przenosić i zmieniać nazwy plików i katalogów; usuwać plik można wykonać za pomocą rm nazwa pliku, a kopiowanie pliku odbywa się za pomocą cp plik-źródłowy plik-docelowy.

Powłoka wykonuje każde polecenie, uruchamiając pierwszy program o podanej nazwie, który znajdzie w katalogu określonym przez zmienną środowiskową ŚCIEŻKA. Najczęściej programy te znajdują się w /bin,/sbin, /usr/bin lub /usr/sbin. Na przykład polecenie ls znajduje się w /bin/ls;

Czasami polecenie jest przetwarzane bezpośrednio przez powłokę i w takim przypadku nazywa się je wbudowaną powłoką (wśród nich są cd i pwd ); Polecenie type umożliwia sprawdzenie typu każdego polecenia.

Zwróć uwagę na użycie polecenia echo, które po prostu wyświetla linię w terminalu. W tym przypadku służy do wyświetlenia zawartości zmiennej środowiskowej, ponieważ Powłoka automatycznie zastępuje zmienne ich wartościami po wykonaniu wiersza poleceń.

Zmienne środowiskowe

Zmienne te można zdefiniować zarówno dla systemu w /etc/profile, jak i dla użytkownika w ~/.profile, ale zmienne, które nie są specyficzne dla interpreterów wiersza poleceń, najlepiej umieścić w /etc/environment, ponieważ zmienne te zostaną wprowadzone do wszystkie sesje użytkowników dzięki modułowi uwierzytelniania Pluggable (PAM) – nawet jeśli nie jest uruchomiona żadna powłoka.

3.3 System plików Linuksa

3.3.1 Standard hierarchii systemu plików

Podobnie jak inne dystrybucje Linuksa, Kali Linux jest zorganizowany zgodnie ze standardem System plikówStandard hierarchii(FHS), który umożliwia użytkownikom innych dystrybucji Linuksa łatwą nawigację po Kali. FHS definiuje cel każdego katalogu. Katalogi najwyższego poziomu opisano poniżej.

  • /bin/: programy główne
  • /boot/: Jądro Kali Linux i inne pliki wymagane do wczesnego procesu rozruchu
  • /dev/: pliki urządzeń
  • /etc/: pliki konfiguracyjne
  • /dom/: pliki osobiste użytkownicy
  • /lib/: główne biblioteki
  • /media/*: Punkty montowania urządzeń wymiennych (CD-ROM, Napędy USB itp.)
  • /mnt/: tymczasowe punkty montowania
  • /optować/: dodatkowe aplikacje dostarczonych przez osoby trzecie
  • /root/: pliki osobiste administratora (pliki root)
  • /run/: nietrwałe pliki przepływu pracy, które nie utrzymują się po ponownym uruchomieniu (nieuwzględnione jeszcze w FHS)
  • /sbin/: programy systemowe
  • /srv/: dane używane przez serwery znajdujące się w tym systemie
  • /tmp/: pliki tymczasowe (ten katalog jest często opróżniany po ponownym uruchomieniu)
  • /usr/: aplikacje (katalog ten jest dalej podzielony na bin, sbin, lib zgodnie z tą samą logiką, co w katalogu głównym). Dodatkowo /usr/share/ zawiera dane o niezależnej architekturze. Katalog /usr/local/ jest przeznaczony dla administratora do ręcznego instalowania aplikacji bez nadpisywania plików obsługiwanych przez system pakowania (dpkg).
  • /var/: Zmienne dane przetwarzane przez demona. Obejmuje to pliki dziennika, kolejki, bufory i pamięci podręczne.
  • /proc/ i /sys/ są typowe dla Jądra Linuksa(i nie są częścią FHS). Są one wykorzystywane przez jądro do eksportowania danych do przestrzeni użytkownika.

3.3.2 Katalog domowy użytkownika

Zawartość katalogu użytkownika nie jest ustandaryzowana, jednak istnieje kilka konwencji, na które warto zwrócić uwagę. Jednym z nich jest to, że katalog domowy użytkownika jest często oznaczony tyldą („~”). Jest to bardzo przydatne, ponieważ interpretery poleceń automatycznie zastępują tyldę właściwym katalogiem (który znajduje się w zmiennej środowiskowej DOM i którego normalna wartość to /home/user/ ).

Tradycyjnie pliki konfiguracyjne aplikacji są często przechowywane bezpośrednio w katalogu domowym, ale ich nazwy plików zwykle zaczynają się od kropki (na przykład klient poczty e-mail błazen przechowuje konfigurację w ~/.muttrc ). Pamiętaj, że nazwy plików zaczynające się od kropki są domyślnie ukryte; polecenie ls wyświetli je tylko wtedy, gdy określono opcję –a i będzie to graficzne menedżery plików musi być jawnie skonfigurowany, aby wyświetlać ukryte pliki.

Niektóre programy używają także wielu plików konfiguracyjnych zorganizowanych w jednym katalogu (takich jak ~/.ssh/). Niektóre aplikacje (takie jak przeglądarka internetowa Firefox) również wykorzystują swój katalog do przechowywania pamięci podręcznej pobranych danych. Oznacza to, że katalogi te mogą zająć dużo miejsca na dysku.

Te pliki konfiguracyjne, które są przechowywane bezpośrednio w pliku katalog domowy, często nazywane zbiorczo pliki kropek przez długi czas rozszerzają się do tego stopnia, że ​​katalogi te mogą się nimi zapełnić. Na szczęście współpraca pod auspicjami FreeDesktop.org doprowadziła do stworzenia specyfikacji XDG Base DirectorySpecification, konwencji, której celem jest czyszczenie tych plików i katalogów. Ta specyfikacja stwierdza, że ​​pliki konfiguracyjne powinny być przechowywane w ~/.config , pliki pamięci podręcznej w -/.cache , a pliki danych aplikacji w -/.local (lub ich podkatalogach). Konwencja ta stopniowo nabiera tempa.

Pulpit graficzny najczęściej używa skrótów do wyświetlenia zawartości katalogu /Desktop/ (lub innego słowa będącego dokładnym tłumaczeniem tego, w systemach, które nie używają Język angielski). Wreszcie, system poczty elektronicznej czasami przechowuje wiadomości przychodzące w katalogu o nazwie /Mail/.

To jest interesujące:

© 2024 ermake.ru - O naprawie komputerów PC - Portal informacyjny