• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Jak wygląda struktura katalogów od strony sprzętowej/systemowej?

Object Storage Arubacloud
0 głosów
260 wizyt
pytanie zadane 19 listopada 2022 w Systemy operacyjne, programy przez snajper414 Nowicjusz (140 p.)
zamknięte 19 listopada 2022 przez snajper414

Witajcie!

Trafiłem na forum z pytaniem na które nie udało mi się znaleźć odpowiedzi w Google. I wiem, że na pewno gdzie takowa jest ale tak właściwie to nie mam pojęcia co wpisać do wyszukiwarki. Interesuje mnie to jak są tworzone i odczytywane katalogi na dyskach. Google zazwyczaj zwraca informację o tym jak działa struktura drzewa katalogów w różnych systemach i jak tworzy się foldery - na szczęście to już wiem :) Ciekawi mnie natomiast to jak to działa od strony sprzętowej/systemowej. Niekoniecznie od strony użytkownika. Domyślam się, że jest to mocno skomplikowane dlatego czy mógłby mnie ktoś pokierować do filmu/stronki/książki gdzie mógłbym sobie poczytać/posłuchać i się więcej dowiedzieć na ten temat? :)

A jeśli i tutaj moje pytanie jest mało precyzyjne to postaram się opisać bardziej szczegółowo o co mi dokładnie chodzi. Jeśli ktoś ma ochotę odpowiedzieć - będzie mi bardzo miło. Ale wystarczy mi jakiś miły link gdzie mógłbym sobie zgłębić wiedzę - bo głównie tego szukałem w Internecie :)
 

A oto przydługa i przynudnawa lista moich pytań:

  • Co się dzieje kiedy tworzę folder na dysku? Czy jest to coś w rodzaju pliku? Jeśli tak to gdzie jest on zapisywany? W jakiejś wydzielonej sekcji przeznaczonej do "czytania" dysku? Czy może tak samo jak zwyczajny plik, na wolnym sektorze pośród innych fragmentów danych?
  • Kiedy zapisuję plik do folderu to jak jest on powiązany z daną lokalizacją? Czy to w folderze (tym pliczku) jest tworzony odnośnik do odpowiedniego pliku/sektoru na dysku? A może wprost przeciwnie i to właśnie każdy plik zapisywany na dysku jest dodatkowo opisany informacją do jakiego katalogu powinien przynależeć?
  • Co się dzieje kiedy podłączam dysk lub otwieram lokalizację w eksploratorze? System szuka najpierw tych informacji o strukturze katalogów szukając tych pliczków zawierających informacje o folderach? A może przy uruchomieniu systemu/podłączeniu dysku ten jest najpierw odczytywany i wtedy system tworzy strukturę katalogów którą zapisuje w pamięci ram? 
  • Czy sam sposób tworzenia katalogów może mieć wpływ na czas dostępu do danych nań zapisanych? Mam na myśli: podobnie jak fragmentacja plików która spowalnia ich odczyt. To czy "dorabianie" kolejnych katalogów (w przypadku przeogromnych baz danych) może sprawić, że z biegiem lat, te foldery będą się "gubiły" pomiędzy innymi sektorami i w efekcie "trudniej" będzie odczytać takową strukturę w porównaniu do tych samych danych ale utworzonych w kolejności: "najpierw tworzone są katalogi a dopiero później jest dokonywany zapis na dysk"?

Pozdrawiam tych którzy tutaj dotrwali! I przepraszam jeśli przesadziłem z długością lub źle dobrałem kategorię.

komentarz zamknięcia: Wiem gdzie dalej szukać :)
4
komentarz 19 listopada 2022 przez SzkolnyAdmin Szeryf (86,360 p.)
Trochę informacji znajdziesz, gdy poszukasz pod hasłem "system plików".
3
komentarz 19 listopada 2022 przez Oscar Nałogowiec (29,320 p.)
edycja 19 listopada 2022 przez Oscar

@snajper414, Jest wiele różnych filesystemów. Niektóre są "uniwersalne", niektóre optymalizowane względem różnych parametrów.  I to właśnie system plików decyduje jak to pracuje. Poczytaj o historii komputerów. Ciągle to FAT jest jednym z najprostszych używanych filesystemów, jednak pierwsze wersje FAT nie miały możliwości tworzenia katalogów. Pozostałością jest to, że katalog główny dysku jest obsługiwanu nieco inaczej - ma z góry ustaloną pojemność i znacznie ograniczoną liczbę wpisów w tym katalogu. Można mieć praktycznie pusty dysk a nie móc stworzyć pliku w katalogu głównym. W podkatalogach można bez problemu - bo one są "plikami" i mogą "rosnąć" w miare potrzeby. W sumie w FAT katalog, to taki plik z odpowiednią flagą (sam system, na niskim poziomie, musi o tym wiedzieć). Składa się z wpisów o kolejnych plikach, ich numer startowego sektora i inne metadane. Tak więc, odpowiedź na drugi punkt, w przypadku FAT jest pozytywna - wpis o danym pliku znajduje się w danym podkatalogu, nigdzie więcej.

