Sel4 Overview and Tutorial
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Extensible Distributed Operating System for Reliable Control Systems
194 Extensible Distributed Operating System for Reliable Control Systems Katsumi Maruyama, Kazuya Kodama, Soichiro Hidaka, Hiromichi Hashizume National Institute of Informatics, 2-1-2 Hitotsubashi, Chiyoda-ku, Tokyo, Japan Email:{maruyama,kazuya,hidaka,has}@nii.ac.jp Abstract small monitor-like OSs are used. However, these monitor- like OSs lack program protection mechanisms, and program Since most control systems software is hardware-related, development is difficult. real-time-oriented and complex, adaptable OSs which help Therefore, an extensible/adaptable OS for control sys- program productivity and maintainability improvement are tems is required . We are developing a new OS character- in strong demand. ized by: We are developing an adaptable and extensible OS based on micro-kernel and multi-server scheme: each server runs • Use of an efficient and flexible micro-kernel (L4-ka). • Multi-server based modular OS. (Each OS service is in a protected mode interacting only via messages, and implemented as individual user-level process.) could be added/extended/deleted easily. Since this OS is • Robustness. Only the micro-kernel runs in kernel highly modularized, inter-process messaging overhead is a mode and in kernel space. Other modules run in a pro- concern. Our implementation proved good efficiency and tected user space and mode. maintainability. • Hardware driver programs in user-level process. • Flexible distributed processing by global message passing. 1. Introduction This OS structure proved to enhance OS modularity and ease of programming. However, inter-process messaging Most systems, from large scale public telephone switch- overhead should be considered . We measured the overhead, ing systems to home electronics, are controlled by software, and the overhead was proved to be small enough. -
Filesystems HOWTO Filesystems HOWTO Table of Contents Filesystems HOWTO
Filesystems HOWTO Filesystems HOWTO Table of Contents Filesystems HOWTO..........................................................................................................................................1 Martin Hinner < [email protected]>, http://martin.hinner.info............................................................1 1. Introduction..........................................................................................................................................1 2. Volumes...............................................................................................................................................1 3. DOS FAT 12/16/32, VFAT.................................................................................................................2 4. High Performance FileSystem (HPFS)................................................................................................2 5. New Technology FileSystem (NTFS).................................................................................................2 6. Extended filesystems (Ext, Ext2, Ext3)...............................................................................................2 7. Macintosh Hierarchical Filesystem − HFS..........................................................................................3 8. ISO 9660 − CD−ROM filesystem.......................................................................................................3 9. Other filesystems.................................................................................................................................3 -
Microkernel Construction Introduction
Microkernel Construction Introduction Nils Asmussen 04/06/2017 1 / 28 Outline Introduction Goals Administration Monolithic vs. Microkernel Overview About L4/NOVA 2 / 28 Goals 1 Provide deeper understanding of OS mechanisms 2 Look at the implementation details of microkernels 3 Make you become enthusiastic microkernel hackers 4 Propaganda for OS research at TU Dresden 3 / 28 Administration Thursday, 4th DS, 2 SWS Slides: www.tudos.org ! Teaching ! Microkernel Construction Subscribe to our mailing list: www.tudos.org/mailman/listinfo/mkc2017 In winter term: Microkernel-based operating systems (MOS) Various labs 4 / 28 Outline Introduction Monolithic vs. Microkernel Kernel design comparison Examples for microkernel-based systems Vision vs. Reality Challenges Overview About L4/NOVA 5 / 28 Monolithic Kernel System Design u s Application Application Application e r k Kernel e r File Network n e Systems Stacks l m Memory Process o Drivers Management Management d e Hardware 6 / 28 Monolithic Kernel OS (Propaganda) System components run in privileged mode No protection between system components Faulty driver can crash the whole system Malicious app could exploit bug in faulty driver More than 2=3 of today's OS code are drivers No need for good system design Direct access to data structures Undocumented and frequently changing interfaces Big and inflexible Difficult to replace system components Difficult to understand and maintain Why something different? ! Increasingly difficult to manage growing OS complexity 7 / 28 Microkernel System Design Application -
Introduction to the Linux Kernel: Challenges and Case Studies
Introduction to the Linux kernel: challenges and case studies Juan Carlos Sáez Alcaide Department of Computer Architecture and Automation ArTeCS Group Complutense University of Madrid IV Semana de la Informática 2018 Feb 8, 2018 About Me Juan Carlos Sáez Alcaide ([email protected]) Interim Associate Professor, UCM Department of Computer Architecture and Automation Teaching: Operating Systems, Linux and Android Internals,… Member of the ArTeCS Research Group High Performance Computing Computer Architecture Interaction between system software and architecture … UCM Campus Representative of the USENIX Int’l Association Login (USENIX Magazine) IV Semana de la Informática 2018 - 2 Outline 1 Introduction 2 Main Features 3 Kernel Control Paths and Concurrency 4 Common Kernel abstractions 5 A case study: PMCTrack tool IV Semana de la Informática 2018 - 3 Outline 1 Introduction 2 Main Features 3 Kernel Control Paths and Concurrency 4 Common Kernel abstractions 5 A case study: PMCTrack tool IV Semana de la Informática 2018 - 4 Unix (I) Unics – Unix (1969) Created by Ken Thompson and rewrit- ten in “C” by Dennis Ritchie (1973) V6 (1975): Public source code (AT&T license) BSD distributions (Billy Joy) John Lion’s book on UNIX V6 Keys to success 1 Inexpensive license 2 Source code available 3 Code was simple and easy to modify 4 Ran on modest HW IV Semana de la Informática 2018 - 5 Unix (II) Unix (Cont.) V7 (1979): code can be no longer used for academic purposes Xenix (1980) Microsoft SCO Unix System III (1982) Unix System V (1983) HP-UX, IBM’s AIX, Sun’s Solaris IV Semana de la Informática 2018 - 6 Unix (III) Proyecto GNU (1983) - Richard Stallman SO GNU: Emacs, GNU compiler collection (GCC), GNU Hurd (kernel) Minix v1 (1987) - Andrew Tanenbaum Richard Stallman Minimal Unix-like OS (Unix clone) Teaching purposes. -
Water Quality Monitoring System Operating Manual February 2002
Water Quality Monitoring System Operating Manual February 2002 (Revision A) Hydrolab Corporation 8700 Cameron Road, Suite 100 Austin, Texas 78754 USA (800)949-3766 or (512)832-8832 fax: (512)832-8839 www.hydrolab.com Quanta•G Display Operations Tree Calib Salin SpC TDS DO DO% ORP pH BP Depth 00:002 mg/L 100% YMDHM [Standard, Scale Factor, or BP] Calib Review Screen Store [Index#] Screen 1⇔2⇔32 [Index#] Clear ClearAll Screen Screen Review Screen Setup Circ Temp Salin/TDS Depth On Off °C °F PSS g/L m ft Setup Notes: 1. Pressing the Esc ∞ key always exits to the previous operation level except at the top level where it toggles the circulator on or off. 2. RTC calibration (Calib ! 00:00) and Screen 3 are only available if the RTC/PC-Dump option is installed. 3. If the RTC/PC-Dump option is installed, pressing and holding the Esc ∞ key down during power-up causes the Quanta Display to enter PC-Dump mode. Table of Contents 1 Introduction ...........................................................................................................................1 1.1 Foreword.........................................................................................................................1 1.2 Specifications..................................................................................................................1 1.3 Components ....................................................................................................................2 1.4 Assembly.........................................................................................................................3 -
L4 – Virtualization and Beyond
L4 – Virtualization and Beyond Hermann Härtig!," Michael Roitzsch! Adam Lackorzynski" Björn Döbel" Alexander Böttcher! #!Department of Computer Science# "GWT-TUD GmbH # Technische Universität Dresden# 01187 Dresden, Germany # 01062 Dresden, Germany {haertig,mroi,adam,doebel,boettcher}@os.inf.tu-dresden.de Abstract Mac OS X environment, using full hardware After being introduced by IBM in the 1960s, acceleration by the GPU. Virtual machines are virtualization has experienced a renaissance in used to test potentially malicious software recent years. It has become a major industry trend without risking the host environment and they in the server context and is also popular on help developers in debugging crashes with back- consumer desktops. In addition to the well-known in-time execution. benefits of server consolidation and legacy In the server world, virtual machines are used to preservation, virtualization is now considered in consolidate multiple services previously located embedded systems. In this paper, we want to look on dedicated machines. Running them within beyond the term to evaluate advantages and virtual machines on one physical server eases downsides of various virtualization approaches. management and helps saving power by We show how virtualization can be increasing utilization. In server farms, migration complemented or even superseded by modern of virtual machines between servers is used to operating system paradigms. Using L4 as the balance load with the potential of shutting down basis for virtualization and as an advanced completely unloaded servers or adding more to microkernel provides a best-of-both-worlds increase capacity. Lastly, virtual machines also combination. Microkernels can contribute proven isolate different customers who can purchase real-time capabilities and small trusted computing virtual shares of a physical server in a data center. -
Wookey: USB Devices Strike Back
WooKey: USB Devices Strike Back Ryad Benadjila, Mathieu Renard, Philippe Trebuchet, Philippe Thierry, Arnauld Michelizza, Jérémy Lefaure [email protected] ANSSI Abstract. The USB bus has been a growing subject of research in recent years. In particular, securing the USB stack (and hence the USB hosts and devices) started to draw interest from the academic community since major exploitable flaws have been revealed by the BadUSB threat [41]. The work presented in this paper takes place in the design initiatives that have emerged to thwart such attacks. While some proposals have focused on the host side by enhancing the Operating System’s USB sub-module robustness [53, 54], or by adding a proxy between the host and the device [12, 37], we have chosen to focus our efforts on the de- vice side. More specifically, our work presents the WooKey platform: a custom STM32-based USB thumb drive with mass storage capabilities designed for user data encryption and protection, with a full-fledged set of in-depth security defenses. The device embeds a firmware with a secure DFU (Device Firmware Update) implementation featuring up-to-date cryptography, and uses an extractable authentication token. The runtime software security is built upon EwoK: a custom microkernel implementa- tion designed with advanced security paradigms in mind, such as memory confinement using the MPU (Memory Protection Unit) and the integra- tion of safe languages and formal methods for very sensitive modules. This microkernel comes along with MosEslie: a versatile and modular SDK that has been developed to easily integrate user applications in C, Ada and Rust. -
L4 Microkernel
L4 Microkernel See final slide for sources Presented by Michael LeMay L4 Advantages ● Recursive construction of memory spaces – Allows construction of memory managers in userspace that just use memory mapping – Kernel provides map, grant, and flush ● Blazing fast IPC – Passes short messages in registers – Avoids copying large messages and thus avoids TLB flushes and cache misses – Lazy scheduling of thread queues improves small message IPC around 25% L4 Performance OS Microseconds Instructions Mach 115 1150 L4 5 50 Exokernel 1.4 30 SPIN 102 1100 (Exokernel runs on MIPS R2000, which operates more efficiently than the x86 for L4, and has a tagged TLB. It also does not provide a portable API.) L4 Conceptual Contributions ● The author of the L4 paper, Jochen Liedtke, showed that microkernels do not inherently: – Exhibit slow IPC – Impose significant processor overhead ● Instead, he showed that particular implementations are to blame: – Mach was causing lots of cache misses because it's fat, making it look like microkernels have high overhead Microkernel Non-portability ● Liedtke argues that microkernels should be non- portable, but present a uniform API: – Abstract microkernels require additional hardware abstraction layer – Can't take advantage of specific performance-enhancing hardware features – Can't protect against peculiar hardware performance pitfalls L4 Subprojects http://www.dakotacountyswcd.org/treetype.htm ● L3 – Predecessor to L4 ● FIASCO – C++ implementation of L4, poor performer in comparison to “Pip” series ● L4Ka – Most active -
The L4 Ecosystem
Faculty of Computer Science, Operating Systems Group The L4 ecosystem Berlin, Dec 2004 System Issues ● Convential systems are ● Complex ● Linux kernel at least 500,000 LoC ● Prone to errors ● Drivers ● All system components run in privileged mode ● Inflexible ● Global policies ● Large Trusted Computing Base (TCB) 27.12.04 Adam Lackorzynski, Michael Peter Folie 2 Insights Observation: Most kernel functionality does not need CPU privileges, like: – Filesystems – Driver functionality – User management 27.12.04 Adam Lackorzynski, Michael Peter Folie 3 What is really needed Jochen Liedtke: “A microkernel does no real work” Kernel provides only inevitable mechanisms No policies enforced by the kernel What is inevitable? Abstractions Mechanisms . Threads . Communication . Scheduling . Address Spaces . Safe construction This should be sufficient for everything 27.12.04 Adam Lackorzynski, Michael Peter Folie 4 The Marred Perception of Microkernels • Supposed to be slow – Not true any more • No obvious benefit – Infamous dispute Torvalds vs. Tannenbaum – How much worth is manageability of complexity? • GNU Hurd – Late – Slow – Constantly lagging behind other OS in functionality 27.12.04 Adam Lackorzynski, Michael Peter Folie 5 The Case for Microkernels • Complexity needs to be handled – Structure beyond monolithic kernels are needed – Several candidates • Virtualisation • Paravirtualisation • Microkernel • Implementation of some functionality is even simplified – Real time • DROPS • RTLinux – Security • Substantially smaller trusted computing -
Rust and IPC on L4re”
Rust and Inter-Process Communication (IPC) on L4Re Implementing a Safe and Efficient IPC Abstraction Name Sebastian Humenda Supervisor Dr. Carsten Weinhold Supervising Professor Prof. Dr. rer. nat. Hermann Härtig Published at Technische Universität Dresden, Germany Date 11th of May 2019 Contents 1 Introduction 5 2 Fundamentals 8 2.1 L4Re . 8 2.2 Rust....................................... 11 2.2.1 Language Basics . 11 2.2.2 Ecosystem and Build Tools . 14 2.2.3 Macros . 15 3 Related Work 17 3.1 Rust RPC Libraries . 17 3.2 Rust on Other Microkernels . 18 3.3 L4Re IPC in Other Languages . 20 3.4 Discussion . 21 3.4.1 Remote Procedure Call Libraries . 21 3.4.2 IDL-based interface definition . 22 3.4.3 L4Re IPC Interfaces In Other Programming Languages . 23 4 L4Re and Rust Infrastructure Adaptation 24 4.1 Build System Adaptation . 25 4.1.1 Libraries . 26 4.1.2 Applications . 27 4.2 L4rust Libraries . 29 4.2.1 L4 Library Split . 29 4.2.2 Inlining vs. Reimplementing . 30 4.3 Rust Abstractions . 31 4.3.1 Error Handling . 31 4.3.2 Capabilities . 32 5 IPC Framework Implementation 35 5.1 A Brief Overview of the C++ Framework . 36 5.2 Rust Interface Definition . 37 5.2.1 Channel-based Communication . 37 5.2.2 Macro-based Interface Definition . 39 5.3 Data Serialisation . 43 2 5.4 Server Loop . 46 5.4.1 Vector-based Service Registration . 46 5.4.2 Pointer-based Service Registration . 48 5.5 Interface Export . 52 5.6 Implementation Tests . -
KOS - Principles, Design, and Implementation
KOS - Principles, Design, and Implementation Martin Karsten, University of Waterloo Work In Progress - September 29, 2015 Abstract KOS is an experimental operating system kernel that is designed to be simple and accessible to serve as a platform for research, experimen- tation, and teaching. The overall focus of this project is on system-level infrastructure software, in particular runtime systems. 1 Introduction KOS (pronounce "Chaos") is an experimental operating system kernel that is designed to be simple and accessible to serve as a platform for research, ex- perimentation, and teaching. It is focused on building a nucleus kernel that provides the basic set of operating system functionality, primarily for resource mediation, that must realistically be implemented for execution in privileged mode. While being simple KOS is not simplistic and avoids taking design shortcuts that would prohibit adding more sophisticated resource management strategies later on { inside the kernel or at higher software layers. The nu- cleus kernel is augmented with several prototype subsystems typically found in an operating system to eventually support running realistic applications. The entire code base is written in C++, except for small assembler parts. The C++ code makes use of advanced language features, such as code reuse with efficient strong type safety using templates, the C++ library for data struc- ture reuse, as well as (limited) polymorphism. Existing open-source software is reused for non-nucleus subsystems as much as possible. The project is hosted at https://git.uwaterloo.ca/mkarsten/KOS 2 Motivation In principle, an operating system has two basic functions. First, it consolidates low-level hardware interfaces and provides higher-level software abstractions to facilitate and alleviate application programming. -
The GNU Hurd
The GNU Hurd [Extended Abstract] Gael¨ Le Mignot ABSTRACT speak of, say, storage devices, there are IDE disks, This is an abstract of the talk given at LSM 2005, about the SCSI disks, floppy disks, tapes, USB devices, FireWire GNU Hurd, its goals, its design, its features and its relation- devices, parallel port devices, ... should every program ship with the GNU project. This is a general presentation know how to put into motion the floppy disk engine ? of the GNU Hurd, mostly on technical aspects. Providing an hardware abstraction layer is one of the major goals of operating systems. 1. INTRODUCTION Resource sharing. Resources on a computer are limited. 1.1 What is an operating system ? Be it main memory, CPU power, hard disk storage, 1.1.1 Historical point of view screen area, networking connection, or sound output, The first computers were so expensive that only one existed those resources must be controlled by a supervisor pro- for a whole university or research department; and so slow gram, allowing each of the programs to access to a part that it was unthinkable to interact with it in real time. This of it as needed. was the era of batch processing, when programmers cre- ated self-running programs called “batch”. Those programs Security infrastructure. All modern operating systems usually took several hours to run, printing huge listing as can enforce several kinds of security. Security can be output. Programs were run one after the other. used to prevent a user from accessing confidential or private data of another user, to prevent accidental re- Then, computers became more efficient.