SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Why Java is practical for modern operating
                           systems

                                JNode.org

                               Ewout Prangsma




Copyright (c) JNode.org 2005                    http://www.jnode.org
Contents

     ●   Introduction
     ●   History
     ●   Characteristics
     ●   Architecture
     ●   Plugin framework
     ●   Driver framework
     ●   Future
     ●   Java benefits

Copyright (c) JNode.org 2005              http://www.jnode.org
Introduction

     ●   Simple to use & install operating system for personal
         use: written for and in Java
     ●   Targets:
         –   Modern devices
         –   Desktop
         –   Small servers
     ●   Only actively developed Java OS in the open source
         world
         –   7 active developers, 17K downloads

Copyright (c) JNode.org 2005                         http://www.jnode.org
History

     ●   Original idea started in 1995
     ●   First attempt: JBS (Java Bootable System)
         –   Contained C code, did not work at all
     ●   Second attempt: JBS2
         –   Still did not work well, but was better
     ●   Then: JNode
         –   No C code anymore, Classpath classlibraries
     ●   Went public in May '03

Copyright (c) JNode.org 2005                           http://www.jnode.org
Characteristics

     ●   All Java, minimal assembler, no C
     ●   All java build system (almost)
     ●   Extensible architecture
     ●   Single flat memory address space, no virtual memory
     ●   JVM written in Java
     ●   All Java code is compiled on the fly, no interpreter
     ●   Security is always on
     ●   LGPL license

Copyright (c) JNode.org 2005                          http://www.jnode.org
Status (1)

     ●   Release 0.2.1
         –   Full device driver model
         –   Networking TCP/IP
         –   Filesystems EXT2, FAT, NTFS, ISO9660
         –   Graphics 2D
         –   J2SDK 1.5 support in VM (not classlibs)
         –   Simple heap managers & GC
               ●   MMTk based heap manager & GC in development
         –   IA32 & AMD64 platform support
Copyright (c) JNode.org 2005                             http://www.jnode.org
Status (2)



                                            Playing Tetris
                                            on JNode




Copyright (c) JNode.org 2005                  http://www.jnode.org
Architecture (1)


                                        Desktop      Deployment         Debugging
                          Shell
                                       framework      framework         framework
         Build system




                          Driver       Filesystem       Partition       Networking        Graphics
                        framework      framework      framework         framework        framework

                                    Java Virtual Machine                     Plugin framework

                                                    Nano kernel (asm)


                                                      Hardware




Copyright (c) JNode.org 2005                                                         http://www.jnode.org
Architecture (2)

            Java Virtual Machine


                      Classpath          Runtime library
                    runtime library         support



                        Class               Security       Native code
                       manager              manager         compilers


                     Scheduler &
                                            Heap            Isolation
                      threading
                                           managers         manager
                       manager




Copyright (c) JNode.org 2005                                             http://www.jnode.org
Plugin framework (1)

     ●   Everything is contained in a plugin
         –   code, resources
         –   even JVM & the plugin framework itself
     ●   Plugins can:
         –   be loaded, unloaded & reloaded (at runtime)
         –   depend on other plugins
         –   provide well known extension points
         –   connect to well known extension points


Copyright (c) JNode.org 2005                          http://www.jnode.org
Plugin framework (2)

     ●   Plugins are:
         –   described by a descriptor
               ●   descriptor also contains license info
         –   JAR files
         –   inspired by Eclipse plugins




Copyright (c) JNode.org 2005                               http://www.jnode.org
Plugin framework (3)
  <plugin id=quot;org.jnode.driverquot; name=quot;JNode Driver Frameworkquot; version=quot;@VERSION@quot;
            provider-name=quot;JNode.orgquot; license-name=quot;lgplquot; class=quot;org.jnode.driver.DriverPluginquot;>

       <requires>                                                              General info
            <import plugin=quot;org.jnode.workquot;/>
       </requires>                                           Dependencies

       <runtime>
            <library name=quot;jnode-core.jarquot;>                           Code & resources
                  <export name=quot;org.jnode.driver.*quot;/>
                  <export name=quot;org.jnode.driver.util.*quot;/>
            </library>
       </runtime>                                                                 Well known extension
                                                                                  points
       <extension-point id=quot;findersquot; name=quot;System device findersquot;/>
       <extension-point id=quot;mappersquot; name=quot;Device to Driver mappersquot;/>

       <extension point=quot;org.jnode.security.permissionsquot;>
            <permission class=quot;java.util.PropertyPermissionquot; name=quot;jnode.cmdlinequot;/>
       </extension>
  </plugin>
                                                                            Connection to well known
                                                                            extension point
Copyright (c) JNode.org 2005                                                        http://www.jnode.org
Driver framework (1)


                               contains       Device            drives
            Bus                                                             Driver
                                          represents hardware




                                                finds                        finds



                                              Device                       Device to
                                              finder                     driver mapper




Copyright (c) JNode.org 2005                                                http://www.jnode.org
Driver framework (2)


                                           Device            registers API      Driver
                 queries for API       represents hardware




                               calls                                    implements
         Device “user”                   DeviceAPI




Copyright (c) JNode.org 2005                                                  http://www.jnode.org
Driver framework (3)

     Example: Radeon Graphicscard driver


                                          find PCI devices          PCI
                               finders
                                                                driver plugin


             Driver
             plugin


                                         map PCI id to driver     Radeon
                               mappers
                                                                driver plugin




Copyright (c) JNode.org 2005                                              http://www.jnode.org
Driver framework (4)
      Device manager    Device finder          Device 2 driver mapper   Driver      Device
                findDevices

                            evice
                  registerD

                               findDriver




                                            startDevice

                                                                            registerAP
                                                                                       I




Copyright (c) JNode.org 2005                                             http://www.jnode.org
Future

     ●   Short term:
         –   Improved JVM performance (mm, compilers)
         –   Deployment framework
         –   Improved graphics
     ●   Long term:
         –   Simple to use desktop environment
               ●   Fully document oriented instead of app. oriented
         –   Java powered servers
               ●   e.g. Cooperation with ApacheDS

Copyright (c) JNode.org 2005                                   http://www.jnode.org
Java benefits

     ●   Dynamic linking
     ●   Type safe language (even more in J2SDK 1.5)
     ●   Security
         –   Security manager
         –   No uncontrolled memory access
     ●   Great development tools:
         –   Eclipse, Ant



Copyright (c) JNode.org 2005                     http://www.jnode.org
We need your help!

     ●   Don't be scared of by the codebase
         –   Most of it is classpath libraries
     ●   Ask questions


     ●   Visit http://www.jnode.org
     ●   Contact me: epr@jnode.org




Copyright (c) JNode.org 2005                        http://www.jnode.org
Questions




Copyright (c) JNode.org 2005               http://www.jnode.org

Weitere ähnliche Inhalte

Was ist angesagt?

Dalvik Vm &amp; Jit
Dalvik Vm &amp; JitDalvik Vm &amp; Jit
Dalvik Vm &amp; Jit
Ankit Somani
 
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Opersys inc.
 

Was ist angesagt? (20)

Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 
Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)
Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)
Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)
 
Develop Community-based Android Distribution and Upstreaming Experience
Develop Community-based Android Distribution and Upstreaming Experience Develop Community-based Android Distribution and Upstreaming Experience
Develop Community-based Android Distribution and Upstreaming Experience
 
Dalvik Vm &amp; Jit
Dalvik Vm &amp; JitDalvik Vm &amp; Jit
Dalvik Vm &amp; Jit
 
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded DevicesQi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
 
Jollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-level
 
How to implement a simple dalvik virtual machine
How to implement a simple dalvik virtual machineHow to implement a simple dalvik virtual machine
How to implement a simple dalvik virtual machine
 
Introduction to Android by Demian Neidetcher
Introduction to Android by Demian NeidetcherIntroduction to Android by Demian Neidetcher
Introduction to Android by Demian Neidetcher
 
