Language Based Operating Systems by Sean Olson What is a virtual machine? What is managed code? Kernels. Memory and security models. What is a language.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

An Overview Of Virtual Machine Architectures Ross Rosemark.
OPERATING SYSTEM An operating system is a group of computer programs that coordinates all the activities among computer hardware devices. It is the first.
Operating Systems Manage system resources –CPU scheduling –Process management –Memory management –Input/Output device management –Storage device management.
3.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 3: Operating-System Structures System Components Operating System.
1/21/2008CSCI 315 Operating Systems Design1 Operating System Structures Notice: The slides for this lecture have been largely based on those accompanying.
CS533 Concepts of Operating Systems Class 14 Virtualization.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
1/28/2004CSCI 315 Operating Systems Design1 Operating System Structures & Processes Notice: The slides for this lecture have been largely based on those.
Figure 1.1 Interaction between applications and the operating system.
Chapter 4 Structure of Operating Systems Copyright © 2008.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Abhinav Kamra Computer Science, Columbia University 3.1 Operating System Concepts Silberschatz, Galvin and Gagne  2002 Chapter 3: Operating-System Structures.
Embedded Java Research Geoffrey Beers Peter Jantz December 18, 2001.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Tanenbaum 8.3 See references
Computer Organization
Prof. Hsien-Hsin Sean Lee
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Java Virtual Machine Java Virtual Machine A Java Virtual Machine (JVM) is a set of computer software programs and data structures that use.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
COMP25212: Virtualization Learning Objectives: a)To describe aims of virtualization - in the context of similar aims in other software components b)To.
VirtualBox What you need to know to build a Virtual Machine.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
April 2000Dr Milan Simic1 Network Operating Systems Windows NT.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview Part 2: History (continued)
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
3.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 3: Operating-System Structures System Components Operating System.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
3.1 Operating System Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual.
Processes Introduction to Operating Systems: Module 3.
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming.  To allocate scarce memory.
CS 346 – Chapter 2 OS services –OS user interface –System calls –System programs How to make an OS –Implementation –Structure –Virtual machines Commitment.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
A compiler is a computer program that translate written code (source code) into another computer language Associated with high level languages A well.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Full and Para Virtualization
Introduction Why are virtual machines interesting?
MIDORI The Windows Killer!! by- Sagar R. Yeole Under the guidance of- Prof. T. A. Chavan.
Operating-System Structures
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
2.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition System Programs (p73) System programs provide a convenient environment.
Virtual Machines Mr. Monil Adhikari. Agenda Introduction Classes of Virtual Machines System Virtual Machines Process Virtual Machines.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Introduction to Operating Systems Concepts
Computer System Structures
Computer System Structures
Virtualization.
Topic: Difference b/w JDK, JRE, JIT, JVM
Operating System Structure
OS Virtualization.
Chapter 3: Operating-System Structures
Outline Chapter 2 (cont) OS Design OS structure
Operating System Introduction.
Introduction to Virtual Machines
Outline Operating System Organization Operating System Examples
System calls….. C-program->POSIX call
Introduction to Virtual Machines
Operating Systems Structure
Presentation transcript:

Language Based Operating Systems by Sean Olson What is a virtual machine? What is managed code? Kernels. Memory and security models. What is a language based operating system? Examples. The (possible) future.

Virtual Machines A virtual machine (often abreviated VM) is a hardware abstraction designed to perform some task or execute instructions designed for it rather than the actual environment it is deployed in. It may encapsulate some functionality, or emulate an existing machine. Common examples of VMs in programming are the Java Virtual Machine (JVM), CPython, the Ruby Virtual Machine, and the Common Language Runtime (CLR).

Managed Code Managed code is code written in a language that is compiled to some intermediate language for execution or interpretation by a VM. Such languages are usually very high level (abstract) and provide expressive features. Arbitrary complexity. VM instructions may perform any number of native operations. Safety. The VM acts as the interface between managed code and native code.

Kernels The kernel is the core of the operating system. Performs important system tasks. Memory management (hardware/software). Interprocess communication (IPC). Scheduling. Interupts. Provides hooks for code in user space. Protection sensitive systems.

