Linux за българи: Форуми

Нетехнически теми => Коментар => Темата е започната от: elFO в Dec 10, 2012, 02:29



Титла: Въпроси за файловите системи.
Публикувано от: elFO в Dec 10, 2012, 02:29
Понеже съм много любопитен и искам да знам повечко неща за това как работи аджебъ една "отворена" ОС смятам да задам на тукашните потребители едни въпроси за файловите системи. Понеже нищо не ми говори, какво точно е файловата система имам няколко въпроса, които се надявам да не попаднат в графа глупави.

1. Какво всъщност представлява файловата система и каква функция изпълнява точно в една ОС? (Сега въпроса може да изглежда тъп, но на мен и досега не ми стана ясно какво точно с файловете правят тези файлови системи. Подреждат ли ги, сортират ли ги, търсят ли ги, извикват ли ги и прочие въпроси, които в момента не ми идват на акъл понеже не се сещам какво да питам, защото не знам много).

2. Има ли някакви принципни различия в различните файлови системи, освен това, че са написани на различни езици и различни версии на тези езици? Т.е. едни файлови системи да изпълняват определени задачи, които други не могат, примерно...

3. Този въпрос вероятно ще възникне по-късно на базата на усвоените нови знания.  ;D


Титла: Re: Въпроси за файловите системи.
Публикувано от: backinblack в Dec 10, 2012, 02:54
Абе, и аз не разбирам от файлови системи, яма образно казано, представи си кора с яйца!
Яйцата са ти файлове, а кората са файлова система и всеки файл, требе да си намери място.
Ама представи си, че яйцата на пъдпъдък са по малки от яйцата на кокошка и още по малки от тези на щраус и всите, требе да се поместят комфортно на кората!
Та 'начи, тази кора, требе да е с оптимална форма за да се чувстват всите комфортно. Та, е това е файлова система! Различните кОри, дават различен комфорт за различните Яйца ;) , кЪпиш ;) ?


Титла: Re: Въпроси за файловите системи.
Публикувано от: dejuren в Dec 10, 2012, 07:55
И понеже на мен аналогията с кората с яйцата ми хареса, ще опиша накратко как работи това в случая на Шиндошс файлови системи: Имаме една кора с много малки дупки, и като трябва да вкараме какво да е яйце, го цепим на парчета да се намести по дупките. Последната дупка я е пълна в тоя случай, я не, ама страшно няма - в нея шиндошс ще вкара парче от следващото яйце. Пък като извади потребителя някое то ще му се сглабя в движение. А ако трябва да се сложи ново - първо се заемат местата на извадените яйца, като свърши мястото направо в кората се тиква бележка къде да се търси следващото парче от яйцето и така, докато всичко е добре и "в името на потребителя" фрагментирано. С други думи повече прилича на омлет, отколкото на кора с яйца.  :D

За сравнение ext2,3,4 вариантите - има чекмедже за бележки, и никакви такива две яйца в една дупка. На всяко му се търси достатъчно голямо място за да бъде наместено, в чекмеджето се слага бележка кое яйце къде точно се намира, ако някое се махне новото може да бъде сложено на негово място само ако е по-малко или равно.


Титла: Re: Въпроси за файловите системи.
Публикувано от: laskov в Dec 10, 2012, 09:42
И понеже май не е отговорено на всичките ти въпроси (поздравления за backinblack и dejuren за примера с яйцата! Много ми хареса! :) ), може да хвърлиш един поглед и на статиите в Уикипедия: Файлова система ($2) и Comparison of file systems ($2). Ако знаеш други езици, освен български, поглеждай и другите версии на страниците в уикипедия.


Титла: Re: Въпроси за файловите системи.
Публикувано от: backinblack в Dec 10, 2012, 15:09
Радвам се, че съм успял да ви развеселя :D , но заслугата беше на добрата компания която току-що бях изпратил и многото ракия със салата и мръвка която бях поел :D .

А сериозно, радвам се, че има хора които търсят и по-задълбочени знания по въпроси свързани с това как работят нещата, но за много неща има доста инфо по блогове и разни други уроци и във форум е добре да се изяснява нещо което е прочетено, до някъде осмислено, но нещо нещо не достига за пълното осмисляне.

Лека забелжчица към питащия ;)


