|
Написание Файловой Системы, С использованием ООП |
|
|
|
Jan 24 2013, 04:15
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
В продолжение темыГоспода, а давайте порассуждаем на тему написания FAT16/32 с применением ООП  Как вы уже догадались, это моя идея фикс. Вообще подход ООП у меня уже удачно работает с сетью RS485, где есть родитель - драйвер устройства, где определены базовые методы, виртуальные методы, и общие переменные (например счетчики ошибок и т.п.). Какждый конкретный драйвер устройства получается простым наследованием базового и определением виртуальных функций по месту, новых, присущих только этому устройству, методов. Такой же подход работает и в GUI. А как с ФС? Скажу по секрету, я плохо себе представляю написание ФС, никогда этим не страдал  Но очень хочу. Готовую ФС (FaFS) использовал. Вижу следующие плюсы решения: 1. Можем для каждого "привода" завести объект ФС CODE TFATFS sdFS; TFATFS hddFS; 2. Упрощается реализация когда. Ну проще читать его, чтоли... При этом не нужно заморачиваться со структурами и указателями на них, трудно будет перепутать (фактически невозможно) файловую систему на паре SD-карт (а несколько MCI на МК уже и не редкость). Или не ошибемся, когда будем работать с файлами на NAND, DATA FLASH и SD-карте. Конечно, это уже косметические достоинства. 3. Драйвер конкретного накопителя можно просто унаследовать "файловой системой", тогда будет один объект для работы с файлами. Недостатки: 1. Новый код, который нужно будет долго и упорно тестировать. Кстати, люди пишут свои ФС, как идет тестирование? Может быть есть стандартные методики/инструменты/файлы? Как-то так.
--------------------
Выбор.
|
|
|
|
|
Jan 24 2013, 05:25
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (andrewlekar @ Jan 24 2013, 12:37)  Вот, полистайте: http://lwn.net/Articles/444910/Если вкратце, то дизайн VFS уже объектно-ориентированный и чего-то радикально нового Вы тут не изобретаете. Разве что на С++ перепишете. Спасибо, прочту! Радикальное новое изобретать в мои планы и не входило вовсе. Я увлечен идеей scmRTOS, и пишу всего лишь под нее. В плане попробовать тоже самое для TCP/IP. Эта идея у меня достаточно давно. Красиво выходит: CODE T_MACDrv | T_ARPService + T_IPService | T_UDPService + T_TCPService | Необходимые сервисы ( T_HTTPService...) Сколько надо, столько и наштамповал. Заменил драйвер на другой, и хоть TCP гоняй по последовательному порту... Но это уже другая тема
--------------------
Выбор.
|
|
|
|
|
Jan 26 2013, 16:50
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(haker_fox @ Jan 24 2013, 08:15)  ... на тему написания FAT16/32 с применением ООП... если речь идёт о проектировании (а именно об этом Вы начали топик), то и надо отталкиваться от тех сущностей которыми Вы будете оперировать(так по уму) в жизни. Т.е. наверное маячит сущность файловая система, наверное то что в ней будет храниться - напрашивается файл(ну тут я не опираюсь на оригинальность, а больше на известность), дальше наверное то, что позволяет "наводить порядок" - сущность каталог. собствено это достаточная модель. далее прогоняем её "через жизнь". и видим, что за частую нам необходимо ускорение определённых процессов. Например поиск (в модели), загрузка (в модель), выгрузка(из модели). Прогнав эту мысль "через жизнь" - убираем лишнее. где то так... других сущностей (от жизни) я не наблюдаю. хотя всё зависит от _вашей_конкретной_задачи_ это если чисто правильно и по уму. Если просто абстрактный конь - то это одно. если есть нюансы - тут уже другое..
|
|
|
|
|
Jan 26 2013, 19:36
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(haker_fox @ Jan 24 2013, 06:15)  Кстати, люди пишут свои ФС, как идет тестирование? Может быть есть стандартные методики/инструменты/файлы? Если скачаете YFFS2, то там в комплекте идут тесты. Мало не покажется. Я сам тут тестирую вторую неделю разные реализации FAT-ов. И уже думаю, что для серьезных встраиваемых приложений FAT использовать не стоит. Не выдерживает эта система на дешевых SD картах интенсивное использование. А вообще FAT на C++ я видел только в Win CE.
|
|
|
|
|
Jan 27 2013, 10:26
|

