6.3.3. Single System Image

6.3.3.1. Example: Amoeba

Drobný popis Amoeby, distribuovaný systém od pana Tanenbauma, pro komunikaci RPC generované z AIL, předpokládá dostatek CPU a dostatek paměti. Dva hlavní rysy file systému jsou oddělení jmen od souborů a immutable soubory.

  • Naming separation. Jména má na starosti directory server, který není vázaný na zbytek file systému, svazuje jména s capabilities.

  • Immutable files. Se souborem se smí dělat pouze CREATE, READ, DELETE, SIZE (vytvoří soubor z dat, přečte soubor, smaže soubor, vrátí velikost souboru). Má to spoustu výhod, například caching a replication se nemusí starat o konzistenci. Protože je dost paměti, vždycky to projde.

Když se z Amoeby začal stávat použitelný systém, přiznalo se, že ne vždycky může být dost paměti. Pak se soubory rozdělily na committed a uncommitted. committed jsou viz výše, uncommited jsou v procesu vytváření a dá se do nich připisovat než se commitnou. Dalším drobným ústupkem je možnost čtení po částech.

Filesystem jsou Bullet Server (jako že rychlý) a Directory Server (jako že adresář ?).

Bullet Server se stará o soubory, má operace CREATE (s parametrem zda commited nebo uncommited), MODIFY, INSERT, DELETE (na data uncommitted souborů, jako parametr říkají, zda commitnout), READ (na committed file), SIZE. Soubory jsou reprezentované pomocí capabilities, soubory bez capabilities se automaticky mažou. Protože se neví, kdo má capabilities, používají se timeouts (uncommitted files se mažou za 10 minut, committed files mají parametr age, který Directory Server posouvá voláním touch, typicky se volá touch jednou za hodinu a zmizí za 24 hodin od posledního touch).

Directory Server je obecný naming server, který přiřazuje jména k capabilities. Základní operace jsou CREATE, DELETE (vytvoření a zrušení adresáře), APPEND (vložení capability do directory), REPLACE (nahrazení capability v directory, důležité pro atomický update souborů), LOOKUP, GETMASKS, CHMOD (čtení a nastavení práv).

6.3.3.2. Example: Mach

To be done.

6.3.3.3. Example: Plan 9

Plan 9 is an experimental operating system developed around 1990 in Bell Labs. Plan 9 builds on the idea that all resources should be named and accessed uniformly.

To be done.