2. Quota w Linuksie i ext

W Linuksie quota jest bardzo popularna i prosta w użyciu. Została włączona do jadra Linuksa już od wersji 1.3.8, ale zadomowiła się na dobre w wersji 2.0.

Informacje o limitach dla użytkowników i grup znajdują się jako plik na dysku, na którym owa quota ma być wymuszana. Z reguły jest to plik quota.user lub quota.group w głównym katalogu.

W pliku znajduje się tablica struktur indeksowana po uid lub gid, jedna struktura na dla każdego id użytkownika, niezależnie czy użytkownik ma ustawioną quotę czy nie.

System jest informowany o obecności pliku z limitami przez wywołanie funkcji quotactl. Wtedy wczytuje on limity, najpierw dla użytkowników i grup aktualnie zalogowanych, a później dla pozostałych. Od tej pory każde otwarcie pliku w systemie będzie wiązało się ze sprawdzeniem limitów.

W większości przypadków informacje o limitach danego użytkownika będą przechowywane w pamięci, gdyż często użytkownicy otwierają wiele plików jeden po drugim.

W pamięci informacja o limitach jest trzymana jako hash z uid. jeżeli jeden użytkownik dokonuje wielu operacji dyskowych jedna po drugiej, quota będzie więc sprawdzana bardzo szybko.

Teraz, za każdym razem gdy następuje dostęp do bloku, albo jakiś i-węzeł jest tworzony lub zwalniany, program zarządzający quotą jest o tym informowany i może przerwać operacje. Badania wykazały, że koszt sprawdzania quoty stanowi bardzo mały procent czasu zapisywania nowego bloku na dysk.