TODO
Aus Lowlevel
Version vom 20. März 2010, 17:34 Uhr von Bluecode (Diskussion | Beiträge)
Inhaltsverzeichnis
Überarbeiten
- Das Wiki braucht dringend einen neuen Kategorienbaum. Manche Artikel kann man im Moment wirklich nicht vernünftig kategorisieren. Alles nur nach Kategorie:Glossar zu stopfen kann es auch nicht sein. (siehe auch Lowlevel:Kategoriebaum)
- System Management Mode
- GRUB Installation auf einem USB-Stick
- Kernel
- Exokernel einarbeiten und dann redirecten
- ISA
- Textausgabe bedarf wahrscheinlich der Überarbeitung (stilistisch)
Magazin ausschlachten
- Ausgabe 1: Lowlevel-Grundlagen
- Ausgabe 2: Lowlevel-Grundlagen
- Ausgabe 1: Etwas Systemtheorie -> Bootprozess oder so
Erweitern
- Cross-Compiler: aus irgendeinem Grund ist hier der i*86 Teil weggefallen
- Mathematischer Koprozessor - Programmierung, Einsatz im OS-Dev
- Treiber
- Linux Artikel erweitern
- IPC: Ideen für RPC aus dem Thread im Forum
- FAT: Was sind Cluster? Wie liest man Dateien?
- das PE-Dateiformat erklären
- Long Mode
- Dateisysteme wie FAT, extfs, reiser, UDF, iso9660 usw.
- SMP
- APIC
- logischer Adressierungsmodus
- Benutzer:Bluecode glaubt, dass in der SMP-Spec irgendwas dazu steht wie die PIC mit dem Zeuch verbunden ist bzw. verbunden sein kann
- irgendwo edge- vs. level-triggered Interrupts besprechen
- x86
- Ergänzungen zur Handhabung von Interrupts
- Was genau? Denke das gehört eher dann in Real Mode, Protected Mode und/oder Long Mode
- Eingehen auf verschiedene Befehlssätze
- Liste der Hardware die sonst noch zu einem x86-System gehört
- Ergänzungen zur Handhabung von Interrupts
- x86-64: SSE und FPU Register in FPU (x86) und SSE oder so verschieben
- AMD PCnet Netzwerkkarte
- Floppy Disk Controller
- Kategorie:Versionsverwaltung
- OSDev dür Einsteiger Serie: auf irgendwas zum Umwandeln zwischen verschiedenen Zahlensystemen verweisen
- VFS
Kleinigkeiten
- I/O APIC: Beschreibung des INIT Delivery Modes
- GRUB: Beispiel für eine Config, die man jemandem geben kann, der einfach nur Kernel und Module im Speicher haben will.
Neu erstellen
- sowas in richtung troubleshooting oder so, mit zB
- Warum meckert mein Linker irgendwas mit undefined reference (auch im Spezialfall C++, extern "C" und so)
Du bist doch normalerweise für wenigstens ein paar Relevanzkriterien, XanClic weiß nicht, ob Linkprobleme direkt was hier im Wiki zu suchen haben... Eher ein Link zu einem guten Tutorial etc. zum Thema (wobei mir da spontan keins einfällt).
- du wolltest eine IDT/GDT laden und es gibt Exceptions? Registerdump des Emulators IDTR und GDTR (Adresse und Größe) überprüfen
- bitte Liste erweitern
- Warum meckert mein Linker irgendwas mit undefined reference (auch im Spezialfall C++, extern "C" und so)
- Warum empfehlen wir GRUB? Wir sollten irgendwo ne Liste von Gründen dafür/dagegen sammeln, das Thema kommt so elendig oft auf, dass man dann darauf verweisen könnte. Benutzer:Bluecode fällt nur kein Name für einen Artikel dazu ein, Vorschläge?
- irgendwas zu QEMU und GDB, primär wie man beides zusammen verwendet
- Entwicklungsumgebungen - Woraus sollte sie bestehen, welche Programme gibt es für einen Verwendungszweck - gesonderte Programmvorstellungen, vllt. Empfehlungen wären gut! Die unterschiedlichen Entwicklungsplattformen (Linux, Windows, ...) sollten schon aufgeführt sein.
- Teilweise erledigt: Editoren sind schon abgedeckt.
Interne Darstellung der Zahlen, Darstellungsmöglichkeiten negativer Zahlen, Aufbau von Gleitkommazahlen (IEEE)
- Muss noch ausgebaut werden, siehe Binäre Datentypen
- Wie funktionert eine CPU, ein Befehl, ein Maschinenzyklus, ein Interrupt? Alles, was an den Universitäten im Laufe von 2-4 Semestern gelehrt wird, in 5 Absätzen mit einer prise Humor und garniert mit bunten Struktogrammen.
- Datenblätter lesen und verstehen! Was tun, wenn das Internet kaputt gegangen ist, und man keine Codebeispiele zum Abtippen hat? (Zum Anfang vielleicht die Datenblätter von PIC, PIT und die Intel Manuals. Dann knackigere Sachen wie Netzwerkkarten, Soundkarten, ATA, ... was weiß ich.)
- Was meinst du damit? Soll das eine Anleitung werden, wie man Datenblätter ließt oder Primär eine Liste mit allen Datenblättern als Links? Programm Noob 14:53, 7. Jan. 2010 (CET)
- Eine Anleitung, Links zu Datenblättern sind bei den Artikeln weit besser aufgehoben
- Aritkel zu Datenstrukturen:
- Stack
- Heap
- Ausbau des Artikels Speicherverwaltung
- evtl noch kurz Datenstrukturen wie den "Binärbaum" (=binary tree) oder "Verlinkte Liste" (=linked list) erläutern?
USBund alles drumherum (UHCI, OHCI, EHCI, vielleicht ja auch xHCI)- Selbst eingetragen, nun löffel ich die Suppe auch selbst aus. Wer helfen kann und will, ist natürlich herzlich eingeladen! ;-) --XanClic 01:21, 6. Mär. 2010 (CET)
- APM, und vielleicht als Beispiel wie man damit einen PC herunterfährt
- Mich würde mal interessieren, wie man ein Programm für das eigenen OS portiert. Also mit einer Anleitung, wie man das dan compilern muss usw. --user94 21:14, 8. Mär. 2010 (CET)
- Wie sowas funktioniert dürfte sehr stark von Deinem OS abhängen. Allgemeine Anleitungen sind da IMHO unmöglich. --Erik.vikinger 17:16, 9. Mär. 2010 (CET)
- Ich mein, man hat ja eine libc oder so was ähnliches. Und wie kann man damit dann z.B. FASM compilern? Weil da steht ja, dass man nicht viel dazu braucht.--user94 19:20, 9. Mär. 2010 (CET)
- Na ja, bei FASM linkt man halt einfach die libc-Objektdatei gegen die eigene libc.a. Bei anderen Sachen ist es aber eben um einiges komplizierter und weil es bei FASM so einfach ist, denke ich nicht, dass sich da eine Seite lohnt (wogegen es bei anderen Sachen eben, wie von Erik beschrieben, zu betriebssystemspezifisch ist). --XanClic 20:30, 9. Mär. 2010 (CET)
- Ich mein, man hat ja eine libc oder so was ähnliches. Und wie kann man damit dann z.B. FASM compilern? Weil da steht ja, dass man nicht viel dazu braucht.--user94 19:20, 9. Mär. 2010 (CET)
- Ich habe auf Basis von Radixsort einen extrem schnellen Sortieralgorithmus entwickelt, mit dem unter C nach allen Datentypen sortiert werden kann, und habe ihn bei SourceForge public gemacht. Ich habe schon einen Artikel bei Wikiversity (letzter Algorithmus) eingestellt. Da man auch in Betriebssystemen Tabellen sortieren muß, könnte das auch hier von Interesse sein. Falls dem so ist, würde ich einen Artikel schreiben, der technisch genauer darauf eingeht, was wie und warum funktioniert. --JDHenning 12:12, 16. Mär. 2010 (CET)
- Wer ein Betriebssystem schreiben will, der sollte auch sortieren können... Außerdem braucht man in seiner libc eh ein qsort(), das kann man dann implementieren. Radixsort eignet sich aber nicht als Implementierung für qsort(), weil es nicht jede totalgeordnete Menge sortieren kann. --DickHuuhn 21:03, 16. Mär. 2010 (CET)
- Bist du bitte so nett und gibst mir irgendein Beispiel einer Sortieraufgabe, die Quicksort handhaben kann und ExtraDix nicht? Da ExtraDix nach allen in C bekannten Datentypen sortieren kann bin ich mal gespannt ;-). --JDHenning 11:50, 18. Mär. 2010 (CET)
- Alle nicht in C direkt eingebauten Datentypen, dann möchte ich primär die Vergleichsfunktion angeben, was bei einem nicht vergleichsbasierten Algorithmus offensichtlich nicht möglich ist. Ich finde es auch nicht besonders redlich, dann auf der Wikipedia-Seite das mit Quicksort zu vergleichen. Abgesehen davon ist es eine Implementierung eines Algorithmus und kein Algorithmus an sich, deswegen finde ich es selbst auf der Wikipedia-Seite fehl am Platz.--Bluecode 12:28, 18. Mär. 2010 (CET)
- Es ist sowohl ein Algorithmus, nämlich die Erweiterung von RadixSort, als auch eine Implementierung, die aus pragmatischen Gründen den gleichen Namen bekommen hat. In C gibt es integer und floats mit unterschiedlichen Ausprägungen sowie strings und alle diese lassen sich sortieren. Dann gibt es die zusammengesetzten Strukturen, die aus diesen Grundtypen aufgebaut werden. Alle diese können mittels ExtraDix sortiert werden und andere Datentypen sind mir in C nicht bekannt. Was also meinst du bitte mit "Alle nicht in C direkt eingebauten Datentypen"? Und was ist unredlich am Vergleich mit Quicksort? Schließlich wird dieser Algorithmus an vielen Stellen als der schnellste angepriesen. --JDHenning 12:13, 19. Mär. 2010 (CET)
- Worin besteht denn der Unterschied zwischen Radixsort und ExtraDix? Es ist unredlich in dem Sinne, dass man bei Quicksort eine beliebige Ordnung auf den zu sortierenden Objekten angeben kann, bei Radixsort aber nur eine Ordnung auf dem Alphabet und es wird automatisch daraus die lexikographische Ordnung. Bei ExtraDix kommt hinzu (zumindest so wie ich das verstehe), dass die Ordnung automatisch die der Binärdarstellung des Objekts ist (und man kann dann nur zwischen aufsteigend bzw. absteigend wählen). Außerdem kann man bei Strukturen sowie ich das sehe nur ein Feld der Struktur auswählen und nach diesem Sortieren lassen. Was ist nun wenn man mehrere Felder braucht, um zu vergleichen? zB könnte ich mir einen n-dimensionalen Vektor vorstellen, den ich der Länge nach sortieren will, dabei aber nicht die Länge explizit speichern will. Ich will deine Implemtierung in keinster Weise diskreditieren, aber 1. ich halte Sortieralgorithmen nicht relevant für dieses Wiki (dafür gibt es genug andere Plätze im Internet um eine gute Erklärung dafür zu finden), falls du anderer Meinung bist, müsstest du mir Erklären warum das speziell beim OSDev (das ist das Thema des Wikis) und nicht nur allgemein beim Programmieren (das ist nicht das Thema des Wikis) relevant ist 2. Ich halte ExtraDix für eine Implementierung von RadixSort und nicht für einen Algorithmus (siehe oben)
- Hier kommt dein Wunsch hin ;)
Diskussionen, die sich noch nicht erledigt haben
- Diskussion:Ausgabe 2
- weitere: siehe Liste der Diskussionsseiten
Siehe auch: Gewünschte Seiten | Gewünschte Kategorieseiten | Seiten, die die TODO-Vorlage verwenden | Stubs