В интервью я наткнулся на этот вопрос. Он спросил меня: «Создайте файловую систему Linux.«Он попросил дать мне все, что мне нужно, структуры данных и все такое. Может ли кто-нибудь помочь мне в этом, как я могу решить эту проблему? Просто дайте мне необходимые ссылки, которые я могу прочитать и сослаться. Я прочитал в википедии но я все еще не понимаю, как правильно ответить на этот вопрос. Чего он может ожидать? Мне нужны основные сведения, которые использует файловая система Linux. Как я могу думать о файловой системе, если я хочу ее спроектировать.
Заранее спасибо.
Это - огромная тема, и это кажется, что Вы запускаете внизу. Необходимо понять то, что - файловая система, прежде чем можно будет надеяться разработать тот.
К Ядру файл или каталог является просто inode, связанным с суперблоком. inode хранит информацию местоположения данных, а также атрибуты о владении, полномочиях, и т.д. Это определяет объем данных. Параллельный всему этому древовидная структура dentries. Они дают имена файлов (hardlinks) и положения к inodes. Вместе ссылки и узлы дают Вам файловую систему, которая преобразовывает от пути ни до чего-и-.
Это жестоко быстро, скользят, но это - элементы, которые необходимо было бы разработать. Вы видите от реальных примеров (Источник Ядра Linux заметно свободен), но там существуют некоторые довольно достойные документы:
На практике, хотя, если бы необходимо было записать файловую систему, Вы, вероятно, обратились бы к чему-то как fuse-python
и запишите один в день. Не столь производительный как надлежащие файловые системы, но быстрый для записи для многих задач.