Weiterentwicklung von PrettyOS: Floppy vs USB



  • Hallo,

    Tobiking2 schrieb:

    Für die Tests auf echter Hardware werden meist alte Kisten verwenden. Bei denen kann man dann nicht pauschal sagen ob diese booten von USB unterstützen.

    Wie alt sind den die? Alle Rechner die ich zur Verfügung hab (bis zu 10 Jahre alt) können von USB booten.

    Tobiking2 schrieb:

    Ein Problem das man bei USB auch noch lösen muss ist das Wählen des Richtigen Laufwerkes im Buildscript.

    Im Buildscript muss man die Verwaltung des Host-Systems benutzen. Für den Bootvorgang des neuen OS (finden des Root-Laufwerks) gibt es mehrere Varianten. Der Laufwerksnahme oder irgendwelche Seriennummern sind da eine beliebte Methode.

    Tobiking2 schrieb:

    die USB Laufwerke unterscheiden sich erstmal nicht von den Festplatten.

    Von den internen (S)ATA-Festplatten unterscheiden sich USB-Geräte doch sehr deutlich und was man so alles per USB anschließt wenn man ein experimentelles OS startet sollte man sich eben gut überlegen.

    Grüße
    Erik



  • erik.vikinger schrieb:

    Tobiking2 schrieb:

    die USB Laufwerke unterscheiden sich erstmal nicht von den Festplatten.

    Von den internen (S)ATA-Festplatten unterscheiden sich USB-Geräte doch sehr deutlich und was man so alles per USB anschließt wenn man ein experimentelles OS startet sollte man sich eben gut überlegen.

    Das war auch noch auf das Buildsystem bezogen. Das Diskettenlaufwerk ist z.B. unter Linux als /dev/fd0 nicht zu verwechseln. Das USB-Laufwerk wird aber meist als irgendein /dev/sd* eingetragen und läuft damit unter der gleichen Bezeichnung wie die Festplatten. Schreibt man nun in das Buildsystem /dev/sdb als Default Wert rein wird das sicherlich schief gehen. Ich wüsste grad auch keine Methode um sicher zu gehen das man das richtige Device erwischt. Das wird man immer angeben müssen. Das ganze auf eine Diskette zu schreiben ist daher etwas problemloser.

    erik.vikinger schrieb:

    Wie alt sind den die? Alle Rechner die ich zur Verfügung hab (bis zu 10 Jahre alt) können von USB booten.

    Ich habe letztens einen Laptop mit einem Pentium 90 gefunden, auf dem ich das mal testen wollte. Der hatte noch keine USB Anschlüsse, allerdings war da auch das Diskettenlaufwerk kaputt und es wurde nichts daraus. 🙂



  • Hallo,

    Tobiking2 schrieb:

    Das USB-Laufwerk wird aber meist als irgendein /dev/sd* eingetragen und läuft damit unter der gleichen Bezeichnung wie die Festplatten. Schreibt man nun in das Buildsystem /dev/sdb als Default Wert rein wird das sicherlich schief gehen. Ich wüsste grad auch keine Methode um sicher zu gehen das man das richtige Device erwischt. Das wird man immer angeben müssen.

    Mann kann einen Link auf das zu verwendende Block-Device anlegen und nur den '/dev/myOsDev' verwenden.

    Grüße
    Erik



  • Hallo,

    OT:

    Tobiking2 schrieb:

    Ich habe letztens einen Laptop mit einem Pentium 90 gefunden

    Wenn der ≥2 echte (mit 16550 UARTs) und funktionierende Serielle Schnittstellen hat (und insgesamt noch einigermaßen funktioniert) darfst Du den gerne bei mir gegen 20 voll funktionsfähige Euronen eintauschen. 😃

    Grüße
    Erik



  • Der ist leider schon entsorgt. Der wurde allerdings auch mal aufgeschraubt weil versucht wurde die kaputte Festplatte auszutauschen und ging seitdem nicht mehr richtig zu. Also viel war da nicht mehr mit zu machen.


  • Mod

    So einfach ist die Entwicklung eines USB-Treibers also nicht.
    Wie gesagt, sowas gibt es bereits.

    @Erik: kannst Du mir bitte diesen Link auf den Sourcecode eines funktionierenden USB-Treibers geben?



  • Hallo,

    Erhard Henkes schrieb:

    kannst Du mir bitte diesen Link auf den Sourcecode eines funktionierenden USB-Treibers geben?

    Aber klar:
    http://www.embedded-projects.net/usbport
    http://www.platon42.de/poseidon.html
    http://www.reactos.org/wiki/USB_Stack
    ich hab da noch ein paar andere in Erinnerung aber finde die jetzt nicht auf die schnelle. Die großen etablierten Open-Source-OSe bieten auch einiges.
    Viele größere Mikrocontroller haben heutzutage einen USB-Host-Controller eingebaut und daher gibt es da verschiedene Projekte. Die Suchmaschine Deiner Wahl sollte noch mehr bringen können.

    Grüße
    Erik


  • Mod

    Danke! 🙂


  • Mod

    Hier läuft auch gerade eine aktuelle Diskussion bezüglich USB-Treiber:
    http://forum.osdev.org/viewtopic.php?f=1&t=21515



  • Hallo,

    ich hab noch ein paar Links
    http://www.mikrocontroller.net/articles/USB#Host-Controller_im_Mikrocontroller für die dort genannten Mikrocontroller gibt es von den Herstellern unterschiedlich komplexe UBS-Host-Stack Implementierungen, zum Teil auch als Source-Code; die Seite ist auch insgesamt recht interessant
    http://code.google.com/p/tatos/ tatOS : "Operating system for x86 32bit computers written in assembly", unterstützt UHCI & EHCI Host-Controller und Mass-Storage-Devices

    Wenn ich mit meinem Projekt irgendwann mal so weit bin das ich Dateien lesen/schreiben will (außer RAM-Disk) dann muss ich mich entscheiden ob ich mit USB oder SATA anfange, so nen uralten Floppy-Kram will ich jedenfalls nicht anfangen.

    Grüße
    Erik


  • Mod

    so nen uralten Floppy-Kram will ich jedenfalls nicht anfangen

    Können Cuervo und ich inzwischen nachfühlen, ist auch wirklich nicht einfach und ziemlich lahm.



  • Hallo,

    so nen uralten Floppy-Kram will ich jedenfalls nicht anfangen

    Ich hatte mal daran gedacht sowas wie http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/LPCSuperIOforDesktopAndServer/W83627HG-AW.htm oder http://www.via.com.tw/en/products/peripherals/super-io/ einzusetzen, etwas in der Art habt Ihr bestimmt auch in Euren physischen Test-Rechnern. Allzu schwer sollte es nicht sein ein LPC-Master in ein FPGA zu implementieren, den A20-Ausgang dieser Chips muss ich ja nicht nutzen. So ein Chip würde mir auf einen Schlag eine Reihe Schnittstellen bieten, auf der anderen Seite müsste ich auch etliche Verrenkungen machen um dieses Gewürch in meine Plattform zu integrieren.

    Erhard Henkes schrieb:

    Können Cuervo und ich inzwischen nachfühlen, ist auch wirklich nicht einfach und ziemlich lahm.

    Tja, moderne Schnittstellen (USB oder SATA) sind doch etwas anderes als so ein abscheulicher Kram der schon gut 30 Jahre vor sich hin fault (und in der Zwischenzeit ziemlich stinkt).

    Viel Spaß noch! 😃

    Grüße
    Erik


  • Mod

    Viellicht kannst Du in die Schnittstelle Floppy ---> DMA rein schauen, warum das so unzuverlässig läuft. Wir müssen da höllisch aufpassen und checken, damit uns dort die Daten lückenlos ankommen. Irgendetwas ist da noch nicht brauchbar.



  • erik.vikinger schrieb:

    Erhard Henkes schrieb:

    Können Cuervo und ich inzwischen nachfühlen, ist auch wirklich nicht einfach und ziemlich lahm.

    Tja, moderne Schnittstellen (USB oder SATA) sind doch etwas anderes als so ein abscheulicher Kram der schon gut 30 Jahre vor sich hin fault (und in der Zwischenzeit ziemlich stinkt).

    Stimmt, ekelhaft und hässlich. Das ist USB wirklich, da spreche ich aus Erfahrung. Komm nach #tyndur und frag eddyb, der auch versucht, einen USB-Treiber zu implementieren, der singt das gleiche Lied (und der ist noch dabei, den Host Controller zum Sprechen zu bringen...). 🙄

    Ich habe nie versucht, fremden Code zu nehmen. Das könnte schon einfacher sein. Aber was soll das? Ich möchte mein OS nie wirklich einsetzen. Wenn ich arbeiten will, nehme ich Linux. Deshalb hab ich persönlich nichts dagegen, wenn in Hobby-Betriebssystemen auf "veraltete" Standards gesetzt wird, weil diese dazu da sind, Erfahrung zu sammeln. Gerade bei PrettyOS ist das der Fall. Dies soll doch ein didaktisch wertvolles OS sein und kein OS, das alles kann, dachte ich?

    erik.vikinger schrieb:

    Viel Spaß noch! 😃

    Den werden sie haben, wenn sie versuchen, USB selbst zu implementieren, wie es sich für ein didaktisch wertvolles OS gehört. 🙄


  • Mod

    Dies soll doch ein didaktisch wertvolles OS sein und kein OS, das alles kann, dachte ich?

    Völlig richtig. PrettyOS soll verständlich bleiben und zum eigenen Experimentieren einladen. Momentan treten einige Effekte auf, die zumindest ich nicht völlig verstehe. Außerdem sind im Floppy/FAT-Bereich einige Parallelitäten bei Funktionen eingetreten, die noch beseitigt werden müssen. Bezüglich Multitasking stehen wir noch ziemlich am Anfang, das macht Probleme.

    Was aber Spaß macht, ist der Umstand, dass man mehrere eigene User-Programme für PrettyOS erstellen und laufen lassen kann. Da warten aber auch schon wieder neue Tücken. Also genug damit zu tun, das Vorhandene gerade im didaktischen und experimentellen Sinne zu optimieren, verständlich zu halten und zu stabilisieren.



  • Hallo,

    Erhard Henkes schrieb:

    Viellicht kannst Du in die Schnittstelle Floppy ---> DMA rein schauen, warum das so unzuverlässig läuft. Wir müssen da höllisch aufpassen und checken, damit uns dort die Daten lückenlos ankommen.

    Ob Du es glaubst oder nicht aber mit dedizierten DMA-Controllern hatte ich noch nie etwas zu tun, mit dem 8237 auch nicht, alle Hardware für die ich Treiber programmiert habe kann ihre Daten selber aus/in dem RAM lesen/schreiben oder wurde per PIO von der SW bedient (bei kleinen Datenmengen).
    Kann es sein das ihr Eure DMA-Transfers aufsplittet weil die Zielpages nicht an einem Stück im physischen Speicher liegen? Du hattest Doch mal geschrieben das ihr immer ganze Spuren am Stück verarbeitet, das sind doch 9kByte wenn mein Gedächtnis mich jetzt nicht im Stich lässt. Falls da ein Problem ist solltet ihr versuchen zusammenhängend physischen Speicher und nur einen DMA-Job zu nutzen. Für was nehmt ihr eigentlich die ersten 640k? Die würden sich ideal als Zwischenpuffer anbieten.

    XanClic schrieb:

    Stimmt, ekelhaft und hässlich. Das ist USB wirklich, ...

    Okay, USB ist vielleicht nicht unbedingt als Positiv-Beispiel geeignet, die Spec liest sich teilweise echt fürchterlich. Auch das mit jeder neuen Generation ein neuer Host-Controller mir rein gewürgt wird ist sicher zum kotzen aber so übel sieht die EHCI-Spec IMHO gar nicht aus, ich sehe dort viele Konzepte die ich von anderer Hardware auch gewöhnt bin. Ich habe mich mit USB noch nicht so sehr intensiv beschäftigt, ich bin mir auch noch nicht sicher ob ich auf meiner Plattform überhaupt USB haben will. USB ist eben sehr verbreitet und man hat ja neben der Mass-Storage-Class noch HID und für alles gibt es auch bereits ne Menge Source-Code. Ich denke (hoffe) wenn ich doch USB haben will dann werde ich nur in die untersten Ebenen viel Arbeit investieren müssen.

    Ich habe nie gesagt das ein USB-Host-Stack einfacher ist als ein Floppy-Treiber, ich habe lediglich angeregt mal drüber nachzudenken ob sich dieser Mehraufwand nicht vielleicht doch lohnt weil man auch einen viel größeren Gegenwert bekommt und Floppy in kaum einen Rechner mehr drin ist. Ich bin der Meinung das die potentielle Zielgruppe eingeschränkt wird wenn man ausgestorbene Hardware voraussetzt. Wenn man sich anschaut was die letzten 10 Jahre als Komplett-PC bei Media-Markt und Co. so über die Theke gewandert ist so ist "booten von USB" sicherlich deutlich häufiger als "booten von Floppy". Wenn Ihr Euch gegen USB entscheidet so kann ich damit prima leben, ich wollte lediglich zum diskutieren anregen.

    Grüße
    Erik



  • erik.vikinger schrieb:

    Ich habe nie gesagt das ein USB-Host-Stack einfacher ist als ein Floppy-Treiber, ich habe lediglich angeregt mal drüber nachzudenken ob sich dieser Mehraufwand nicht vielleicht doch lohnt weil man auch einen viel größeren Gegenwert bekommt und Floppy in kaum einen Rechner mehr drin ist. Ich bin der Meinung das die potentielle Zielgruppe eingeschränkt wird wenn man ausgestorbene Hardware voraussetzt. Wenn man sich anschaut was die letzten 10 Jahre als Komplett-PC bei Media-Markt und Co. so über die Theke gewandert ist so ist "booten von USB" sicherlich deutlich häufiger als "booten von Floppy". Wenn Ihr Euch gegen USB entscheidet so kann ich damit prima leben, ich wollte lediglich zum diskutieren anregen.

    Eigentlich wurde darüber bereits genügend diskutiert, glaube ich. 😉

    s. z. B. http://www.c-plusplus.net/forum/viewtopic-var-t-is-253016.html oder ab http://www.c-plusplus.net/forum/viewtopic-var-t-is-236354-and-start-is-681.html

    Solche Diskussionen wünsche ich mir, ehrlich gesagt, nicht zurück. 😉



  • Hallo,

    XanClic schrieb:

    Eigentlich wurde darüber bereits genügend diskutiert, glaube ich. 😉

    Okay, dann nicht. Entschuldigt bitte meine Störung.

    XanClic schrieb:

    Solche Diskussionen wünsche ich mir, ehrlich gesagt, nicht zurück. 😉

    Kann ich gut verstehen. Auf das Niveau eines ";fricky" will ich ja nicht hinab (war ich IMHO auch nicht).

    Grüße
    Erik


  • Mod

    Entschuldigt bitte meine Störung.

    Du störst nicht. Wir schätzen Meinungsvielfalt, jedoch werden wir auf Konstruktivität achten, zumindest bei der praktischen Entwicklung, da unsere Ressourcen limitiert sind. USB ist ein klar definiertes Ziel, momentan aber zu früh, da das OS nicht ausreichend stabil läuft und im Treiberbereich nicht wirklich abstrahiert ist.


  • Mod

    Noch zur Erläuterung:

    ;fricky ist ein "Troll", der sich vor Kurzem großspurig aus dem cplusplus-Forum verabschiedet hat. Hier hat er nichts beigetragen, lediglich ständig gegen x86 gewettert, ohne es zu kennen, und einen USB-Treiber versprochen, auf den wir immer noch warten.

    FAZIT: Konstruktiven praktischen Input mögen wir hier mehr als nutzlose theoretische Belehrungen. 😉


Anmelden zum Antworten