NumericOS - How to build your own Operatingsystem

413 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
413
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

NumericOS - How to build your own Operatingsystem

  1. 1. _____ __ _____ _______ ___________ | / /____ _________ ___ _____ ___________(_)_________ __ __ ___/__ |/ / _ / / /__ __ `__ _ _ __ ___/__ / _ ___/_ / / /_____ _ /| / / /_/ / _ / / / / // __/_ / _ / / /__ / /_/ / ____/ //_/ |_/ __,_/ /_/ /_/ /_/ ___/ /_/ /_/ ___/ ____/ /____/ Ein Rechnerarchitektur und Betriebssystem Projekt von Lukas Probst und Christopher Scherb NumericOS - a project by Lukas 1 Probst and Christopher Scherb
  2. 2. Ziel• Eigenes x86 Betriebssystem entwickeln• Funktionen ähnlich Octave• Benchmark NumericOS - a project by Lukas Probst and 2 Christopher Scherb
  3. 3. Weg zum C-Kernel• Bootloader in Assembler – Code in den Speicher laden• Wechsel von Realmode (16bit) in Protectedmode (32bit)• Start des C-Kernels NumericOS - a project by Lukas Probst and 3 Christopher Scherb
  4. 4. Input/Output- Libraries• Output – Memory mapped Output – Videomemory für 80*25 Zeichen + Farbe – Autoscroll mit Buffer• Input – Keyboard-Controller mit Polling – Scancode in Char übersetzen (US- Layout) – Read-Methode liefert charArray zurück NumericOS - a project by Lukas Probst and 4 Christopher Scherb
  5. 5. Heap• Eigenes Speicherarchitekturkonzept – „Heaptable“ und „Heap“• Laufzeiten: – Malloc: O(n) – Free: O(1) NumericOS - a project by Lukas Probst and 5 Christopher Scherb
  6. 6. Beispiel für Heaptable NumericOS - a project by Lukas Probst and 6 Christopher Scherb
  7. 7. Mathematische Funktionen• Floating Point Unit – Koprozessor für Fließkommaoperationen – muss aktiviert werden – Stellt bestimmte mathematische Funktionen zur Verfügung• Implementierte Funktionen: – Grundoperationen +,-,*,/ – Potenz- und Exponentialfunktion – Logarithmusfunktion NumericOS - a project by Lukas Probst and 7 Christopher Scherb
  8. 8. Hashmap• Speichert Variablen – Verwendet den Anfangsbuchstaben – Variablennamen muss mit Buchstaben beginnen• Array mit Überlaufkette NumericOS - a project by Lukas Probst and 8 Christopher Scherb
  9. 9. ParserS=[Variable „=“ ] E.E=E(“+“|“-“) T|T.T=T(“*“|“/“) H|H.H=F “^“ F|F.F=“(“E“)“ | Identifier.Identifier = Double | Variable | Function .Double = [“+“|“-“] Z{Z} [ „.“ Z{Z} ] [ „e“[“+“|“-“] Z{Z} ].Variable = B {B|Z} .Function = B {B|Z} „(„ E {„,“ E } „)“.Z = “1“ | “2“ | […] “0“.B = „a“ | “b“ | […] “Z“. NumericOS - a project by Lukas Probst and 9 Christopher Scherb
  10. 10. BenchmarkNumericOS - a project by Lukas Probst and 10 Christopher Scherb
  11. 11. Demo!NumericOS - a project by Lukas Probst and 11 Christopher Scherb
  12. 12. Fragen? NumericOS - a project by Lukas Probst and 12 Christopher Scherb

×