Discover System Facilities inside Your Android Phone
Discover System Facilities inside Your Android Phone Discover System Facilities inside Your Android Phone
Discover System Facilities inside Your Android Phone
 
Android Optimization: Myth and Reality
Android Optimization: Myth and RealityAndroid Optimization: Myth and Reality
Android Optimization: Myth and Reality
 
TOMOYO Linux on Android
TOMOYO Linux on AndroidTOMOYO Linux on Android
TOMOYO Linux on Android
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debugging
 
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
 
Android is NOT just 'Java on Linux'
Android is NOT just 'Java on Linux'Android is NOT just 'Java on Linux'
Android is NOT just 'Java on Linux'
 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux Developers
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: Introduction
 
Understanding the Android System Server
Understanding the Android System ServerUnderstanding the Android System Server
Understanding the Android System Server
 
Porting Android
Porting AndroidPorting Android
Porting Android
 
Porting Android
Porting AndroidPorting Android
Porting Android
 
Learn C Programming Language by Using GDB
Learn C Programming Language by Using GDBLearn C Programming Language by Using GDB
Learn C Programming Language by Using GDB
 

Andere mochten auch

jNode - Wireless Sensor Network Platform - INSS'12 talk
jNode - Wireless Sensor Network Platform - INSS'12 talkjNode - Wireless Sensor Network Platform - INSS'12 talk
jNode - Wireless Sensor Network Platform - INSS'12 talk
Phil Scholl
 
2011 0304 gluten-learning-final-v2
2011 0304 gluten-learning-final-v22011 0304 gluten-learning-final-v2
2011 0304 gluten-learning-final-v2
healthyannarbor
 

Andere mochten auch (9)

Techniques de mémorisation (2017)
Techniques de mémorisation (2017)Techniques de mémorisation (2017)
Techniques de mémorisation (2017)
 
Apprendre à apprendre : ça s'apprend ! (Le mindmapping)
Apprendre à apprendre : ça s'apprend ! (Le mindmapping)Apprendre à apprendre : ça s'apprend ! (Le mindmapping)
Apprendre à apprendre : ça s'apprend ! (Le mindmapping)
 
San Luis Oct 2008
San Luis Oct 2008San Luis Oct 2008
San Luis Oct 2008
 
BPM-Club & IIBA Germany Chapter feb 2017
BPM-Club & IIBA Germany Chapter feb 2017BPM-Club & IIBA Germany Chapter feb 2017
BPM-Club & IIBA Germany Chapter feb 2017
 
jNode - Wireless Sensor Network Platform - INSS'12 talk
jNode - Wireless Sensor Network Platform - INSS'12 talkjNode - Wireless Sensor Network Platform - INSS'12 talk
jNode - Wireless Sensor Network Platform - INSS'12 talk
 
2011 0304 gluten-learning-final-v2
2011 0304 gluten-learning-final-v22011 0304 gluten-learning-final-v2
2011 0304 gluten-learning-final-v2
 
7 New Tools Java Developers Should Know
7 New Tools Java Developers Should Know7 New Tools Java Developers Should Know
7 New Tools Java Developers Should Know
 
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOSSISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOS
 
Can We Assess Creativity?
Can We Assess Creativity?Can We Assess Creativity?
Can We Assess Creativity?
 

Ähnlich wie Jnode

Chapter 1. java programming language overview
Chapter 1. java programming language overviewChapter 1. java programming language overview
Chapter 1. java programming language overview
Jong Soon Bok
 
Me3D: A Model-driven Methodology Expediting Embedded Device Driver Development
Me3D: A Model-driven Methodology  Expediting Embedded Device  Driver DevelopmentMe3D: A Model-driven Methodology  Expediting Embedded Device  Driver Development
Me3D: A Model-driven Methodology Expediting Embedded Device Driver Development
huichenphd
 
V Labs Product Presentation
V Labs  Product PresentationV Labs  Product Presentation
V Labs Product Presentation
Wil Huijben
 

Ähnlich wie Jnode (20)

Understanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual MachineUnderstanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual Machine
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 
Core Android
Core AndroidCore Android
Core Android
 
Chapter 1. java programming language overview
Chapter 1. java programming language overviewChapter 1. java programming language overview
Chapter 1. java programming language overview
 
淺談探索 Linux 系統設計之道
淺談探索 Linux 系統設計之道 淺談探索 Linux 系統設計之道
淺談探索 Linux 系統設計之道
 
Multithreading in Android
Multithreading in AndroidMultithreading in Android
Multithreading in Android
 
App container rkt
App container rktApp container rkt
App container rkt
 
It pro dev_birbilis_20101127_en
It pro dev_birbilis_20101127_enIt pro dev_birbilis_20101127_en
It pro dev_birbilis_20101127_en
 
Me3D: A Model-driven Methodology Expediting Embedded Device Driver Development
Me3D: A Model-driven Methodology  Expediting Embedded Device  Driver DevelopmentMe3D: A Model-driven Methodology  Expediting Embedded Device  Driver Development
Me3D: A Model-driven Methodology Expediting Embedded Device Driver Development
 
Learning AOSP - Building AOSP for Nexus 7
Learning AOSP - Building AOSP for Nexus 7Learning AOSP - Building AOSP for Nexus 7
Learning AOSP - Building AOSP for Nexus 7
 
Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVA
 
Faults inside System Software
Faults inside System SoftwareFaults inside System Software
Faults inside System Software
 
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
 
Easy way to learn Core java full material
Easy way to learn Core java full materialEasy way to learn Core java full material
Easy way to learn Core java full material
 
Corejava ratan
Corejava ratanCorejava ratan
Corejava ratan
 
VB2013 - Security Research and Development Framework
VB2013 - Security Research and Development FrameworkVB2013 - Security Research and Development Framework
VB2013 - Security Research and Development Framework
 
Java Starting
Java StartingJava Starting
Java Starting
 
V Labs Product Presentation
V Labs  Product PresentationV Labs  Product Presentation
V Labs Product Presentation
 
Java JDK.docx
Java JDK.docxJava JDK.docx
Java JDK.docx
 
JavaScript all the things! - FullStack 2017
JavaScript all the things! - FullStack 2017JavaScript all the things! - FullStack 2017
JavaScript all the things! - FullStack 2017
 

Jnode

  • 1. Why Java is practical for modern operating systems JNode.org Ewout Prangsma Copyright (c) JNode.org 2005 http://www.jnode.org
  • 2. Contents ● Introduction ● History ● Characteristics ● Architecture ● Plugin framework ● Driver framework ● Future ● Java benefits Copyright (c) JNode.org 2005 http://www.jnode.org
  • 3. Introduction ● Simple to use & install operating system for personal use: written for and in Java ● Targets: – Modern devices – Desktop – Small servers ● Only actively developed Java OS in the open source world – 7 active developers, 17K downloads Copyright (c) JNode.org 2005 http://www.jnode.org
  • 4. History ● Original idea started in 1995 ● First attempt: JBS (Java Bootable System) – Contained C code, did not work at all ● Second attempt: JBS2 – Still did not work well, but was better ● Then: JNode – No C code anymore, Classpath classlibraries ● Went public in May '03 Copyright (c) JNode.org 2005 http://www.jnode.org
  • 5. Characteristics ● All Java, minimal assembler, no C ● All java build system (almost) ● Extensible architecture ● Single flat memory address space, no virtual memory ● JVM written in Java ● All Java code is compiled on the fly, no interpreter ● Security is always on ● LGPL license Copyright (c) JNode.org 2005 http://www.jnode.org
  • 6. Status (1) ● Release 0.2.1 – Full device driver model – Networking TCP/IP – Filesystems EXT2, FAT, NTFS, ISO9660 – Graphics 2D – J2SDK 1.5 support in VM (not classlibs) – Simple heap managers & GC ● MMTk based heap manager & GC in development – IA32 & AMD64 platform support Copyright (c) JNode.org 2005 http://www.jnode.org
  • 7. Status (2) Playing Tetris on JNode Copyright (c) JNode.org 2005 http://www.jnode.org
  • 8. Architecture (1) Desktop Deployment Debugging Shell framework framework framework Build system Driver Filesystem Partition Networking Graphics framework framework framework framework framework Java Virtual Machine Plugin framework Nano kernel (asm) Hardware Copyright (c) JNode.org 2005 http://www.jnode.org
  • 9. Architecture (2) Java Virtual Machine Classpath Runtime library runtime library support Class Security Native code manager manager compilers Scheduler & Heap Isolation threading managers manager manager Copyright (c) JNode.org 2005 http://www.jnode.org
  • 10. Plugin framework (1) ● Everything is contained in a plugin – code, resources – even JVM & the plugin framework itself ● Plugins can: – be loaded, unloaded & reloaded (at runtime) – depend on other plugins – provide well known extension points – connect to well known extension points Copyright (c) JNode.org 2005 http://www.jnode.org
  • 11. Plugin framework (2) ● Plugins are: – described by a descriptor ● descriptor also contains license info – JAR files – inspired by Eclipse plugins Copyright (c) JNode.org 2005 http://www.jnode.org
  • 12. Plugin framework (3) <plugin id=quot;org.jnode.driverquot; name=quot;JNode Driver Frameworkquot; version=quot;@VERSION@quot; provider-name=quot;JNode.orgquot; license-name=quot;lgplquot; class=quot;org.jnode.driver.DriverPluginquot;> <requires> General info <import plugin=quot;org.jnode.workquot;/> </requires> Dependencies <runtime> <library name=quot;jnode-core.jarquot;> Code & resources <export name=quot;org.jnode.driver.*quot;/> <export name=quot;org.jnode.driver.util.*quot;/> </library> </runtime> Well known extension points <extension-point id=quot;findersquot; name=quot;System device findersquot;/> <extension-point id=quot;mappersquot; name=quot;Device to Driver mappersquot;/> <extension point=quot;org.jnode.security.permissionsquot;> <permission class=quot;java.util.PropertyPermissionquot; name=quot;jnode.cmdlinequot;/> </extension> </plugin> Connection to well known extension point Copyright (c) JNode.org 2005 http://www.jnode.org
  • 13. Driver framework (1) contains Device drives Bus Driver represents hardware finds finds Device Device to finder driver mapper Copyright (c) JNode.org 2005 http://www.jnode.org
  • 14. Driver framework (2) Device registers API Driver queries for API represents hardware calls implements Device “user” DeviceAPI Copyright (c) JNode.org 2005 http://www.jnode.org
  • 15. Driver framework (3) Example: Radeon Graphicscard driver find PCI devices PCI finders driver plugin Driver plugin map PCI id to driver Radeon mappers driver plugin Copyright (c) JNode.org 2005 http://www.jnode.org
  • 16. Driver framework (4) Device manager Device finder Device 2 driver mapper Driver Device findDevices evice registerD findDriver startDevice registerAP I Copyright (c) JNode.org 2005 http://www.jnode.org
  • 17. Future ● Short term: – Improved JVM performance (mm, compilers) – Deployment framework – Improved graphics ● Long term: – Simple to use desktop environment ● Fully document oriented instead of app. oriented – Java powered servers ● e.g. Cooperation with ApacheDS Copyright (c) JNode.org 2005 http://www.jnode.org
  • 18. Java benefits ● Dynamic linking ● Type safe language (even more in J2SDK 1.5) ● Security – Security manager – No uncontrolled memory access ● Great development tools: – Eclipse, Ant Copyright (c) JNode.org 2005 http://www.jnode.org
  • 19. We need your help! ● Don't be scared of by the codebase – Most of it is classpath libraries ● Ask questions ● Visit http://www.jnode.org ● Contact me: epr@jnode.org Copyright (c) JNode.org 2005 http://www.jnode.org
  • 20. Questions Copyright (c) JNode.org 2005 http://www.jnode.org