Autor Thema: Dinge, Namen, usw.  (Gelesen 16130 mal)

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« am: 10. August 2005, 13:55 »
So, mal ein Designthread.

In jedem System gibt es verschiedenste Dinge, wie z.B. die CPU, nen Floppycontroller, Programme, Dateien, IP Addressen usw.
Ein ziemlich bunter Haufen - welcher in ein Namensschema gepackt werden will, so wie es z.B. bei Unix und bei Plan 9 versucht alles ins Dateisystem zu packen.

Jedoch finde ich ein Dateisystem ist keine gute Idee, weil darin nun mal Dateien sind, und z.B. Hardwaregeräte nun mal keine Dateien sind (auch wenn es unter Linux so normal ist mit /dev - tut mir leid, es funktioniert nicht gut, zumindestens nicht gut genug für mich!).

Dann kann man sich die Frage stellen wie man dann die Dinge (sagen wir mal lieber: Objekte) organisiert.

Eine Hierarchie (also sowas wie Verzeichnisse) wird man wohl auf jeden Fall brauchen. Und es stellt sich die Frage wer den Namen die richtigen Objekte zuordnet, der Kernel?

Man könnte sich eine Art DNS überlegen, welches einfach Namen das Ziel (welcher Art auch immer, Kerneltreiber, Prozess, usw.) zuordnet. Jedoch stelle ich mir da die Frage ob das so einfach auch reichen würde.
*post*

jeb

  • Beiträge: 341
    • Profil anzeigen
    • http://www.jebdev.net
Gespeichert
« Antwort #1 am: 10. August 2005, 14:49 »
ich hab mir diese Frage gestern auch gestellt  :D . Schlussendlich bin ich auf die Entscheidung gekommen, alles in ein Verzeichnis zu stecken aber ein bisschen anders:

Es gibt ein Grundverzeichnis. In diesem befinden sich:

\                            Das Dateisystem mit dem OS
speichergeräte\       Weitere Festplatten, Floppy, CD-ROM
input\                     Maus, Tastatur, etc.
output\                   Grafikkarte, Soundkarte, etc.

Man kann das ganze dann ja noch weiterführen. Es ist zwar dann auch in der Ordnerstruktur, doch begint das FS eigentlich in \ und die Geräte sind nicht in \.

mfg, jeb

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #2 am: 10. August 2005, 15:04 »
Nun ja, stimmt, das Dateisystem würde man in so einem System natürlich auch einhängen wollen, aber das FS stellt dann nicht automatisch die Wurzel so wie bei Uni*en.

Wäre schon mal ein Aspekt den ich in einer Form sicher aufgreifen würde.
*post*

MasterM

  • Gast
Gespeichert
« Antwort #3 am: 21. December 2005, 21:53 »
Auch wenn dieser Thread schon ein paar Wochen schläft, muss ich meinen Kommentar dazu abgeben.
Lass das mit dem "\"!
Ich hasse dieses dämliche AltGr-Gedrücke und halte die Verwendung solcher Zeichen für eine Zumutung. Gerade als Deutschsprachler sollte man auf die Benutzer von Nicht-US-Tastaturen ein wenig Rücksicht nehmen. Nimm halt irgend ein vernünftiges Zeichen. Das "!" oder der "/" sind deutlich hübscher.
Nur weil Windoof den "\" benutzt heißt das noch lange nicht, dass das nicht absoluter Bulls**t ist.

LG Michi

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 21. December 2005, 21:58 »
kannst ja dein tastaturlayout auf ausländisch umstellen, wenn dir das deutsche nicht gefällt ;)

das "!" hab ich noch nirgendwo gesehen. wird das irgendwo verwendet?
Dieser Text wird unter jedem Beitrag angezeigt.

Thoth

  • Beiträge: 62
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 21. December 2005, 21:59 »
Nur wird DNS von rechts nach links aufgelöst, ich würde es in einem solchen System dann doch umgekehrt bevorzugen.
Madness isn't a bug - it's a feature

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #6 am: 22. December 2005, 14:25 »
Hallo,

