| Zeile 1: | Zeile 1: | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
{{Infobox OS | {{Infobox OS | ||
| Name = http://aicos.amazing-fx.de/images/AiCOS-Logo-small.png | | Name = http://aicos.amazing-fx.de/images/AiCOS-Logo-small.png | ||
| Zeile 36: | Zeile 30: | ||
Sollte sich die Entwicklung dieses OS meinen Erwartungen entsprechen, könnte diese AiCOS in einigen Jahren auch für '''''A'''rtificial '''i'''ntelligence '''C'''ontrolled '''O'''perating '''S'''ystem'' stehen. Klingt nach '''SKYNET''', könnte man denken, wird aber keinesfalls beabsichtig. | Sollte sich die Entwicklung dieses OS meinen Erwartungen entsprechen, könnte diese AiCOS in einigen Jahren auch für '''''A'''rtificial '''i'''ntelligence '''C'''ontrolled '''O'''perating '''S'''ystem'' stehen. Klingt nach '''SKYNET''', könnte man denken, wird aber keinesfalls beabsichtig. | ||
| − | === Entwickler === | + | === Entwickler & Lizenz === |
Derzeit unterliegt die komplette Entwicklung von AiCOS einer einzigen Persion, nämlich mich, [[Benutzer:ScollPi | ScollPi]]. Dies soll aber nicht für immer bleiben. Wenn wichtigsten Konzepte des OS (überwiegend Kernel) erstellt und ggf. auch schon umgesetzt wurden, werde ich meine Türe öffnen und andere Begeisterte mit in dieses Boot nehmen. | Derzeit unterliegt die komplette Entwicklung von AiCOS einer einzigen Persion, nämlich mich, [[Benutzer:ScollPi | ScollPi]]. Dies soll aber nicht für immer bleiben. Wenn wichtigsten Konzepte des OS (überwiegend Kernel) erstellt und ggf. auch schon umgesetzt wurden, werde ich meine Türe öffnen und andere Begeisterte mit in dieses Boot nehmen. | ||
| − | |||
Steht noch nicht fest. Derzeit ClosedSource, soll aber später, wenn ich andere mitwirken lassen, OpenSource werden. | Steht noch nicht fest. Derzeit ClosedSource, soll aber später, wenn ich andere mitwirken lassen, OpenSource werden. | ||
=== Plattform === | === Plattform === | ||
| − | Erstmal nur | + | Erstmal nur aus x86-Reihe für 32/64-Bit Plattformen. |
=== Kernel === | === Kernel === | ||
| Zeile 60: | Zeile 53: | ||
=== Binärformat === | === Binärformat === | ||
| − | Vorerst BIN, ggf. auch EXE. Ob ELF unterstützt wird, ist eine Frage der Implementierung. | + | Vorerst BIN, ggf. auch EXE. Ob ELF unterstützt wird, ist eine Frage der Implementierung. Ein ganz anderes Format wäre natürlich auch denkbar. |
=== IPC-Methode === | === IPC-Methode === | ||
Den einzigen gemeinsamer Nenner, den ich finden konnte und auch bei der derzeitigen CPU-Entwicklung für zukunftsicher halte, sind Channels. | Den einzigen gemeinsamer Nenner, den ich finden konnte und auch bei der derzeitigen CPU-Entwicklung für zukunftsicher halte, sind Channels. | ||
| − | Channels sollen später auch die Grundlage | + | Channels sollen später auch die Grundlage eines eigenen Netzwerkprotokolls werden, welches anfangs eher über IP zu einer anderen Maschine mit AiCOS getunnelt wird. |
| Zeile 71: | Zeile 64: | ||
** Intel Core 2 Quad mit 8 GiB RAM | ** Intel Core 2 Quad mit 8 GiB RAM | ||
* '''Software''' | * '''Software''' | ||
| − | ** [http://www.microsoft.com/germany/windows/windows- | + | ** [http://www.microsoft.com/germany/windows/windows-7/ Microsoft Windows 7 (64-bit)] >>> [[Windows]] |
** [http://www.microsoft.com/germany/express/ Microsoft Visual Studio 2008 Express] | ** [http://www.microsoft.com/germany/express/ Microsoft Visual Studio 2008 Express] | ||
** [http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&DisplayLang=de Mircosoft .NET Framework v3.5] | ** [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/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] >>> [[Microsoft Virtual PC]] | ** [http://www.microsoft.com/downloads/details.aspx?FamilyID=28c97d22-6eb8-4a09-a7f7-f6c7a1f000b5&DisplayLang=de Microsoft Virtual PC 2007 inkl. SP 1] >>> [[Microsoft Virtual PC]] | ||
| + | ** Sun VirtualBox | ||
| + | ** Bochs | ||
* '''Referenzmaterial''' | * '''Referenzmaterial''' | ||
** [http://www.codeplex.com/singularity Microsoft Singularity RDK 2.0] | ** [http://www.codeplex.com/singularity Microsoft Singularity RDK 2.0] | ||
| Zeile 82: | Zeile 77: | ||
| − | + | = Konzept = | |
| − | + | Ich wurde gefragt, warum ich zum Booten meines OS denn nicht GRUB nehme. Nun, erstens brauche ich nur einen Bootloader und keinen ganzen Bootmanager. Zudem muss der Bootloader in der Lage sein, ein Modulares-Kernel-System laden und initialisieren zu können. Wie anfangs schon gesagt, AiCOS geht ganz neue Wege. Und zweitens geht es mir bei der Entwicklung auch darum den Bootvorgang zu verstehen. Dazu schaue ich mir den Bootcode an, den Windows XP verwendet (also NT-Bootsektor und NTLDR). | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
=== Bootsektor === | === Bootsektor === | ||
| − | * | + | * Universeller Aufbau, sodass nur die Routinen für das jeweiliges Dateisystem ausgetauscht werden müssen. |
| − | * | + | * Es wird nicht versucht, den gesamten Code zum vollständigen Laden des Bootloaders in den Bootsektor zu quetschen. |
| − | * | + | * Bootcode wird es anfangs für folgende Dateisystem geben: FAT12, FAT16, FAT32, ROSF, ISO9660 und eventuell auch NTFS. |
| + | * Zukünftige Festplatten mit 4k-Sektoren werden ebenfalls berücksichtigt. | ||
=== Bootloader === | === Bootloader === | ||
* Protected-Mode | * Protected-Mode | ||
| Zeile 113: | Zeile 103: | ||
** Subsystem-Kernel, für weitere Treiber, Filter und und und ... | ** Subsystem-Kernel, für weitere Treiber, Filter und und und ... | ||
* Soll in sich redundant werden, erfordert aber mind. 2 CPUs bzw. 2 CPU-Kerne. | * Soll in sich redundant werden, erfordert aber mind. 2 CPUs bzw. 2 CPU-Kerne. | ||
| + | |||
'''Notiz:''' | '''Notiz:''' | ||
| Zeile 120: | Zeile 111: | ||
= History = | = History = | ||
''' Die letzten 10 Änderungen:''' | ''' Die letzten 10 Änderungen:''' | ||
| + | * 18.03.2010: Entwicklungsinfo | ||
| + | ** Lange war es ruhig um AiCOS, doch wirklich ruhte die Entwicklung nicht. Es wurde vor allem in der Theorie gefeilt. Zur Zeit wird an der Überarbeitung des Bootsektors gearbeitet, da dieser universal aufgebaut sein soll und sich nur in den Bestandteilen des jeweiligen Dateisystem unterscheidet. Zeitgleich wird auch am Bootloader gearbeitet, vor allem am Assebler-Part. | ||
* 15.01.2009: Version 0.00.??.?? | * 15.01.2009: Version 0.00.??.?? | ||
** ROFS-Bootsektor-Code finalisiert, es kann nun auch eine Datei grö´ßer 64KiB geladen werden. Der Bootloader selbst wurde wegen seiner PM-Funktionalität auf 256 KiB beschränkt. | ** ROFS-Bootsektor-Code finalisiert, es kann nun auch eine Datei grö´ßer 64KiB geladen werden. Der Bootloader selbst wurde wegen seiner PM-Funktionalität auf 256 KiB beschränkt. | ||
| Zeile 162: | Zeile 155: | ||
= Stand der Dinge = | = Stand der Dinge = | ||
''' Fertig: ''' | ''' Fertig: ''' | ||
| − | * | + | * ''Noch nicht wirklich etwas, nur Baustelle =)'' |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
''' In Arbeit: ''' | ''' In Arbeit: ''' | ||
| − | * | + | * Bootsektor für FAT12 |
| − | * | + | * Dummy-Bootloader (einfach nur eine 256 KiB große Datei mit Pseudodaten) |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
''' Geplant: ''' | ''' Geplant: ''' | ||
| − | * | + | * Bootsektor für FAT16 |
| − | ** | + | * Bootsektor für FAT32 |
| + | * Bootsektor für ROFS (Read Only File System - Eigenentwicklung | ||
* Bootsektor für CD | * Bootsektor für CD | ||
| + | * Bootsektor für NTFS | ||
| + | |||
= Roadmap = | = Roadmap = | ||
| − | ''' | + | '''Folgt in Kürze''' |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| Zeile 226: | Zeile 196: | ||
= Ziele = | = Ziele = | ||
| − | Ein vollwertiges OS auf die Beine zu stellen, welches sich auch im Netzwerkbereich behaupten kann. Dabei wird keinster Weise direkt Code von anderen OS verwendet, vorallem keine Bootloader wie z.B. Grub! Vielmehr wird deren Funktionsweise analysiert. | + | Ein vollwertiges OS auf die Beine zu stellen, welches sich auch im Netzwerkbereich behaupten kann. Dabei wird in keinster Weise direkt Code von anderen OS verwendet, vorallem keine Bootloader wie z.B. Grub! Vielmehr wird deren Funktionsweise analysiert. |
Der Kernel, besser gesagt das Kernel-System von AiCOS wird keines im Sinnes der Definition eines Kernels sein, sondern vielmehr ein Systemkern aus einer modularen Ansammlung mehrere Mikrokernels. | Der Kernel, besser gesagt das Kernel-System von AiCOS wird keines im Sinnes der Definition eines Kernels sein, sondern vielmehr ein Systemkern aus einer modularen Ansammlung mehrere Mikrokernels. | ||
[[Kategorie:Betriebssystem]] | [[Kategorie:Betriebssystem]] | ||