реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Написание Файловой Системы, С использованием ООП
haker_fox
сообщение Jan 24 2013, 04:15
Сообщение #1


Познающий...
******

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



В продолжение темы

Господа, а давайте порассуждаем на тему написания FAT16/32 с применением ООП sm.gif Как вы уже догадались, это моя идея фикс.

Вообще подход ООП у меня уже удачно работает с сетью RS485, где есть родитель - драйвер устройства, где определены базовые методы, виртуальные методы, и общие переменные (например счетчики ошибок и т.п.). Какждый конкретный драйвер устройства получается простым наследованием базового и определением виртуальных функций по месту, новых, присущих только этому устройству, методов.

Такой же подход работает и в GUI.

А как с ФС? Скажу по секрету, я плохо себе представляю написание ФС, никогда этим не страдал sm.gif Но очень хочу. Готовую ФС (FaFS) использовал.

Вижу следующие плюсы решения:
1. Можем для каждого "привода" завести объект ФС
CODE
TFATFS sdFS;
TFATFS hddFS;

2. Упрощается реализация когда. Ну проще читать его, чтоли...

При этом не нужно заморачиваться со структурами и указателями на них, трудно будет перепутать (фактически невозможно) файловую систему на паре SD-карт (а несколько MCI на МК уже и не редкость). Или не ошибемся, когда будем работать с файлами на NAND, DATA FLASH и SD-карте. Конечно, это уже косметические достоинства.

3. Драйвер конкретного накопителя можно просто унаследовать "файловой системой", тогда будет один объект для работы с файлами.

Недостатки:
1. Новый код, который нужно будет долго и упорно тестировать. Кстати, люди пишут свои ФС, как идет тестирование? Может быть есть стандартные методики/инструменты/файлы?

Как-то так.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Jan 24 2013, 04:37
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Вот, полистайте: http://lwn.net/Articles/444910/
Если вкратце, то дизайн VFS уже объектно-ориентированный и чего-то радикально нового Вы тут не изобретаете. Разве что на С++ перепишете.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jan 24 2013, 05:25
Сообщение #3


Познающий...
******

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



QUOTE (andrewlekar @ Jan 24 2013, 12:37) *
Вот, полистайте: http://lwn.net/Articles/444910/
Если вкратце, то дизайн VFS уже объектно-ориентированный и чего-то радикально нового Вы тут не изобретаете. Разве что на С++ перепишете.

Спасибо, прочту! rolleyes.gif

Радикальное новое изобретать в мои планы и не входило вовсе. Я увлечен идеей scmRTOS, и пишу всего лишь под нее.

В плане попробовать тоже самое для TCP/IP. Эта идея у меня достаточно давно. Красиво выходит:
CODE
T_MACDrv
|
T_ARPService + T_IPService
|
T_UDPService + T_TCPService
|
Необходимые сервисы ( T_HTTPService...)

Сколько надо, столько и наштамповал. Заменил драйвер на другой, и хоть TCP гоняй по последовательному порту... Но это уже другая тема rolleyes.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Jan 26 2013, 16:50
Сообщение #4


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(haker_fox @ Jan 24 2013, 08:15) *
... на тему написания FAT16/32 с применением ООП...


если речь идёт о проектировании (а именно об этом Вы начали топик), то и надо отталкиваться от тех сущностей которыми Вы будете оперировать(так по уму) в жизни. Т.е. наверное маячит сущность файловая система, наверное то что в ней будет храниться - напрашивается файл(ну тут я не опираюсь на оригинальность, а больше на известность), дальше наверное то, что позволяет "наводить порядок" - сущность каталог. собствено это достаточная модель. далее прогоняем её "через жизнь". и видим, что за частую нам необходимо ускорение определённых процессов. Например поиск (в модели), загрузка (в модель), выгрузка(из модели). Прогнав эту мысль "через жизнь" - убираем лишнее. где то так...

других сущностей (от жизни) я не наблюдаю. хотя всё зависит от _вашей_конкретной_задачи_ это если чисто правильно и по уму. Если просто абстрактный конь - то это одно. если есть нюансы - тут уже другое..
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 26 2013, 19:36
Сообщение #5


Ally
******

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



Цитата(haker_fox @ Jan 24 2013, 06:15) *
Кстати, люди пишут свои ФС, как идет тестирование? Может быть есть стандартные методики/инструменты/файлы?


Если скачаете YFFS2, то там в комплекте идут тесты. Мало не покажется.

Я сам тут тестирую вторую неделю разные реализации FAT-ов.
И уже думаю, что для серьезных встраиваемых приложений FAT использовать не стоит.
Не выдерживает эта система на дешевых SD картах интенсивное использование.

