SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
_____    __                               _____        _______ ________
___ | / /____ _________ ___ _____ ___________(_)_________ __ __ ___/
__    |/ / _ / / /__ __ `__ _ _ __ ___/__ / _ ___/_ / / /_____ 
_ /| / / /_/ / _ / / / / // __/_ /        _ / / /__ / /_/ / ____/ /
/_/ |_/     __,_/ /_/ /_/ /_/ ___/ /_/  /_/   ___/ ____/ /____/




    Ein Rechnerarchitektur und Betriebssystem Projekt
                           von
           Lukas Probst und Christopher Scherb




                         NumericOS - a project by Lukas
                                                                          1
                          Probst and Christopher Scherb
Ziel
• Eigenes x86 Betriebssystem
  entwickeln
• Funktionen ähnlich Octave
• Benchmark




            NumericOS - a project by Lukas Probst and
                                                        2
                      Christopher Scherb
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
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
Heap
• Eigenes
  Speicherarchitekturkonzept
  – „Heaptable“ und „Heap“
• Laufzeiten:
  – Malloc: O(n)
  – Free: O(1)




                   NumericOS - a project by Lukas Probst and
                                                               5
                             Christopher Scherb
Beispiel für Heaptable




     NumericOS - a project by Lukas Probst and
                                                 6
               Christopher Scherb
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
Hashmap
• Speichert Variablen
  – Verwendet den Anfangsbuchstaben
  – Variablennamen muss mit Buchstaben
    beginnen
• Array mit Überlaufkette




             NumericOS - a project by Lukas Probst and
                                                         8
                       Christopher Scherb
Parser
S=[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
Benchmark




NumericOS - a project by Lukas Probst and
                                            10
          Christopher Scherb
Demo!


NumericOS - a project by Lukas Probst and
                                            11
          Christopher Scherb
Fragen?


 NumericOS - a project by Lukas Probst and
                                             12
           Christopher Scherb

Weitere ähnliche Inhalte

Ähnlich wie NumericOS - How to build your own Operatingsystem

Überblick zum DFG-Projekt OCR-D
Überblick zum DFG-Projekt OCR-DÜberblick zum DFG-Projekt OCR-D
Überblick zum DFG-Projekt OCR-Dcneudecker
 
Daten natuerlich modellieren und verarbeiten mit Neo4j
Daten natuerlich modellieren und verarbeiten mit Neo4jDaten natuerlich modellieren und verarbeiten mit Neo4j
Daten natuerlich modellieren und verarbeiten mit Neo4jPatrick Baumgartner
 
TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014die.agilen GmbH
 
DURAARK at Bibliotheksymposium Wildau
DURAARK at Bibliotheksymposium WildauDURAARK at Bibliotheksymposium Wildau
DURAARK at Bibliotheksymposium Wildaupanitzm
 
Aufbau eines Institutsgesamtkatalogs aus OpenSource-Komponenten am Beispiel d...
Aufbau eines Institutsgesamtkatalogs aus OpenSource-Komponenten am Beispiel d...Aufbau eines Institutsgesamtkatalogs aus OpenSource-Komponenten am Beispiel d...
Aufbau eines Institutsgesamtkatalogs aus OpenSource-Komponenten am Beispiel d...flimm
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Tag der offenen Tür 2012 | Basislehrjahr Informatik | ZbW
Tag der offenen Tür 2012 | Basislehrjahr Informatik | ZbWTag der offenen Tür 2012 | Basislehrjahr Informatik | ZbW
Tag der offenen Tür 2012 | Basislehrjahr Informatik | ZbWChristian Schlegel
 
Strategic Development - Future Plans for DSpace
Strategic Development - Future Plans for DSpaceStrategic Development - Future Plans for DSpace
Strategic Development - Future Plans for DSpacePascal-Nicolas Becker
 
Einfacher bauen
Einfacher bauenEinfacher bauen
Einfacher bauenjohofer
 
Von Test nach Live mit Rex
Von Test nach Live mit RexVon Test nach Live mit Rex
Von Test nach Live mit RexJan Gehring
 
Von Test nach live mit Rex
Von Test nach live mit RexVon Test nach live mit Rex
Von Test nach live mit Rexinovex GmbH
 
.NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern .NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern André Krämer
 
FMK2016 - Arnold Kegebein - Recycling
FMK2016 - Arnold Kegebein - RecyclingFMK2016 - Arnold Kegebein - Recycling
FMK2016 - Arnold Kegebein - RecyclingVerein FM Konferenz
 
Digitalisate kuratieren mit KI - von unstrukturierten Daten zu strukturierten...
Digitalisate kuratieren mit KI - von unstrukturierten Daten zu strukturierten...Digitalisate kuratieren mit KI - von unstrukturierten Daten zu strukturierten...
Digitalisate kuratieren mit KI - von unstrukturierten Daten zu strukturierten...cneudecker
 
TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)die.agilen GmbH
 
Language Workbench
Language WorkbenchLanguage Workbench
Language Workbenchzensor
 
LINQ - Einheitlicher Datenzugriff in .NET
LINQ - Einheitlicher Datenzugriff in .NETLINQ - Einheitlicher Datenzugriff in .NET
LINQ - Einheitlicher Datenzugriff in .NETGFU Cyrus AG
 

Ähnlich wie NumericOS - How to build your own Operatingsystem (20)

Überblick zum DFG-Projekt OCR-D
Überblick zum DFG-Projekt OCR-DÜberblick zum DFG-Projekt OCR-D
Überblick zum DFG-Projekt OCR-D
 
Daten natuerlich modellieren und verarbeiten mit Neo4j
Daten natuerlich modellieren und verarbeiten mit Neo4jDaten natuerlich modellieren und verarbeiten mit Neo4j
Daten natuerlich modellieren und verarbeiten mit Neo4j
 
TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014TYPO3 Neos - Next Generation CMS - DWX 2014
TYPO3 Neos - Next Generation CMS - DWX 2014
 
DURAARK at Bibliotheksymposium Wildau
DURAARK at Bibliotheksymposium WildauDURAARK at Bibliotheksymposium Wildau
DURAARK at Bibliotheksymposium Wildau
 
Aufbau eines Institutsgesamtkatalogs aus OpenSource-Komponenten am Beispiel d...
Aufbau eines Institutsgesamtkatalogs aus OpenSource-Komponenten am Beispiel d...Aufbau eines Institutsgesamtkatalogs aus OpenSource-Komponenten am Beispiel d...
Aufbau eines Institutsgesamtkatalogs aus OpenSource-Komponenten am Beispiel d...
 
Enterprise JS
Enterprise JS Enterprise JS
Enterprise JS
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014
 
Tag der offenen Tür 2012 | Basislehrjahr Informatik | ZbW
Tag der offenen Tür 2012 | Basislehrjahr Informatik | ZbWTag der offenen Tür 2012 | Basislehrjahr Informatik | ZbW
Tag der offenen Tür 2012 | Basislehrjahr Informatik | ZbW
 
Strategic Development - Future Plans for DSpace
Strategic Development - Future Plans for DSpaceStrategic Development - Future Plans for DSpace
Strategic Development - Future Plans for DSpace
 
Einfacher bauen
Einfacher bauenEinfacher bauen
Einfacher bauen
 
Von Test nach Live mit Rex
Von Test nach Live mit RexVon Test nach Live mit Rex
Von Test nach Live mit Rex
 
Von Test nach live mit Rex
Von Test nach live mit RexVon Test nach live mit Rex
Von Test nach live mit Rex
 
.NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern .NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern
 
FMK2016 - Arnold Kegebein - Recycling
FMK2016 - Arnold Kegebein - RecyclingFMK2016 - Arnold Kegebein - Recycling
FMK2016 - Arnold Kegebein - Recycling
 
Digitalisate kuratieren mit KI - von unstrukturierten Daten zu strukturierten...
Digitalisate kuratieren mit KI - von unstrukturierten Daten zu strukturierten...Digitalisate kuratieren mit KI - von unstrukturierten Daten zu strukturierten...
Digitalisate kuratieren mit KI - von unstrukturierten Daten zu strukturierten...
 
TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)
 
Language Workbench
Language WorkbenchLanguage Workbench
Language Workbench
 
NRWConf2013_T4CodeGeneration
NRWConf2013_T4CodeGenerationNRWConf2013_T4CodeGeneration
NRWConf2013_T4CodeGeneration
 
LINQ - Einheitlicher Datenzugriff in .NET
LINQ - Einheitlicher Datenzugriff in .NETLINQ - Einheitlicher Datenzugriff in .NET
LINQ - Einheitlicher Datenzugriff in .NET
 

Mehr von fg.informatik Universität Basel (12)

fg.workshop: Opensource licenses
fg.workshop: Opensource licensesfg.workshop: Opensource licenses
fg.workshop: Opensource licenses
 
Version management mit Git und Github
Version management mit Git und Github Version management mit Git und Github
Version management mit Git und Github
 
Drahtlose Kommunikation und SDR
Drahtlose Kommunikation und SDR Drahtlose Kommunikation und SDR
Drahtlose Kommunikation und SDR
 
OpenCL Grundlagen
OpenCL GrundlagenOpenCL Grundlagen
OpenCL Grundlagen
 
Hardware-Basteleien für Informatiker
Hardware-Basteleien für InformatikerHardware-Basteleien für Informatiker
Hardware-Basteleien für Informatiker
 
Game Design Dokumentation und Projekt Management
Game Design Dokumentation und Projekt Management Game Design Dokumentation und Projekt Management
Game Design Dokumentation und Projekt Management
 
Hydraulische Erosion und Terraingeneration (GPGPU)
Hydraulische Erosion und Terraingeneration (GPGPU)Hydraulische Erosion und Terraingeneration (GPGPU)
Hydraulische Erosion und Terraingeneration (GPGPU)
 
Ruby, Ruby, Ruby!
Ruby, Ruby, Ruby!Ruby, Ruby, Ruby!
Ruby, Ruby, Ruby!
 
CS108 Bootcamp Eyeballs
CS108 Bootcamp EyeballsCS108 Bootcamp Eyeballs
CS108 Bootcamp Eyeballs
 
CS108 Bootcamp Einführung YASY
CS108 Bootcamp Einführung YASYCS108 Bootcamp Einführung YASY
CS108 Bootcamp Einführung YASY
 
CS108 Bootcamp 2011 Intro - Jarwars
CS108 Bootcamp 2011 Intro - JarwarsCS108 Bootcamp 2011 Intro - Jarwars
CS108 Bootcamp 2011 Intro - Jarwars
 
Open source hardware
Open source hardwareOpen source hardware
Open source hardware
 

NumericOS - How to build your own Operatingsystem

  • 1. _____ __ _____ _______ ________ ___ | / /____ _________ ___ _____ ___________(_)_________ __ __ ___/ __ |/ / _ / / /__ __ `__ _ _ __ ___/__ / _ ___/_ / / /_____ _ /| / / /_/ / _ / / / / // __/_ / _ / / /__ / /_/ / ____/ / /_/ |_/ __,_/ /_/ /_/ /_/ ___/ /_/ /_/ ___/ ____/ /____/ Ein Rechnerarchitektur und Betriebssystem Projekt von Lukas Probst und Christopher Scherb NumericOS - a project by Lukas 1 Probst and Christopher Scherb
  • 2. Ziel • Eigenes x86 Betriebssystem entwickeln • Funktionen ähnlich Octave • Benchmark NumericOS - a project by Lukas Probst and 2 Christopher Scherb
  • 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. 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. Heap • Eigenes Speicherarchitekturkonzept – „Heaptable“ und „Heap“ • Laufzeiten: – Malloc: O(n) – Free: O(1) NumericOS - a project by Lukas Probst and 5 Christopher Scherb
  • 6. Beispiel für Heaptable NumericOS - a project by Lukas Probst and 6 Christopher Scherb
  • 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. 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. Parser S=[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. Benchmark NumericOS - a project by Lukas Probst and 10 Christopher Scherb
  • 11. Demo! NumericOS - a project by Lukas Probst and 11 Christopher Scherb
  • 12. Fragen? NumericOS - a project by Lukas Probst and 12 Christopher Scherb