W linuxie masz do dyspozycji całą kolekcie filesystemów, które można użyć. Tam kolejność jest taka, że gdy podłączasz dysk, najpierw jest on wykrywany przez driver odpowiedniej szyny (USB, IDE, SATA itp), odczytuje on informacje o dysku i tworzy się w systemie urządzenie (aktualnie typowo /dev/sdX, gdzie X - to kolejna literka). Umożliwia to tzw dostęp raw do dysku - czyli czytanie i pisanie poszczególnych sektorów, bez użycia file systemu. Potem odczytywana jest tablica partycji (o ile jest) i tworzone są "podurządzzenia" /dev/sdXN - N to numer partycji. Są to dalej urządzenia raw tyle że ograniczone do poszczególnych partycji. I w sumie tyle dzieje się samoczynnie. Użytkownik może teraz wydać polecenie mount, które realizuje odczytanie file systemu i "podłączenie" drzewa katalogów z partycji nowego dysku we wskazane miejsce (katalog) istniejącego drzewa. Oczywiście w środowiskach graficznych często pracują jakieś serwisy, które pilnują podłączania nowych dysków i same robią ten mount. Kwestia szybkości zwykle rozwiązywana jest poprzez cachowanie poszczególnych sektorów dysku. W lkinuxie cała wolna pamięć jest używana do tego celu - czasem cały kilku GB pendrive może być cachowany. A potem odmontowanie takiego pendrive trwa bo trzeba zapisać dane z cache.

Filesystem możesz wręcz napisać sam, pod linuxem jest to o tyle łatwe, że jest FUSE (filesystem in user space) umożliwiający napisanie filesystemu nie jako modułu jądra a jako zwykłego programu.

Kiedyś pracowałem w firmie, która opracowywała dekodery telewizyjne i był problem nagrywania/odtwarzania programów TV. W tamtych czasam dysk 10GB to był duży dysk, więc nie było miejsca na wiele nagrań (ok 1GB na godzine nagrania). Stworzyliśmy własny, prosty system plików, który optymalizowany na przechowywanie nielicznych plików, ale wielkich. Tylko z katalogiem głównym, bez podkatalogów, bo kilkudziesięciu plików nie było sensu dzielić na katalogi. W katalogu był przechowywany tylko numer początkowego sektora, by  odczytać metadane pliku trzeba było odczytać początkowy sektor dysku - tak była zapisane nazwa programu, nazwa stacji, czas itp metadane.

komentarz 19 listopada 2022 przez snajper414 Nowicjusz (140 p.)
Dziękuję wszystkim za pomoc! Szczególnie @Oscar za tak wyczerpującą odpowiedź. Troszkę rozjaśniło i teraz wiem czego dalej szukać woęc zamykam :)

1 odpowiedź

+2 głosów
odpowiedź 19 listopada 2022 przez rafal.budzis Szeryf (85,260 p.)

Odpowiedzi będą różne w zależności od system plików. Inaczej to działa dla FAT a inaczej dla NTFS czy ext.

Podczas tworzenia dużych zbiorów danych warto zwrócić uwagę na ograniczania systemu plików. Np ile można stworzyć plików w jednym folderze lub jak duży może być jeden plik. 

Czasem aby obejść te ograniczania wprowadza się pod foldery. Np. zamiast tworzyć plik 

91162629d258a876ee994e9233b2ad87.jpg

robi się dodatkowe katalogi na podstawie początku nazwy pliku

91/16/91162629d258a876ee994e9233b2ad87.jpg

 

https://linuxporady.pl/maskymalna-ilosc-plikow-na-partycjach-typu-ext-ntfs-fat32/ 

Podobne pytania

0 głosów
0 odpowiedzi 165 wizyt
pytanie zadane 23 lutego 2018 w PHP przez Bakr Mądrala (6,850 p.)
0 głosów
2 odpowiedzi 415 wizyt
pytanie zadane 29 marca 2019 w C i C++ przez Skidrowed Nowicjusz (120 p.)
0 głosów
1 odpowiedź 704 wizyt
pytanie zadane 20 maja 2016 w PHP przez Niespecjalny Gaduła (4,180 p.)

92,576 zapytań

141,425 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...