AiCOS — Änderungen 3789 → 3796

Zeile 6: Zeile 6:
 
| Kernel = Modulares Kernel System (MKS)
 
| Kernel = Modulares Kernel System (MKS)
 
| API = n/a
 
| API = n/a
−
| Binaerformat = bisher RAW
+
| Binaerformat = BIN, (event. EXE)
 
| Sprache = [[Assembler]], [[C]]/[[C++]]
 
| Sprache = [[Assembler]], [[C]]/[[C++]]
 
| IPC = Channels
 
| IPC = Channels
Zeile 19: Zeile 19:
  
 
= Entwicklungsumgebung =
 
= Entwicklungsumgebung =
−
* Intel Core 2 Quad mit 4 GiB RAM
+
* '''Hardware'''
−
* Microsoft [[Windows]] XP Pro
+
** Intel Core 2 Quad mit 8 GiB RAM
−
* Microsoft Visual Studio 2008 Express
+
* '''Software'''
−
* Mircosoft .NET Framework v3.5
+
** [http://www.microsoft.com/germany/windows/windows-xp/ Microsoft XP Pro] >>> [[Windows]]
−
* Microsoft Windows-Debugger x86/x64 für Kernel-Debug
+
** [http://www.microsoft.com/germany/express/ Microsoft Visual Studio 2008 Express]
−
* Microsoft Virtual PC 2007
+
** [http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&DisplayLang=de Mircosoft .NET Framework v3.5]
 +
** [http://www.microsoft.com/whdc/devtools/debugging/default.mspx Microsoft Windows-Debugger x86/x64 für Kernel-Debug]
 +
** [http://www.microsoft.com/downloads/details.aspx?FamilyID=28c97d22-6eb8-4a09-a7f7-f6c7a1f000b5&DisplayLang=de Microsoft Virtual PC 2007 inkl. SP 1]
 +
* '''Referenzmaterial'''
 +
** [http://www.codeplex.com/singularity Microsoft Singularity RDK 2.0]
 +
** [http://www.fh-zwickau.de/doc/prmo/start.htm Protected Mode Tutorials]
 +
** [http://ra.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/frank_lemke/praesentation.pdf Paging verschiedener CPUs]
  
−
'''Testumgebung:''' Es wird immer zuerst in der VM auf dem Entwicklungssystem getestet und erst wenn da alles ohne Probleme läuft, wird auf der realen Maschine getestet. Als Test-PC dient da einmal ein P2 mit müden 400 MHz als Single-Core, um vor allem die Boot-Phasen zu testen. OK, derzeit benutze ich einen Laptop mit P3 mit 1 GHz und satten 256 MiB RAM. Versehentlich auch mal Tests auf meinem Quad-Core, wenn ich vergessen habe die Diskette nach dem Testen rauszunehmen. Aber da zeigt sich schon, dass auf der realen Maschine alles genauso läuft wie bisher in der VM.
+
 
 +
'''Testumgebung:'''
 +
 
 +
Es wird immer zuerst in der VM auf dem Entwicklungssystem getestet und erst wenn da alles ohne Probleme läuft, wird auf der realen Maschine getestet. Als Test-PC dient da einmal ein P2 mit müden 400 MHz als Single-Core, um vor allem die Boot-Phasen zu testen. OK, derzeit benutze ich einen Laptop mit P3 mit 1 GHz und satten 256 MiB RAM. Versehentlich auch mal Tests auf meinem Quad-Core, wenn ich vergessen habe die Diskette nach dem Testen rauszunehmen. Aber da zeigt sich schon, dass auf der realen Maschine alles genauso läuft wie bisher in der VM.
  
  
Zeile 35: Zeile 44:
 
* Die Aufgabe des Bootsektors sollte wohl ja klar sein, nämlich unabhängig vom Medium den Bootloader zu laden und auszuführen.
 
* Die Aufgabe des Bootsektors sollte wohl ja klar sein, nämlich unabhängig vom Medium den Bootloader zu laden und auszuführen.
 
=== Bootloader ===
 
=== Bootloader ===
 +
* Protected-Mode
 +
* Paging mit Physical-Address-Extension (PAE), max. 64 GiByte
 
* Soll erste Möglichkeiten des Kernel-Debugging ermöglichen.
 
* Soll erste Möglichkeiten des Kernel-Debugging ermöglichen.
 
* Einrichten des MKS und laden bedingter Treiber.
 
* Einrichten des MKS und laden bedingter Treiber.
Zeile 68: Zeile 79:
 
''' Fertig: '''
 
''' Fertig: '''
 
* Bootsector für ROFS, FDD-Version. (0.00.22.16)
 
* Bootsector für ROFS, FDD-Version. (0.00.22.16)
−
* Bootloader
+
* Bootloader (0.00.23.20)
−
** Entry16: 16-Bit-Einsprung
+
** Entry16: 16-Bit-Einsprung (0.00.23.20)
 +
** Entry32: 32-Bit-PM-Einsprung (0.00.23.20)
  
  
 
''' In Arbeit: '''
 
''' In Arbeit: '''
 
* Bootloader
 
* Bootloader
−
** Entry32: 32-Bit-PM-Einsprung
+
** Paging mit PAE
 
* Homepage für AiCOS
 
* Homepage für AiCOS
  
Zeile 85: Zeile 97:
  
  
−
= Screenshot =
+
= Aktueller Screenshot =
−
http://aicos.amazing-fx.de/images/screenshots/bootloader_001.gif
+
http://aicos.amazing-fx.de/images/screenshots/bootloader_002.gif
  
  
 
= Böse Falle =
 
= Böse Falle =
 
* Ständig kackte meine VM ab, als mein Bootloader ins den PM-Segment prang. Man kann sich echt todsuchen, wenn man Hexzahlen und Dezimalzahlen nicht unterscheiden kann. 20d != 20h
 
* Ständig kackte meine VM ab, als mein Bootloader ins den PM-Segment prang. Man kann sich echt todsuchen, wenn man Hexzahlen und Dezimalzahlen nicht unterscheiden kann. 20d != 20h
−
* Und wieder einmal stellte meine VM ihren Dienst beim Sprung ins PM-Segment ein und wieder suchte ich mich blöd. War letztenendes auch logisch, wenn der Bootsektor nur ein Sektor (512 Bytes) des Bootloaders lädt, aber der Sprung in PM-Segment aber an Offset 0x0200 sich befinden.
+
* Und wieder einmal stellte meine VM ihren Dienst beim Sprung ins PM-Segment ein und wieder suchte ich mich blöd. War letztenendes auch logisch, wenn der Bootsektor nur ein Sektor (512 Bytes) des Bootloaders lädt, aber der Sprung in PM-Segment aber an Offset 0x0200 sich befinden. '''Böse Falle'''