Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Software Architecture Shanghai Jiaotong University Author: Lu,

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Chapt.2 Machine Architecture Impact of languages –Support – faster, more secure Primitive Operations –e.g. nested subroutine calls »Subroutines implemented.
Threads, SMP, and Microkernels
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
Lecture 16 Buffer Overflow modified from slides of Lawrie Brown.
Chapter FourModern Programming Languages1 Language Systems.
Lab Information Security Using Java (Review) Lab#0 Omaima Al-Matrafi.
Secure web browsers, malicious hardware, and hardware support for binary translation Sam King.
Software. What Is Software? software –Also called Computer programs –Are a list of instructions –Instructions are called code –CPU performs the instructions.
The Java Language. Topics of this Course  Introduction to Java  The Java Language  Object Oriented Programming in Java  Exceptions Handling  Threads.
OmniVM Efficient and Language- Independent Mobile Programs Ali-Reza Adl-Tabatabai, Geoff Langdale, Steven Lucco and Robert Wahbe from Carnegie Mellon University.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
JETT 2003 Java.compareTo(C++). JAVA Java Platform consists of 4 parts: –Java Language –Java API –Java class format –Java Virtual Machine.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization.
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.
Java Security Updated May Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security.
Intro to Java The Java Virtual Machine. What is the JVM  a software emulation of a hypothetical computing machine that runs Java bytecodes (Java compiler.
Efficient Software-Based Fault Isolation—sandboxing Presented by Carl Yao.
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
A Portable Virtual Machine for Program Debugging and Directing Camil Demetrescu University of Rome “La Sapienza” Irene Finocchi University of Rome “Tor.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Operating System Support for Virtual Machines Samuel T. King, George W. Dunlap,Peter M.Chen Presented By, Rajesh 1 References [1] Virtual Machines: Supporting.
Computing with C# and the.NET Framework Chapter 1 An Introduction to Computing with C# ©2003, 2011 Art Gittleman.
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
CSC 310 – Imperative Programming Languages, Spring, 2009 Virtual Machines and Threaded Intermediate Code (instead of PR Chapter 5 on Target Machine Architecture)
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
Chapter 1: Introducing JAVA. 2 Introduction Why JAVA Applets and Server Side Programming Very rich GUI libraries Portability (machine independence) A.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Java 2 security model Valentina Casola. Components of Java the development environment –development lifecycle –Java language features –class files and.
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.1 Basics of Java Produced by Harvey Peters, 2008 Copyright.
Journal Entry: Unit #5 Entry #3 Define the following words from ch2 in your journals: Binary, bit, discrete, unambiguous signals, digital, analog signal,
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Buffer Overflow Proofing of Code Binaries By Ramya Reguramalingam Graduate Student, Computer Science Advisor: Dr. Gopal Gupta.
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Full and Para Virtualization
Introduction Why are virtual machines interesting?
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
First Compilation Rudra Dutta CSC Spring 2007, Section 001.
The Execution System1. 2 Introduction Managed code and managed data qualify code or data that executes in cooperation with the execution engine The execution.
Chapter 11  Getting ready to program  Hardware Model  Software Model  Programming Languages  Facts about C++  Program Development Process  The Hello-world.
RealTimeSystems Lab Jong-Koo, Lim
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Introduction to Operating Systems Concepts
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Applications Active Web Documents Active Web Documents.
Object Oriented Programming in
Java Yingcai Xiao.
CASE STUDY 1: Linux and Android
Internet and Java Foundations, Programming and Practice
C# and the .NET Framework
Introduction Enosis Learning.
2.1. Compilers and Interpreters
Unit 41 – Programing in Java
Information Security - 2
Units with – James tedder
Units with – James tedder
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
Introduction to Virtual Machines
Outline Operating System Organization Operating System Examples
Introduction to Virtual Machines
M S COLLEGE ART’S, COMM., SCI. & BMS
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Presentation transcript:

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Software Architecture Shanghai Jiaotong University Author: Lu, Fei Advisor: Yu, Yong

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Motivation C+J portable library Distribution and Execution Mechanism Contribution and future work Table of Contents C+J Software Architecture

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Runtime overhead is significant even using JIT Space efficiency degrades greatly when heap allocations is universal and frequent Heap allocation is slower than stack allocation by two significant orders Motivation Shortfalls of Java Architecture 16 bytes 32 bytes Space for Reference 4 bytes Space for Object (20 bytes) Space efficiency as individual object size(X-axis) grows assuming there are no memory fragments, which is in an ideal case Heapallocations allocate more space than you want (see malloc.c)

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Digital signature on ActiveX only guarantees its source, not its runtime security; ActiveX does not work on other platforms. Need a more general and flexible architecture while maintaining high performance Motivation

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Advantages of C+J library C+J applications can run on different OS without recompilation C+J applets can run in Web browsers High performance, suitable for less powerful mobile devices C++ is the most widely used programming language C+J library is well designed; it has two layers in order to be portable C+J portable library

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Structure of C+J Library C+J portable library

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Usage: C+J compared with Java Java package vs. C++ namespace Class and Interface Exception Keyword: synchronized C+J portable library

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Java package vs. C++ namespace cpp - cpp::lang - cpp::awt - cpp::awt::Graphics cpp::io - cpp::net cpp::util java - java.lang - java.awt - java.awt.Graphics java.io - java.net java.util C+J portable library

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. interface Shape{ public int getArea(); public void draw(); } class Rect implements Shape{... public int getArea(){ return a*b; } ; public void draw(){... } ; } class Shape{ public: virtual int getArea() =0 ; virtual void draw() =0 ; } ; class Rect : public Shape, public Object{ public:... virtual int getArea(); virtual void draw();... } ; int Rect::getArea() { return a*b; } void Rect::draw() {... }... C+J portable library

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. #define throws(Exception) // trick: I currently define it to be empty class Socket : public Object { … Socket(char* host, int port) throws(UnknownHostException | IOException); … // this annotation can be utilized by pre-processor }; Socket(char* host, int port) throw (UnknownHostException, IOException); ANSI C++ standard usage C+J portable library Exception

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Keyword synchronized Function(){... synchronized( Obj ){... }... } Function(){... { Synchronize belowWith( Obj );... }... } Using JavaUsing C+J lib C+J portable library

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Flexible Distribution Format Share binaries among different operating systems Can be compiled into intermediate code Distribution & Execution Mechanism

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Share executable of local application C+J Application C+J Dynamic Link Lib For Windows x86 Abstract layer for OS Distribution & Execution Mechanism

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Application C+J Dynamic Link Lib For Linux x86 Distribution & Execution Mechanism Share executable of local application Abstract layer for OS Same binary

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Compile to Intermediate Code Source Code Intermediate Code compile Download Translator Native Machine code Final executable Insert SFI protection Client Browser Distribution & Execution Mechanism

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Software-based Fault Isolation(SFI) Security issues in machine instruction level Privileged Instructions Memory Access Control Flow Solutions : Static check for instruction and immediate address Runtime protection(code inserted ) Runtime Overhead: about 10% R/W/Jump address AND, OR operations Control Flow restricted in protected region Distribution & Execution Mechanism

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Hidden Execution Sequence Attack call ebx Hidden Execution Sequence Normal Execution Sequence Hidden JMP instruction, jump out of restricted region Distribution & Execution Mechanism

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. SFI on x86 No need to reserve 5 registers No need to use hash table to verify the correctness of function entry No need for stack extension call ebx f1: ret ret_id func_id Globle Table 1: ret_id -> address Distribution & Execution Mechanism Globle Table 2: func_id -> address

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Runtime overhead: C+J Applet vs Java Applet C+J Dynamic Lib C+J Applet Time:100% (no overhead) Space:100% (no overhead) Time:110% (SFI overhead) Space:100% (no overhead) Java class library Time:???% Space:300%-400% + Java Applet Time:???% Space:300%-400% + C+J Applet Distribution & Execution Mechanism

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Contribution Clean C+J library design C+J core library development Innovative cross-platform Architecture Share binaries among OSes, cross-platform development Run C+J Applet in Web browser A new SFI approach for CISC processors Conclusion

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. Future Conclusion Provides an ideal software architecture for mobile devices High performance Cross-platform development Flexible cross-platform distribution

Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. The End C+J Based Software Architecture Thank you