А вообще FAT на C++ я видел только в Win CE.

Go to the top of the page
 
+Quote Post
kosyak©
сообщение Jan 27 2013, 10:26
Сообщение #6


Частый гость
**

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



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

А какие есть альтернативы? Другие виды памяти? Другие файловые систем?
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jan 27 2013, 14:37
Сообщение #7


Познающий...
******

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



Цитата(kolobok0 @ Jan 27 2013, 01:50) *
если речь идёт о проектировании

Очень интересный ход мыслей! Собственно говоря, на оригинальность не претендую, какие-либо спец применения (типа БД) пока не планирую. Т.к. сказать "general FS". Впринципе FatFS от Чана - очень понравилась. Запустил за 2 часа на IBM PC, дав вместо диска массив. Но хочется попробывать свои силы в написании этой штуки) С применением ООП, которое мне по-душе. Спасибо! rolleyes.gif

Цитата(AlexandrY @ Jan 27 2013, 04:36) *
Если скачаете YFFS2, то там в комплекте идут тесты. Мало не покажется.
Не выдерживает эта система на дешевых SD картах интенсивное использование.

Ага, гляну rolleyes.gif Спасибо!

Цитата(kosyak© @ Jan 27 2013, 19:26) *
А какие есть альтернативы? Другие виды памяти? Другие файловые систем?

Да других-то полно. Вот только что выбрать, чтобы прийти с картой, вставить в первый попавшийся PC, и прочесть файл?) rolleyes.gif Учитывая, что на большей части машин стоит окно, только FATx, NTFS...
А так-то можно что-нить линуксовое или свое оригинальное rolleyes.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
kosyak©
сообщение Jan 27 2013, 14:51
Сообщение #8


Частый гость
**

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



Влезет ли реализация чего нибудь линуксового в, скажем, 16-32кБ РАМ ?
Go to the top of the page
 
+Quote Post
sasamy
сообщение Jan 30 2013, 02:31
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(haker_fox @ Jan 27 2013, 18:37) *
Да других-то полно. Вот только что выбрать, чтобы прийти с картой, вставить в первый попавшийся PC, и прочесть файл?) rolleyes.gif Учитывая, что на большей части машин стоит окно, только 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
Go to the top of the page
 
+Quote Post
Tahoe
сообщение Jan 30 2013, 03:46
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата(haker_fox @ Jan 27 2013, 18:37) *
Да других-то полно. Вот только что выбрать, чтобы прийти с картой, вставить в первый попавшийся PC, и прочесть файл?) rolleyes.gif

Ну если реально неймется и есть достаточно свободного времени... Тогда что тут думать, если вариант всего один - exFAT? Поддержка есть, начиная с WinXP. Но главное, что будущеее за этой FS, поскольку она принята, в качестве стандартной, спецификацией SDXC. На сегодняшний день, все прочее можно даже не рассматривать.

Вопрос, собсно, только в одном, "хватит ли соплей" (с), что бы поднять такое в одиночку. wink.gif
Go to the top of the page
 
+Quote Post
sasamy
сообщение Jan 30 2013, 04:11
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Tahoe @ Jan 30 2013, 07:46) *
Но главное, что будущеее за этой FS, поскольку она принята, в качестве стандартной, спецификацией SDXC.


Как всегда на это будет "всем пофиг" (с)

Цитата
Вопрос, собсно, только в одном, "хватит ли соплей" (с), что бы поднять такое в одиночку.


если вопрос только в том чтобы "соплей пожевать" (переписать на C++) то вот реализация на С
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jan 30 2013, 04:37
Сообщение #12


Познающий...
******

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



QUOTE (sasamy @ Jan 30 2013, 10:31) *
Что такое 16-32кБ РАМ ? 16-32 кБ Pluggable Authentication Modules ? ггг

Да ладно Вам прикалываться-то, но опечатку совершил человек rolleyes.gif
QUOTE (sasamy @ Jan 30 2013, 12:11) *
(переписать на C++) то вот реализация на С

Неее, я выше FAT16/32 не замахиваюсь. Мне бы их осилить rolleyes.gif

QUOTE (Tahoe @ Jan 30 2013, 11:46) *
Но главное, что будущеее за этой FS,

Очень удивило, что у "dream future FS" нет прав доступа rolleyes.gif Нет, я конечно понимаю, что речь идет о сменных накопителях. Ну вот потерял я флешак с очень секретным логом температуры окружающей среды каждые 5 мс, а злобный дядя взял, да и воспользовался... crying.gif
Да и лицензию покупать надо...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
kosyak©
сообщение Jan 30 2013, 04:38
Сообщение #13


Частый гость
**

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