Титла: Re: Въпроси за файловите системи.
Публикувано от: UBIGI в Dec 10, 2012, 16:57
Абе, и аз не разбирам от файлови системи, яма образно казано, представи си кора с яйца!
Яйцата са ти файлове, а кората са файлова система и всеки файл, требе да си намери място.
Ама представи си, че яйцата на пъдпъдък са по малки от яйцата на кокошка и още по малки от тези на щраус и всите, требе да се поместят комфортно на кората!
Та 'начи, тази кора, требе да е с оптимална форма за да се чувстват всите комфортно. Та, е това е файлова система! Различните кОри, дават различен комфорт за различните Яйца ;) , кЪпиш ;) ?
[_]3 [_]3 [_]3 [_]3 [_]3
Приемера ти е култов и наместо даже и да сме използвали Валяк за наместване по паважа на неподходящите ... !

 O0


Титла: Re: Въпроси за файловите системи.
Публикувано от: elFO в Dec 13, 2012, 01:27
И понеже май не е отговорено на всичките ти въпроси (поздравления за backinblack и dejuren за примера с яйцата! Много ми хареса! :) ), може да хвърлиш един поглед и на статиите в Уикипедия: Файлова система ($2) и Comparison of file systems ($2). Ако знаеш други езици, освен български, поглеждай и другите версии на страниците в уикипедия.

Всъщност след като пуснах темата проверих отново в Google и наистина излезе тази доста приятна статия за файловите системи и то на български. Преди когато съм търсел (не чак толкова отдавна) не я е имало и затова съм пропуснал да проверя отново.
Иначе обясненията на БлекИнБлек и на Дежурен ме разцепиха и ми доизясниха неща, дето не ги пише в статията на български. ::)

А дали има възможност файловата система да бъде част от ядрото , независимо дали е Linux, BSD или някое друго (хипотетично)? На мен поне от това, което ми обяснихте и това, което прочетох останах с подобно впечатление.


Титла: Re: Въпроси за файловите системи.
Публикувано от: dejuren в Dec 13, 2012, 05:29
А дали има възможност файловата система да бъде част от ядрото , независимо дали е Linux, BSD или някое друго (хипотетично)? На мен поне от това, което ми обяснихте и това, което прочетох останах с подобно впечатление.
Файловата система е начина по който ядрото записва информацията върху диска за свои нужди. Това което потребителя вижда, обръщайки се към ядрото е тази информация ивлечена по обратен път и представена като файлове и директории. Мисля това отговаря на въпроса.


Титла: Re: Въпроси за файловите системи.
Публикувано от: laskov в Dec 13, 2012, 21:19
А дали има възможност файловата система да бъде част от ядрото , независимо дали е Linux, BSD или някое друго (хипотетично)? На мен поне от това, което ми обяснихте и това, което прочетох останах с подобно впечатление.
Ако ти трябва отговор, ще трябва да си доизясниш въпроса. Ето ти един отговор, който може да се окаже далеч, от това, което питаш: При конфигурирането и компилирането на ядрото, поддръжката за дадена файлова система може да се вгради в ядрото или да се компилира като модул, който ядрото зарежда при нужда, или да се изключи.
А ето и друг: Поддръжката на файловата система proc е вградена в ядрото.


Титла: Re: Въпроси за файловите системи.
Публикувано от: romeo_ninov в Dec 14, 2012, 11:16
А дали има възможност файловата система да бъде част от ядрото , независимо дали е Linux, BSD или някое друго (хипотетично)? На мен поне от това, което ми обяснихте и това, което прочетох останах с подобно впечатление.
Файловата система е начина по който ядрото записва информацията върху диска за свои нужди. Това което потребителя вижда, обръщайки се към ядрото е тази информация ивлечена по обратен път и представена като файлове и директории. Мисля това отговаря на въпроса.
Не мисля че дефиницията " ядрото записва информацията върху диска за свои нужди" е вярна. Ядрото не иска да пази информация върху диска, то няма такива нужди. Потребителя има такива нужди (да пази онформация във файлова система)
Иначе дефиницията на файлова система би трябвало да звучи примерно така: организация на съхранение на информация върху носител, като органицацията може да бъде под формата на йерархична или плоска структура (СИМ картите)


Титла: Re: Въпроси за файловите системи.
Публикувано от: dejuren в Dec 14, 2012, 13:51
Не мисля че дефиницията " ядрото записва информацията върху диска за свои нужди" е вярна. Ядрото не иска да пази информация върху диска, то няма такива нужди. Потребителя има такива нужди (да пази онформация във файлова система)
Ловиш се за думата. Ако пренебрегнем чия точно е нуждата да се пази информацията върху диска в крайна сметка това което съм казал е вярно - ядрото я записва и извлича оттам.


