The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск отказоустойчивой файловой системы LittleFS 2.10

13.12.2024 11:08

Опубликован выпуск проекта LittleFS 2.10, развивающего компактную файловую систему для встраиваемых устройств и микроконтроллеров. Изначально файловая система была создана компанией ARM для операционной системы Mbed OS, но затем выделена в отдельный проект. Код ФС написан на языке Си и распространяется под лицензией BSD. Эталонная реализация LittleFS поставляется в виде Си-библиотеки, на базе которой создан FUSE-модуль и обвязки для различных языков программирования.

Особенности LittleFS:

  • Низкие требования к ресурсам и поддержка работы в условиях ограниченного размера ОЗУ. В реализации LittleFS применяются только статически определённые буферы (без динамического выделения памяти) и не используются рекурсивные вызовы, благодаря чему размер потребляемой оперативной памяти и служебных структур LittleFS на накопителе всегда остаётся постоянным, независимо от того, что записывается в ФС и какого размера хранилище.
  • Средства для выравнивания износа Flash-носителей (wear leveling), позволяющие минимизировать повторное использование блоков и равномерно распределить операции очистки блоков на Flash-памяти, контроллер которой не обеспечивает решение данной задачи.
  • Очень высокая устойчивость к сбоям - ФС рассматривает случайное прекращение работы (завершение работы через отключение питания) в качестве штатной ситуации и гарантирует нахождение хранилища на диске в целостном состоянии в любой момент времени. Для исключения нарушения целости и потери данных применяется механизм copy-on-write (COW), при котором изменения не перезаписывают информацию, а сохраняются в новое место.
  • Атомарность совершения операций, таких как удаление и переименование, даже в случае пропадания питания во время их выполнения. Изменения файла сбрасываются на диск только после вызова sync или close. Рассогласования, вызванные операциями, которые не могут быть выполнены атомарно, решаются специальным обработчиком deorphan, который проходит по всему дереву ФС после загрузки.
  • Поддержка POSIX-подобных функций для работы с файлами и каталогами.

Содержимое файлов в LittleFS представлено COW-списками CTZ, обеспечивающими уровень сложности O(1) при добавлении и O(nlogn) при чтении. Выделение блоков осуществляется через сканирование ФС на предмет использованных блоков в области фиксированного размера, хранимой в виде битового вектора. Для упрощения сканирования все каталоги являются частью связанного списка, охватывающего всю файловую систему. Если при записи блока определяется ошибка, то выделяется новый блок и данные переносятся в него.

