Hi!
Weiss jemand wo ich ein gutes Tutorial herbekomme, wie ich mit dem BIOS direkt kommunizieren kann, also auch Geräte wie Harddisk ansteuern kann?
ich weiss, die Frage ist schwammig formuliert und so à la "Wie programmiere ich einen 3D-Action Shooter". Denn schliesslich ist es danach ein komplettes Betriebssystem.
Aber vielleicht hat jemand einen Tipp wie man da beginnen kann?
Das Grundwissen, wie die Geräte funktionieren (z.B. Aufbau einer HD, RAM, Prozessor) besitze ich.
Gruss
fletschge
Hallo fletschge
Mach es doch mit System.Management, oder auch WMI.
Allerdings hat eine HDD nichts mit dem BIOS zu tun, lt. WMI.
eben 😁
Naja ich dachte auch weniger an C# oder an .NET sondern eben dirket ansteuern, müsste C -> Maschinensprache sein, damit das die Prozessoren verstehen...
Eher C++ und das mit der kloppigen Win32 API (not OOP!) 😁 Und wenn ich mir vorstelle wie schwierig das war ein normales Fenster zu erzeugen X(! Da hatte man schon 500 Code Zeilen 🙄!
12.01.06 hab myCSharp.de T-Shirt bestellt
20.01.06 angekommen
31.02.06 In Plauen angehabt
Hallo!
Also wenn ich richtig informiert bin, dann stellt das BIOS nur die Informationen über eine Hardware bereit, aber noch lange nicht die Schnittstelle oder die Kommunikation.
Das macht nämlich das Betriebssystem! (Wurde hier auch schon erkannt, indem erklärt wurde die WMI zu benutzen!)
Mit Assembler kann man diese Schnittstelle umgehen (auch mit C oder C++ auf C Ebene), muss dann aber sich um die Schnittstelle selbst kümmern.
Vielleicht lässt es sich einschränken, indem Du uns verrätst was Du genau vor hast!
Festplatte ansteuern? Um was zu tun?
Meist wird gleich so ein Weg versucht, anstatt sich mit den schon vorhandenen Mitteln zu beschäftigen.
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Hi!
@norman! genau das will ich ja machen. natürlich weiss ich was ein betriebsystem kann und tut. ok war leicht daneben mit C, wär ja klar das es assembler sein müsste.
Nun ich möchte eine kleine eigene Hardwarebenen programmieren, einfach so zum versuchen =)
Festplatte? Oder egal was für eine Hardware?
Warum bist Du dann in einem C# Forum gelandet?
Festplatte hat noch ein sehr kompliziertes Problem, was andere Hardware nicht hat, nämlich das Filesystem! Das muss dementsprechend auch eingebunden werden, und das ist sehr sehr aufwändig (iiihh neue Rechtschreibung 🙂 .
Also solltest Du Dir zunächst einmal grundlegende Gedanken machen, was Dein Programmteil wirklich machen können muss, so eine Art Pflichtenheft 🙂
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Wenn du auf die Hardware ebene runter willst kannst du c# vergessen. Und wenn du eine kleine eigene Hardwarebenen programmieren möchtest würde ich dir den Linux kernel nahe legen da kannst du dir anschauen wie so was aussehen sollte wenn es fertig ist😁
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
C# ist sicher keine typische Systemprogrammiersprache aber es gibt auch Wege mit C# ein Betriebsystem zu implementieren:
http://channel9.msdn.com/ShowPost.aspx?PostID=68302
Das ist ein Forschungsprojekt von Microsoft. Es geht darum einen Betriebssystemkernel in C# zu schreiben. Sogar die Gerätetreiber sind in C# entwickelt worden. Low-Level Dinge wie Interrupt-Handling sind aber weiterhin in Assembler und C Code gehalten.
Moderne Betriebssysteme benutzen das BIOS nur noch in der Boot-Phase, um einen bestimmeten Videomodus zu setzen, Festplatten auszulesen oder einfachen Text auszugeben. Im Betrieb wird das BIOS meist nicht mehr genutzt, da der Zugriff über den BIOS-Interrupt sehr langsam ist.
Wenn du selbst mal etwas herumspielen willst, dann empfehle ich dir das ganze in einem Emulator zu testen (Bochs, VMWare, ...)
Links dazu:
http://www.lowlevel.brainsware.org (Da gibt es auch ein Forum, die Leute dort können dir vielleicht auch mehr helfen)
http://www.osdever.net/
http://www.osdev.org
http://www.tutorials.de/tutorials20706.html
I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.
Hallo fletschge,
ich dachte auch weniger an C# oder an .NET
ich möchte mich der Frage von norman_timo anschließen:
Wenn es deiner Meinung nach "C -> Maschinensprache sein" müsste und du sogar weniger an C# oder an .NET denkst, warum stellst du dann die Frage in einem C#/.NET-Forum?
herbivore
Vielleicht wäre dieses Forum besser für dich 😉http://www.lowlevel.brainsware.org/forum/
I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...