Частый гость
 
Группа: Свой
Сообщений: 179
Регистрация: 1-10-07
Из: НЧ
Пользователь №: 30 966

|
Цитата(AlexandrY @ Jan 26 2013, 23:36)  ... И уже думаю, что для серьезных встраиваемых приложений FAT использовать не стоит. Не выдерживает эта система на дешевых SD картах интенсивное использование. ... А какие есть альтернативы? Другие виды памяти? Другие файловые систем?
|
|
|
|
|
Jan 27 2013, 14:37
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата(kolobok0 @ Jan 27 2013, 01:50)  если речь идёт о проектировании Очень интересный ход мыслей! Собственно говоря, на оригинальность не претендую, какие-либо спец применения (типа БД) пока не планирую. Т.к. сказать "general FS". Впринципе FatFS от Чана - очень понравилась. Запустил за 2 часа на IBM PC, дав вместо диска массив. Но хочется попробывать свои силы в написании этой штуки) С применением ООП, которое мне по-душе. Спасибо! Цитата(AlexandrY @ Jan 27 2013, 04:36)  Если скачаете YFFS2, то там в комплекте идут тесты. Мало не покажется. Не выдерживает эта система на дешевых SD картах интенсивное использование. Ага, гляну  Спасибо! Цитата(kosyak© @ Jan 27 2013, 19:26)  А какие есть альтернативы? Другие виды памяти? Другие файловые систем? Да других-то полно. Вот только что выбрать, чтобы прийти с картой, вставить в первый попавшийся PC, и прочесть файл?)  Учитывая, что на большей части машин стоит окно, только FATx, NTFS... А так-то можно что-нить линуксовое или свое оригинальное
--------------------
Выбор.
|
|
|
|
|
Jan 30 2013, 02:31
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(haker_fox @ Jan 27 2013, 18:37)  Да других-то полно. Вот только что выбрать, чтобы прийти с картой, вставить в первый попавшийся PC, и прочесть файл?)  Учитывая, что на большей части машин стоит окно, только FATx, NTFS... http://en.wikipedia.org/wiki/Universal_Disk_FormatЦитата Влезет ли реализация чего нибудь линуксового в, скажем, 16-32кБ РАМ ? Что такое 16-32кБ РАМ ? 16-32 кБ Pluggable Authentication Modules ? ггг
Сообщение отредактировал sasamy - Jan 30 2013, 02:41
|
|
|
|
|
Jan 30 2013, 03:46
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600

|
Цитата(haker_fox @ Jan 27 2013, 18:37)  Да других-то полно. Вот только что выбрать, чтобы прийти с картой, вставить в первый попавшийся PC, и прочесть файл?)  Ну если реально неймется и есть достаточно свободного времени... Тогда что тут думать, если вариант всего один - exFAT? Поддержка есть, начиная с WinXP. Но главное, что будущеее за этой FS, поскольку она принята, в качестве стандартной, спецификацией SDXC. На сегодняшний день, все прочее можно даже не рассматривать. Вопрос, собсно, только в одном, "хватит ли соплей" (с), что бы поднять такое в одиночку.
|
|
|
|
|
Jan 30 2013, 04:11
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(Tahoe @ Jan 30 2013, 07:46)  Но главное, что будущеее за этой FS, поскольку она принята, в качестве стандартной, спецификацией SDXC. Как всегда на это будет "всем пофиг" (с) Цитата Вопрос, собсно, только в одном, "хватит ли соплей" (с), что бы поднять такое в одиночку. если вопрос только в том чтобы "соплей пожевать" (переписать на C++) то вот реализация на С
|
|
|
|
|
Jan 30 2013, 04:37
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (sasamy @ Jan 30 2013, 10:31)  Что такое 16-32кБ РАМ ? 16-32 кБ Pluggable Authentication Modules ? ггг Да ладно Вам прикалываться-то, но опечатку совершил человек QUOTE (sasamy @ Jan 30 2013, 12:11)  (переписать на C++) то вот реализация на С Неее, я выше FAT16/32 не замахиваюсь. Мне бы их осилить  QUOTE (Tahoe @ Jan 30 2013, 11:46)  Но главное, что будущеее за этой FS, Очень удивило, что у "dream future FS" нет прав доступа  Нет, я конечно понимаю, что речь идет о сменных накопителях. Ну вот потерял я флешак с очень секретным логом температуры окружающей среды каждые 5 мс, а злобный дядя взял, да и воспользовался...  Да и лицензию покупать надо...
--------------------
Выбор.
|
|
|
|
|
Jan 30 2013, 05:02
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600

