Wbudowana stabilność systemu Linux

2

Zajmuję się tworzeniem wbudowanego systemu Linux (jest już prawie skończony). Mam problem z tym, że system staje się niestabilny przez częste odcięcie źródła zasilania i już się nie uruchamia. To nawet nie działa fsck.

System ma tylko XFCE ze stałą, automatycznie ładowaną aplikacją Qt, aby wyświetlić niektóre wykresy.

Moje pytanie brzmi: w jaki sposób komercyjne wbudowane dystrybucje Linuksa (takie jak Linux zarządzania Wifi AP, ...) unikają tego problemu?

Masz jakiś pomysł?

kosmos
źródło
1
spojrzałbym także na stronę sprzętową - dlaczego odcina się zasilanie? jaki to rodzaj sprzętu? czy jest jakiś sposób, aby zmienić to na konsolę szeregową?
Journeyman Geek

Odpowiedzi:

3

Większość robi jedną z dwóch rzeczy:

Albo uruchamiają główny system plików tylko do odczytu i mają oddzielny obszar do przechowywania danych zamontowanych do odczytu i zapisu,

lub

Mają główny system plików skompresowany w pliku, który jest rozszerzany do ramdysku podczas uruchamiania.

Oznacza to, że system plików jest zawsze w tym samym stanie, bez względu na to, co się stanie. Jest tylko mały obszar do przechowywania konfiguracji, który może się martwić, i może mieć system plików, który nie martwi się zbytnio o utratę zasilania.

Kolejną wskazówką jest wyłączenie całego buforowania na partycji pamięci, aby wszystkie zmiany były natychmiast zapisywane na dysku.

Majenko
źródło
Dzięki Matt! pierwsza opcja wydaje się prosta i właściwie o tym myślałem. Myślę, że mogę to zrobić bez większego problemu. Zauważyłem, że niektóre dystrybucje, takie jak TinyCore, stosują drugie podejście. 1 - Jak mogę to zrobić? 2 - Jak porównać skuteczność tych dwóch podejść?
hosm
1

Tak, ogólnie rzecz biorąc, nie.

Jeśli chodzi o to, wszyscy prawdopodobnie zawiedli urządzenia wbudowane - czy to sprzęt sieciowy, urządzenia ip czy inne.

Mówiąc najprościej, zbuduj swoją aplikację najlepiej, jak potrafisz - jako programista to wszystko, co możesz zrobić.

Staraj się, aby Twoja aplikacja była jak najbardziej niezawodna - umieść sprawdzanie błędów na najwyższym / każdym poziomie. Na przykład, jeśli masz plik konfiguracyjny, który jest potrzebny, a aplikacja nie może się bez niego uruchomić, wpisz sygnał dźwiękowy / informację zwrotną, jeśli nie zostanie znaleziony - powiadom użytkownika.

Następny poziom naprawdę pochodzi od producenta sprzętu - redundancja lub niezawodność jest kluczem, i ponownie upewnij się, że dostawca sprzętu postępuje zgodnie z powyższymi pomysłami, takimi jak sprawdzanie błędów / pełne informacje zwrotne, aby w razie awarii ludzie wiedzieli, dlaczego / co to zrobiło.

Nie wdałem się w zbyt wiele szczegółów, ale mam nadzieję, że to pomaga i wskazuje właściwy kierunek.

William Hilsum
źródło
Dzięki Wil! właściwie to, co jest dla mnie ważne, to stabilność samego systemu operacyjnego, ponieważ nie jestem odpowiedzialny za aplikację :-) Jednak Twoja rada jest naukowo bardzo dobra, ale potrzebuję inżynierii, ponieważ biorę wszystkie ulepszenia uwagi na temat programu, sprzętu itp., ale myślę, że to, co ulega awarii, to sam system operacyjny
hosm