Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Mit dem BIOS kommunizieren
fletschge
myCSharp.de - Member



Dabei seit:
Beiträge: 13

Themenstarter:

Mit dem BIOS kommunizieren

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Lixtop
myCSharp.de - Member



Dabei seit:
Beiträge: 78

Mit dem BIOS kommunizieren

beantworten | zitieren | melden

Hallo fletschge

Mach es doch mit System.Management, oder auch WMI.
Allerdings hat eine HDD nichts mit dem BIOS zu tun, lt. WMI.
private Nachricht | Beiträge des Benutzers
fletschge
myCSharp.de - Member



Dabei seit:
Beiträge: 13

Themenstarter:

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
Spielgrips
myCSharp.de - Member

Avatar #avatar-1699.png


Dabei seit:
Beiträge: 24
Herkunft: Deutschland/Sachsen/Chemnitzer Umgebung/Limbach-Oberfrohna

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
norman_timo
myCSharp.de - Member

Avatar #avatar-1775.jpeg


Dabei seit:
Beiträge: 4591
Herkunft: Wald-Michelbach (Odw)

beantworten | zitieren | melden

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!”
private Nachricht | Beiträge des Benutzers
fletschge
myCSharp.de - Member



Dabei seit:
Beiträge: 13

Themenstarter:

beantworten | zitieren | melden

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 =)
private Nachricht | Beiträge des Benutzers
norman_timo
myCSharp.de - Member

Avatar #avatar-1775.jpeg


Dabei seit:
Beiträge: 4591
Herkunft: Wald-Michelbach (Odw)

beantworten | zitieren | melden

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!”
private Nachricht | Beiträge des Benutzers
S.H.-Teichhof
myCSharp.de - Member

Avatar #avatar-2460.jpg


Dabei seit:
Beiträge: 1552
Herkunft: Sindringen

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
maxE
myCSharp.de - Member



Dabei seit:
Beiträge: 456
Herkunft: Sachsen

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo fletschge,
Zitat
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
private Nachricht | Beiträge des Benutzers
fletschge
myCSharp.de - Member



Dabei seit:
Beiträge: 13

Themenstarter:

beantworten | zitieren | melden

Ganz einfach, weil ich kein anderes gefunden habe
private Nachricht | Beiträge des Benutzers
maxE
myCSharp.de - Member



Dabei seit:
Beiträge: 456
Herkunft: Sachsen

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers