Compressed ROM file system (lub w skrócie cramfs) – linuksowy kompresowany system plików tylko do odczytu, zaprojektowany specjalnie w celu osiągnięcia maksymalnej prostoty i przy zapewnieniu jak najlepszego wykorzystania miejsca. Używany głównie przez niewielkie systemy wbudowane i tam, gdzie bardzo liczy się efektywność wykorzystania miejsca. Został oparty na licencji GPL.
Inaczej niż odbywa się w to w przypadku klasycznych systemów plików, cramfs może być używany bez potrzeby dekompresowania obrazu system plików. Z tego powodu pewne dystrybucje Linuksa używają cramfs do stworzenia obrazu initrd (w szczególności Debian 3.1 i obrazy instalacyjne SUSE Linux) tam, gdzie ograniczenia pamięci i wielkości obrazu uniemożliwiają stosowanie klasycznie kompresowanego systemu plików.
Projekt
Pliki systemu cramfs są kompresowane z użyciem algorytmu zlib, plik nie jest kompresowany jako całość, ale każda strona (Intel – 4 kB) oddzielnie w celu umożliwienia swobodnego dostępu. Metadane nie są wprawdzie kompresowane, ale ich format jest specjalnie zaprojektowany pod kątem oszczędnego gospodarowania miejscem w porównaniu do klasycznych systemów plików.
System plików cramfs został specjalnie zaprojektowany jako tylko-do-odczytu aby maksymalnie uprościć jego strukturę. Swobodny dostęp w trybie zapisu do skompresowanych plików jest trudny do zaimplementowania. Cramfs jest dystrybuowany z narzędziem mkcramfs
, które umożliwia spakowanie plików w obraz systemu plików cramfs.
Maksymalna wielkość pliku jest ograniczona do 16 MB.
Maksymalna wielkość systemu plików nie może wynosić więcej niż 272 MB (z tą uwagą, że ostatni plik może przekraczać granicę maksymalnego rozmiaru pod warunkiem, że jego pierwsza strona zaczyna się przed maksymalnym rozmiarem system plików).
Zobacz też
- SquashFS – inny kompresowany system plików tylko-do-odczytu
Linki zewnętrzne