|
Цитата(sasamy @ Jan 30 2013, 08:11)  Как всегда на это будет "всем пофиг" (с) Цитата(haker_fox @ Jan 30 2013, 08:37)  Очень удивило, что у "dream future FS" нет прав доступа  Вы что-то недопоняли. Я не являюсь фанатом или адептом той или иной ф.с. Мне на на них, в сущности, "покласть с прибором"(с). Единственное, что меня интересует, это что бы если я деллаю наработки по какой теме, они не оказались через пару лет в мусоре. Потому, приходится смотреть на перспективу. Примерно так же вышло с флеш носителями. Когда одни мучались с CF, другие загладывались на всякие xD/MS, для меня было очевидно, что, победит MMC/SD. Насчет механизма, как это произойдет... Так уже произошло, собсно. Посмотрите, что интересует покупателей ( продвинутых чуть более, чем немного ) телевизоров - поддерживает ли встроенный плеер exFAT. Сами SD карты, с завода, тоже идут в exFAT, причем не только SDXC, но и емкие SDHC тоже. Так что дело, конечно, хозяйское, ссылаться на всякие Самсунги, но вообще-то, задают тон и диктуют правила совсем другие люди. Не надо путать Самсунг и Сони. Это Сони могла нагнуть весь мир, да и то, далеко не всегда. Все, что может Самсунг - поворчать на кухне, а потом встать по стойке смирно, взять под козырек и сказать "Йес, Сэр! Так точно, exFAT!". Для сомневающихся - назовите хоть что-нибудь, что пошло от Самсунг, хоть одну распространенную технологию/стандарт. Цитата(haker_fox @ Jan 30 2013, 08:37)  Очень удивило, что у "dream future FS" нет прав доступа  Нет, я конечно понимаю, что речь идет о сменных накопителях. Ну вот потерял я флешак с очень секретным логом температуры окружающей среды каждые 5 мс, а злобный дядя взял, да и воспользовался...  Вообще-то, подобные вещи давно уже вне компетенции ф.с. Приличные носители умеют лочиться по паролю. Даже мой HDD это умеет ( и на своем нетбуке я этим с удовольствием пользуюсь ). Причем во флеш карточках эта фича была заложена еще во времена ММС стандарта, ЕМНИМС.  Кстати, в IDE, насколько помню, тоже. Просто не надо путать, ф.с. для десктопа, за которым могут работать одновременно несколько пользователей и съемный накопитель, у которого совершенно иная специфика работы и, как следствие, другие требования к его свойствам.  Цитата(haker_fox @ Jan 30 2013, 08:37)  Да и лицензию покупать надо... Ха! Так в этом все и дело. "С лазером, каждый дурак сможет, а ты без лазера попробуй" (с). Цитата(sasamy @ Jan 30 2013, 08:11)  если вопрос только в том чтобы "соплей пожевать" (переписать на C++) то вот реализация на С Дело за малым - добавить туда поддержку прочих FAT, а главное, запустить это дело в embedded.
|
|
|
|
|
Jan 30 2013, 05:50
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(Tahoe @ Jan 30 2013, 09:02)  Не надо путать Самсунг и Сони. так, на всякий случай, SONY - крупнейший _покупатель_ технологий и патентов в мире. Цитата назовите хоть что-нибудь, что пошло от Самсунг, хоть одну распространенную технологию/стандарт.  да легко - iPhone (для них процессоры проектировали инженеры Samsung) Цитата Просто не надо путать, ф.с. для десктопа, за которым могут работать одновременно несколько пользователей и съемный накопитель, у которого совершенно иная специфика работы и, как следствие, другие требования к его свойствам.  это точно, для переносных носителей смысла делать права доступа для ФС нет никакого, а для защиты медиа контента используют DRM. И вообще будущее (а для многих уже настоящее) за облачными хранилищами данных. Интересно на каких носителях вы будете хранить видеоданные 8K UHD  Цитата Дело за малым - добавить туда поддержку прочих FAT, а главное, запустить это дело в embedded.  вы мультик про мужика который из одной шкурки хотел семь шапок сшить смотрели ?
Сообщение отредактировал sasamy - Jan 30 2013, 06:01
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|