Среди изменений в новой версии LittleFS:

  • Переработан код разбора файловых путей, что позволило приблизить поведение ФС к POSIX-системам и ожиданиям пользователей в таких ситуациях, как завершение пути слэшем, обработка пустых путей и навигация за границу корня ФС.
  • Добавлены два новых примера блочных устройств ramcrc32bd и ramrsbd, в которых реализован механизм коррекции ошибок, совместимый с LittleFS. В текущем виде в самой ФС LittleFS отсутствует поддержка определения и коррекции ошибок, и данные операции выносятся на уровень блочных устройств.
  • В функцию lfs_mkdir добавлена поддержка завершающих слэшей, т.е. вызов lfs_mkdir("a/") теперь не приводит к выводу ошибки.
  • В функциях lfs_stat и lfs_getattr теперь выводится ошибка при использовании завершающих слэшей, если существующий в ФС путь не является каталогом.
  • Попытка открытия через функцию lfs_file_open файла с завершающим слешем в имени теперь будет приводить к ошибке LFS_ERR_NOTDIR, если файл не является каталогом в ФС, LFS_ERR_ISDIR, если имя ссылается на каталог в ФС, и LFS_O_CREAT, если файл не существует.
  • Попытка обращения за границу корневой ФС, например, lfs_stat("/../a"), теперь будет приводить к выводу ошибки.
  • Указание пустого пути теперь не является синонимом обращения к корневому каталогу, т.е. вызов lfs_stat("") приведёт к выводу ошибки.


  1. Главная ссылка к новости (https://github.com/littlefs-pr...)
  2. OpenNews: Из ядра Linux удалена файловая система ReiserFS
  3. OpenNews: Драйвер для файловой системы Ext2 объявлен устаревшим
  4. OpenNews: Выпуск Mongoose OS 2.4, платформы для IoT-устройств
  5. OpenNews: Для Linux предложена файловая система Composefs
  6. OpenNews: Открыт код MuditaOS, мобильной платформы с поддержкой экранов на базе электронной бумаги
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62398-littlefs
Ключевые слова: littlefs
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (97) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 11:16, 13/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Годно. А то понапридумывают монструозных btrfs, а людям простые фс нужны. Уже по списку багфиксов видно насколько она простая.
     
     
  • 2.4, Аноним (4), 11:21, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мне нужна фс чтобы везде работает. А то мой андроид видит только фат32.
     
     
  • 3.11, Аноним (11), 12:05, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Гнусмасовский Андроед должен бы видеть ещё F2FS. Это же их родное детище.
     
     
  • 4.13, Лампочка (?), 12:09, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это детище Самсунга так то, только потом они отдали это в открытый доступ
     
     
  • 5.65, Друг капитализма (?), 04:20, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Мой текущий сасунг-пхоне уже не подразумевает внешней карточки. Так что пофиг.
     
     
  • 6.71, Аноним (-), 14:33, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Мой текущий сасунг-пхоне уже не подразумевает внешней карточки. Так что пофиг.

    Ну так замажь его замазкой чтоб не тек!

     
  • 3.66, MihaNix (ok), 06:44, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Удивительно! У вас, наверное, очень старый смартфон?

    У меня есть Samsung Galaxy Star Plus GT-S7262. Android 4.1 Изначально я использовал для него внешнюю карту памяти с файловой системой FAT32.
    После того как купил новый смартфон, я разрешил root-доступ на своём старом устройстве. И использую его в основном как музыкальный плейер.

    SD-карту разбил на три раздела: Ext4, SWAP, FAT32.
    - На Ext4 расширил системный раздел для APK.
    - SWAP 1 Гб, чтобы суспендить некоторые задачи.
    - FAT32 для данных пользователя.
    Пользовался только возможностями стоковой прошивки.

     
     
  • 4.75, Vindex (?), 14:47, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошо если так. Если я форматировал флешку под Ext4, Android (любой) говорил, что она странная и надо её форматировать под exfat
     
  • 4.86, МИСАКА (?), 23:50, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А теперь попробуйте прошить сток, после чего проверить работоспособность ext раздела
     
     
  • 5.119, MihaNix (ok), 07:12, 16/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не совсем понимаю, зачем что-то прошивать? Я использую стандартную прошивку.
    Автоматизировал только несколько вещей:
    - Указал точки монтирования в файле fstab, и после перезагрузки устройство видит нужные разделы.
    - Прописал символические ссылки.
    Возможно, я занимался чем-то ещё, но из-за давности событий не могу точно вспомнить.

    Насколько мне известно, на системном разделе этого устройства от Samsung используется файловая система Ext3 или Ext4. В результате не произошло ничего необычного.

     
  • 2.45, myster (ok), 15:14, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > монструозных btrfs

    В CoW файловых системах нет ничего монструозного. ZFS давно уже успользовалась компаниями, работает по схожему принципу. Сейчас некоторые ZFS на BTRFS меняют из-за нативной поддержки на уровне Linux ядра и ничего при этом не теряют.

    PS: и сабж, кстати, тоже CoW, за такими системами именно будущее.  

     
     
  • 3.52, Аноним (52), 17:02, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В иерархических (не плоских) ФС нет ничего монструозного. ZFS давно уже успользовалась компаниями, работает по схожему принципу. PS: и сабж, кстати, тоже иерархический, за такими системами именно будущее.  
     
     
  • 4.54, myster (ok), 17:28, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В иерархических (не плоских) ФС

    ты сам то понял про что ты пишешь?

    FAT12 это пример плоской файловой системы. где все файлы размещаются в корневом каталоге без подкаталогов.

    А BTRFS, ZFS, LittleFS к таким не относятся.

     
     
  • 5.60, pavlinux (ok), 23:30, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > FAT12 это пример плоской файловой системы. где все файлы размещаются в корневом каталоге без подкаталогов.

    Открою секрет, каталог это тоже  файл

     
     
  • 6.72, Аноним (-), 14:35, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Открою секрет, каталог это тоже  файл

    Вот это мягко говоря - зависит от. Вооон те B-Tree это ну такой себе очень условный "файл". Как максимум там от файла будет немного абстракции, для совместимости по апям...

     
     
  • 7.85, pavlinux (ok), 23:30, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >> Открою секрет, каталог это тоже  файл
    > Вот это мягко говоря - зависит от. Вооон те B-Tree это ну  такой себе

    А чей-то ты  переключился с абстракции представления на абстракцию реализации?

    Файлы, каталоги, папки, директории, ссылки, пайпы, девайсы, двери, ...

     
     
  • 8.89, Аноним (89), 07:55, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Когда абстракция довольно сильно расходится с реализацией, это начинает напомина... текст свёрнут, показать
     
  • 5.62, _kp (ok), 01:38, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > FAT12..  все файлы размещаются в корневом каталоге без подкаталогов.

    FAT12 с каталогами, кроме редакции для DOS 1.x.

    Без каталогов, плоская, и по дурости все ещё используемая, это SPIFFS.
    (но проблема там не в отсутствии каталогов, а в ненадежности)

     
  • 3.68, chdlb (?), 08:20, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    а что там с БД? есть подозрения что redo log, апдейт индекса не выиграют от CoW
     
     
  • 4.93, Аноним (-), 08:46, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Могут и выиграть. Просто не бывает так чтобы одни только плюсы.

    https://notes.eatonphil.com/whats-the-big-deal-about-key-value-databases.html
    http://www.bzero.se/ldapd/btree.html

    Ну вот как-то так, да. Можно дерево расплющить и COWнуть. Просто это не совсем халявно.

    Впрочем господа типа поха рассказывающие про write amplification - упорно игнорят что для in place патча вон той мелочи SSD эвона какое действо вообще развернет. А HDD будет тормозить от метания во все стороны.

     
     
  • 5.118, chdlb (?), 05:33, 16/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Могут и выиграть. Просто не бывает так чтобы одни только плюсы.
    > https://notes.eatonphil.com/whats-the-big-deal-about-key-value-databases.html
    > http://www.bzero.se/ldapd/btree.html

    в первой статье какая-то херата написана:

    ${TABLE_IDENTIFIER}_${PRIMARY_KEY}_${ROW_IDENTIFIER}: ${ENCODED_VALUE}
    Embedded key-value stores almost always support efficient scanning of rows by a key-prefix. This means that you can efficiently grab all rows within a table by prefix-scanning on the table identifier.

    так а что нового? точно также как ты получишь эффективный скан по кластерному первичному ключу в любой RDBMS

    и какое отношение это имеет к CoW?

    то что SSD будет насилован - это понятно, но там есть DRAM и конденсатор, если не дешман-диск ))

    но я о другом, скорее всего запись dirty pages не почувствует этот cow - блоки будут заменяться целиком, а вот с redo/undo log есть вопросы, потому что он пишется первым и флашится после каждой транзакции, которая может быть очень маленькой, но придется считать целый блок на уровне FS и записать его, и похожая ситуация с обновлением индексов

     
  • 3.70, pofigist (?), 13:04, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >  Сейчас некоторые ZFS на BTRFS меняют из-за нативной поддержки на уровне Linux ядра и ничего при этом не теряют.

    Ну да ничего не теряют. Кроме данных, которые хранятся на btrfs.
    К сожалению ее так и не допили до работоспособного состояния.

     
     
  • 4.77, Vindex (?), 14:50, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    У меня как раз очередная попытка была его поиспользовать несколько месяцев назад. Через пару месяцев использования она была безнадёжна повреждена - некоторые файлы были недоступны к использованию.
     
     
  • 5.83, myster (ok), 21:06, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Сколько реплик использовали? С какой периодичностью Scrub и Balance прогонялся?
    Или не зная броду сунулись в воду?
     
  • 4.94, Аноним (-), 08:48, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну да ничего не теряют. Кроме данных, которые хранятся на btrfs.
    > К сожалению ее так и не допили до работоспособного состояния.

    При том лучше всего как оно в btrfs почему-то в курсе всякие маздащики и прочие BSDшники. Один из которых тут и нарисовался. Что бы это могло быть? :)

     
     
  • 5.107, Аноним (107), 14:50, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    При том лучше всего как оно в BSD почему-то в курсе всякие маздащики и прочие 294ые. Один из которых любит нарисоваться в каждой БЗДшой новости.
    Но! "Стрелочка не поворачивается, нет!" 🙂

    Кстати, отписавшийся в этой ветке ниже, в #77 - маздайщик или "бздун"?

    А из соседней новости?
    https://www.opennet.me/openforum/vsluhforumID3/135573.html#13
    > btrfs отличная фс, фич море, но я постоянно с ней на штыках. Полностью дефолт, никаких дополнительных опций не включаю и при этом от одного до нескольких раз в год теряю данные (резервные копии наше всё). Устройства разные, производители разные.

    Или как обычно "там читаем, там ... рыбу заворачивали!"?

     
     
  • 6.113, Аноним (-), 19:42, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Почему же Мой показометр прекрасно детектит вас и декодирует все ваши примитивн... большой текст свёрнут, показать
     
     
  • 7.115, Аноним (107), 21:34, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Показометр и детектирует -- неплохой эвфемизм для 960 уканчик и подгора... большой текст свёрнут, показать
     
     
  • 8.121, Аноним (-), 16:10, 16/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вам виднее что там у вас подгорает Это, выражаясь вашими словами, эвфемизм Хот... большой текст свёрнут, показать
     

  • 1.3, Аноним (4), 11:20, 13/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Эту балалайку развивают уже 6 лет и она только сейчас научилась слеши обрабатывать. Фейспалм.
     
     
  • 2.5, Pahanivo (ok), 11:40, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну дак ты до сих пор не умеешь походу ...
     
  • 2.12, Аноним (12), 12:08, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >уже 6 лет

    https://en.wikipedia.org/wiki/Comparison_of_file_systems

     

  • 1.6, Аноним (6), 11:42, 13/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Эталонная реализация LittleFS поставляется в виде Си-библиотеки

    Почему не на rus то есть ada gnat fsf?

     
     
  • 2.14, Аноним (11), 12:16, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >В реализации LittleFS применяются только статически определённые буферы (без динамического выделения памяти)

    Use after free ей и так не грозит.

     
     
  • 3.24, Аноним (24), 13:07, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А как же традиция сишников вылазить за пределы буфера при любом удобном случае?
     
     
  • 4.30, Аноним (4), 13:34, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Джаваскрпитизеры некогда не вылезают а толку?
     
  • 3.43, Аноним (6), 15:06, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Неправильный код. Нужно динамическое выделение и боровчекер.
     
  • 2.69, Аноним (69), 08:47, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Почему не на русской Ада? Ну пока что есть только русский Оберон.
     
     
  • 3.73, Аноним (-), 14:36, 14/12/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.8, Archer73 (ok), 11:46, 13/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Микроконтроллеры из коробки чаще всего только FAT32 умеют. Интересно было бы попробовать.
     
     
  • 2.10, _kp (ok), 12:03, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Эта FS давно распространена на ESP8266 и ESP32.  
     

  • 1.15, Швондик (?), 12:29, 13/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    так я не понял, как её юзать на Ардуино ???
     
     
  • 2.38, ИмяХ (ok), 14:11, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Через API, которое прописано в документации этой ФС.
     
     
  • 3.78, Швондик (?), 14:54, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    а как закидывать файлы или снимать с этой SD в Windos XP ? Какая ОС работает с LittleFS 2.10 ?
     
     
  • 4.81, ИмяХ (ok), 17:58, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    1) читаешь API своей ОС, касаемые работы файловых систем
    2) читаешь API в докуметации файловой системы
    3) пишешь драйвер, используя эти API
    4) устанавливаешь драйвер
    5) пользуешься
     
  • 4.90, Аноним (90), 07:58, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > а как закидывать файлы или снимать с этой SD в Windos XP

    Эта ОС уже не поддерживается производителем - а остальным это все и подавно нахрен надо, соответственно. Кроме случая когда кто-то из тех кому надо - сам разопрется решать свои проблемы.

    > ? Какая ОС работает с LittleFS 2.10 ?
    > LittleFS поставляется в виде Си-библиотеки, на базе которой создан FUSE-модуль

    В принципе любая под которую FUSE есть. А это довольно много чего. Поддерживает ли FUSE актуальных версий и этот модуль работу в XP - я ессно без понятия.

     
     
  • 5.109, Швондик (?), 19:12, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, я не знал про FUSE
     
     
  • 6.112, Аноним (112), 19:29, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Спасибо, я не знал про FUSE

    Да правильно, кто же читает новости до того как еще и коментить к ним?!

     
     
  • 7.116, Швондик (?), 21:52, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    чукча не читатель - чукча писатель!
     

  • 1.22, Соль земли (?), 13:06, 13/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не думал, что статические буферы это охренеть какая особенность. Часто байты внезапно превращаются в петабайты. Ну кто знал...
     
  • 1.27, Аноним (27), 13:27, 13/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > Для исключения нарушения целости и потери данных применяется механизм copy-on-write (COW)

    1) данные при внезапном отключении питания в любом случае потеряются - буфер в ОЗУ

    2) так как буфер этот будет минимальным по причине 1) и потому что это для устройств с ограниченной ОЗУ тормозит это наверняка адово

    3) нештатные отключения питания можно еще обработать на raw nand но никак не на современных накопителях со своим встроенным FTL - так что все прелести этой ОС обнуляются а востатке только тормоза из 2)

     
     
  • 2.34, _kp (ok), 13:51, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >>при внезапном отключении питания в любом случае потеряются

    Как напишете так и будет.  :)
    Достаточно не запарывать файловую систему. А после восстановления питания можно продолжить.

    >>буфер в ОЗУ

    Так это буфер диска, а исходные данные в приложении, которое просто повторит запись.
    А важные данные хранят в энергонезависимом RAM, EEPROM, FRAM, что б при внезапном отключении ничего не терялось.
    На том же ESP32 для этого есть дополнительные 8 кБ статического ОЗУ подпитанного от батареи RTC.  Даже ничего мудрить не надо.

     
     
  • 3.37, RM (ok), 14:10, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > исходные данные в приложении, которое просто повторит запись.

    афигеть! прилажение "просто повторит"

    да если такие требования к прикладному софту выдвигать, да еще заставлять его хранить по другим ЗУ и синхронизировать, то файловая система и нинужна тогда.

    я теперь понимаю чо серьезные databases стремились себе отгрызть raw раздел и там самим уже как-то рулить - хоть мешать не будут.

     
     
  • 4.41, 1 (??), 14:22, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > я теперь понимаю чо серьезные databases стремились себе отгрызть raw раздел и там самим уже как-то рулить - хоть мешать не будут.

    А получалось у них боль и страдание. Особенно при сбоях железа.

     
  • 4.44, _kp (ok), 15:11, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Именно так Чем проще ПО, но логически обосновано, тем всё в нём проще Разница ... большой текст свёрнут, показать
     
     
  • 5.98, Аноним (-), 09:06, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > только те данные которые не успел записать при выключении питания, тоже надо
    > как то продожить записывать, и где то хранить.

    Или не надо. Без многих данных можно прекрасно прожить. А мелкая хрень на МК к тому же от кондеров может продержаться достаточно чтобы закончить все что оно там хотело. Да и от аккумулятора эвона сколько фигачить может, если надо.

     
     
  • 6.101, _kp (ok), 12:53, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Без многих данных можно прекрасно прожить.

    Конечно. Сохранение данных, именно с точным сохранением данных нужно далеко не все устройствам.

    Но речь то о надежности файловой системы. Какое нибудь протенькое устройство может писать логи, и при неудачном отключении питания запороть все. Или удаленное обновление ПО, что и простых устройсвах сейчас не экзотика, должно переживать отключение в любой момент перезаписи прошивки и продолжить работу.


    > А мелкая хрень.. от кондеров

    Я и в поделках ориентируюсь на ГОСТ, по профессиональной привычке, и хоть и отступаю от них, но хотя бы читаю и задумываюсь. В общем, хрень не делаем.


     
     
  • 7.102, Аноним (-), 13:54, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это только при тупом подходе к ФС Хотя и на обычных девайсах бывает, когда умни... большой текст свёрнут, показать
     
     
  • 8.103, _kp (ok), 14:11, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    LittleFS для других флешек, оставьте тех умников наедине с их проблемами Превра... текст свёрнут, показать
     
     
  • 9.111, Аноним (112), 19:27, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В общем то да Но вон то все же бывает и все же характерная для флеша проблема ... большой текст свёрнут, показать
     
  • 3.49, Аноним (27), 16:35, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А важные данные хранят в энергонезависимом RAM, EEPROM, FRAM, что б при внезапном отключении ничего не терялось.

    и вот вы пришли к тому что весь этот софтовый кал не нужен - нужно бесперебойное питание

     
     
  • 4.50, _kp (ok), 16:54, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > * не нужен - нужно бесперебойное питание

    Бесперебойное питание тоже пропадает.
    Да, с ним проблем меньше, но в надежном ПО нельзя все сваливать на аппаратнве проблемы.

    Так же файловая система и способ обмена информацией. В случае микроконтроллеров, обычно через Веб интерфейс.

     
     
  • 5.53, Аноним (27), 17:04, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Бесперебойное питание тоже пропадает.

    на то оно и бесперебойное чтобы НЕ пропадало, а если деньги есть лучше FRAM/MRAM etc вы ничего не придумаете но опять же весь этот софтовый кал не нужен

     
     
  • 6.82, Аноним (52), 19:57, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если есть деньги, то можно нанять золотаря для работы с "софтовым калом", получится гораздо дешевле, чем FRAM/MRAM.
     
     
  • 7.87, Аноним (27), 00:52, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > можно нанять золотаря для работы с "софтовым калом"

    поставь копеечный ионистор для корректного завершения работы при отключении питания и нанимать никого не надо - надо грамотно системы проектировать

     
     
  • 8.91, Аноним (-), 08:18, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Увы, это требует SRAM который при прочих равных намного дороже DRAM с 1 стороны,... текст свёрнут, показать
     
     
  • 9.99, Аноним (27), 10:48, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ничего он не требует, ионистор это конденсатор большой емкости, энергии его хват... текст свёрнут, показать
     
     
  • 10.104, Аноним (104), 14:20, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если именно хранить, именно в ней - то требует DRAM жрет слишком много Если да... большой текст свёрнут, показать
     
     
  • 11.108, Аноним (27), 18:05, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    чего хранить как была sdram так и остаётся, ниразу не видел чтобы на компах sd... текст свёрнут, показать
     
     
  • 12.110, Аноним (-), 19:20, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Однако, между нами, DRAM выжирает в случае лаптопа весьма жирный акум за пару не... большой текст свёрнут, показать
     
     
  • 13.114, Аноним (27), 21:18, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    коды корреции отдельно от данных лежат в spare area и любой нормальный контролле... текст свёрнут, показать
     
     
  • 14.122, Аноним (-), 16:14, 16/12/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 11.120, Аноним (27), 15:55, 16/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    это довольно распространение решение https www kingston com ru blog servers-an... текст свёрнут, показать
     
     
  • 12.123, Аноним (-), 16:16, 16/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    По сравнению с чем Нельзя быть распостраненным в сферическом вакууме Если срав... текст свёрнут, показать
     
     
  • 13.124, Аноним (27), 17:20, 16/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    особенно если не искать а идти в ближайший чип и дип https aliexpress ru item ... текст свёрнут, показать
     

  • 1.48, Аноним (48), 16:32, 13/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    > Выделение блоков осуществляется через сканирование ФС на предмет использованных блоков в области фиксированного размера, хранимой в виде битового вектора.

    Битовые вектора - сомнительная затея ещё со времён FAT. Особенно когда хранилища подрастут, а неуклюжая ФС всё ещё будет строить для них "битовые карты" размером с мегабайты. Которые ЕСТЕСТВЕННО будут постоянно перезатираться и один вылетевший блок махом уничтожит целую кучу данных.
    Тут надо действовать умнее.

    И нет, ФС не должна заниматься "выравниванием износа"! Время дискеток прошло. Сейчас всё движется в сторону SSD, магнитные носители останутся в музеях. Ну или стриммерные ленты, но там вообще другая сфера.

     
     
  • 2.51, _kp (ok), 17:02, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >> когда хранилища  подрастут, а неуклюжая ФС всё ещё будет строить для них "битовые
    > карты"

    Чаще всего, да в мелких контроллерах, LittleFS используется с разделами всего 1-16 МЕГА байт.
    Для этого применения всё нормально.

    > всё движется в сторону SSD

    Ну да, прицепить к каждому контроллеру за 100-200р ssd за 5-10 килорублей. У меня только в умном доме с огородом их за 30шт. ;)
    Такой подход, с ssd,уместен для более толстых контроллеров, типа Распберри.


     
     
  • 3.59, Аноним (27), 23:28, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > за 100-200р ... У меня только в умном доме с огородом их за 30шт. ;)

    и чего там в фс хранится, сова на глобусе ?

     
     
  • 4.61, _kp (ok), 01:28, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > и чего там в фс хранится, сова на глобусе ?

    Да что угодно, как и на компе или более толстых контроллерах.
    Если брать ESP32, то EEPROM у него нет, а есть флешка с крупными страницами.
    Если на из каких то убеждений игнорировать файлы, и в лоб работать с флеш, то..
    на каждом из контроллеров свои флешки, да и в рамках одного бывают разных типов, и на каждый чих придется писать обертки и "велосипеды", да и перенос кода не то что на Распбери, но и на другой контроллер выльется в напрасное переписывание кода.
    Если данные хранить в RAW флеш, их надо туда как то записывать, и извлекать, а с файлами проще, из и закинуть элементарно, и доступны хоть через Веб интерфейс.
    Так же с файлами безопаснее, невозможно как при RAW доступе к флеш, записывая один объект, переписать случайно и другой.
    По сути, RAW доступ к флеш оправдан только для чего то типа баз данных.


     
     
  • 5.63, Аноним (27), 03:24, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > а с файлами проще, из и закинуть элементарно, и доступны хоть через Веб интерфейс

    понятно - ногой дёргать на абдурине через вебинтерфейс, просто прозвучали такие слова как "отказоустойчивость" я уже подумал вдруг не сова на глобусе, но чуда не случилось..

     
     
  • 6.79, _kp (ok), 15:34, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вот, например, поливалки для цветов.  Ардуинисты обычно тупо по датчику влажности льют воду.. на подоконник, в ботинок под окном, или всухую крутят моторчики. Итог таких поделок показан в Разрушителях легенд, растения погибли с таким поливалом.
    А по нормальному. помимо контроля неисправностей и частичного резервирования есть еще режим полива, у разных растений разный, и зависит от температуры, влажности, и возраста растений, и времени года. Для парников
    удаленный контроль и перенастройка из интернета обязательна, оно же должно работать когда я уехал.
     
     
  • 7.88, Аноним (27), 00:58, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А по нормальному. помимо контроля неисправностей и частичного резервирования есть еще режим полива, у разных растений разный, и зависит от температуры, влажности, и возраста растений, и времени года.

    и зачем для этого 30 esp32 с wifi если есть LoRa-дачники которые от одной батарейки годами работают, а управлять можно одноплатником с Linux - это на порядок надежней чем сеть каких-то прыщеконтроллеров, в качестве бесперебойника ионистор а ФС и носитель на любой вкус.

     
  • 7.97, Аноним (-), 09:03, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    На минутку, даже копеечная китайская какаха у знакомого хомяка умеет детектить с... большой текст свёрнут, показать
     
  • 3.92, Аноним (-), 08:22, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну да, прицепить к каждому контроллеру за 100-200р ssd за 5-10 килорублей.
    > У меня только в умном доме с огородом их за 30шт.

    Если уж хочется странного - SD/uSD карточки умеют SPI режим, так что даже контроллер SD (или ногодрыг GPIO) не потребуется если хардварный SPI есть. Это может стоить заметно меньше.

     
  • 2.57, Аноним (57), 19:06, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так это и есть улучшенный fat, для ембедовки. Заменять этим ext4 никто и не предлагает.
     
     
  • 3.58, Аноним (58), 22:36, 13/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У сабжа ничего общего с FAT нет.
     
  • 2.64, Аноним (64), 03:40, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Извини, но магниторезистивная память (SOTA-вариант называется FRAM) - это как раз будущее. Почти без износа, и ОЧЕНЬ быстрая. Просто её ещё не научились специально делать так, чтобы она таки изнашивалась. И рынок флаша ещё не дочерпали. Как скотину фтранзисторами с плавающим затвором додоят до стенки - вот тогда и будет массовая магнеторезистивная память.
     
     
  • 3.74, Аноним (-), 14:39, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Извини, но магниторезистивная память (SOTA-вариант называется FRAM) - это как раз будущее.
    > Почти без износа, и ОЧЕНЬ быстрая. Просто её ещё не научились
    > специально делать так, чтобы она таки изнашивалась. И рынок флаша ещё
    > не дочерпали. Как скотину фтранзисторами с плавающим затвором додоят до стенки
    > - вот тогда и будет массовая магнеторезистивная память.

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

    К тому же у FRAM еще и чтение деструктивное бывает. И если при ЧТЕНИИ слетит питание ... таки можно про@#$ть данные. Эвоно оно как, михалыч.

     

  • 1.67, Аноним (67), 08:03, 14/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    cow - это хорошо, но как бороться с отключением питания ровно после операции очистки блока с метаданными(участка фс в котором инфа о используемых блоках), до записи туда новых данных? Или здесь два таких блока и очистка сразу двух невозможна?
     
     
  • 2.76, Аноним (76), 14:49, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > cow - это хорошо, но как бороться с отключением питания ровно после
    > операции очистки блока с метаданными

    Например CoW'ать и метаданные тоже! Т.е. запись данных в сторону -> апдейт "указателей" в метаданных -> запись апдейтнутой версии, тоже вбок. Если что-то из этого не прокатило - не судьба, логика будет видеть старое состояние, взяв в том числе и старую версию метаданных, в котторой того апдейта "указателей" на данные еще не было.

    > (участка фс в котором инфа о используемых блоках),

    А кто сказал что и с этим добром нельзя подобные вещи проворачивать, по тем же причинам?

     
     
  • 3.80, Аноним (80), 16:41, 14/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если всё cow, то как понять где читать нужный первый блок? Сканить всё на предмет "начального"(по сигнатуре), и если их два, то выбирать тот, что новее?
     
     
  • 4.95, Аноним (-), 08:52, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Если всё cow, то как понять где читать нужный первый блок?
    > Сканить всё на предмет "начального"(по сигнатуре), и если их два, т
    > о выбирать тот, что новее?

    Есть много разных вариантов как это делать. Например - http://www.bzero.se/ldapd/btree.html

    Это больше для БД - но идею как расплющить дерево и сделать его cow - и даже шариться по сразу нескольким версиям, если хочется, показывает.

    Ах да, catch? В какой-то момент вамв в такой штуке все же захочется GC, почему-то :-)

     

  • 1.84, Аноним (84), 21:18, 14/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Есть ext4, которая достаточно отказоустойчивая. А это какое-то reinventing the wheel. Не нужно.
     
     
  • 2.96, Аноним (-), 08:55, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Есть ext4, которая достаточно отказоустойчивая. А это какое-то reinventing the wheel. Не нужно.

    Да, у меня как-то на одном из девайсов - вылез единичный случайный бэд под EXT4. К сожалению, он вылез - под libc6. И я смог ощутить всю отказоустойчивость этой штуки от души - когда управляющий одноплатник резко, внезапно и без предупреждения стал тыквой.

    В чем проблема? В том что резко и внезапно подрываться чинить это в темпе вальса - было ну совсем не прикольно. Такая вот отказоустойчивость EXT4 на практике, если закинуть необслуживаемую железку в перди, рулить процессами.

    С тех пор я люблю btrfs с схемой DUP, хорошо справляется с такими подарками.

     
     
  • 3.100, Аноним (27), 11:15, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > С тех пор я люблю btrfs с схемой DUP, хорошо справляется с такими подарками.

    что-то я не вижу в описании littlefs что она делает копии данных и может восстанавливать повреждённые

     
     
  • 4.105, Аноним (104), 14:28, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> С тех пор я люблю btrfs с схемой DUP, хорошо справляется с такими подарками.
    > что-то я не вижу в описании littlefs что она делает копии данных
    > и может восстанавливать повреждённые

    Она и не сватается для SD/eMMC из относительно хлипкого нанда при относительно высокой емкости где это актуально. Для мелкого NOR вполне себе нормально переживать сотни тысяч циклов без факапов. И хранить данные дофига. Там единичный сбой - исключение, а не правило как в NAND который прям с фабы - с дефектлистом уходит.

     
     
  • 5.106, Аноним (-), 14:45, 15/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так, блин, смотрим в книгу - видим фигу!



    Добавлены два новых примера блочных устройств ramcrc32bd и ramrsbd, в которых реализован механизм коррекции ошибок, совместимый с LittleFS. В текущем виде в самой ФС LittleFS отсутствует поддержка определения и коррекции ошибок, и данные операции выносятся на уровень блочных устройств.



     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру