# pingwinowanie ostatnie:<<
# zad 4

## Co to wgl jest
* algos <!--podjebany--> z bsd stosowany w m.in. EXT do przydzielania bloków dyskowych i i-node'ów
* Próbuje rozdzielać "wysokopoziomowe" katalogi, zakłądając że są one całkowicie niezależne. (Wysokopoziomowe -> takie w /, ale jest również flaga w i-node która umożliwia traktowanie dowolnego folderu jako wysokopoziomowy)
* Kiedy coś dodajemy w nie wysokopoziomowym katalogu, wtedy algorytm próbuje wsadzić to do tego samego cylindra w którym jest rodzic
* Kiedy próbujemy dodać katalog A do katalogu wysokopoziomowego B, algos skupia się na tym żeby do tego samego cylindra co B wszedł nie tylko folder A, ale również cały jego content
* Jeśli nie jest to możliwe to cały folder A trafia do innego cylindra
* Celem jest osiągnięcie jak najlepszej lokalności dla plików które rzeczywiście są ze sobą powiązane
## Jakie inne alokatory?
### Cylinder Group Allocator
* Poprzednik Orlova, stara się zminimalizować fragmentację dysku, ale robi to brutalnie -> wszystko jak najbliżej, orlov blisko siebie stara się dać tylko powiązane elementy
* Dzieli dysk na grupy cylindrów, gdzie każda grupa ma pewną liczbę bloków i i-nodeów
* Jak wyżej wspomniane stara się wszystko upakować jak najbliżej, najlepiej w jednej grupie cylindrów
### Extents Allocator
* wprowadzamy koncept **extents**, czyli ciągłych bloków dyskowych przypisanych do plików
# zad 10

```bash=
dd if=/dev/zero of=encrypted.img bs=1M count=100
sudo mkfs.ext4 -O encrypt encrypted.img
sudo mkdir /mnt/encrypted_fs
sudo mount encrypted.img /mnt/encrypted_fs
sudo cp /etc/mke2fs.conf /mnt/encrypted_fs
sudo mkdir /mnt/encrypted_fs/encrypted_dir
sudo e4crypt add_key /mnt/encrypted_fs/encrypted_dir
sudo mv /mnt/encrypted_fs/mke2fs.conf /mnt/encrypted_fs/encrypted_dir
sudo umount /mnt/encrypted_fs
sudo debugfs encrypted.img
debugfs: cd encrypted_dir
debugfs: ls -l
debugfs: cat <13>
```