Autor Thema: Treiber C oder Assembler  (Gelesen 4756 mal)

Programm Noob

  • Gast
Gespeichert
« am: 10. July 2010, 00:25 »
Ich bin gerade am überlegen ob ds sinvoller wäre die Hardwaretreiber, die eh nicht portabel sind in Assembler zu schreiben. Was meint ihr wäre es sinnvoll oder nicht.

Programm Noob

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 10. July 2010, 00:34 »
Ist es nicht.

Am elegantesten wäre es, die nichtportablen Treiber portabel zu machen. :-D (NetBSD trennt dafür z.B. strikt die Bussysteme ab, so dass ein Treiber an jeden Bus gehängt werden kann - NE2000-Treiber ist damit für ISA, PCI, MCA, PCMCIA, ... sofort verfügbar).

Außerdem greifst du ja über die Hardwaretreiber trotzdem nicht unbedingt direkt auf die Hardware zu, sondern nach Möglichkeit über Betriebssystemfunktionen - so dass du z.B. eine Übersicht über die verwendeten Ressourcen hast und verhindern kannst, dass zwei verschiedene Treiber die gleiche Hardware ansprechen wollen. Diese Zwischenebene ist dann ohnehin in C.

Naja, und eine Hochsprache ist lesbarer, oftmals ist auch die Dokumentation mit C-Beispielcode versehen und man kann leichter Algorithmen nachvollziehen und auch debuggen...

Nimm C (, unless you know what you're doing :lol:)

Gruß,
Svenska

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 12. July 2010, 12:23 »
Hallo,


Das hängt ganz von Ziel ab.
Wenn man in Assembler programmiert um auch etwas zu lernen dann kann das durchaus ein sinnvoller Weg sein, wenn man aber ernsthaft ein größeres Programm entwickelt, das man eventuell auch noch über einen längeren Zeitraum warten und aktualisieren will, dann ist Assembler (meistens) keine so gute Wahl. Damit will ich definitiv nicht sagen das man in Assembler keine ordentlichen, strukturierten und wartbaren Programme schreiben kann, es erfordert nur deutlich mehr Disziplin und Erfahrung beim Programmierer. Wenn Du da Erfahrungen oder Inspirationen suchst dann wäre http://www.menuetos.net/ eventuell eine gute Adresse (das soll keine Wertung von deren Source-Code sein, ich habe da nie rein gesehen und kann daher nichts davon beurteilen).


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #3 am: 13. July 2010, 11:00 »
Wenn Du da Erfahrungen oder Inspirationen suchst dann wäre http://www.menuetos.net/ eventuell eine gute Adresse (das soll keine Wertung von deren Source-Code sein, ich habe da nie rein gesehen und kann daher nichts davon beurteilen).
Die geben doch garkeinen Sourcecode (mehr) raus, oder?
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

Programm Noob

  • Gast
Gespeichert
« Antwort #4 am: 13. July 2010, 11:14 »
Ich dachte schon ich wär zu dämlich um auf der Seite den Sourcecode zu finden. Ich finde nur von Zusatzprogrammen den code.

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 13. July 2010, 11:55 »
Hallo,


Ich wollte mit MenuetOS auch nur mal ein Beispiel für eine Assembler-Only-Entwicklung nennen, um zu signalisieren das auch dieser Weg funktionieren kann (aber nicht muss).

Man kann in jeder Programmiersprache schlechte Programme entwickeln, ein schlechter Programmierer wird durch keine Programmiersprache besser, die höheren Sprachen machen es dem befähigten Programmierer nur etwas einfacher gute Programme zu entwickeln.

Die geben doch garkeinen Sourcecode (mehr) raus, oder?
Sorry, das wusste ich nicht. Ich hab dort vor Jahren mal ein Disketten-Image runtergeladen, auf ne echte Diskette gespielt und das ganze ausprobiert. Ich bin mir ganz sicher das damals der Kernel-Source dabei war, ich hab nämlich ein paar neugierige Blicke riskiert und aus einer der Applikationen (für welche ebenfalls Source dabei war) mir ein paar Anregungen geholt. Nachdem ich später gelesen hatte das die 32 Bit-Version zu Gunsten der 64Bit-Version eingestellt wird habe ich mich nicht mehr weiter für dieses Projekt interessiert, da ich keinen 64Bit-tauglichen Rechner habe. Zumindest für die 32Bit-Version ist wohl noch alles online http://www.menuetos.org/stuff32.htm. Unter http://www.menuetos.net/hwc.txt sind auch EHCI-Host-Controller und Mass-Storage-Devices (und noch andere USB-Dinge) aufgelistet, der Source dafür wäre auf jeden Fall mal sehr interessant. Ob die wirklich einen USB 2 Treiber-Stack in Assembler programmiert haben?


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

RedEagle

  • Beiträge: 244
    • Profil anzeigen
    • RedEagle-OperatingSystem - Projekt
Gespeichert
« Antwort #6 am: 13. July 2010, 12:15 »
Nur die 32Bit Version war open source.
Du kannst dir aber den KolibriOS code runterladen, der basiert auf dem Menute32-Code, bzw ist ein fork.

Programm Noob

  • Gast
Gespeichert
« Antwort #7 am: 13. July 2010, 12:57 »
erik.vikinger: Danke für den Link zu USB. Das werde ich mir mal genauer Ansehen.

RedEagle: Danke für den Link zu KolibriOS. Ich habs mir mal Runtergeladen und werde den Code mal ein wenig studieren.

Programm Noob

 

Einloggen