FruityOrange — Änderungen 11101 → 11105

Zeile 2: Zeile 2:
 
| Name = FruityOrange
 
| Name = FruityOrange
 
| Logo = [[Bild:FruityOrangeLogo.png]]
 
| Logo = [[Bild:FruityOrangeLogo.png]]
−
| Version = 0.05
+
| Version = 0.06
 
| Entwickler = [[Benutzer:Micha.linuxfreak|Micha]]
 
| Entwickler = [[Benutzer:Micha.linuxfreak|Micha]]
 
| Lizenz = [[Lizenz#GNU_General_Public_License|GNU General Public License]]
 
| Lizenz = [[Lizenz#GNU_General_Public_License|GNU General Public License]]
Zeile 13: Zeile 13:
 
| Homepage = https://github.com/michamimosa/FruityOrange<br/>https://code.google.com/p/fruityorange/
 
| Homepage = https://github.com/michamimosa/FruityOrange<br/>https://code.google.com/p/fruityorange/
 
}}
 
}}
−
FruityOrange ist ein Betriebssystem für den [[x86|i386]], welches [[GRUB]] als Bootloader benutzt.
+
FruityOrange ist ein Betriebssystem für den [[x86|i386]], welches [[GRUB]] als Bootloader benutzt.<br/>
 +
Ein fertiges Images gibts hier: [http://fruityorange.googlecode.com/files/FruityOrange_v0-06.iso]
 
<br/><br/>
 
<br/><br/>
 
== Features ==
 
== Features ==
Zeile 21: Zeile 22:
 
* [[Physische Speicherverwaltung]], [[Paging]], [[Heap]]
 
* [[Physische Speicherverwaltung]], [[Paging]], [[Heap]]
 
* [[Multitasking]], [[ELF]]32-loader
 
* [[Multitasking]], [[ELF]]32-loader
−
* [[VFS]]
+
* [[VFS]], Initiale Ramdisk
 
=== Treiber ===
 
=== Treiber ===
 
* [[Textausgabe|CGA Grafik]] ;)
 
* [[Textausgabe|CGA Grafik]] ;)
Zeile 28: Zeile 29:
 
* [[CMOS|CMOS / RTC]]
 
* [[CMOS|CMOS / RTC]]
 
=== Programme ===
 
=== Programme ===
−
* Concha - eine ganz kleine Shell (noch nicht  fertig)
+
* Concha - eine ganz kleine Shell
 +
* utils: ls, cat, cp
  
 
== Syscalls ==
 
== Syscalls ==
Zeile 34: Zeile 36:
 
[https://github.com/michamimosa/FruityOrange/blob/master/include/sys/syscalls.h]
 
[https://github.com/michamimosa/FruityOrange/blob/master/include/sys/syscalls.h]
  
 +
<div style="float:left; padding-left: 0%">
 
{| {{prettytable}}
 
{| {{prettytable}}
 
!Nummer (in %eax)
 
!Nummer (in %eax)
 
!Name
 
!Name
−
!Beschreibung
 
−
!ebx
 
−
!ecx
 
−
!edx
 
 
|-
 
|-
 
|0
 
|0
 
|exit
 
|exit
−
|Beendet das aktuelle programm
 
−
|exit-Status
 
−
|
 
−
|
 
 
|-
 
|-
 
|1
 
|1
 
|putc
 
|putc
−
|Gibt ein Zeichen auf dem Bildschirm aus
 
−
|Zeichen
 
−
|
 
−
|
 
 
|-
 
|-
 
|2
 
|2
 
|puts
 
|puts
−
|Gibt einen String auf dem Bildschirm aus
 
−
|Pointer zum String
 
−
|L&auml;nge des Strings
 
−
|
 
 
|-
 
|-
 
|3
 
|3
 
|getch
 
|getch
−
|Wartet auf einen Tastendruck
 
−
|Hier wird der ASCII-Code des gedrückten Zeichens reingeschrieben
 
−
|
 
−
|
 
 
|-
 
|-
 
|4
 
|4
 
|gets
 
|gets
−
|Liest einen String &uuml;ber die Tastatur ein.
 
−
|Pointer zum String (muss vorher abgespeichert werden)
 
−
|L&auml;nge des eingegebenen Strings (wird hier reingeschrieben)
 
−
|
 
 
|-
 
|-
 
|5
 
|5
 
|time
 
|time
−
|Hier bekommt man einen aktuellen Timestamp
 
−
|In ebx liegt der timestamp dann drin
 
−
|
 
−
|
 
 
|-
 
|-
 
|6
 
|6
 
|usleep
 
|usleep
−
|Legt das Programm f&uuml;r %ebx Mikrosekunden schlafen
 
−
|Anzahl der Mikrosekunden, die zu warten sind
 
−
|
 
−
|
 
 
|-
 
|-
 
|7
 
|7
 
|alloc
 
|alloc
−
|Alloziert freie Speicherseiten im userspace (1-3GB)
 
−
|Anzahl der pages
 
−
|Adresse
 
−
|
 
 
|-
 
|-
 
|8
 
|8
 
|free
 
|free
−
|Gibt Speicherseiten wieder frei
 
−
|Adresse der pages
 
−
|Anzahl der pages
 
−
|
 
 
|-
 
|-
 
|9
 
|9
 
|open
 
|open
−
|&Ouml;ffnet eine Datei
+
|}
−
|Pfad<br/>R&uuml;ckgabe: Filedeskriptor
+
</div>
−
|flags
+
<div style="float:left;padding-left: 5%">
−
|modus
+
{| {{prettytable}}
 +
!Nummer (in %eax)
 +
!Name
 
|-
 
|-
 
|10
 
|10
 
|close
 
|close
−
|Schließt eine Datei
 
−
|Fildeskriptor
 
−
|
 
−
|
 
 
|-
 
|-
 
|11
 
|11
 
|read
 
|read
−
|Liest den Inhalt einer Datei
 
−
|Filedeskriptor<br/>R&uuml;ckgabe: Anzahl der gelesenen Bytes
 
−
|Buffer
 
−
|l&auml;nge (in bytes)
 
 
|-
 
|-
 
|12
 
|12
 
|write
 
|write
−
|Schreibt in eine Datei
 
−
|Filedeskriptor<br/>R&uuml;ckgabe: Anzahl der geschriebenen Bytes
 
−
|Buffer
 
−
|l&auml;nge (in bytes)
 
 
|-
 
|-
 
|13
 
|13
 
|seek
 
|seek
−
|Ändert die Position in einer Datei
 
−
|Filedeskriptor
 
−
|Whence
 
 
|-
 
|-
 
|14
 
|14
 
|chdir
 
|chdir
−
|Wechselt das Arbeitsverzeichnis
 
−
|Pfad
 
−
|Rückgabe: erfolg bzw. fehlercode
 
−
|
 
 
|-
 
|-
 
|15
 
|15
 
|getcwd
 
|getcwd
−
|Aktuelles Arbeitsverzeichnis auslesen
+
|-
−
|Buffer (hier wird der pfad abgespeichert)
+
|16
−
|Gr&ouml;&szlig;e des Buffers in Bytes
+
|fork
−
|
+
|-
 +
|17
 +
|waitpid
 +
|-
 +
|18
 +
|exec
 +
|-
 +
|19
 +
|readdir
 
|}
 
|}
−
 
+
</div>
−
 
 
 
[[Category:Betriebssystem]]
 
[[Category:Betriebssystem]]