Титла: Re: Въпроси за файловите системи.
Публикувано от: romeo_ninov в Dec 14, 2012, 14:01
Не мисля че дефиницията " ядрото записва информацията върху диска за свои нужди" е вярна. Ядрото не иска да пази информация върху диска, то няма такива нужди. Потребителя има такива нужди (да пази онформация във файлова система)
Ловиш се за думата. Ако пренебрегнем чия точно е нуждата да се пази информацията върху диска в крайна сметка това което съм казал е вярно - ядрото я записва и извлича оттам.
Не се ловя за думата, а за начина на изразяване. Ако искаш да обясниш нещо на някого трябва да се стремиш да се изразяваш максимално прецизно :)


Титла: Re: Въпроси за файловите системи.
Публикувано от: dejuren в Dec 14, 2012, 15:15
Не се ловя за думата, а за начина на изразяване. Ако искаш да обясниш нещо на някого трябва да се стремиш да се изразяваш максимално прецизно :)
Негативо, "максимално прецизно" е за академичен спор, а за обяснение е "максимално просто". Ако баба ми схване какво е файлова система с кора яйца и всеки друг ще може.


Титла: Re: Въпроси за файловите системи.
Публикувано от: romeo_ninov в Dec 14, 2012, 15:36
Не се ловя за думата, а за начина на изразяване. Ако искаш да обясниш нещо на някого трябва да се стремиш да се изразяваш максимално прецизно :)
Негативо, "максимално прецизно" е за академичен спор, а за обяснение е "максимално просто". Ако баба ми схване какво е файлова система с кора яйца и всеки друг ще може.
Изместваш темата, никой не говори за това какви изразни средства и сравнения ще се ползват за обяснението. Говорим за това че даже и ако говорим за кори с яйца трябва да сме прецизни във фактологията. Иначе ще бъде разбираемо за всички, но разбрано грешно


Титла: Re: Въпроси за файловите системи.
Публикувано от: Acho в Dec 14, 2012, 15:44
Излишни спорове и локуми. Поздрави.


П.С. Не е протест, ама няма смисъл от нататъшни спорове. И към двама Ви - респект за знанията и опита.


Титла: Re: Въпроси за файловите системи.
Публикувано от: romeo_ninov в Dec 14, 2012, 15:49
Излишни спорове и локуми. Поздрави.
Добре, Ачо, това, което пишем са локуми. А защо тогава не протестираш към 90% от постовете, които по твоята класификация биха били боклук?
Надявам се всички осъзнават че за да се приобщават хора към идеята на отворения код трябва да им се предлагат точни и верни обяснения (освен прости и нагледни)


Титла: Re: Въпроси за файловите системи.
Публикувано от: gat3way в Dec 15, 2012, 01:53
Честно казано и на мен не ми допадат аналогиите с кори с яйца. Съсвем технически погледнато, ext* файловите системи далеч не могат да се похвалят от липса на фрагментация, същевременно в това понятие могат да се вложат доста различни неща. Файловете в ext* обикновено са фрагментирани, няма вариант файловата система да гарантира, че файлът ще е изписан върху последователни блокове, просто забравете за това. Сега въпросът е какво се разбира под "фрагментация", при FAT примерно файлът може да е доста разпръснат из блоковете по диска,  по ахмашки начин, просто където има място. В ext3 някой се старае да се изписва доколкото може в съседни блокове, това не винаги е възможно и често е проблемно. От друга страна имаме buffer cache, който донякъде обезсмисля цялата тупурдия. От трета страна също имаме SSD дискове, където seek time-а е от никакво значение и там фрагментацията като цяло не играе никаква роля. Айде сега да се върнем пак на корите с яйцата :)


Титла: Re: Въпроси за файловите системи.
Публикувано от: elFO в Dec 15, 2012, 04:39
А дали има възможност файловата система да бъде част от ядрото , независимо дали е Linux, BSD или някое друго (хипотетично)? На мен поне от това, което ми обяснихте и това, което прочетох останах с подобно впечатление.
Ако ти трябва отговор, ще трябва да си доизясниш въпроса. Ето ти един отговор, който може да се окаже далеч, от това, което питаш: При конфигурирането и компилирането на ядрото, поддръжката за дадена файлова система може да се вгради в ядрото или да се компилира като модул, който ядрото зарежда при нужда, или да се изключи.
А ето и друг: Поддръжката на файловата система proc е вградена в ядрото.

Това е супер култов отговор. 8) Отговаря напълно на върпоса ми. Значи, че в ядрото всъщност има файлова система, но има опция тя да бъде заменена с друга по-желана.
Иначе преди ден-два се замислих, че тая кора с яйца ще да е бая крива. ;D


Титла: Re: Въпроси за файловите системи.
Публикувано от: romeo_ninov в Dec 15, 2012, 07:57
Това е супер култов отговор. 8) Отговаря напълно на върпоса ми. Значи, че в ядрото всъщност има файлова система, но има опция тя да бъде заменена с друга по-желана.
Иначе преди ден-два се замислих, че тая кора с яйца ще да е бая крива. ;D
Ядрото няма файлова система, на него не му трябва. Ядрото поддържа под формата на модул или вградено определени файлови системи в зависимост от нуждите


