Forum: Mikrocontroller und Digitale Elektronik OS: während Bootvorgang ausschalten -> keine Fehler?


von Johannes (Gast)


Lesenswert?

Hallo,

hat jmd von euch schon mal mit Windows Xp Embedded gearbeitet? Möchte 
gern eine Kiosk-Anwendung schreiben für ein Gerät, welches zu jedem 
Zeitpunkt (also auch während des Bootens) vom User (irrtümlicherweise 
oder auch nicht) augeschaltet (Stromkabel gezogen) werden kann.

Bis jetzt ist es so, dass dadurch häufig Fehler im OS passieren, die 
sogar soweit führen können, dass sich dieses nicht mehr Neustarten 
lässt. Das Image ist auf einer CF-Card gespeichert.

Gibt`s da irgendwelche Tricks/Tipps, dass diese Fehler nicht auftreten? 
Hab mir mal ein ähnliches Gerät von Innen angeschaut - keine Battiere 
etc. finden können und auch sonst nichts auffälliges - allerdings lief 
dieses mit Linux. Aber da sollte nicht so viel Unterschied sein, oder?

Will heißen, wenn ihr mit Linux / Windows ähnliches Problem gelöst habt, 
wäre es cool eure Tipps hier zu erhalten.

Gruß
Johannes

von fh bncvx (Gast)


Lesenswert?

Wenn Du von eine Knoppix-CD bootest, kannst Du ausschalten wann Du 
willst, der CD passiert nichts.

Also sollte nicht auf das Medium geschrieben werden koennen.

Gast

von Sauger (Gast)


Lesenswert?

Moin,

Wenn es Windows sein muss dann schau dir lieber Windows CE an.

Sehr viele HMI Anwendungen (Bedienterminals) die in der Industrie für 
Maschinen/Anlagensteuerungen eingesetzt werden laufen mit CE, Abschüsse 
nach einem Stromausfall sind mir nicht bekannt.

MfG

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Johannes schrieb:
> Aber da sollte nicht so viel Unterschied sein, oder?

Ähh, doch.

Die unter Windows üblichen Dateisysteme FAT16/32 und NTFS erlauben schon 
während des Bootvorganges Schreibzugriffe, was Windows auch sehr stark 
nutzt. NTFS ist zwar ein sog. Journaling-Dateisystem, was theoretisch 
Inkonsistenzen bei Abstürzen verhindern soll, aber trotzdem können 
Probleme auf Applikationsebene auftreten.

Bei normalen Desktop-Linux-Distributionen sieht es ähnlich aus.

Um nun jedoch einen zuverlässigen, jederzeit unterbrechbaren Bootvorgang 
zu ermöglichen, ist es wichtig, unveränderliche bzw. selten 
veränderliche Dateisystembestandteile von den veränderlichen sauber zu 
trennen. Hierfür genügt es nicht, sie in unterschiedliche Verzeichnisse 
zu packen, sondern es sollten wirklich unterschiedliche Dateisysteme und 
ggf. auch Typen sein.

Bei Linux-/UNIX-Systemen ist es kein Problem, solch eine Aufgliederung 
vorzunehmen, d.h. im einfachsten Fall für /, /boot, /bin, /usr, usw. ein 
oder mehrere DAteisysteme gleich mit der Read-Only-Option zu montieren 
(Eintrag "ro" in /etc/fstab) und /var, /tmp, usw. mit Schreibzugriff zu 
versehen.

Man sollte jedoch unbedingt für den Fehlerfall die Möglichkeit vorsehen, 
einen Dateisystemcheck OHNE Benutzereingriff durchführen zu können, 
z.B. durch geeignete fsck-Optionen. Und noch besser ist es, im Falle 
einer gescheiterten Dateisystemrekonstruktion auf eine zur Laufzeit 
frisch erzeugte Version zurückgreifen zu können. Die Vorlage hierfür 
sollte dann schon in dem/n unveränderlichen Dateisystem(en) bereitliegen 
oder per Shellskript erzeugt werden können.

Aber egal, wie man vorgeht: Um ein zuverlässiges System zu erhalten, 
muss man sich genau verdeutlichen, welche Komponente welche Dateien 
verändern oder temporär/dauerhaft erzeugen kann. Und da ist ein 
Linux-System wesentlich besser zu durchschauen als ein Windows-System. 
Letztere sind schon deswegen problematisch, weil ständig schreibend auf 
die Registry zugegriffen wird.

von Der da oben (Gast)


Lesenswert?

Bei XP Embdedd kann man den Schreibzugriff ausschalten. Danach ist ein 
Ausschalten des PC's möglich.

von Johannes (Gast)


Lesenswert?

Der da oben schrieb:
> Bei XP Embdedd kann man den Schreibzugriff ausschalten. Danach ist ein
>
> Ausschalten des PC's möglich.

kannst du mir hierzu noch ein paar mehr Infos liefern? Du meinst den 
Schreibzugriff auf die CF-Karte?

Andreas Schweigstill schrieb:
> Ähh, doch.

danke für deine Ausführungen!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

"Der da oben" wird sich auf den FBWF (file based write filter) bezogen 
haben. Das ist eine XPe-Funktionalität, die gerade beim Einsatz auf 
Flash-Medien äußerst praktisch ist.

Damit kann das gesamte Medium schreibgeschützt werden, das OS kann dann 
in keiner Phase des Bootvorganges irgendwelche Schreibzugriffe 
ausführen.

Im Gegensatz zum etwas älteren allgemeinen Schreibfilter erlaubt der 
FBWF Ausnahmen, hier können einzelne Dateien oder Verzeichnisse von 
diesem Schreibschutz ausgenommen werden, was sinnvoll ist, wenn die mit 
XPe genutzte Anwendung irgendwelche veränderlichen Daten speichern soll.

Schreibzugriffe auf geschützte Bereiche des Dateisystems sind zulässig, 
sie werden im RAM gespeichert, so daß bei Lesezugriffen diese Änderungen 
auch wieder gelesen werden.
Beim nächsten Bootvorgang aber sind diese Daten verloren und werden 
durch den Ausgangszustand ersetzt.

Das ist äußerst praktisch.

Es kursieren auch Anleitungen, wie man den FBWF in ein "normales" XP 
integrieren kann, um ein normales XP ebenso wie ein XPe von Flashmedien 
oder CDs booten zu können.

von Johannes (Gast)


Lesenswert?

Rufus t. Firefly schrieb:
> FBWF (file based write filter)

vielen Dank für diesen Hinweise, werd mich da mal einlesen!

von Johannes (Gast)


Lesenswert?

eine kleine Zusatzfrage: gibt es Unterschiede in der Ausfall-Sicherheit 
von FBWF im Zusammenspiel mit FAT32 oder NTFS?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Keine Ahnung. Ich habe es mit NTFS verwendet, da es da einfacher ist, 
bootfähige CF-Karten zu erstellen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.