да я не опечатался, я написал RAM транслитом..думал поймут.
Go to the top of the page
 
+Quote Post
Tahoe
сообщение Jan 30 2013, 05:02
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата(sasamy @ Jan 30 2013, 08:11) *
Как всегда на это будет "всем пофиг" (с)


Цитата(haker_fox @ Jan 30 2013, 08:37) *
Очень удивило, что у "dream future FS" нет прав доступа rolleyes.gif


Вы что-то недопоняли. Я не являюсь фанатом или адептом той или иной ф.с. Мне на на них, в сущности, "покласть с прибором"(с). Единственное, что меня интересует, это что бы если я деллаю наработки по какой теме, они не оказались через пару лет в мусоре. Потому, приходится смотреть на перспективу. Примерно так же вышло с флеш носителями. Когда одни мучались с CF, другие загладывались на всякие xD/MS, для меня было очевидно, что, победит MMC/SD.

Насчет механизма, как это произойдет... Так уже произошло, собсно. Посмотрите, что интересует покупателей ( продвинутых чуть более, чем немного ) телевизоров - поддерживает ли встроенный плеер exFAT. Сами SD карты, с завода, тоже идут в exFAT, причем не только SDXC, но и емкие SDHC тоже. Так что дело, конечно, хозяйское, ссылаться на всякие Самсунги, но вообще-то, задают тон и диктуют правила совсем другие люди. Не надо путать Самсунг и Сони. Это Сони могла нагнуть весь мир, да и то, далеко не всегда. Все, что может Самсунг - поворчать на кухне, а потом встать по стойке смирно, взять под козырек и сказать "Йес, Сэр! Так точно, exFAT!". Для сомневающихся - назовите хоть что-нибудь, что пошло от Самсунг, хоть одну распространенную технологию/стандарт. biggrin.gif


Цитата(haker_fox @ Jan 30 2013, 08:37) *
Очень удивило, что у "dream future FS" нет прав доступа rolleyes.gif Нет, я конечно понимаю, что речь идет о сменных накопителях. Ну вот потерял я флешак с очень секретным логом температуры окружающей среды каждые 5 мс, а злобный дядя взял, да и воспользовался... crying.gif

Вообще-то, подобные вещи давно уже вне компетенции ф.с. Приличные носители умеют лочиться по паролю. Даже мой HDD это умеет ( и на своем нетбуке я этим с удовольствием пользуюсь ). Причем во флеш карточках эта фича была заложена еще во времена ММС стандарта, ЕМНИМС. biggrin.gif Кстати, в IDE, насколько помню, тоже.
Просто не надо путать, ф.с. для десктопа, за которым могут работать одновременно несколько пользователей и съемный накопитель, у которого совершенно иная специфика работы и, как следствие, другие требования к его свойствам. wink.gif


Цитата(haker_fox @ Jan 30 2013, 08:37) *
Да и лицензию покупать надо...

Ха! Так в этом все и дело. "С лазером, каждый дурак сможет, а ты без лазера попробуй" (с).

Цитата(sasamy @ Jan 30 2013, 08:11) *
если вопрос только в том чтобы "соплей пожевать" (переписать на C++) то вот реализация на С

Дело за малым - добавить туда поддержку прочих FAT, а главное, запустить это дело в embedded. biggrin.gif
Go to the top of the page
 
+Quote Post
sasamy
сообщение Jan 30 2013, 05:50
Сообщение #15


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Tahoe @ Jan 30 2013, 09:02) *
Не надо путать Самсунг и Сони.


так, на всякий случай, SONY - крупнейший _покупатель_ технологий и патентов в мире.

Цитата
назовите хоть что-нибудь, что пошло от Самсунг, хоть одну распространенную технологию/стандарт. biggrin.gif


да легко - iPhone (для них процессоры проектировали инженеры Samsung)


Цитата
Просто не надо путать, ф.с. для десктопа, за которым могут работать одновременно несколько пользователей и съемный накопитель, у которого совершенно иная специфика работы и, как следствие, другие требования к его свойствам. wink.gif


это точно, для переносных носителей смысла делать права доступа для ФС нет никакого, а для защиты медиа контента используют DRM. И вообще будущее (а для многих уже настоящее) за облачными хранилищами данных. Интересно на каких носителях вы будете хранить видеоданные 8K UHD sm.gif

Цитата
Дело за малым - добавить туда поддержку прочих FAT, а главное, запустить это дело в embedded. biggrin.gif


вы мультик про мужика который из одной шкурки хотел семь шапок сшить смотрели ? sm.gif

Сообщение отредактировал sasamy - Jan 30 2013, 06:01
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 13:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01527 секунд с 7
ELECTRONIX ©2004-2016