Jnode

5,935 views
6,090 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
5,935
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Jnode

  1. 1. Why Java is practical for modern operating systems JNode.org Ewout Prangsma Copyright (c) JNode.org 2005 http://www.jnode.org
  2. 2. Contents ● Introduction ● History ● Characteristics ● Architecture ● Plugin framework ● Driver framework ● Future ● Java benefits Copyright (c) JNode.org 2005 http://www.jnode.org
  3. 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. 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. 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. 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. 7. Status (2) Playing Tetris on JNode Copyright (c) JNode.org 2005 http://www.jnode.org
  8. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 20. Questions Copyright (c) JNode.org 2005 http://www.jnode.org

×