Титла: Re: Въпроси за файловите системи.
Публикувано от: laskov в Dec 15, 2012, 10:15
... Значи, че в ядрото всъщност има файлова система, но има опция тя да бъде заменена с друга по-желана...
Да, има поддръжка на файлова система. Страничен ефект от това е, че може на една система, работила досега с едно ядро, при зареждане на друго ядро, да се окаже, че в новото няма поддръжка за използваната файлова система и поради това да не се "виждат" данните на дисковете.


Титла: Re: Въпроси за файловите системи.
Публикувано от: backinblack в Dec 15, 2012, 11:12
Цитат
Съсвем технически погледнато, ext* файловите системи далеч не могат да се похвалят от липса на фрагментация

Зачудих се, защо никъде не съм срещал съвети от рода на: От време на време, пускайте тази или онази  команда, за да се дефрагментира файловата система, с което да се ускори работата на системата Ви! Или пък, защо няма създадени от никой графични инструменти за тази цел както е за Уиндоус!!!
На приятели с Уиндоус с не дефрагментирано никога D: повече от 1 година, до такава степен е фрагментирало от сваляне на филми и триене после, че се оправя само с форматиране.
Е, като е по-мощен хардуера не се забелязва чак толкоз фрагментацията, но на по-стария има чувствителна разлика като се дефрагментира С и Д.


Титла: Re: Въпроси за файловите системи.
Публикувано от: Mitaka в Dec 15, 2012, 12:07
Абе то много неща не са даани като съвети :)
Фрагментация има навсякъде, и да - ако диска ти е SSD фрагментацията няма никакво значение, защото там няма "глави", "сектори" и т.н.
Един SSD диск вдига производителността в пъти, например с Intel 520 серия SSD имам около 400GB/s read, и 250GB/s write.

И като говорим за файлови системи и организиране на файлови системи, SSD-та, HDD-та и т.н., ето какво представлява така нареченият Fusion Drive от Apple:

SSD с размер, да кажем 128GB, и HDD, например - 1TB.
Затворени са в общ корпус. И са обединени в LVM на ниво firmware, т.е. нещо като fake RAID контролерите. Същото нещо се постига ако имаш SSD и HDD - спокойно може да се обединят, и то на всяка ОС, с изключение на Windows (то може и на виндовс да може да се направи, ама аз не знам как)... та, производителността на това чудо яко бута производителността на SSD, а в някои случаи дори е по-бавно от ползването на HDD.
Не знам на кой зъл гений му е хрумнало да го направи...  ама определено е нещо, за което НЕ бих си дал парите...


Титла: Re: Въпроси за файловите системи.
Публикувано от: gat3way в Dec 15, 2012, 12:55
Цитат
Зачудих се, защо никъде не съм срещал съвети от рода на: От време на време, пускайте тази или онази  команда, за да се дефрагментира файловата система, с което да се ускори работата на системата Ви! Или пък, защо няма създадени от никой графични инструменти за тази цел както е за Уиндоус!!!

Защото фрагментацията е далеч по-малък проблем за тези файлови системи, в сравнение с FAT, както и защото е доста по-трудно това да се случи с ext* файлова система, особено монтирана rw. Преди време имаше програма за дефрагментиране на ext2 файлови системи и налагаше да са размонтирани преди това.

Иначе, не е възможно да отсъства фрагментация. Към един момент става и непрактично да ти пука за фрагментацията. Разликата е че ext3 поне се старае когато няма как да се избегне това, да намери възможно най-"близкия" блок, на който да дозапише файла. FAT обикновено го прави където му падне. Съответно, въпреки че в двата случая има фрагментация, при ext, seek time-а е по-нисък. Другият момент е че при ext, блоковете на които се записан файла се описват в една таблица, на едно място на диска (когато файла стане по-голям обаче вече има индиректно достъпване на други таблици). При FAT няма такова нещо - там се пази само първия блок на който е файла, за всеки следващ блок къде е, ходиш да индексираш FAT таблицата

В крайна сметка, фрагментацията сама по себе си не е голям проблем. Проблемът е seek-ването по диска когато четеш файла и поради кофти дизайна, при FAT това става по-често. Фрагментацията като понятие иначе си съществува и при двете файлови системи.

Съответно последиците не са толкова жестоки ако можеш да кешираш достатъчно много (често използвани) блокове от диска в рамта. А ако ползваш диск без механика - SSD такъв примерно, тогава фрагментацията няма никакво значение.