Aufbau des Palmsystems (einfach) - Multitasking?

Willkommen!

Wenn du im Nexave-Forum mitmachen möchtest, schreib an community@nexave.de. Wir haben die Registrierungsfunktion in unserem Diskussionsforum nämlich deaktiviert, weil sich praktisch nur noch Spammer und Werbebots registriert haben. Per E-Mail sind wir dir gern behilflich, einen Account anzulegen.
  • Hallo!


    Kann mir jemand mal mit einfachen Worten erklären, wie das Palm-System aufgebaut ist und wie die Programme arbeiten? Mich interessiert, was mit dem Programm a passiert, wenn ich Programm b starte.


    Ich weiß, dass System 5.x noch kein Multitasking beherrscht. Ok, Aber es beherrscht immerhin, dass bestimmte Prozesse im Hintergrund laufen, zum Beispiel Uhr, Alarm, Graffiti, Bluetooth.


    Wie sind denn die Daten einzelner Programme (Kalender, kontakte) geschützt, wenn ein anderes Programm oder ein Treiber oder ein systemnaher Dienst wie BT den Palm zu Absturz (Softreset) bringt?


    Danke für ein wenig Aufklärung.


    Gruß, Tilo

    Meine Palm-History: PalmPilot Personal, Zire 21, Zire 72, Centro -------> außer Konkurrenz: Treo 750

    Einmal editiert, zuletzt von Tilo ()

  • Einfach gesagt:
    Wenn du Programm b startest, dann bekommt Programm a die Nachricht, das es sich beenden soll. Dann kann Programm a seine Daten sichern und wenn es wieder gestartet wird, dann kann es an der gleichen Stelle weitermachen wo es beendet wurde. Das liegt aber voll und ganz in der Verantwortung von Programm a.


    Bevor Programm b gestartet wird, wird also normalerweise Programm a beendet. Auf diese Weise sind Palms sehr schnell (nur ein Programm läuft) und brauchen wenig Speicher.


    Wenn ein Programm bei Start eines anderen Programmes weiterhin im Hintergrund arbeiten möchte, dann muss es spezielle Massnahmen ergreifen.


    Die Daten im Palm sind im Allgemeinen dadurch recht gut geschützt, dass alle Änderungen sehr schnell in die entsprechenden Datenbanken gespeichert werden - nichts wird lange im Speicher gehalten. Wenn dann also ein Absturz kommt, dann gehen fast keine Daten verloren.


    Ralf

  • Zitat

    Original von RalfZ
    Die Daten im Palm sind im Allgemeinen dadurch recht gut geschützt, dass alle Änderungen sehr schnell in die entsprechenden Datenbanken gespeichert werden - nichts wird lange im Speicher gehalten. Wenn dann also ein Absturz kommt, dann gehen fast keine Daten verloren.
    Ralf


    Um nicht zu sagen, die Daten werden unmittelbar in die entsprechende Datenbank geschrieben, die eh dauerhaft im Speicher liegt. So ist es zumindest beim T3 noch. Datenverlust ist damit nahezu ausgeschlossen. (mir ist mal während einer Messreihe nach 2 Stunden Datenaufnahme in SheetToGo der Palm abgepfiffen. Mir war schon ganz schlecht. Aber nach dem SoftReset war alles noch da bis zur letzten Zahl, die ich während des Absturzes gerade eingegeben hatte.) Ab dem T5 gibt es ja auch bei Palm ein Dateisystem um die Datenbanken herum. Damit ist zwar die Dauerhafte Sicherung der Daten über den totalen Stromausfall hinaus gesichert, wie das mit der unmitelbaren Datensicherung aussieht weiß ich aber nicht, da die Daten im RAM ja nur zwischengespeichert werden und dann erst noch in den Flash gespiegelt werden müssen.


    Wer weiß weiter?

  • Zitat

    Originally posted by abecdd
    [...] Ab dem T5 gibt es ja auch bei Palm ein Dateisystem um die Datenbanken herum. Damit ist zwar die Dauerhafte Sicherung der Daten über den totalen Stromausfall hinaus gesichert, wie das mit der unmitelbaren Datensicherung aussieht weiß ich aber nicht, da die Daten im RAM ja nur zwischengespeichert werden und dann erst noch in den Flash gespiegelt werden müssen.
    [...]


    Genau das passierte mir, als ich mit Docs2Go/Word2Go@T5 einen Text schrieb und es dann zu einem Absturz kam. Die Stunde Arbeit war umsonst, da die Daten noch nicht dauerhaft gespeichert wurden. Das war ganz schön ärgerlich. Man hätte hin und wieder mal auf Speichern drücken sollen. (Bzw. eine Auto-Speichern-Funktion einfügen sollen...)


    Gruß,
    Palmine

  • Das mit dem "PalmOS kann nicht multitasken" stimmt IMHO nicht ganz.
    Alle versionen bis einschliesslich OS4 basierten auf einem multitaksingfähigen RTOS von Kadak. Dia Programme liefen jedoch in der sog. UIAS, und diese war singlethreaded.


    Es gab vor einiger Zeit dazu sehr viele Diskussionen in der Entwicklerliste und auch eine viel diskutierte Zusammenfassung auf meinem Blog(leider englisch):
    http://tamspalm.blogspot.com/2…th-non-cobalt-palmos.html


    <offtopic>Schlagt mich, aber ich tippe das jetzt nicht alles ab!</offtopic>

  • Bis einschließlich PalmOS 5 gibt es für Anwendungen kein Multitasking. Auch wenn es manchmal so aussieht, als wenn ein Programm im Hintergrund laufen würde - technisch ist das nicht so. Es gibt nur einen einzelnen Heap im UI-Thread.


    Das OS selber hat noch ein paar eigene Threads, die tatsächlich nebeneinander laufen. Aber das ist für Anwender nicht interessant. Dinge wie Uhr und Schnittstellen werden über Interrupts gesteuert, die bei Desktoprechnern auch. Datenschutz gibt es KEINEN, d.h. jedes Programm kann beliebig im Speicher und in den Datenbanken rumschreiben.


    Bei Cobalt (PalmOS 6) wird endlich alles anders.

  • Zitat

    Datenschutz gibt es KEINEN, d.h. jedes Programm kann beliebig im Speicher und in den Datenbanken rumschreiben.


    Ja, also können tut es das bestimmt. Aber ich denke doch mal, dass jedes Programm so gestaltet ist, dass es auf seine eigene Datenbank zugreift (Agendus etc. mal ausgenommen).


    Die Frage ist, ob ein Programm, wenn es oder ein interruptgesteuerter Hintergrundprozess sich aufhängt, andere Datenbanken zerstören kann, wenn es selbst regulär nur auf seine eigene zugreift.


    Gut, es gibt ja Programme, die durch einen Absturz einen Hardreset notwendig machen. Dann ist sicher nichts mehr zu machen. Aber wenn ein einzelnes Programm (meist sind die Übeltäter ja Drittprogramme) sich aufhängt und ein Softreset einfach alle laufenden Prozesse und Programme beendet, dann ist doch bestenfalls die Datenbank des sich aufgehängten Programms beschädigt, die der anderen aber nicht, oder gibt es da Ausnahmen?


    Gruß, Tilo

    Meine Palm-History: PalmPilot Personal, Zire 21, Zire 72, Centro -------> außer Konkurrenz: Treo 750

    • Offizieller Beitrag
    Zitat

    Originally posted by Tilo
    einzelnes Programm (meist sind die Übeltäter ja Drittprogramme) sich aufhängt und ein Softreset einfach alle laufenden Prozesse und Programme beendet, dann ist doch bestenfalls die Datenbank des sich aufgehängten Programms beschädigt, die der anderen aber nicht, oder gibt es da Ausnahmen?


    Klar gibt es Ausnahmen: Jedes Amok-laufende Programm kann beliebig im RAM herumschreiben. Es gibt Bereiche, den sogenannten Storage-Heap, wo die Datenbanken liegen, auf den man nur mit speziellen API-Befehlen schreibend zugreifen kann. Dieser Schutz kann aber auch durch Unachtsamkeit oder Vorsatz (z.B. UDMH) ausgehebelt werden. Und dann steht dem Datenbankentrash nichts mehr im Wege.


    Gruß
    Henk

  • Das klingt ja nicht so gut. Ich hatte gehofft, dass ihr das Palm-System als robust und in dieser Hinsicht (auch im Hinblick auf gemachte Erfahrungen mit verschiedenen Programmen) von der praktischen, wenn vielleicht auch nicht von der theoretischen Seite her als "sicher" bezeichnet.


    Was macht denn ein Palm, wenn ein amoklaufendes Programm andere Datenbanken zerschossen hat? Kann das lange Zeit (bis zum Öffnen dieser Anwendung?) unbemerkt bleiben? Und was geschieht beim nächsten HotSync? Kann ich mir mit der zerschossenen Datei auch die Dateien auf dem PC zerschiessen?


    Ein Amoklauf ist ja halb so schlimm, wenn dann ein eindeutiger Hardreset fällig und nach einem HotSync alles wieder in Butter ist.


    Vielleicht sollte man mal eine Tabelle beginnen, in der man typische amoklaufende Programme (in Kombination mit bestimmten Palm-Geräten) vermerkt, um diese Kombinationen zu vermeiden. Oder überhaupt eine Liste mit "kritischen" Programmen.


    Sieht es denn bei WinMobile besser aus?


    An Viren will ich ja gar nicht denken.


    Gruß, Tilo

    Meine Palm-History: PalmPilot Personal, Zire 21, Zire 72, Centro -------> außer Konkurrenz: Treo 750

  • Na ja. So dramatisch ist es ja nun auch wieder nicht. Jeder Programmierer sollte sein Programm vor der Vermarktung durchtesten, dass es nicht amokläuft. Mit so einem schlechten Programm kann man ja nicht Geld verdienen.


    Es gibt einen gewissen Schutz im PalmOS. Der Speicherbereich, in dem die Datenbanken liegen (storage area), wird überwacht und man kann dort nur mit Data Manager Funktionen zugreifen (nicht mit dem Memory Manager). In so einem Fall stürzt der Palm einfach ab, bevor was überschrieben wird. In Cobalt wird dann nur das Programm geschlossen, aber Rest des Systems läuft weiter.


    Wenn man es drauf anlegt und ein Malware-Programm für PalmOS schreiben will (Virus, Trojaner etc.) hat man derzeit bei PalmOS leichtes Spiel. Mit den richtigen Funktionen kann ich im nu den ganzen Speicherinhalt löschen. Auch das wird bei Cobalt endlich sicherer.

    • Offizieller Beitrag

    Logischerweise kann es dann auch passieren, das die Daten beim Hotsync auf dem PC landen. Das ist jetzt aber auch langsam wirklich nur noch Theorie. In der schönen guten alten Wirklichkeit ist mir so ein Programm ncoh nie untergekommen und würde auch nicht lange überleben. Selbst beim Programmieren habe ich es noch nicht hinbekommen, meine Datenbanken so zu trashen, das sie beim HotSync meine Desktopversionen zerstört haben. Und das will was heißen...


    Ich würde PalmOS nicht als unsicher bezeichnen. Ich weiß zwar nicht, wie es auf PoPC mit dem Speicherschutz aussieht, aber ich denke, 100% Sicherheit gibt's da auch nicht. Selbst auf dem Desktop mit seinem Speicherschutz etc. ist man nicht vor totalem Datenverlust durch Schadprogramme gefeit. Spätestens auf der Festplatte ist jede Datei angreifbar.


    Es gibt auch keine Tabelle der typisch-Amok-laufenden Programme, weil solche Programme nicht erhältlich sind. Es gibt zwar Antivirenprogramme für Palm OS, aber keinen freilebenden Virus, weil es keine brauchbare Übertragungsmöglichkeit gibt.


    Gruß
    Henk

  • Also, ich vermute mal eher, daß hier das Programmierpotential einfach noch nicht soweit ist :)
    Ich meine, die ersten Viren für Symbian sind schon raus (auch wenn sie sich noch reichlich blödsinnig verbreiten); hier schafft einfach die Masse der einsatzfähigen Geräte das "Markt"Potential.


    Wenn ich mir die Struktur des PalmOS so ansehe:
    - Programme schreiben ihre Datenbanken in eine zentrale Datei
    - voller FAT-Zugriff auf die Speicherkarte von jedem Programm
    - im Hintergrund laufender Bluetooth-Dienst


    dann benötigt es nur noch ein wenig kriminelle Energie und ein Grundverständnis über die Lücken im BT-Protokoll, um ein Programm zu schreiben, das ähnlich wie der Agobot handelt:


    - Aufruf der zentralen Datenbank ("Registry" unter Windows!)
    - Durchscannen und Indizierung der Einträge
    - Warten auf Programmstart eines der gelisteten Einträge (z.B. Secret!, Memopad, WordToGo, etc.)
    - Warten auf Beendigung des Programms
    - wahlweise Löschen der benutzten Datenbank oder Verschlüsselung derselben. Bei erneutem Zugriff auf die Datenbank schiebt der Virus eine Infomeldung nach, daß der Verschlüsslungscode für die wichtige Datenbank für 100$ per Email eingeholt werden kann. Ansonsten sind die Daten verloren.
    - evtl. Installation in ROM?
    - fortwährender Scan nach anderen Palms per Bluetooth und unbemerkte Übertragung.


    Das einzige, was die Ausbreitung eines solchen Virus verhindert, ist eigentlich die Sicherheit im BT-Protokoll. Da aber in der Zwischenzeit immer mehr Schnittstellen am Palm andocken (W-Lan, GPRS, UMTS, W-Lan im p2p-Modus), dürfte es auf Entwicklerseite immer schwieriger werden, für eine 100%ige Systemsicherheit zu sorgen.


    Wie steht es eigentlich im PoPC-Bereich mit Trojanern/Viren?

    • Offizieller Beitrag

    Ich denke, Du hast bei BT keine Chance. Die Wahrscheinlichkeit, das sich 2 oder mehr Palmbesitzer mit eingeschaltetem BT nah genug kommen, ist zu gering und passiert auch zu selten, IMHO. Aber über den Desktop mit HotSync oder auch beim PoPC mit ActiveSync wäre es sicherlich leicht möglich. Desktop sind ja super verwundbar (Würmer hier und Trojaner dort) und warum sollte nicht ein Windowswurm ein Palm OS oder PoPC Schadprogramm mitsichführen. Die Symbianviren sind doch auch nur Quatsch. Und Symbian hat bestimmt eine 90% Verbreitung im Handymarkt. Ich glaube, das die begrenztenÜbertragungsmöglichkeiten und die doch zu unterschiedlichen Symbian-Versionen auf den Handies ein "Showstopper" für Viren jeder Art sind.