Welche Dateisysteme für eingebettete Systeme?



  • Es wird aber offensichtlich nicht empfohlen.

    Leute, warum denn FAT? Ihr seht doch, dass es ganze Listen von Alternativen gibt.

    Es gibt Dateisysteme, die sehr viel mit Kompression arbeiten (squashfs, cramfs) oder Dateisysteme, die fast keinen Overhead produzieren (ramfs).



  • Beispiele wie OpenWrt sind keine Spezifikation.

    Leute, warum denn FAT?

    Weil es sehr einfach zu implementieren ist, weil es wenig Ressourcen braucht. Warum nicht? Welche deiner Anforderungen werden nicht von FAT erfuellt?

    Btw. die Rechnung/Schaetzung will ich sehen:

    schätzungsweise 1/4 davon nur für das Dateisystem allein verbrauchst



  • interessierter schrieb:

    Leute, warum denn FAT? Ihr seht doch, dass es ganze Listen von Alternativen gibt.

    Weil der Support dort ist.



  • knivil schrieb:

    Weil es sehr einfach zu implementieren ist, weil es wenig Ressourcen braucht.

    Der Witz ist, dass es eben Dateisysteme gibt, die noch einfacher zu implementieren sind und noch weniger Ressourcen brauchen.

    Und jemand, der Sachen für embedded Systems programmiert, wird wohl kaum Windows oder ein Windows-Tool (die Windows garnicht bereitstellt) zum erstellen irgendwelcher Images benutzen, sondern Linux, und Linux unterstützt diese Dateisysteme alle.

    FAT ist nicht das Maß aller Dateisysteme.



  • Was ist mit Verbreitung und Bekanntheitsgrad.

    Desweiteren weichst du aus: Welche deiner Anforderungen werden nicht von FAT erfuellt?

    einfacher zu implementieren sind

    Die moechte ich mir gerne ansehen. Nenne doch Beispiele. Sind sie general purpose?



  • knivil schrieb:

    Die moechte ich mir gerne ansehen. Nenne doch Beispiele. Sind sie general purpose?

    Sehr gerne, Beispiel: romfs
    Spezifikation hier: https://www.kernel.org/doc/Documentation/filesystems/romfs.txt

    Die zwei Seiten sind schnell gelesen (wieviel Seiten hat die FAT-Spezifikation? 300?).

    Das würde sich sogar in Assembler leicht implementieren lassen.



  • Wenn du die Antwort schon weißt, warum fragst du dann?



  • Christoph schrieb:

    Wenn du die Antwort schon weißt, warum fragst du dann?

    Weil hier vielleicht jemand noch eine bessere Idee hat?

    knivil schrieb:

    Was ist mit Verbreitung und Bekanntheitsgrad.

    Es interessiert niemanden, welches Dateisystem du in deinem embedded System nutzt, weil kein Mensch seinen Wlan-Router auseinander nimmt und schaut, was auf dem flash-Speicher drauf ist (die allermeisten machen es zumindest nicht).

    Du kannst auch ein eigenes Dateisystem entwerfen und verwenden, solange es gut implementiert ist und funktioniert, wird sich keiner dran stören und es keinen interessieren.

    FAT benutzen weil es bekannt ist? So ein schwachsinniges Argument.



  • FAT benutzen weil es bekannt ist? So ein schwachsinniges Argument.

    Ach, vielleicht solltest du mal ueber die Perspektive klar werden. Dummerchen. Bekannt unter Entwicklern, nicht beim User. Dem ist das egal. Btw. romfs also Read only ist fuer meinen WlanRouter ungeeignet. Ich haette gern logfiles.

    Du kannst auch ein eigenes Dateisystem entwerfen und verwenden, solange es gut implementiert ist und funktioniert, wird sich keiner dran stören und es keinen interessieren.

    Doch weil ich es Entwickler spezifizieren, dokumentieren und testen muss. Es ist wesentlich mehr Aufwand. Ein Nachfolger der es wartet hat einfach keine Probleme Informationen ueber FAT zu finden.



  • knivil schrieb:

    Ach, vielleicht solltest du mal ueber die Perspektive klar werden. Dummerchen. Bekannt unter Entwicklern, nicht beim User. Dem ist das egal. Btw. romfs also Read only ist fuer meinen WlanRouter ungeeignet. Ich haette gern logfiles.

    Ja, und? Ob User oder Entwickler, das spielt keine Rolle. Vielleicht hat dein Wlan-Router einen extra-rw-Speicher für log-files und Konfigurationsdateien? Das halte ich sogar für sehr wahrscheinlich.

    Du sagst "Dummerchen" zu mir? (ich hab damit kein Problem.) Das zeigt, dass ich doch den Informatiker-Stolz getroffen hab. Aber wie solls auch anders sein, wenn man glaubt, dass die Sachen, mit denen man im Informatikstudium vor über 10 jahren (geschätzt) zugemüllt wurde, immernoch aktuell sind?

    FAT ist nicht aktuell, auch nicht FAT32. FAT32 ist ein einziger Witz, warum nimmt man auch einen uint32_t für Dateigrößen und nicht uint64_t? Dann hätte man diese 4GB-Grenze nicht und könnte FAT auch ohne große Veränderung, die bald kommen muss, nutzen.
    FAT will schon seit Jahren (Jahrzehnten) keiner mehr, weil es den aktuellen Ansprüchen nicht gerecht wird, deshalb hat ja Microsoft NTFS entwickelt.

    Und romfs ist nur eines von vielen alternativen Dateisystemen, es gibt sogar noch bessere, das sind eben die, die grundsätzlich mit Deflate komprimiert sind (z. B. squashfs).

    FAT? Bei dem Overhead und der im Vergleich doch relativ hohen Komplexität? 🤡



  • Und selbst wenn der Standard von romfs keinen Schreibzugriff vorsieht, dann hält mich nichts davon ab, dies einzubauen, das wird ja im Standard gesagt.

    Das ändert ja nichts an der Struktur oder der Standardkonformität des Dateisystems an sich.



  • Konkret bei mir: PCI-Karte -> Flashspeicher -> Fat16 , d.h. immernoch aktuell. Alter ist kein Grund, Dinge abzulehnen.

    aktuellen Ansprüchen nicht gerecht wird

    Du hast deine noch nichtmal genannt. Fat16 erfuellt alle Ansprueche hier bei mir.



  • knivil schrieb:

    Konkret bei mir: PCI-Karte -> Flashspeicher -> Fat16

    Und? Dann hat halt deine PCI-Karte Fat16. Viel interessanter ist es doch, was große Konzerne, die embedded Systems entwickeln, verwenden.



  • Und? Dann hat halt deine PCI-Karte Fat16. Viel interessanter ist es doch, was große Konzerne, die embedded Systems entwickeln, verwenden.

    Lol, du lachst mich aus beim Bekanntheitsgrad und fuehrst selbst die Groesse von Unternehmen an?



  • knivil schrieb:

    Und? Dann hat halt deine PCI-Karte Fat16. Viel interessanter ist es doch, was große Konzerne, die embedded Systems entwickeln, verwenden.

    Lol, du lachst mich aus beim Bekanntheitsgrad und fuehrst selbst die Groesse von Unternehmen an?

    Was willst du nur immer mit dem Bekanntheitsgrad? Wie ich schon sagte, es interessiert einfach niemanden, welches Dateisystem auf dem flash-Speicher, der tief irgendwo im Router verbaut ist, und an den man wahrscheinlich nicht rankommt, ohne irgendwas kaputt zu machen, drauf ist. Warum sollten sich Entwickler um den Bekanntheitsgrad schehren? Außerdem hat romfs einen eindeutigen magic string, der gleich ins auge fällt, wenn man einen Hex-Editor bedienen kann. Dann noch 2 sek. googlen und man weiß, dass es romfs ist.



  • interessierter schrieb:

    Was willst du nur immer mit dem Bekanntheitsgrad? Wie ich schon sagte, es interessiert einfach niemanden, welches Dateisystem auf dem flash-Speicher, der tief irgendwo im Router verbaut ist

    Doch. Es interessiert den Typen der das Warten muss. Und wenn du einen billigen Studenten nehmen kannst, dann interessiert das plötzlich auch noch das Management - denn bekannte Technologien zu verwenden bedeutet billigere Arbeitskräfte zu bekommen.

    Deshalb ist der Bekanntheitsgrad sehr wohl wichtig.

    Und nicht nur billige Arbeit sondern auch noch Fehlerfreiheit. Denn bekannte und viel verwendeter Code ist fehlerfreier als wenig verwendeter.



  • FAT ist nicht auf Wear-Leveling optimiert, was zu einigen Problemen führt wenn man versuchen würde Wear-Leveling mit FAT zu implementieren.

    Davon abgesehen sehe ich keine Probleme. Und auch so, allgemein keinen Grund im embedded Bereich ein anderes FS zu verwenden. Natürlich kann man, die Frage ist aber immer: wozu?

    Diese Frage will uns interessierter nur leider nicht beantworten.



  • hustbaer schrieb:

    Natürlich kann man, die Frage ist aber immer: wozu?

    Ich denk, das ist eigentlich ziemlich klar: Damit es nicht von Microsoft ist...



  • FAT ist der Quasistandard wenn es um FS für embedded Systems geht. Ob das nun von Mircosoft ist oder nicht ist doch völlig irrelevant, solange das Format vollständig public und free ist.



  • Ohne zu wissen, um was für eine Art von Embedded-System (und welche Art von Speicher!) es überhaupt geht, ist die Frage unsinnig.

    Hast du "raw"-Flashspeicher? Dann kannste FAT natürlich vergessen und es gibt eine Handvoll für diesen Zweck ausgelegte Dateisysteme. Hast du MMC-Zeug oder sonstwas, das dir ein Blockdevice vorspielt? Dann wäre FAT eine Option, wenn du mit den Beschränkungen klarkommst.

    Kommt halt wieder auf die Art deines Systems an. Wenn du einen leistungsstarken SoC hast und da Linux drauf laufen soll, willst du mit Sicherheit kein FAT, zumindest nicht ausschließlich. Auf einem kleineren ARM (ARM7 oder Cortex-M) oder gar einem Achtbitter mit Speicher von einigen KiB willst du auf jeden Fall was einfaches. All das wird aber heute gängigerweise als "Embedded" bezeichnet.


Anmelden zum Antworten