Monolithic Kernels A monolithic kernel tends to be large and contains a stack of many complex systems that run in kernel space. Services are tightly integrated and very interdependent. Provides complex services. Virtual memory. File systems. Device drivers. Dispatchers. Presents a rich set of system calls for communication with user space.

Microkernels A microkernel is a minimalistic kernel that provides only required services that must exist in kernel space. Remaining services are implemented as servers, which exist in user space and are isolated from the kernel. Failed services (servers) are okay; they are in user space. Creates a security layer. Must provide fast and powerful IPC tools to support servers.

Kernel Comparison

Memory/Security Models As hardware evolved, 16-bit systems adopted segmented memory models. Hardware memory controllers (MMUs) and protection was embedded within CPUs. With the advent of 32-bit computing, memory protection schemes were also implemented in hardware. The flat memory model was adopted. Monolithic kernels were (and still are) the norm. These schemes suit them well.

Memory/Security Models The Intel x86 family of processors provide at the hardware level... Security rings, controlling access to certain features and even specific opcodes. (Highly unused.) Embedded memory protection, which tracks context switching and protects address spaces. Flags/modes to differentiate between user and kernel code.

Language Based OS's A language based operating system (LBOS) is a computer OS that typically combines the technologies of microkernels, VMs (or interpreters), and software based protection schemes. At the kernel level, simple models (such as the flat memory model) are used, and the kernel is often small. The kernel provides a safe interface to an augmented VM, or a VM is loaded atop the kernel in user space. Both core OS components and applications are then built atop that VM.

Language Based OS's Only the most low level components of the kernel are implemented in languages like assembly or C. The VM/environment is also typically implemented in a language like C. Most of the kernel is implemented using a high level language that executes within a core VM. IPC, scheduling, and even device drivers can be implemented in this high level language. Servers can be very robust, and simply restarted if errors occur in many cases.

Advantages of a LBOS Stability The kernel, which is the most vulnerable part of the system, is small and very isolated. Servers may have elevated permissions, but are still not in kernel space. Security The VM/kernel can implement software invariants and security policies. Type-safe languages eliminate the need for protected memory spaces.

Advantages of a LBOS Development Clean, easy to use APIs. Easily accessible and safe bindings to the kernel using high level concepts. Consistency. Compatibility All but the core of the kernel and VM is platform independent. Additional languages can be easily bound with compilers that generate code suitable for the VM.

Disadvantages of a LBOS Real time applications. Because it would breach security, unmanaged code could not easily be allowed. This makes it difficult to develop speed critical applications/proce dures. Legacy support. Legacy/native applications would need to be sandboxed by a parent process or emulation, losing the advantage of being native machine instructions.

Examples Micro$oft's Singularity and Midori Developed in Sing#, derived from Spec#, derived from C#. C/C++ HAL, debugging systems, and bootstrap. Takes advantage of the CLR's unsafe mode for Sing# features. Uses ”software-isolated processes” (SIP) for memory protection. Static invariant analysis checking is performed on source code.

Examples JNode (previously JBSx) Assembly bootstrap; no other low level languages are used. JIT translates Java bytecode to native instructions as needed. All software is written in Java; the only expection is boot code. Aims to be capable of running any Java application.

Examples Vita Nuova Holdings' Inferno Kernel is a hybird microkernel/VM/hypervisor. Applications are written in Limbo. Kernel provides a standardized interface for Limbo. Designed for distributed architectures and provides a consistent platform. Runs both natively and within host VMs/hypervisors.

The Future LBOS's have open the doors on various new concepts and models for computing. Enhanced stability and security. The technology press has said that Micro$oft's Midori is poised to supercede their Windows OS. Phew. Maybe PCs won't get infected every five seconds anymore. LBOS's lend themselves to rapid application development (RAD).

The Future Amatuer developers can more easily understand and work with LBOS's. Software deployment can be made safer and easier with a centralized VM (the remote repository model works well here).

And Questions? ?