Bei mir werden alle Geräte wohl in einer Tabelle aufgelistet sein. Jeder Task kann sich dort ein Gerät erstellen. Wenn jetzt ein Task z.B. auf fdd0 zugreifen will, sagt er das dem Kernel, der schaut in seiner Liste nach, wem das Gerät "gehört", und schickt dem Task, der zugreifen will, die TaskID des Verwalters. Dann kann der Task mit dem Treiber eine Stream-Verbindung basierend auf meiner IPC (Nachrichtensystem) aufbauen und über Standards mit diesem Treiber reden. Dadurch kann ich alles unter einen Hut bringen und schaffe eine einfache Kommunikationsstruktur. Wenn 5 Tasks chatten wollen, erstellt der Server einfach ein Gerät "chatsoundso" und alle finden dann den richtigen Weg.

Gruß,

Joachim
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #7 am: 22. December 2005, 17:11 »
Hmm, dynamisch erstellt wird natürlich nötig sein. Aber ich denke eine Hierarchie wird wohl doch Vorteile bieten.
*post*

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #8 am: 22. December 2005, 20:23 »
Zitat von: Legend
Hmm, dynamisch erstellt wird natürlich nötig sein. Aber ich denke eine Hierarchie wird wohl doch Vorteile bieten.


Welche? Ich sehe bei einer Hierarchie und "Kategorien" immer so viel Aufgaben beim Kernel. So hat man nie ein dynamisches System, sondern muss es immer anpassen. Außerdem muss man dann alle "Geräte" klassifizieren, was schwer werden dürfte, u.a. weil man dann ständig den Kernel aktualisieren muss.
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #9 am: 23. December 2005, 12:29 »
Nun, beim Enumerieren welche Hardware eines bestimmten Types da ist.
Klassifizieren muss man sowieso, und dynamisch Verzeichnisse anlegen geht wohl.
fdd* zu Matchen wirkt für mich nicht soo sauber. Erinnert mich etwas an die Handhabung mit Device Files unter Linux.
*post*

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #10 am: 23. December 2005, 16:07 »
Wieso muss man klassifizieren?
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #11 am: 23. December 2005, 19:26 »
Nun, irgendwann wird man z.B. einen Player wie Winamp schreiben wollen. Will man sein System nicht auf eine einzige Soundkarte beschränken muss der Player sich eine (oder mehrere) Karten aussuchen, wobei er hierfür wissen muss welche Karten überhaupt vorhanden sind.

Daher muss man auf irgendeine Art alles klassifizieren, ob man nun wie bei dir z.B. alle Diskettenlaufwerke mit fdd* als Prefix versieht oder auf andere Weise.

Deswegen geht es ohne solche Möglichkeiten sicher nicht gut.
*post*

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #12 am: 23. December 2005, 22:39 »
Oder man macht eine recht überschaubare Klassifizierung wie "Input, Output, Speichermedium, Verarbeitung". Damit müsste man _etwa_ alle irgendwie unter einen Hut bringen. Der Anwender bekommt dann beim ersten Start des Mediaplayers einen Dialog gezeigt, in dem er ein Gerät aussuchen kann, dass der groben Klassifizierung (input, output, speicher, verarbeitung) entspricht und dann gehts los. So entsteht nie das Problem, dass ich für jede Geräteklasse den Kernel (und die Erkennungsmethoden) nachrüsten muss.

EDIT: Und der User wird wohl kaum das Gerät "Drucker" als Ausgabegerät nehmen, wenn drunter "Lautsprecher" oder "Soundkarte" steht. ;) (Hoffe ich jedenfalls :D)
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #13 am: 23. December 2005, 23:59 »
Tjo ne, ich hatte auch nie vor den Kernel dafür jedes Mal zu ändern. Der Kernel sollte da nur das Framework für sowas anbieten, so dass man dynamisch Klassen hinzufügen.

Und der Benutzer sollte solche Überlegungen nie erst machen müssen.

Und na ja, im Laufe der Zeit ändert sich eine Klassifizierung insofern das es neue Klassen geben wird.
*post*

 

Einloggen