Treiber Programmierung

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Do Okt 09, 2008 3:45 pm

cloidnerux hat geschrieben:Frage: Wie schafe ich ein system shutdown/restart mit C zu Realisiren.
Darüber steht nirgenswo was im Internet.
Hilfe erwünscht!
Ich habe es selbst noch nie implementiert (ich brauche es bis jetzt ja nicht).
Ich weiß aber so ca wie es funktioniert.
Du musst einen speziellen Port auf dem Keyboardkontroller einen gewissen Wert zuweisen.
Dann startet der Rechner neu.

Aber das Internet weiß immer etwas:
http://wiki.osdev.org/Reboot
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Do Okt 09, 2008 4:03 pm

OK Danke. Aber ich will ja das system komplett abschalten aus, nichts neustart.
Was ist eigentlich dein OS?
Name, link
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Do Okt 09, 2008 4:17 pm

Wenn du es nicht nur Neustarten willst, dann musst du wissen, wie Power Management funktioniert. Außerdem musst du feststellen, ob ACPI oder APM funktionieren.
Das ist nicht unbedingt gerade das leichteste..

Ich habe meinem Kernel bisher keinen Namen gegeben. Das ist auch noch nicht nötig. Wie meinst du einen Link?
Ich habe keine eigene Homepage für den Kernel, in meinen Augen auch unnötig.
Der Code liegt hier auf dem Server, im SVN Repository.
svn.proggen.org/kernel
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Do Okt 09, 2008 4:19 pm

achso
Wie weit bist du?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Do Okt 09, 2008 4:28 pm

(siehe Brett "Kernel-Projekt")
GDT & IDT & Interrupts & Co funktionieren.
Paging funktioniert jetzt.
Physikalische Speicherverwaltung funktioniert.

Jetzt mache ich mich langsam über die virtuelle Speicherverwaltung.
Dazu brauche ich eine Implementation eines Sortieralgorithmus.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Do Okt 09, 2008 5:29 pm

Jo weiter als ich
ICh mach jezt mit Paging weiter
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Do Okt 09, 2008 6:13 pm

Du wirst vorher noch eine physische Speicherverwaltung brauchen...
Hast du funktionierende Interrupts?

*edit* Hast du nicht...ohne geht's nicht */edit*
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Fr Okt 10, 2008 7:50 am

Funktioneiernde Interrupts sezten ein porgrammierten PIC voraus, oder?
In dem Realese war das nicht von nöten, ist jezt erst dazugekommen.
Frage: Was ist Physische Spiecherverwaltung,
was sind ihre aufgaben, und wie soll man das realisiren?

In den Meisten tutorials darüber steht nur wie man das theoretisch machen kann, aber ich versthe das nicht so ganz.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Fr Okt 10, 2008 2:14 pm

Andersherum: Eine funktionierende PIC setzt Interrupts vorraus.

Und ob das von Nöten war. Um Irgendeine Eingabe zu bekommen sind Interrupts benötigt (Keyboard..).

Physikalische, nicht physische. Physikalische Speicherverwaltung bedeutet die Verwaltung des wirklich im Computer vorhanden Speichers (z.B. 512 MB). Diesen Speicher musst du irgendwie verwalten.
Du musst wissen: Was ist frei und was ist in Benutzung.
Wenn du kein Paging benutzt musst duch auch wissen, wem der Speicher gehört.
Mit Paging ist das aber unnötig.

Wenn du deinen physikalischen Speicher verwalten kannst, dann kannst du erst mit Paging beginnen. Paging gibt dir virtuellen Speicher (4GB). Den musst du dann auch irgendwie verwalten.
cloidnerux hat geschrieben:In den Meisten tutorials darüber steht nur wie man das theoretisch machen kann, aber ich versthe das nicht so ganz.
Ich denke du hast den Sinn noch nicht erfasst. Wenn du einen Kernel schreibst, wirst du wenig Code finden, der genau das macht, was du möchtest. Den Code musst du selbst entwickeln. Das ist die Aufgabe des Programmierers.
Damit er das tun kann, muss er verstanden haben, wie etwas funktioniert.
Um zu verstehen, wie etwas funktioniert, muss man die (theoretischen) Grundlagen beherrschen.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Fr Okt 10, 2008 3:08 pm

Du meinst Ohysische speicherverwaltung anhand einer Bitmap oder einer Zwiestufigen lösung.
Frage: PAging realisirt 4GB RAm. So ich habe aber nur 2 GB. Wenn jezt ein Programm relativ viel Spiecher brauch, und der Kernel durch Paging jezt diesem Programm Speicherzuweist, den es nicht mehr gibt, gibt es dann nicht INformationverlust?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten