Linux Kernel Programming

Total Page:16

File Type:pdf, Size:1020Kb

Linux Kernel Programming 1 Linux Kernel Programming Changwoo Min 2 About me • Changwoo Min • Assistant Professor at ECE @ VT • Email: [email protected] • Office: 455 @ Durham • Homepage: https://multics69.github.io/ • Research group: https://cosmoss-vt.github.io/ 3 My research interests • Many-core performance scalability of operating system • What happen if we run Linux on 448-core machine? • Will your application run 448x faster? • Non-volatile memory systems • What happen if storage performance is becoming closer to DRAM performance? • Will your application achieve DRAM-like IO performance? • System security • How operating system should be designed to avoid security holes? 4 What is the Linux Kernel? • One of operating system kernel • e.g., Windows, FreeBSD, OSX, etc. • What does an OS do for you? • Abstract the hardware for convenience and portability • Multiplex the hardware among multiple applications • Isolate applications to contain bugs • Allow sharing among applications 5 View: layered organization • User: applications (e.g., vi and gcc) • Kernel: file system, process, etc. • Hardware: CPU, mem, disk, etc. → Interface between layers 6 View: core services • Processes • Memory • File contents • Directories and file names • Security • Many others: users, IPC, network, time, terminals, etc. → Abstraction for applications 7 Example: system calls • Interface : applications talk to an OS via system calls • Abstraction : process and file descriptor fd = open("out", 1); write(fd, "hello\n", 6); pid = fork(); 8 Why is Linux kernel interesting? • OS design deals with conflicting goals and trade-offs • Efficient yet portable • Powerful yet simple • Isolated yet interactable • General yet performant • Open problems: multi-core and security • How does a state-of-the-art OS deal with above issues? • Hack the Linux kernel! 9 Why is Linux kernel interesting? • Extremely large software project • more than 25 million lines of code • 7,500 lines of code are added every day! 10 Why is Linux kernel interesting? • Very fast development cycles • release about every 70 days • 13,000 patches / release • 273 250 companies / release (or 1,600 developers / release) • One of the most well-written/designed/maintained C code • Ref: Linux Foundation Kernel Report 2017 11 Linux is eating the World • 85.1% of smartphones and tables run Linux (Android) • iOS: 14.9% • 98% of top 1 million web servers run Linux • 99% of super computers run Linux • SpaceX: From Earth to orbit with Linux and SpaceX • Ref: Usage share of OS 12 It is good for your job search • Contributions from unpaid developers had been in slow decline • 14.6% (2012) → 13.6% (2013) → 11.8% (2014) → 7.7% (2015) • Why? • “There are many possible reasons for this decline, but, arguably, the most plausible of those is quite simple: Kernel developers are in short supply, so anybody who demonstrates an ability to get code into the mainline tends not to have trouble finding job offers.” • Ref: Linux Foundation Kernel Report 2017 13 Who should take this course? • Anyone wants to work on the above problems • Anyone cares about what’s going on under the hood • Anyone has to build high-performance systems • Anyone needs to diagnose bugs or security problems 14 About this course • ECE 4414/5414G, CS 4224/5264G: (Advanced) Linux Kernel Programming • Goals • Understand core subsystems of the Linux kernel in depth • Design, implement, and modify Linux kernel code and modules for these subsystems • Test, debug, and evaluate the performance of systems software in kernel or user space, using debugging, monitoring and tracing tools 15 Prerequisite • Undergraduate and graduate students • C programming (strict) • Linux command line (strict) • Computer architecture and operating system (recommended) • Undergraduate students • ECE 3574 (Applied Software Design) or CS 3114 (Data Structures). 16 Text book • Robert Love, Linux Kernel Development, Addison-Wesley 17 Other useful sources • Understanding the Linux Kernel, O’Reilly Media • Professional Linux Kernel Architecture, Wrox • Linux Device Drivers, O’Reilly Media • Understanding Linux Network Internals, O’Reilly Media • Operating Systems: Three Easy Pieces • Intel 64 and IA-32 Architectures Software Developer Manuals 18 Communication • Q&A Protocol • Post your question to Zoom chat • Canvas • https://canvas.vt.edu/courses/115884 • Syllabus, lecture slides, schedule, notes, etc. • Primary way materials are distributed. • Exercise, project submission • Grades posted 19 Communication • Piazza • https://piazza.com/class/ke58vzg3buj4z0 • Use it to ask (and answer) questions • Forum/wiki like software for QA, polls, and announcements 20 Course TA & Office hours • Course TA • Sumit Kumar Monga ([email protected]) • Online Office Hours • Instructor and TA office hour will be provided. • Will announce how to make an appointment through Google Calendar and Zoom. 21 Grading policy • Exercise (10%) • 2% x 5 exercises • Paper reading (15%) • 3% x 5 papers • Project (65%) • 2 small projects: 5% + 10% • 1 medium projects: 20% • 1 final project: 30% • Final exam (10%): Online exam via Canvas 22 About projects (subject to change) • Small projects • P1: Adding new system calls • P2: Kernel module - data structure handling • Medium project • P3: TBD (kernel programming project) • Final project • P4 for 4xxx: TBD (kernel programming project) • P4 for 5xxx: TBD (semester long research project related to kernel) • No late project work will be assigned a grade. 23 Today’s agenda • The history of Linux • Linux open source model and community • High level overview of the Linux kernel 24 History of UNIX (Wikipedia) 1969 Unnamed PDP-7 operating system 1969 Open Source 1971 to 1973 Unix Version 1 to 4 Mixed/Shared Source 1971 to 1973 1974 to 1975 Unix PWB/Unix Version 5 to 6 Closed Source 1974 to 1975 1978 BSD 1978 1.0 to 2.0 Unix 1979 Version 7 1979 Unix/32V 1980 BSD 1980 3.0 to 4.1 1981 Xenix System III 1.0 to 2.3 1981 1982 Xenix 1982 1983 BSD 4.2 3.0 Sun OS System V 1983 1 to 1.1 R1 to R2 1984 SCO Xenix 1984 Unix 1985 Version 8 SCO Xenix 1985 AIX V/286 System V 1986 BSD 4.3 1.0 R3 HP-UX Sun OS 1.0 to 1.2 1986 1.2 to 3.0 SCO Xenix 1987 Unix V/386 9 and 10 1987 (last versions System V HP-UX 1988 BSD 4.3 2.0 to 3.0 1988 from Tahoe R4 1989 Bell Labs) SCO Xenix V/386 1989 BSD 4.3 1990 Reno 1990 BSD NET/2 1991 Linux 0.0.1 1991 Sun OS Minix 4 1.x NEXTSTEP/ 386BSD OPENSTEP 1992 1992 1.0 to 4.0 HP-UX NetBSD 6 to 11 Linux BSD 0.8 to 1.0 1993 1993 0.95 to 1.2.x SCO Unix 4.4 to 3.2.4 UnixWare FreeBSD 4.4 lite2 1.x to 2.x 1994 1994 1.0 to 1995 2.2.x NetBSD OpenBSD 1995 1.1 to 1.2 OpenServer 1.0 to 2.2 5.0 to 5.04 Solaris 1996 2.1 to 9 1996 1997 1997 NetBSD 1.3 1998 FreeBSD AIX 1998 3.0 to 3.2 3.x to 7.1 Minix OpenServer 1999 2.x Mac OS X 5.0.5 to 5.0.7 Server 2000 1999 UnixWare 2000 Linux 7.x 2001 to 2004 2.0 to 2.6.x 2001 to 2004 2005 OpenBSD 2005 NetBSD 2.3 to 5.x 2006 to 2007 Minix FreeBSD 2006 to 2007 3.x 3.3 to 9.x 1.3 to 6.x OpenServer Mac OS X 6.0 HP-UX 2008 10.0 to 10.9.x Solaris 11i to 11i v3 2008 (Darwin) 10 2009 2009 OpenSolaris 2010 and 2010 derivatives 2011 2011 Linux Solaris 3.x 11 2012 to 2013 2012 to 2013 25 Beginning of Linux From: [email protected] (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <[email protected]> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki Hello everybody out there using minix – I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and Id like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them Linus ([email protected]) PS. Yes – it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(. 26 Linux History • 1991: First apparition, author: Linus Torvalds • 1992: GPL License, first Linux distributions • 1994: v1.0 - Single CPU for i386, then ported to Alpha, Sparc, MIPS • 1996: v2.0 - Symmetric multiprocessing (SMP) support • 1999: v2.2 - Big Kernel Lock removed • 2001: v2.4 - USB, RAID, Bluetooth, etc. • 2003: v2.6 - Physical Address Expansion (PAE), new architectures, etc. • 2011: v3.0 - Incremental release of v2.6 • 2015: v4.0 - Livepatch → today’s latest version: http://www.kernel.org 27 Linux open source model • Linux is licensed under GPLv2 You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL “ along with build & install instructions.
Recommended publications
  • The Kernel Report
    The kernel report (ELC 2012 edition) Jonathan Corbet LWN.net [email protected] The Plan Look at a year's worth of kernel work ...with an eye toward the future Starting off 2011 2.6.37 released - January 4, 2011 11,446 changes, 1,276 developers VFS scalability work (inode_lock removal) Block I/O bandwidth controller PPTP support Basic pNFS support Wakeup sources What have we done since then? Since 2.6.37: Five kernel releases have been made 59,000 changes have been merged 3069 developers have contributed to the kernel 416 companies have supported kernel development February As you can see in these posts, Ralink is sending patches for the upstream rt2x00 driver for their new chipsets, and not just dumping a huge, stand-alone tarball driver on the community, as they have done in the past. This shows a huge willingness to learn how to deal with the kernel community, and they should be strongly encouraged and praised for this major change in attitude. – Greg Kroah-Hartman, February 9 Employer contributions 2.6.38-3.2 Volunteers 13.9% Wolfson Micro 1.7% Red Hat 10.9% Samsung 1.6% Intel 7.3% Google 1.6% unknown 6.9% Oracle 1.5% Novell 4.0% Microsoft 1.4% IBM 3.6% AMD 1.3% TI 3.4% Freescale 1.3% Broadcom 3.1% Fujitsu 1.1% consultants 2.2% Atheros 1.1% Nokia 1.8% Wind River 1.0% Also in February Red Hat stops releasing individual kernel patches March 2.6.38 released – March 14, 2011 (9,577 changes from 1198 developers) Per-session group scheduling dcache scalability patch set Transmit packet steering Transparent huge pages Hierarchical block I/O bandwidth controller Somebody needs to get a grip in the ARM community.
    [Show full text]
  • Xenix* 286 Installation and Configuration Guide
    XENIX* 286 INSTALLATION AND CONFIGURATION GUIDE *XENIX is a trademark of Microsoft Corporation. Copyright@ 1984, Intel Corporation Intel Corporation, 3065 Bowers Avenue. Santa Clara, California 95051 Order Number: 174386-001 XENIX* 286 INSTALLATION AND CONFIGURATION GUIDE Order Number: 174386-001 *XENIX is a trademark of Microsoft Corporation Copyright @ 1984 Intel Corporation I Intel Corporation, 3065 Bowers Avenue, Santa Clara, California 95051 I The information in this document is subject to change without notice. Intel Corporation makes no warranty of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Intel Corporation assumes no responsibility for any errors that may appear in this document. Intel Corporation makes no commitment to update or to keep current the information contained in this document. Intel Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in an Intel product. No other circuit patent licenses are implied. Intel software products are copyrighted by and shall remain the property oflntel Corporation. Use, duplication or disclosure is subject to restrictions stated in Intel's software license, or as defined in ASPR 7-104.9 (a) (9). No part of this document may be copied or reproduced in any form or by any means without prior written consent of Intel Corporation. The following are trademarks of Intel Corporation and its affiliates and may be used only to identify Intel products: BITBUS im iRMX OpenNET COMMputer iMDDX iSBC Plug-A-Bubble CREDIT iMMX iSBX PROMPT I Data Pipeline Insite iSDM Promware Genius intel iSXM QUEST t::t.
    [Show full text]
  • Studying the Real World Today's Topics
    Studying the real world Today's topics Free and open source software (FOSS) What is it, who uses it, history Making the most of other people's software Learning from, using, and contributing Learning about your own system Using tools to understand software without source Free and open source software Access to source code Free = freedom to use, modify, copy Some potential benefits Can build for different platforms and needs Development driven by community Different perspectives and ideas More people looking at the code for bugs/security issues Structure Volunteers, sponsored by companies Generally anyone can propose ideas and submit code Different structures in charge of what features/code gets in Free and open source software Tons of FOSS out there Nearly everything on myth Desktop applications (Firefox, Chromium, LibreOffice) Programming tools (compilers, libraries, IDEs) Servers (Apache web server, MySQL) Many companies contribute to FOSS Android core Apple Darwin Microsoft .NET A brief history of FOSS 1960s: Software distributed with hardware Source included, users could fix bugs 1970s: Start of software licensing 1974: Software is copyrightable 1975: First license for UNIX sold 1980s: Popularity of closed-source software Software valued independent of hardware Richard Stallman Started the free software movement (1983) The GNU project GNU = GNU's Not Unix An operating system with unix-like interface GNU General Public License Free software: users have access to source, can modify and redistribute Must share modifications under same
    [Show full text]
  • Version 7.8-Systemd
    Linux From Scratch Version 7.8-systemd Created by Gerard Beekmans Edited by Douglas R. Reno Linux From Scratch: Version 7.8-systemd by Created by Gerard Beekmans and Edited by Douglas R. Reno Copyright © 1999-2015 Gerard Beekmans Copyright © 1999-2015, Gerard Beekmans All rights reserved. This book is licensed under a Creative Commons License. Computer instructions may be extracted from the book under the MIT License. Linux® is a registered trademark of Linus Torvalds. Linux From Scratch - Version 7.8-systemd Table of Contents Preface .......................................................................................................................................................................... vii i. Foreword ............................................................................................................................................................. vii ii. Audience ............................................................................................................................................................ vii iii. LFS Target Architectures ................................................................................................................................ viii iv. LFS and Standards ............................................................................................................................................ ix v. Rationale for Packages in the Book .................................................................................................................... x vi. Prerequisites
    [Show full text]
  • SCO Openserver 6 Definitive 2018 – Release Notes – December 2017
    SCO OpenServer 6 Definitive 2018 – Release Notes – December 2017 SCO OpenServer® 6 Definitive 2018 RELEASE NOTES About this Release SCO OpenServer® 6 Definitive 2018 is a new release of the OpenServer 6 operating system from Xinuos, which includes OpenServer 6, its maintenance packs and all OpenServer 6.0.0V features as well as additional functionality and maintenance. SCO OpenServer 6 Definitive 2018, denoted as Definitive 2 Maintenance 1 (D2M1), is a successor release to OpenServer 6 as well as a successor release to OpenServer 6.0.0V. These Release Notes accompany the SCO OpenServer 6 Definitive 2018 GETTING STARTED GUIDE (December 2017) which is also available for free download at the Xinuos web site portal. Revisions Revision Date Description 00 12/2015 Initial document release – OpenServer6D2M0. 01 12/2017 Update document release – OpenServer6D2M1. Page 1 of 14 Xinuos, Inc. – All Rights Reserved – Copyright © 2017 SCO OpenServer 6 Definitive 2018 – Release Notes – December 2017 Contents of these Release Notes Media ..................................................................................................................................................... 2 Supported Platforms ........................................................................................................................... 2 What's New in this Release ................................................................................................................ 4 Highlights ........................................................................................................................................................
    [Show full text]
  • Microkernels in a Bit More Depth • Early Operating Systems Had Very Little Structure • a Strictly Layered Approach Was Promoted by Dijkstra
    Motivation Microkernels In a Bit More Depth Early operating systems had very little structure A strictly layered approach was promoted by Dijkstra THE Operating System [Dij68] COMP9242 2007/S2 Week 4 Later OS (more or less) followed that approach (e.g., Unix). UNSW Such systems are known as monolithic kernels COMP9242 07S2 W04 1 Microkernels COMP9242 07S2 W04 2 Microkernels Issues of Monolithic Kernels Evolution of the Linux Kernel E Advantages: Kernel has access to everything: all optimisations possible all techniques/mechanisms/concepts implementable Kernel can be extended by adding more code, e.g. for: new services support for new harwdare Problems: Widening range of services and applications OS bigger, more complex, slower, more error prone. Need to support same OS on different hardware. Like to support various OS environments. Distribution impossible to provide all services from same (local) kernel. COMP9242 07S2 W04 3 Microkernels COMP9242 07S2 W04 4 Microkernels Approaches to Tackling Complexity Evolution of the Linux Kernel Part 2 A Classical software-engineering approach: modularity Software-engineering study of Linux kernel [SJW+02]: (relatively) small, mostly self-contained components well-defined interfaces between them Looked at size and interdependencies of kernel "modules" enforcement of interfaces "common coupling": interdependency via global variables containment of faults to few modules Analysed development over time (linearised version number) Doesn't work with monolithic kernels: Result 1:
    [Show full text]
  • Building Performance Measurement Tools for the MINIX 3 Operating System
    Building Performance Measurement Tools for the MINIX 3 Operating System Rogier Meurs August 2006 Contents 1 INTRODUCTION 1 1.1 Measuring Performance 1 1.2 MINIX 3 2 2 STATISTICAL PROFILING 3 2.1 Introduction 3 2.2 In Search of a Timer 3 2.2.1 i8259 Timers 3 2.2.2 CMOS Real-Time Clock 3 2.3 High-level Description 4 2.4 Work Done in User-Space 5 2.4.1 The SPROFILE System Call 5 2.5 Work Done in Kernel-Space 5 2.5.1 The SPROF Kernel Call 5 2.5.2 Profiling using the CMOS Timer Interrupt 6 2.6 Work Done at the Application Level 7 2.6.1 Control Tool: profile 7 2.6.2 Analyzing Tool: sprofalyze.pl 7 2.7 What Can and What Cannot be Profiled 8 2.8 Profiling Results 8 2.8.1 High Scoring IPC Functions 8 2.8.2 Interrupt Delay 9 2.8.3 Profiling Runs on Simulator and Other CPU Models 12 2.9 Side-effect of Using the CMOS Clock 12 3 CALL PROFILING 13 3.1 Introduction 13 3.1.1 Compiler-supported Call Profiling 13 3.1.2 Call Paths, Call and Cycle Attribution 13 3.2 High-level Description 14 3.3 Work Done in User-Space 15 3.3.1 The CPROFILE System Call 15 3.4 Work Done in Kernel-Space 16 3.4.1 The PROFBUF and CPROF Kernel Calls 16 3.5 Work Done in Libraries 17 3.5.1 Profiling Using Library Functions 17 3.5.2 The Procentry Library Function 17 3.5.3 The Procexit Library Function 20 3.5.4 The Call Path String 22 3.5.5 Testing Overhead Elimination 23 3.6 Profiling Kernel-Space/User-Space Processes 24 3.6.1 Differences in Announcing and Table Sizes 24 3.6.2 Kernel-Space Issue: Reentrancy 26 3.6.3 Kernel-Space Issue: The Call Path 26 3.7 Work Done at the Application
    [Show full text]
  • Lecture 1: Introduction to UNIX
    The Operating System Course Overview Getting Started Lecture 1: Introduction to UNIX CS2042 - UNIX Tools September 29, 2008 Lecture 1: UNIX Intro The Operating System Description and History Course Overview UNIX Flavors Getting Started Advantages and Disadvantages Lecture Outline 1 The Operating System Description and History UNIX Flavors Advantages and Disadvantages 2 Course Overview Class Specifics 3 Getting Started Login Information Lecture 1: UNIX Intro The Operating System Description and History Course Overview UNIX Flavors Getting Started Advantages and Disadvantages What is UNIX? One of the first widely-used operating systems Basis for many modern OSes Helped set the standard for multi-tasking, multi-user systems Strictly a teaching tool (in its original form) Lecture 1: UNIX Intro The Operating System Description and History Course Overview UNIX Flavors Getting Started Advantages and Disadvantages A Brief History of UNIX Origins The first version of UNIX was created in 1969 by a group of guys working for AT&T's Bell Labs. It was one of the first big projects written in the emerging C language. It gained popularity throughout the '70s and '80s, although non-AT&T versions eventually took the lion's share of the market. Predates Microsoft's DOS by 12 years! Lecture 1: UNIX Intro The Operating System Description and History Course Overview UNIX Flavors Getting Started Advantages and Disadvantages Lecture Outline 1 The Operating System Description and History UNIX Flavors Advantages and Disadvantages 2 Course Overview Class Specifics 3
    [Show full text]
  • Marjn Norling November 2012
    Mar$n Norling November 2012 UNIX Lecture Goals • Goal 1: Know basic UNIX commands and their use from memory. • Goal 2: Know how to find informaon on more advanced UNIX commands and their use. • Goal 3: Understand the basics of regular expression paerns. • Goal 4: Know the basic loops and condi$onals for shell scrip$ng and understand how to use them. UNIX Schedule Thursday Friday 09.00-09.45 UNIX introduc$on 09.00-09.45 Bash Scrip$ng 10.00-10.45 UNIX basics 10.00-10.45 Tutorial: Bash scrip$ng 11.00-12.00 Redirects to regexp 11.00-12.00 Tips & Quesons 12.00-13.00 Lunch 12.00-13.00 Lunch 13.00-16.00 Tutorial: Basics 13.00-16.00 Tutorial: finishing up UNIX HISTORY UNIX History • 1969 – First Version of UNIX developed at Bell Labs by AT&T • 1975 – UNIX 6, the first to be widely available outside Bell Labs. The first “Berkeley So]ware Distribu$on” (BSD) is released. • 1989 – UNIX System V, the last tradi$onal UNIX version. • 1991 – Linus Torvalds begin developing Linux. “UNIX-like” • Today – UNIX itself, what’s now called “tradi$onal UNIX” is not used, except by enthusiasts. • There are many “UNIX-like” systems (also known as *nix or UN*X) that are similar to UNIX while not conforming to the Single UNIX Specificaon. • In fact, most operang systems today except windows are “UNIX like”. Single UNIX Specificaon (SUS) • Developed and maintained by the Aus$n Group, based on earlier work by the IEee and The Open Group.
    [Show full text]
  • Adventures with Illumos
    > Adventures with illumos Peter Tribble Theoretical Astrophysicist Sysadmin (DBA) Technology Tinkerer > Introduction ● Long-time systems administrator ● Many years pointing out bugs in Solaris ● Invited onto beta programs ● Then the OpenSolaris project ● Voted onto OpenSolaris Governing Board ● Along came Oracle... ● illumos emerged from the ashes > key strengths ● ZFS – reliable and easy to manage ● Dtrace – extreme observability ● Zones – lightweight virtualization ● Standards – pretty strict ● Compatibility – decades of heritage ● “Solarishness” > Distributions ● Solaris 11 (OpenSolaris based) ● OpenIndiana – OpenSolaris ● OmniOS – server focus ● SmartOS – Joyent's cloud ● Delphix/Nexenta/+ – storage focus ● Tribblix – one of the small fry ● Quite a few others > Solaris 11 ● IPS packaging ● SPARC and x86 – No 32-bit x86 – No older SPARC (eg Vxxx or SunBlades) ● Unique/key features – Kernel Zones – Encrypted ZFS – VM2 > OpenIndiana ● Direct continuation of OpenSolaris – Warts and all ● IPS packaging ● X86 only (32 and 64 bit) ● General purpose ● JDS desktop ● Generally rather stale > OmniOS ● X86 only ● IPS packaging ● Server focus ● Supported commercial offering ● Stable components can be out of date > XStreamOS ● Modern variant of OpenIndiana ● X86 only ● IPS packaging ● Modern lightweight desktop options ● Extra applications – LibreOffice > SmartOS ● Hypervisor, not general purpose ● 64-bit x86 only ● Basis of Joyent cloud ● No inbuilt packaging, pkgsrc for applications ● Added extra features – KVM guests – Lots of zone features –
    [Show full text]
  • Memory Protection in Embedded Systems Lanfranco Lopriore Dipartimento Di Ingegneria Dell’Informazione, Università Di Pisa, Via G
    CORE Metadata, citation and similar papers at core.ac.uk Provided by Archivio della Ricerca - Università di Pisa Memory protection in embedded systems Lanfranco Lopriore Dipartimento di Ingegneria dell’Informazione, Università di Pisa, via G. Caruso 16, 56126 Pisa, Italy E-mail: [email protected] Abstract — With reference to an embedded system featuring no support for memory manage- ment, we present a model of a protection system based on passwords and keys. At the hardware level, our model takes advantage of a memory protection unit (MPU) interposed between the processor and the complex of the main memory and the input-output devices. The MPU sup- ports both concepts of a protection context and a protection domain. A protection context is a set of access rights for the memory pages; a protection domain is a set of one or more protection contexts. Passwords are associated with protection domains. A process that holds a key match- ing a given password can take advantage of this key to activate the corresponding domain. A small set of protection primitives makes it possible to modify the composition of the domains in a strictly controlled fashion. The proposed protection model is evaluated from a number of salient viewpoints, which include key distribution, review and revocation, the memory requirements for storage of the information concerning protection, and the time necessary for key validation. Keywords: access right; embedded system; protection; revocation. 1. INTRODUCTION We shall refer to a typical embedded system architecture featuring a microprocessor inter- facing both volatile and non-volatile primary memory devices, as well as a variety of input/out- put devices including sensors and actuators.
    [Show full text]
  • C168H/PCI 8-Port RS-232 PCI Boards
    Multiport Serial Boards C168H/PCI 8-port RS-232 PCI boards › 8-port RS-232 high-speed communication board › Compact PCI board size › Versatile OS driver support › Various connection options › Data transmission speed up to 921.6 Kbps › On-chip hardware flow control › Easy configuration without switches or jumpers › Convenient connection cables Overview The Smartio C168H/PCI Series allows you to install additional RS- And C168H/PCI’s versatile OS driver support truly fulfills the needs 232 serial communication ports on your PC by providing 8 serial of our customers’ varied applications. This product is available for ports per board for connecting all types of serial devices, including use on either a PCI bus, with both types offering a reliable and high terminals, modems, printers, data acquisition equipment, and more. performance solution for serial multiport communications. Specifications Hardware DOS, AT&T UNIV SVR4.2, MITUX DVR4.2, UnixWare SVR4.2, I/O Controller: 16C550C or compatible x 8 UnixWare7, SCO OpenServer, SCO Unix, SCO XENIX, QNX 4.2x, Bus: PCI ver. 2.1 (32-bit) FreeBSD Serial Interface Physical Charateristics Maximum No. of Ports: 32 (4 boards) Dimensions: 123 x 100 mm (W x D) Performance Environmental Limits Speed: 50 bps to 921.6 Kbps Operating Temperature: 0 to 55°C Serial Communication Parameters Storage Temperature: -20 to 85°C Data Bits: 5, 6, 7, 8 Ambient Relative Humidity: 5 to 95% RH Stop Bits: 1, 1.5, 2 Standards and Certifications Parity: None, Even, Odd, Space, Mark Regulatory Approvals: FCC, CE I/O Address:
    [Show full text]