MeinOS — Änderungen 3494 → 3585

Zeile 16: Zeile 16:
  
 
== Entwicklung ==
 
== Entwicklung ==
−
Der neue Kernel ist soweit fertig. Die größten Verbesserungen waren in den Bereichen Speicherverwaltung (u.a. dynamischerer Speicherallokator für den Kernel, wodurch nun Linked Lists im Kernel benutzt werden können), Prozessverwaltung und IPC. Kernel2 unterstützt nun die SysV-IPC-Methoden, RPC und Signale. Außerdem wurde FUSE auf das VFS von meinOS portiert. Im Moment wird das DevFS auf Fuse portiert.
+
Dank zweier 12h-Programmier-Sessions ist meinOS ein ganzes Stück weiter. Fork() und execute() funktionieren. Init startet alle Treiber und sonstige Programme (/etc/init.d). Stdin, stdout ud stderr werden nicht mehr zum Kernel geleitet, sondern über Unnamed Pipes zum Elternprozess. Außerdem läuft jetzt eine Shell. Leider funktionieren die Unnamed Pipes aber noch nicht so gut und der Keyboard-Treiber macht auch Probleme. Deswegen kann ich niemanden empfehlen andere Programme als "true" und "false" in der Shell zu starten.
  
 
=== Komplett ===
 
=== Komplett ===
Zeile 32: Zeile 32:
 
* Server (Treiber)
 
* Server (Treiber)
 
** Console-Server (umfasst Keyboard-Treiber und Screen-Treiber)
 
** Console-Server (umfasst Keyboard-Treiber und Screen-Treiber)
−
** [[COM]]-Server
+
** [[ATA]] (mit ATAPI)
−
** [[Floppy]]-Server ([[CDI]])
+
** CDROM
−
** [[VFS]]-Server
+
** [[Cirrus Logic]]
 +
** [[COM]]
 +
** Console ([[Keyboard Controller | Tastatur]]
 
** DevFS
 
** DevFS
 +
** [[DMA]]
 +
** [[FAT]]
 +
** [[Floppy]]
 +
** [[ISO9660]]
 +
** [[PCI]]
 +
** Pseudo-Geräte (/dev/null, /dev/zero/ und /dev/urandom)
 +
** Ramdisk
 +
** VFS
  
 
* Bibliotheken
 
* Bibliotheken
Zeile 44: Zeile 54:
 
*** [[RPC]]
 
*** [[RPC]]
 
*** Linked List
 
*** Linked List
 +
*** Lock (Spinlock)
 +
*** Path (zum parsen von Dateipfaden)
 
*** [[PCI]]
 
*** [[PCI]]
 +
*** Process (Kontrolle über Prozesse)
 
** stdlibc (großer Teil schon portiert)
 
** stdlibc (großer Teil schon portiert)
−
** [[CDI|libcdi]] (ohne cdi.net)
+
** [[CDI|libcdi]]
 +
*** [[BIOS]]
 +
*** Cache
 +
*** [[DMA]]
 +
*** FS
 +
*** Generic (noch kein Standard)
 +
*** Net
 +
*** [[PCI]]
 +
*** SCSI
 +
*** Storage
 +
*** Video
 
** libfuse
 
** libfuse
 +
* Nenneswerte Programme
 +
** init
 +
** login
 +
** shell (noch in Arbeit)
 +
** gzip
 +
** mount
  
 
=== Planung ===
 
=== Planung ===
−
* Init-Task (Initialisierung aller Treiber und des Login-Programms)
+
* NTFS-Treiber
−
* [[Shell]] (eventuell Portierung einer vorhandenen Shell)
 
−
* [[Ext2]]-Treiber (Fuse)
 
−
* [[VFAT]]-Treiber (Fuse)
 
−
* [[NTFS]]-Treiber (Fuse)
 
 
* Standard-Unix-Toolchain: echo,cat,mv,cp,... und GCC-Toolchain
 
* Standard-Unix-Toolchain: echo,cat,mv,cp,... und GCC-Toolchain
−
 
−
Wie man sieht, ist noch eine Menge zu tun.
 
  
 
== Crosscompiler ==
 
== Crosscompiler ==
−
Im Moment wird für meinOS noch ein [[Crosscompiler]] plus Toolchain gebaut, um das Portieren größerer Applikationen zu vereinfachen.
+
Zum Bauen von meinOS wird der meinOS-Crosscompiler benötigt. Die Patches können hier gedownloadet werden: [http://repo.or.cz/w/meinos.git?a=blob;f=gcc-4.2.2-meinos.patch gcc-4.2.2] [http://repo.or.cz/w/meinos.git?a=blob;f=binutils-2.18-meinos.patch binutils-2.18]
  
 
== Download ==
 
== Download ==