8. Cechy tradycyjnego systemu unixowego i najważniejsze występujące w nim typy plików.
Unix to system
wielozadaniowy - jest to cecha systemu operacyjnego, mówiąca, czy może on wykonywać jednocześnie kilka procesów. Wielozadaniowość otrzymuje się poprzez tzw. scheduler, czyli algorytm kolejkujący i porządkujący procesy, które mają być wykonane. W tym systemie każdy proces jest wykonywany jakiś kwant czasu, a później czeka "w uśpieniu" (oczywiście z uwzględnieniem różnych priorytetów).
wielodostępowy (o ile jego administrator nie zażyczy sobie inaczej) - oznacza możliwość jednoczesnej pracy wielu użytkowników (np. możliwość czytania tego samego pliku przez kilku użytkowników)
wielowątkowy - jest to cecha systemu operacyjnego, dzięki której w ramach jednego procesu można wykonywać kilka wątków lub jednostek wykonawczych. Nowe wątki to kolejne ciągi instrukcji wykonywane oddzielnie. Wszystkie wątki współdzielą między sobą ten sam obszar pamięci. W momencie, gdy system nie wspiera wielowątkowości, pojęcie procesu i wątku utożsamiają się.
Cechy:
1. Jądro systemu jest, oprócz pewnej części ściśle związanej z obsługiwanym sprzętem,
napisane w języku wysokiego poziomu (C).
2. W unixie obowiązuje model administracyjny, bazujący na ograniczonym zaufaniu do
użytkowników. Ujawnia się on między innymi tym, że zwykle użytkownik lokalny ma
prawo zapisu jedynie w swoim katalogu domowym, katalogu na pliki tymczasowe oraz w
kilku innych, dobrze znanych miejscach. Jednocześnie administratora systemu
(użytkownika o numerze identyfikacyjnym 0) nie dotyczą jakiekolwiek ograniczenia.
3. Jednostką aktywną w systemie jest proces, pracujący w trybie nieuprzywilejowanym
procesora, we własnej chronionej przestrzeni adresowej; jedynym elementem aktywnym w
trybie uprzywilejowanym jest jądro systemu.
4. Unix używa pamięci wirtualnej, rozszerzając pamięć operacyjną o tzw. obszary wymiany
w pamięci masowej. Niewykorzystaną pamięć operacyjną wypełniają bufory używanych
plików.
5. Podstawową metodą tworzenia nowych procesów jest rozwidlanie procesu aktywnego funkcją systemową fork. Po jej wywołaniu system tworzy nowy proces, którego przestrzeń adresowa jest kopią przestrzeni procesu macierzystego. Oba procesy rozpoczynają współbieżną pracę od następnej instrukcji za wywołaniem fork. Często proces potomny wykonuje niedługo po utworzeniu funkcję systemową execve, która zastępuje kod aktywnego procesu kodem z pliku wykonywalnego.
6. Procesy korzystają podczas pracy z mechanizmów łączenia dynamicznego, ładując kod wspólnych bibliotek w miarę potrzeb. Podstawową biblioteką uwspólnioną jest standardowa biblioteka języka C (tzw. libc).
7. Komunikacja międzyprocesowa odbywa się przez jądro systemu.
8. Budowie interfejsu programisty systemu (API) prześwięca minimalizm, ujawniający się
choćby tym, że odczyt i zapis informacji w rozmaitych urządzeniach obsługiwanych przez
system odbywa się za pomocą tego samego interfejsu jak odczyt i zapis informacji do
plików „zwykłych”. Zasadę tę często definiuje się jako: „Dla unixa wszystko jest
plikiem”.
9. Otwarty plik jest dostępny w procesie poprzez liczbę całkowitą zwaną deskryptorem
pliku. Predefiniowanymi deskryptorami są tu wartości 0 (standardowe wejście, zwykle
związane z klawiaturą terminala), 1 (standardowe wyjście, zwykle z związane z wyjściem
terminala) oraz 2 (standardowe wyjście dla błędów).
10. System praw dostępu do plików (czyli również do urządzeń czy kanałów komunikacyjnych) jest zbudowany w oparciu o tablicę bitową stałej długości, zapisaną w i-węźle. Zawiera ona zezwolenia na trzy podstawowe operacje - czytanie, zapis i wykonanie dla trzech rozłącznych klas użytkowników: właściciela pliku, członków tzw. grupy pliku oraz innych. Unixowy system praw dostępu jest bardzo efektywny w działaniu, brak dynamicznych list dostępu jest jednakże dość uciążliwy.
11. W środowisku tekstowym naturalnym środowiskiem pracy jest tzw. Interpreter poleceń
czyli powłoka (ang. shell).
12. Unix wykorzystuje do pracy w środowisku rozproszonym rodzinę protokołów TCP/IP.
13. Naturalnym sposobem organizacji pamięci masowej jest model indeksowy oparty na tzw.
i-węzłach (ang. i-nodes). i-węzeł zawiera w postaci tablicy o stałym rozmiarze wszystkie
informacje o pliku poza jego nazwą. Odwzorowaniem i-węzłów na nazwy plików zajmują się pliki specjalne - katalogi.
14. Unixowy system plików jest widoczny jako wielopoziomowe drzewo.
15. Unix bezpośrednio po starcie widzi tylko jedno urządzenie pamięci masowej, zawierające
tzw. korzeń systemu plików (oznaczany znakiem /). Inne urządzenia są przyłączane do
głównego drzewa w procesie tzw. montowania i są widoczne jako fragmenty drzewa plikowego od pewnego katalogu określanego jako punkt montowania.
16. Plik danych jest ciągiem bajtów.
Typy plików Unixowych:
- pliki zwykłe - (symbol: -) ciągi bajtów. Jest on bardzo podobny do pliku, który znamy z Windows, może jednak istnieć w kilku miejscach w systemie plików jednocześnie.
- dowiązania symboliczne (symbol: l) Mechanizm pozwalający na stworzenie wielu nazw do pojedynczego pliku dyskowego. W działaniu jest podobne do windowsowego skrótu. Dowiązanie symboliczne nie wskazuje na sam plik, jak dowiązanie sztywne, lecz na jego nazwę. Dzięki temu dowiązania symboliczne mogą łączyć pliki pomiędzy różnymi systemami plików. Ponadto możliwe jest wykonanie dowiązania symbolicznego do katalogu - tworzenie dowiązań sztywnych do katalogów przez użytkownika jest zabronione ze względu na możliwość powstawania cykli. Dowiązanie symboliczne przestaje działać, jeśli usunie się plik, na który wskazuje.
- katalogi - (symbol: d) plik binarny zawierający listę plików oraz katalogów, które się w nim znajdują. Typowe operacje dostępu do pliku, np. otwarcie, nie działają dla katalogu. Dowiązania sztywne do katalogu są tworzone jedynie pośrednio przez system. Każdy katalog zawiera dwie specjalne pozycje: „.” - wskazującą na ten katalog, oraz „..” - wskazującą na katalog zawierający.