Laden...

Mit dem BIOS kommunizieren

Erstellt von fletschge vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.150 Views
F
fletschge Themenstarter:in
13 Beiträge seit 2005
vor 18 Jahren
Mit dem BIOS kommunizieren

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

L
78 Beiträge seit 2005
vor 18 Jahren
Mit dem BIOS kommunizieren

Hallo fletschge

Mach es doch mit System.Management, oder auch WMI.
Allerdings hat eine HDD nichts mit dem BIOS zu tun, lt. WMI.

F
fletschge Themenstarter:in
13 Beiträge seit 2005
vor 18 Jahren

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...

24 Beiträge seit 2005
vor 18 Jahren

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

4.506 Beiträge seit 2004
vor 18 Jahren

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!”

F
fletschge Themenstarter:in
13 Beiträge seit 2005
vor 18 Jahren

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 =)

4.506 Beiträge seit 2004
vor 18 Jahren

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!”

1.549 Beiträge seit 2004
vor 18 Jahren

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

M
456 Beiträge seit 2004
vor 18 Jahren

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.

49.485 Beiträge seit 2005
vor 18 Jahren

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

F
fletschge Themenstarter:in
13 Beiträge seit 2005
vor 18 Jahren

Ganz einfach, weil ich kein anderes gefunden habe 😁

M
456 Beiträge seit 2004
vor 18 Jahren

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.

4.221 Beiträge seit 2005
vor 18 Jahren

oder unter www.codeforum.ch

--> Assembly

Dort gings auch schon um so themen (sogar auf D)

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...