Uwaga! Materiał archiwalny. Może zawierać nieaktualne informacje.

Charakterystyczną rzeczą każdego systemu operacyjnego jest struktura systemu plików. W BeOSie struktura ta jest typowa dla systemów standardu POSIX (ale należy pamiętać, że BeOS nie jest systemem bazującym na Unixach lecz w całości napisanym od podstaw). Haiku, jako system wzorujący się na BeOSie, będzie z pewnością opierał się na rozwiązaniach stosowanych w swym pierwowzorze (wynika to choćby z faktu zachowania kompatybilności Haiku z BeOS'em). Artykuł ten więc dotyczy obu ww. systemów operacyjnych.

Mamy więc katalog główny, w którym znajdują się wszystkie inne katalogi i podkatalogi. Wszystkie komponenty systemu, katalogi i pliki użytkownika rozmieszczone są według odpowiednich kategorii.

Głównym katalogiem jest /boot. Jest to katalog reprezentujący partycje, z której system wystartował. Poniżej zamieszczamy opis podstawowych katalogów systemu:

  • /boot/apps
  • /boot/beos
  • /boot/demos (w oryginalnej wersji systemu)
  • /boot/develop (w oryginalnej wersji systemu)
  • /boot/optional (w oryginalnej wersji systemu)
  • /boot/home
  • /boot/preferences
  • /boot/tmp

Użytkownik może dodać dowolny inny katalog wewnątrz katalogu /boot, ale zalecane jest aby wszystkie foldery użytkownika tworzone były wewnątrz katalogu /boot/home. To dlatego, że w BeOSie są dwa rodzaje katalogów: systemowe i użytkownika. I tak:

  • /boot/beos wszystko w tym katalogu jest zarezerwowane dla systemu a do pozostałych rzeczy użytkownik ma pełny dostęp. Trzeba zachować szczególną ostrożność jeżeli chodzi o pliki i foldery w tym katalogu, gdyż usunięcie któregokolwiek z nich może mieć niekorzystny lub destrukcyjny wpływ na pracę systemu.
  • /boot/apps tutaj znajdują się wszystkie aplikacje dostępne dla każdego użytkownika systemu.
  • /boot/demos standardowe programy demonstracyjne, folder nie ma istotnego znaczenia.
  • /boot/develop tutaj umieszczane są przede wszystkim programy służące do programowania (budowy systemu), wszelkie narzędzia programistyczne.
  • /boot/optional w tym folderze umieszczane są rzeczy opcjonalne, czyli np. testowe wersje programów, wersje eksperymentalne, których nie instaluje się domyślnie lecz można samodzielnie doinstalować.
  • /boot/preferences tutaj powinny się znajdować linki do programów narzędziowych służących do konfiguracji systemu bądź też konfiguracji innych programów. Niektóre aplikacje "błędnie" umieszczają tutaj swoje pliki.
  • /boot/home to strategiczny katalog systemu, tutaj przechowywane są wszystkie ustawienia programów oraz systemu, znajdują się w nim również programy i dokumenty użytkownika.
  • /boot/tmp standardowy folder do przechowywania programów i plików tymczasowych różnych aplikacji. Nie należy nic usuwać z tego katalogu.

Oprócz głównych katalogów systemu, są jeszcze inne katalogi odgrywające istotne znaczenie. Opiszę kilka z nich:

  • /boot/beos/system tu znajduje się jądro systemu, Tracker i Deskbar, serwery oraz podstawowe biblioteki.
  • /boot/beos/bin jak również /boot/home/config/bin katalogi zawierające programy narzędziowe, działające głównie z poziomu linii poleceń terminala.
  • /boot/beos/etc oraz /boot/home/config/etc to foldery zawierające pliki konfiguracyjne systemu i programów na nim zainstalowanych. Jednak większość plików konfiguracyjnych przechowywana jest w katalogu /boot/home/config/settings.
  • /boot/beos/apps różnica pomiędzy tym katalogiem a /boot/apps polega na tym, że umieszczone są w nim aplikacje niezbędne dla systemu (jakby na wyposażeniu systemu). Czyli główny program do rozpakowywania plików, domyślny edytor tekstu, domyślna przeglądarka internetowa, dostarczona od producenta systemu. W katalogu /boot/apps znajdują się programy instalowane przez użytkownika nie znajdujące się domyślnie w dystrybucji systemu.
  • /boot/beos/preferences różnica pomiędzy tym katalogiem a /boot/preferences jest analogiczna jak powyżej, czyli przechowywane są w nim programy narzędziowe i konfiguracyjne systemu jak również niezbędnych programów będących na wyposażeniu systemu.

Często w katalogu /boot/apps i /boot/preferences są robione odsyłacze do programów znajdujących się w /boot/beos/apps i /boot/beos/preferences/ co może robić wrażenie, że program występuje dwukrotnie.

  • /boot/beos/system/servers tutaj umieszczone są wszystkie serwery BeOSa. BeOS działa w oparciu o serwery. Pośredniczą one pomiędzy programem a jądrem systemu. Co podnosi ogromnie stabilność BeOSa.
  • /boot/beos/system/lib ważny folder systemowy, znajdują się w nim podstawowe biblioteki niezbędne do pracy systemu. Nie mylić z /boot/home/config/lib, gdzie znajdują się również biblioteki będące własnością danego użytkownika ale potrzebne raczej do pracy poszczególnych programów. Uwaga, podstawowa różnica jest taka, że biblioteki z katalogu /boot/home/config/lib są pobierane wcześniej niż biblioteki z katalogu /boot/beos/system/lib.
  • /boot/beos/system/boot folder zawierający skrypty startowe BeOSa, należy pamiętać o drugim ważnym katalogu, zawierającym skrypty startowe użytkownika a mianowicie: /boot/home/config/boot.
  • /boot/beos/system/add-ons oraz /boot/home/config/add-ons to foldery wtyczek systemowych. W formie takiej wtyczki może być zarówno sterownik do jakiegoś urządzenia, jak i np. wtyczka umożliwiająca montowanie obcego systemu plików lub np wyświetlanie zawartości serwera ftp w oknie Trackera.
  • /boot/home/config/settings strategiczny folder, przechowywane jest tutaj większość ustawień zarówno programów jak i menadżera okien i innych ustawień systemowych. Większość programów zainstalowanych w systemie wrzuca tutaj swój plik lub folder konfiguracyjny.

W odróżnieniu od innych systemów standardu POSIX, BeOS nie jest systemem wielodostępnym (multiuser). Natomiast jest on jak najbardziej wielowątkowym i wielozadaniowym systemem operacyjnym. Pozwala to na maksymalne wykorzystanie zasobów systemu w konkretnym celu. Trwają jednak prace nad wielodostępnością systemu (w ramach projektu Haiku - nie są one jednak w tej chwili priorytetem programistów).

Istnieje jednak możliwość stworzenia wielodostępności systemu, w bardzo prosty sposób, tj. przez powielenie katalogu /boot/home. Czyli każdy użytkownik posiada własny katalog home co pozwala zachować każdemu inne ustawienia oraz inne programy prywatne. Programy w katalogu home danego użytkownika nie będą domyślnie dostępne dla innych użytkowników systemu. Ilość katalogów home, odpowiadać będzie zatem ilości użytkowników systemu. Przy czym w praktyce realizowane jest to w ten sposób, że katalog home, zachowuje swoją nazwę tylko dla aktualnie pracującej osoby, a foldery home innych użytkowników, zmieniają tymczasowo nazwy na nazwy ich konta. Dopiero w procesie logowania folder danego użytkownika przybiera tymczasowo właściwą nazwę home.

Inną właściwością systemu plików BeOSa jest to, że niektóre pliki i katalogi nie są widoczne z poziomu Trackera. Zobaczyć i uzyskać dostęp do nich można jedynie przy użyciu linii poleceń Terminala lub specjalnych programów. Wynika to z tego, że niektóre programy niezbędne do funkcjonowania systemu nie muszą być dostępne dla użytkownika z poziomu graficznego, co umożliwia większe bezpieczeństwo systemu.

System plików BeOSa ma coś unikatowego - jest zbudowany w oparciu o rozwiązania stosowane w bazach danych. Każdy element w systemie (zarówno pliki jak i katalogi) jest zapisywany jako element bazy danych. Daje to możliwość kompletnego, błyskawicznego przeszukiwania całego systemu. Ten rodzaj przeszukiwania (nazywany "query") może być zapisany i wyswietlony następnie w oknie Trackera. "Queries" są żywe, oznacza to, że zmieniają się one w czasie rzeczywistym, zawsze gdy zmienia się element systemu plików.

Poniżej różnice między strukturą katalogów Linuxa i BeOSa. W tej samej linii katalogowi linuxa odpowiada katalog pełniący tę samą funkcję w BeOSie:

Linux BeOS
/ /boot
/home/[user] /boot/home
/bin /boot/beos/bin
/etc /boot/beos/etc
/boot /boot/beos/system
/usr/* i /opt/* /boot/apps i /boot/beos/apps
/home/[user]/.[programy] /boot/home/config/settings/[programy]
/lib /boot/beos/system/lib
/usr/lib /boot/home/config/lib
/bin /boot/beos/bin
/usr/bin /boot/home/config/bin