OSDev

для всех
Текущее время: 23 май 2018, 11:53

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Разработка собственной ФС
СообщениеДобавлено: 17 апр 2018, 22:51 

Зарегистрирован: 04 мар 2018, 21:34
Сообщения: 41
На osdev.org крайне мало информации об этом, есть лишь реализация готовых файловых систем.
Есть ли книги/статьи/мануалы собственно о построении фс?

Правильно ли понимаю что для начала надо получить доступ к хранилищу, а после задача укладывается в распределении места под "файлы" + фрагментация и прочее? И почему не все существующие фс поддерживают файлы более 4 гб? Связано ли это с типом хранилища?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка собственной ФС
СообщениеДобавлено: 18 апр 2018, 03:21 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1344
Откуда: Зеленоград
Большая часть современных ФС появилась эдак 100500 лет назад, когда никто особо не заморачивался с максимальными размерами файлов -- ибо диски всё равно были мелкие. Так что ограничения имеют исторический характер, и отбросить их не всегда можно из-за необходимости сохранения совместимости.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка собственной ФС
СообщениеДобавлено: 18 апр 2018, 13:31 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 944
Откуда: Дагоба
Бо́льшую часть информации, необходимой для создания ФС, можно почерпнуть из сравнительной статьи википедии: https://en.wikipedia.org/wiki/Comparison_of_file_systems. Там имеются количественные ограничения, список поддерживаемых фич со ссылками на описание этих фич и ссылки на статьи по каждой конкретной ФС.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка собственной ФС
СообщениеДобавлено: 18 апр 2018, 22:48 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1088
Для начало не плохо понять, что такое файловая система.
С одной стороны это структура на диске.
С другой стороны это набор прикладных программ для создания и перемещения файлов (ls, cp, mkdir, chekfs, format ...)
С третий это набор API для осуществления работы над файлами к примеру часть стандарта POSIX или как класс TFileSysDriver в ОС ultibo.

Во первых предлагаю ознакомится с устройством UNIX это минимально возможная ФС.
http://bitsavers.trailing-edge.com/pdf/ ... _Jun72.pdf
Про более современный подход можно почитать в
Бах Морис-Архитектура операционной системы UNIX-Prentice-Hall (1996)

Но он не является современным. Есть теория СУБД современные файловые системы построены на их принципах. Начиная к примеру с Б+ деревьев которые как известно оптимизированы по числу обращений к связке диск+кэш с её не равномерной скоростью доступа.

Заканчивая теорией транзакций и снепшотов, time machine и версионных СУБД.

Правда как говорит голос разума теория СУБД не может быть применена к теории ФС напрямую. В СУБД за её работу отвечает 1 человек один архитектор и он знает что у него творится в подчинение. Когда как ФС такого нет тут неизвестно какую программу кто поставил и как она будет работать. Приходится делать защиту.

Плюс куча других вопросов. К примеру как учесть в ФС экспоненциальный рост объемов жёстких дисков и данных. Как подменить корень (fackroot), как сделать безопасную запись для дисков с горячим отключением, как сделать кооректное закрытие хэнделов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка собственной ФС
СообщениеДобавлено: 19 апр 2018, 10:22 
Аватара пользователя

Зарегистрирован: 14 май 2012, 22:17
Сообщения: 99
Вхождение в тему можно начать отсюда:
http://www.nobius.org/dbg/practical-fil ... design.pdf
Книга старая, но хорошо объясняет базовые детели с точки зрения разработчика ФС. Находил куски из этой книги на русском но не самые интересные (из начала, где объясняют совсем базовую базу).

Когда коговорят, что надо "делать ФС на СУБД" имеют в виду не то, что надо брать СУБД, все механизмы СУБД а файлы хранить в BLOB-ах. Речь о том, что отттуда нужны базовые механизмы для управление метаданными - журналы, снапшоты, оптимизированный поиск, оптимизированное чтение\запись. ФС в отличии от СУБД не требуется оперировать большим количеством разношёрстных данных - для ФС идеально это хорошее key-value хранилище от годной nosql СУБД. Это моё мнение, которое подтверждается дизайном относительно новых ФС: ReFS, ZFS.

Самое лучшее - взять готовое, разобратся и адаптировать себе. Совместимость штука очень важная. Лучший кандидат - ext4.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка собственной ФС
СообщениеДобавлено: 13 май 2018, 10:31 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
grenders22 писал(а):
На osdev.org крайне мало информации об этом, есть лишь реализация готовых файловых систем.
Есть ли книги/статьи/мануалы собственно о построении фс?

вот и я не пойму информация элементарная всё достаточно адекватно и просто, но пишут гигантские тома листать замучаешься эту документацию.
лучше всего конечно стандарт читать там хоть поменьше написано.
grenders22 писал(а):
Правильно ли понимаю что для начала надо получить доступ к хранилищу, а после задача укладывается в распределении места под "файлы" + фрагментация и прочее?

главные места ФС это первый сегмент(заголовок), место где указано свободное/занятое место на диске(его ещё банком называют), формирование списка элементов в папке(и конкретно как этот элемент будет сформирован), хранение содержимого файлов(фрагментация, архивация и т.п.) и самое последнее наверно журналирование.
grenders22 писал(а):
И почему не все существующие фс поддерживают файлы более 4 гб? Связано ли это с типом хранилища?

просто в 32-х битной цифре помещается 4гб конечно тщательно почитав документацию можно заметить что поддерживают чисто теоретически,
но всем окружающем говорят что нет неподдерживается.

скорее всего то что пытаются разработать уже есть, просто об это ни кто не знает. :lol:


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB