Copyright (c) JNode.org 2006 g JNode a modern Java operating system JNode.org Ewout Prangsma.

Slides:



Advertisements
Similar presentations
NetServ Dynamic in-network service deployment Henning Schulzrinne (Columbia University) Srinivasan Seetharaman (Georgia Tech) Volker Hilt (Bell Labs)
Advertisements

1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
1 G54PRG Programming Lecture 1 Amadeo Ascó Adam Moore G54PRG Programming Lecture 1 Amadeo Ascó 3 Java Programming Language.
Using MapuSoft Instead of OS Vendor’s Simulators.
Introduction to Virtualization
DEPARTMENT OF COMPUTER ENGINEERING
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Embedded Java Research Geoffrey Beers Peter Jantz December 18, 2001.
Android Introduction Platform Overview.
Programming mobile devices Part II Programming Symbian devices with Symbian C++
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Framework and application bytecode size CLDC MIDP kXML parser Utility classes Graphics Logic (MIDlet) Application Data (XML file)
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Introduction to Interactive Media Interactive Media Tools: Software.
Android for Java Developers Denver Java Users Group Jan 11, Mike
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
Copyright © cs-tutorial.com. Overview Introduction Architecture Implementation Evaluation.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Chapter 9: Networking with Unix and Linux. Objectives: Describe the origins and history of the UNIX operating system Identify similarities and differences.
By Adam Reimel. Outline Introduction Platform Architecture Future Conclusion.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
Copyright (c) JNode.org g Why Java is practical for modern operating systems JNode.org Ewout Prangsma.
The Basics of Android App Development Sankarshan Mridha Satadal Sengupta.
Introduction to Operating Systems Concepts
Computer System Structures
Android Mobile Application Development
Introduction to Virtualization
Containers as a Service with Docker to Extend an Open Platform
Introduction to Operating Systems
Visit for more Learning Resources
Before You Begin Nahla Abuel-ola /WIT.
Current Generation Hypervisor Type 1 Type 2.
Software Mr. Singh.
Chapter 1 Introduction to Computers, Programs, and Java
CASE STUDY 1: Linux and Android
Platform as a Service.
MOBILE DEVICE OPERATING SYSTEM
Lecture 1 Runtime environments.
Introduction Enosis Learning.
CMPE419 Mobile Application Development
Introduction Enosis Learning.
Getting Started ARCS Lab..
Computer Science I CSC 135.
Introduction to Operating Systems
Advanced Programming Fall 2017.
Virtualization Layer Virtual Hardware Virtual Networking
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Chapter 2: System Structures
Chapter 2: The Linux System Part 1
Google App Engine Ying Zou 01/24/2016.
Lecture Topics: 11/1 General Operating System Concepts Processes
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
(Computer fundamental Lab)
Android Introduction Platform Mihail L. Sichitiu.
Introduction to Virtual Machines
Android Platform, Android App Basic Components
Lecture 1 Runtime environments.
System calls….. C-program->POSIX call
Introduction to Virtual Machines
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
CMPE419 Mobile Application Development
Java phoneME CDC AMS July, 15, 2008 by Wooram Noh.
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Running C# in the browser
Presentation transcript:

Copyright (c) JNode.org g JNode a modern Java operating system JNode.org Ewout Prangsma

Copyright (c) JNode.org g Contents ● Introduction ● History & Characteristics ● Architecture – Plugin framework – Driver framework ● Challenges ● Future ● Java benefits

Copyright (c) JNode.org g 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 – 5 active developers, 27K downloads

Copyright (c) JNode.org g 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 g Characteristics ● All Java, minimal assembler, no C ● All java build system (almost) ● Extensible architecture ● Single flat memory address space, no page swapping ● JVM written in Java, Program isolation in Java ● All Java code is compiled on the fly, no interpreter ● Security is always on ● LGPL license

Copyright (c) JNode.org g Status (1) ● Release – Full device driver model – Networking TCP/IP – Filesystems EXT2, FAT, NTFS, ISO9660 – Graphics 2D, Java desktop – 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 g Status (2) ● Release dev – Java Isolate support ● Java program's run in their isolates space (domain) ● Implemented in Java with assistance from native code compiler ● Conforms to JSR 121

Copyright (c) JNode.org g Status (3) - JNode desktop - JNode server connected to Internet

Copyright (c) JNode.org g Architecture (1) Hardware Nano kernel (asm) Java Virtual MachinePlugin framework Driver framework Filesystem framework Networking framework Partition framework Graphics framework Shell Desktop framework Build system Deployment framework Debugging framework

Copyright (c) JNode.org g Architecture (2) Java Virtual Machine Native code compilers Heap managers Classpath runtime library Class manager Security manager Scheduler & threading manager Runtime library support Isolation manager

Copyright (c) JNode.org g 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 g Plugin framework (2) ● Plugins are: – described by a descriptor ● descriptor also contains license info – JAR files – inspired by Eclipse plugins

Copyright (c) JNode.org g Plugin framework (3) <plugin id="org.jnode.driver" name="JNode Driver Framework" provider-name="JNode.org" license-name="lgpl" class="org.jnode.driver.DriverPlugin"> Dependencie s Well known extension points Connection to well known extension point Code & resources General info

Copyright (c) JNode.org g Driver framework (1) Device represents hardware DriverBus Device to driver mapper Device finder

Copyright (c) JNode.org g Driver framework (2) Device represents hardware Driver DeviceAPIDevice “user”

Copyright (c) JNode.org g Driver framework (3) Driver plugin fin de rs m ap pe rs Radeon driver plugin PCI driver plugin Example: Radeon Graphicscard driver

Copyright (c) JNode.org g Driver framework (4) Device manager Device finder Drive r Device 2 driver mapper findDevices findDriver startDevice Devic e registerAPI registerDevice

Copyright (c) JNode.org g Java Program Isolation ● Goal: – Avoid program interference – Isolation should be “cheap” ● Isolated v.s. Shared resources – Isolated: program visible structures; threads, static variables, Class/Method/Field instances – Shared: internal structures; VmThread, VmType,..., compiled native code

Copyright (c) JNode.org g Challenges ● Performance – Writing good optimizing compilers is hard ● Perception – “Java is slow...” – “ Why not use Linux...” ● Time and resources – JNode is large... getting started is hard – All volunteers

Copyright (c) JNode.org g Future (short term) ● Finalize Isolate support ● Multi CPU support ● Improved JVM stability & performance ● Improved graphics

Copyright (c) JNode.org g Future (long term) ● Simple to use desktop environment – Fully document oriented instead of app. oriented ● Java powered servers – e.g. Cooperation with ApacheDS ● Technical future / dreams: – Easily portable –.Net (IL) support

Copyright (c) JNode.org g 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 g Where can you help? ● More registers! – X86 register set is so limited, X64 is better ● Optimizing compiler knowledge & expertise ● Good documentation – Already pretty good, unlike GPU vendors ● Visit ● Contact me:

Copyright (c) JNode.org g Questions / Discussion