Reverse Engineered Architecture of the Linux Kernel Kristof De Vos.

Slides:



Advertisements
Similar presentations
COMPUTERS: TOOLS FOR AN INFORMATION AGE Chapter 3 Operating Systems.
Advertisements

Operating Systems (CSCI2413) Lecture 2 Overview phones off (please)
Operating System.
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
Operating Systems: Software in the Background
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
Introduction to Kernel
Home: Phones OFF Please Unix Kernel Parminder Singh Kang Home:
Embedded Real-time Systems The Linux kernel. The Operating System Kernel Resident in memory, privileged mode System calls offer general purpose services.
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
Figure 1.1 Interaction between applications and the operating system.
MEMORY MANAGEMENT By KUNAL KADAKIA RISHIT SHAH. Memory Memory is a large array of words or bytes, each with its own address. It is a repository of quickly.
Comparative Operating Systems Understanding the Kernel Structure Prashant Thuppala.
OPERATING SYSTEMS Introduction
1 I/O Management in Representative Operating Systems.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3 Operating System Organization.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
An Introduction to Operating Systems. Definition  An Operating System, or OS, is low-level software that enables a user and higher-level application.
CS 6560 Operating System Design Lecture 2. Overview OS Structure Case Study: Linux.
BAB 2 BASIC OPERATING SYSTEM CONCEPT MANAGEMENT. User interface – –a program that controls a display for the user (usually on a computer monitor) and.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
hardware and operating systems basics.
4 1 Operating System Activities  An operating system is a type of system software that acts as the master controller for all activities that take place.
©2003/04 Alessandro Bogliolo Computer systems A quick introduction.
CSC 322 Operating Systems Concepts Lecture - 25: by Ahmed Mumtaz Mustehsan Special Thanks To: Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
Kernel, processes and threads Windows and Linux. Windows Architecture Operating system design Modified microkernel Layered Components HAL Interacts with.
Databases and Database Management Systems
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
A+ Guide to Managing and Maintaining Your PC Fifth Edition Chapter 13 Understanding and Installing Windows 2000 and Windows NT.
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
Systems Software Operating Systems. What is software? Software is the term that we use for all the programs and data that we use with a computer system.
Introduction to Microsoft Windows 2000 Integrated support for client/server and peer-to-peer networks Increased reliability, availability, and scalability.
LINUX System : Lecture 7 Bong-Soo Sohn Lecture notes acknowledgement : The design of UNIX Operating System.
OSes: 3. OS Structs 1 Operating Systems v Objectives –summarise OSes from several perspectives Certificate Program in Software Development CSE-TC and CSIM,
Processes Introduction to Operating Systems: Module 3.
OS, , Part I Operating - System Structures Department of Computer Engineering, PSUWannarat Suntiamorntut.
UNIX Unit 1- Architecture of Unix - By Pratima.
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
UNIX & Windows NT Name: Jing Bai ID: Date:8/28/00.
Copyright © Curt Hill Operating Systems An Introductory Overview.
Chapter Eleven Windows XP Professional Application Support.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 1.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 2.
CCSB234/CSNB234 Operating System Concepts Semester 2, Dec 2006 – Mar 2007 Abdul Rahim Ahmad.
Operating Systems: Summary INF1060: Introduction to Operating Systems and Data Communication.
Concepts and Structures. Main difficulties with OS design synchronization ensure a program waiting for an I/O device receives the signal mutual exclusion.
System Programming Basics Cha#2 H.M.Bilal. Operating Systems An operating system is the software on a computer that manages the way different programs.
CEG 2400 FALL 2012 Linux/UNIX Network Operating Systems.
Kernel Modules – Introduction CSC/ECE 573, Sections 001 Fall, 2012.
CITA 171 Section 1 DOS/Windows Introduction. DOS Disk operating system (DOS) –Term most often associated with MS-DOS –Single-tasking operating system.
به نام خدای مهربان زبان تخصصی دانشجویان کامپیوتر English for Computer Students درس 3 جوانمرد Ejavanmard.blogfa.com
Chapter 2 Operating System Overview Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
Introduction to Operating Systems Concepts
Getting Started with the Kernel
Operating Systems & System Software
Chapter 12: File System Implementation
Microprocessor and Assembly Language
KERNEL ARCHITECTURE.
Systems Software Keywords Operating Systems
Chapter 2: The Linux System Part 1
Linux Architecture Overview.
LINUX System : Lecture 7 Lecture notes acknowledgement : The design of UNIX Operating System.
Operating System Introduction.
Virtual Memory: Beyond the Physical Memory
Executable Specifications
Mr. M. D. Jamadar Assistant Professor
LINUX System : Lecture 6 Bong-Soo Sohn
Overview of Computer system
CS Introduction to Operating Systems
Presentation transcript:

Reverse Engineered Architecture of the Linux Kernel Kristof De Vos

Why Linux Kernel? Linux is a Unix-like Operating System Large system : 800 KLOC Open Source –no barriers to discuss the details of the system implementation Has no fully documented architecture

Conceptual vs. Concrete Architecture Conceptual: –how developers think about the system –meaningful relationships Concrete –as-build (as in the implementation) –might include dependencies for debugging,...

6 Steps 1 Examine existing documentation 2 form conceptual architecture 3 group source files in subsystems based on: –directory structure –naming conventions –source code comments –examining source code

6 Steps 4 Extract relations between source files 5 use relations between source files to determine relations between subsystems 6 form concrete architecture

Conceptual Architecture Descriptions of related operating systems and existing Linux documentation used:

7 major subsystems Process Scheduler –responsible for multitasking Memory Manager –separates memory spaces for each process –uses swapping to support more processes File System –access to hardware devieces

7 major subsystems Network Interface –access to network devices Inter-Process Communication (IPC) –allows communication between processes on the same processor Initialization –responsible for initialization of the rest of the kernel Library –routines, used by the whole kernel

File-sub-architecture Extracted roles: –provide access to a variety of hardware devices –supports several logical file system formats –allows programs to be stored in several executable formats Further investigations: Facade design pattern –subsystems are accessible through a single interface –subsystem interdependency is reduced

File System subsystems

Main roles are implemented in 5 subsystems: –Device Drivers performs all communication with hardware devices –Logical File Systems implements several logical file systems allows interoperability with different OS encryption, compression, high performance,...

subsystems –Executable File Formats allows execution of different executables –File Quota limits amount of file storage for individual users –Buffer Cache memory buffers for I/O-operations 2 other subsystems define facade interfaces all information is extracted from other documentation

Extraction Manual examination too costly (800KLOC) automated tools (GROK): –manually define the subsystem hierarchy –manually assign source files to subsystems –let the beast loose: grok examines all source files finds relations between subsystems output is not readable for humans lsedit visually shows relations

Partial subsystem hierarchy

Concrete Architecture Combination of –conceptual architecture –subsystem hierarchy –results of automated tools

Concrete Architecture Same subsystems, but different dependencies 19 vs. 37 interprocess dependencies reasons: –efficiency –exploration, maybe not really needed –possibly faulty