Introduction to the Linux Kernel: Challenges and Case Studies

Total Page:16

File Type:pdf, Size:1020Kb

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. Modular structure Compatible with Unix V7 (user level) evolved towards the POSIX standard 1987 (Minix1 - i8088), 1997 (Minix2 - i386) Andrew Tanembaum IV Semana de la Informática 2018 - 7 Conflicts in the Unix world Unix Wars (1987-1996) Unix International (USL - AT&T) vs. Open Software Founda- tion Unix System V Release 4 (SVR4) War of specifications War ends in 1996 ! Open Group (Unix Trademark) Lawsuit brought by USL-AT&T against BSDI (1991-1994) Issue: attempt to make BSD free of any UNIX code Agreement is reached in 1994: Novell acquires USL IV Semana de la Informática 2018 - 8 And Linux comes out… (1991) A few months after Minix 1 was released the following mes- sage was posted at comp.os.minix: From: [email protected] (Linus Benedict Torvalds) Date: 25 Aug 91 20:57:08 GMT Local: Sun, Aug 25 1991 9:57 pm Subject: What would you like to see most in minix? 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 I'd 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 portable (uses 386 task switching, etc), and it probably never support anything other than AT-harddisks, as that's all I have :(. IV Semana de la Informática 2018 - 9 And Linux comes out… (1991) Keys to success Unix Wars BSD Lawsuit Competition with Windows NT (common enemy) GPL License Internet ??? IV Semana de la Informática 2018 - 10 And Linux comes out… (1991) But Linux is just a kernel… GNU/Linux…, IBM/RedHat/HP/….Linux.. Distros (kernel + selection of pre-compiled tools) MCC Interim Linux 1992, Slackware (Patrick Volkerding) , Debian (Ian Murdock) 1993 S.U.S.E, Red Hat (Marc Erwing, Bob Young) 1994 Desktop Environments Xfree86 – Thomas Roel 1991 KDE – Matthias Ettrich 1996 Gnome – Miguel de Icaza 1997 … IV Semana de la Informática 2018 - 11 Linux Is Not UniX Open Group Current owner of the UNIX trademark SUS (Single Unix Specification) certification Unificación SUS / IEEE Posix en 2001 (SUS Version 3) A Unix system must comply with SUS Mac OS X Leopard (based on BSD) Z/OS IBM GNU/Linux is just a UNIX-like OS IV Semana de la Informática 2018 - 12 Funny Statistics for the Linux Kernel - Lines of Code, Bad words,... https://www.linuxcounter.net/statistics/kernel Lines of code per Kernel version Click and drag in the plot area to zoom in 25M 20M 15M Linux kernel: evolution since 1991 10M Lines of code 5M 0 1.0 1.2.2 2.0.2 3.7.8 4.4.44.8.9 4.11 1.3.271.3.65 2.0.402.1.372.1.75 2.2.182.3.292.4.162.5.162.5.542.6.163.0.143.0.523.0.903.2.153.2.533.4.283.4.66 3.10.9 3.13.5 4.14.5 2.1.113 3.12.11 3.18.17 Version Lines of code per kernel version Lines of Code Highcharts.com Source: https://www.linuxcounter.net IV Semana de la Informática 2018 1 de 1 - 6/2/18 13:42 13 Android: a Linux-based OS APPLICATIONS Home Contacts Phone Browser … APPLICATION FRAMEWORK Activity Window Content View Manager Manager Providers System Package Telephony Resource Location Notification Manager Manager Manager Manager Manager LIBRARIES ANDROID RUNTIME Media Surface Manager SQLite Core Libraries Framework Dalvik Virtual OpenGL | ES FreeType WebKit Machine / ART SGL SSL Bionic (libc) LINUX KERNEL Display Flash Memory Binder (IPC) Camera Driver Driver Driver Driver Audio Power Keypad Driver WifiFreeType Driver Drivers Management IV Semana de la Informática 2018 - 14 Linux kernel in Android Android relies on extensions made on top of the vanilla kernel: Binder Wakelocks klogger Ashmem Low Memory Killer Paranoid Network Alarm Timers … Today, the “Androidized” kernel constitutes a significant fork of Linux Linaro maintains an “androidized” kernel close to Linux main- line IV Semana de la Informática 2018 - 15 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 - 16 Monolithic design Features Application Application All kernel components share the same address space user mode libc (API) Everything runs in kernel (privi- System call interface leged) mode Filesystem Good performance VFS support No isolation between compo- Network Device nents stack Drivers kernel mode Memory Process Kernel Components Management Management Architecture specific code (arch) Hardware IV Semana de la Informática 2018 - 17 User mode vs. kernel mode User mode Kernel mode D0 D0 D1 D1 D2 D2 D3 D3 State register D4 D4 D5 D5 T 15 D6 D6 14 D7 State register D7 S 13 12 A0 7 A0 11 byte 6 12 10 System A1 5 A1 11 9 A2 X 4 A2 10 8 3 User A3 N flags A3 7 Z 2 6 A4 V 1 A4 5 A5 C 0 A5 X 4 3 User A6 A6 N flags A7 A7 Z 2 V 1 C 0 0 0 0 216 − 1 TASK_SIZE I/O address TASK_SIZE space 232 − 1 Instruction set Instruction set Virtual address Virtual address space space IV Semana de la Informática 2018 - 18 Interactive map of the Linux kernel http://www.makelinux.net/kernel_map/ IV Semana de la Informática 2018 - 19 Main challenges A beast of a different nature Development process is labor-intensive Testing new features or bugfixes requires 1 (Re)Build the kernel (it may take a while!) 2 Install the new kernel 3 Reboot the machine No memory protection (no SIGSEGV) User-space like debugging tools are not available Documentation becomes outdated quickly Developers must really understand the kernel code No standard C library∗ Limited size of the kernel stack IV Semana de la Informática 2018 - 20 Obtaining kernel sources Vanilla: (The Linux Kernel Archives) www.kernel.org (tarball or git repository) git://git.kernel.org/pub/scm/linux/kernel/git/stable/ linux-stable.git https://git.kernel.org GNU/Linux distributions typically use Linux with patches Example Debian: Package installation with apt-get o apt source Source package of linux-image­* linux-source .deb package (install tarball at /usr/src/) More information at Debian Linux Kernel Handbook IV Semana de la Informática 2018 - 21 Working with the Linux kernel Obtain the sources (extract tarball if necessary) No Does it boot? Yes Apply patches (if necessary) Does it work? Configure the kernel Reboot into We are stable kernel done :-) Make changes to the source code Build the kernel (make,make-kpkg) No Compilation Yes errors? Install kernel and reboot machine IV Semana de la Informática 2018 - 22 Linux kernel modules What is a kernel module? A “code fragment” that can be loaded/unloaded into/from the OS kernel’s address space on demand Written in “C” Bundled as a .ko file (object file) Compilation driven by a Makefile insmod, rmmod Its functions are executed in kernel mode Limitation Not everything can be implemented as a kernel module System calls Scheduling algorithms … IV Semana de la Informática 2018 - 23 KGDB Requires 2 machines connected via serial port Development host: To build the kernel and invoke gdb Target system: Runs the kernel with KGDB support Source: https://blog.trendmicro.com IV Semana de la Informática 2018 - 24 KDB KDB: in-kernel debug shell (serial port/text console) No need to use an external debugging host KDB is not a source-level debugger Programmer needs to deal with assembly code You can use it in conjunction with gdb and external
Recommended publications
  • Some Video Games Require a Operating System
    Some Video Games Require A Operating System Playing and woven Hiro never bail his trouncing! Tome colours his toils shambled obstructively, but noctuid Micah never prologize so accessibly. Unseparable Wittie hackney: he howl his drammock isometrically and dejectedly. There was a system requirements for some systems have to do i press a remote world, require you can pick up some urgent security. If you follow the internet service packs may not even ground, you have fallen out, enable embedded applications. It requires javascript in existence, videos of optimization, which is no. Are some systems? Vram do operating system. Sgi needed to some maintainers look around at different processes can. Your pc gamer, require some video games function checks for. Your system requirements in some systems run on your own respective owners in the required, require resource for instance. Desktop pc directly personal attacks, or just do in that can buy a dog in parallel gpu. Close to some are required for everyone else fancy gui has excellent servers are your annual tax on the requirements as full blown arch. Scroll on console or installation in your pc in beautiful places of. We will learn more, some time and capturing tools for bigger game? For residential clients, which disappeared from. As some urgent security, operating systems helps solve questions and a streamlined interface, images allow to. Api for server by default, it are done in more modern operating system? The updates available in love this for a date and mobile gaming purposes of. Fragmentation and secure a member only. Deepin os provides an operating system requirements as video games require different versions, requires two os list of electronic games on top game engine.
    [Show full text]
  • Backbox Penetration Testing Never Looked So Lovely
    DISTROHOPPER DISTROHOPPER Our pick of the latest releases will whet your appetite for new Linux distributions. Picaros Diego Linux for children. here are a few distributions aimed at children: Doudou springs to mind, Tand there’s also Sugar on a Stick. Both of these are based on the idea that you need to protect children from the complexities of the computer (and protect the computer from the children). Picaros Diego is different. There’s nothing stripped- down or shielded from view. Instead, it’s a normal Linux distro with a brighter, more kid-friendly interface. The desktop wallpaper perhaps best We were too busy playing Secret Mario on Picaros Diego to write a witty or interesting caption. exemplifies this. On one hand, it’s a colourful cartoon image designed to interest young file manager. In the programming category, little young for a system like this, but the it children. Some of the images on the we were slightly disappointed to discover it may well work for children on the upper end landscape are icons for games, and this only had Gambas (a Visual Basic-like of that age range. should encourage children to investigate the language), and not more popular teaching Overall, we like the philosophy of wrapping system rather than just relying on menus. languages like Scratch or a Python IDE. Linux is a child-friendly package, but not On the other hand, it still displays technical However, it’s based on Debian, so you do dumbing it down. Picaros Diego won’t work details such as the CPU usage and the RAM have the full range of software available for every child, but if you have a budding and Swap availability.
    [Show full text]
  • Embedding Redhat Linux in a Diskonchip - HOWTO
    Embedding Redhat Linux in a DiskOnChip - HOWTO Don Davies, Prosig Ltd ( [email protected]) October 2002 Describes the configuration and setup of a development environment for a Single Board Computer running Redhat Linux from a DiskOnChip device. Contents 1.0 Introduction ..........................................................................................................3 1.1 Hardware Details..................................................................................................3 1.2 System Configuration ...........................................................................................4 2.0 DOS Development Environment...........................................................................5 2.1 DiskOnChip Tools ................................................................................................5 2.2 Boot Loader..........................................................................................................6 2.3 MS-DOS System Startup......................................................................................6 3.0 Linux Development Environment ......................................................................7 3.1 Custom Kernel Configuration ............................................................................8 3.2 Building Custom Kernel ..................................................................................10 3.3 Booting Custom Kernel ...................................................................................10 3.4 Formatting DiskOnChip for Linux
    [Show full text]
  • Read PDF Linux-Distribusjoner: Ubuntu, Fedora
    [PDF] Linux-distribusjoner: Ubuntu, Fedora, Slackware, Mandriva Linux, Splashtop, Kubuntu, Debian, Mark Shuttleworth, Linux Mint, Gobuntu Linux-distribusjoner: Ubuntu, Fedora, Slackware, Mandriva Linux, Splashtop, Kubuntu, Debian, Mark Shuttleworth, Linux Mint, Gobuntu Book Review Absolutely one of the best pdf We have ever read. I really could comprehended every little thing using this written e book. I am easily could get a satisfaction of reading a written publication. (Dr. Od ie Ham ill) LINUX-DISTRIBUSJONER: UBUNTU, FEDORA , SLA CKWA RE, MA NDRIVA LINUX, SPLA SHTOP, KUBUNTU, DEBIA N, MA RK SHUTTLEW ORTH, LINUX MINT, GOBUNTU - To read Linux - distribusjoner: Ubuntu, Fedora, Slackware, Mandriva Linux , Splashtop, Kubuntu, Debian, Mark Shuttleworth, Linux Mint, Gobuntu PDF, you should follow the hyperlink beneath and save the ebook or gain access to other information which are highly relevant to Linux-distribusjoner: Ubuntu, Fedora, Slackware, Mandriva Linux, Splashtop, Kubuntu, Debian, Mark Shuttleworth, Linux Mint, Gobuntu book. » Download Linux -distribusjoner: Ubuntu, Fedora, Slackware, Mandriva Linux , Splashtop, Kubuntu, Debian, Mark Shuttleworth, Linux Mint, Gobuntu PDF « Our solutions was launched using a want to serve as a total on the internet electronic digital catalogue which offers usage of multitude of PDF document collection. You may find many different types of e-book along with other literatures from the paperwork database. Particular popular issues that distributed on our catalog are famous books, answer key, exam test questions and answer, guide example, practice guideline, quiz trial, customer manual, user guide, service instruction, maintenance manual, and so forth. All e-book all privileges remain together with the writers, and downloads come as is.
    [Show full text]
  • The Linux Kernel Module Programming Guide
    The Linux Kernel Module Programming Guide Peter Jay Salzman Michael Burian Ori Pomerantz Copyright © 2001 Peter Jay Salzman 2007−05−18 ver 2.6.4 The Linux Kernel Module Programming Guide is a free book; you may reproduce and/or modify it under the terms of the Open Software License, version 1.1. You can obtain a copy of this license at http://opensource.org/licenses/osl.php. This book is distributed in the hope it will be useful, but without any warranty, without even the implied warranty of merchantability or fitness for a particular purpose. The author encourages wide distribution of this book for personal or commercial use, provided the above copyright notice remains intact and the method adheres to the provisions of the Open Software License. In summary, you may copy and distribute this book free of charge or for a profit. No explicit permission is required from the author for reproduction of this book in any medium, physical or electronic. Derivative works and translations of this document must be placed under the Open Software License, and the original copyright notice must remain intact. If you have contributed new material to this book, you must make the material and source code available for your revisions. Please make revisions and updates available directly to the document maintainer, Peter Jay Salzman <[email protected]>. This will allow for the merging of updates and provide consistent revisions to the Linux community. If you publish or distribute this book commercially, donations, royalties, and/or printed copies are greatly appreciated by the author and the Linux Documentation Project (LDP).
    [Show full text]
  • Red Hat Enterprise Linux 6 Developer Guide
    Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Dave Brolley William Cohen Roland Grunberg Aldy Hernandez Karsten Hopp Jakub Jelinek Developer Guide Jeff Johnston Benjamin Kosnik Aleksander Kurtakov Chris Moller Phil Muldoon Andrew Overholt Charley Wang Kent Sebastian Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Edition 0 Author Dave Brolley [email protected] Author William Cohen [email protected] Author Roland Grunberg [email protected] Author Aldy Hernandez [email protected] Author Karsten Hopp [email protected] Author Jakub Jelinek [email protected] Author Jeff Johnston [email protected] Author Benjamin Kosnik [email protected] Author Aleksander Kurtakov [email protected] Author Chris Moller [email protected] Author Phil Muldoon [email protected] Author Andrew Overholt [email protected] Author Charley Wang [email protected] Author Kent Sebastian [email protected] Editor Don Domingo [email protected] Editor Jacquelynn East [email protected] Copyright © 2010 Red Hat, Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
    [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]
  • Android (Operating System) 1 Android (Operating System)
    Android (operating system) 1 Android (operating system) Android Home screen displayed by Samsung Nexus S with Google running Android 2.3 "Gingerbread" Company / developer Google Inc., Open Handset Alliance [1] Programmed in C (core), C++ (some third-party libraries), Java (UI) Working state Current [2] Source model Free and open source software (3.0 is currently in closed development) Initial release 21 October 2008 Latest stable release Tablets: [3] 3.0.1 (Honeycomb) Phones: [3] 2.3.3 (Gingerbread) / 24 February 2011 [4] Supported platforms ARM, MIPS, Power, x86 Kernel type Monolithic, modified Linux kernel Default user interface Graphical [5] License Apache 2.0, Linux kernel patches are under GPL v2 Official website [www.android.com www.android.com] Android is a software stack for mobile devices that includes an operating system, middleware and key applications.[6] [7] Google Inc. purchased the initial developer of the software, Android Inc., in 2005.[8] Android's mobile operating system is based on a modified version of the Linux kernel. Google and other members of the Open Handset Alliance collaborated on Android's development and release.[9] [10] The Android Open Source Project (AOSP) is tasked with the maintenance and further development of Android.[11] The Android operating system is the world's best-selling Smartphone platform.[12] [13] Android has a large community of developers writing applications ("apps") that extend the functionality of the devices. There are currently over 150,000 apps available for Android.[14] [15] Android Market is the online app store run by Google, though apps can also be downloaded from third-party sites.
    [Show full text]
  • Android Operating System
    Software Engineering ISSN: 2229-4007 & ISSN: 2229-4015, Volume 3, Issue 1, 2012, pp.-10-13. Available online at http://www.bioinfo.in/contents.php?id=76 ANDROID OPERATING SYSTEM NIMODIA C. AND DESHMUKH H.R. Babasaheb Naik College of Engineering, Pusad, MS, India. *Corresponding Author: Email- [email protected], [email protected] Received: February 21, 2012; Accepted: March 15, 2012 Abstract- Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Android, an open source mobile device platform based on the Linux operating system. It has application Framework,enhanced graphics, integrated web browser, relational database, media support, LibWebCore web browser, wide variety of connectivity and much more applications. Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. Architecture of Android consist of Applications. Linux kernel, libraries, application framework, Android Runtime. All applications are written using the Java programming language. Android mobile phone platform is going to be more secure than Apple’s iPhone or any other device in the long run. Keywords- 3G, Dalvik Virtual Machine, EGPRS, LiMo, Open Handset Alliance, SQLite, WCDMA/HSUPA Citation: Nimodia C. and Deshmukh H.R. (2012) Android Operating System. Software Engineering, ISSN: 2229-4007 & ISSN: 2229-4015, Volume 3, Issue 1, pp.-10-13. Copyright: Copyright©2012 Nimodia C. and Deshmukh H.R. This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
    [Show full text]
  • Ethereal Developer's Guide Draft 0.0.2 (15684) for Ethereal 0.10.11
    Ethereal Developer's Guide Draft 0.0.2 (15684) for Ethereal 0.10.11 Ulf Lamping, Ethereal Developer's Guide: Draft 0.0.2 (15684) for Ethere- al 0.10.11 by Ulf Lamping Copyright © 2004-2005 Ulf Lamping Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation. All logos and trademarks in this document are property of their respective owner. Table of Contents Preface .............................................................................................................................. vii 1. Foreword ............................................................................................................... vii 2. Who should read this document? ............................................................................... viii 3. Acknowledgements ................................................................................................... ix 4. About this document .................................................................................................. x 5. Where to get the latest copy of this document? ............................................................... xi 6. Providing feedback about this document ...................................................................... xii I. Ethereal Build Environment ................................................................................................14 1. Introduction .............................................................................................................15
    [Show full text]
  • The GNU Compiler Collection on Zseries
    The GNU Compiler Collection on zSeries Dr. Ulrich Weigand Linux for zSeries Development, IBM Lab Böblingen [email protected] Agenda GNU Compiler Collection History and features Architecture overview GCC on zSeries History and current status zSeries specific features and challenges Using GCC GCC optimization settings GCC inline assembly Future of GCC GCC and Linux Apache Samba mount cvs binutils gdb gcc Linux ls grep Kernel glibc DB2 GNU - essentials UDB SAP R/3 Unix - tools Applications GCC History Timeline January 1984: Start of the GNU project May 1987: Release of GCC 1.0 February 1992: Release of GCC 2.0 August 1997: EGCS project announced November 1997: Release of EGCS 1.0 April 1999: EGCS / GCC merge July 1999: Release of GCC 2.95 June 2001: Release of GCC 3.0 May/August 2002: Release of GCC 3.1/3.2 March 2003: Release of GCC 3.3 (estimated) GCC Features Supported Languages part of GCC distribution: C, C++, Objective C Fortran 77 Java Ada distributed separately: Pascal Modula-3 under development: Fortran 95 Cobol GCC Features (cont.) Supported CPU targets i386, ia64, rs6000, s390 sparc, alpha, mips, arm, pa-risc, m68k, m88k many embedded targets Supported OS bindings Unix: Linux, *BSD, AIX, Solaris, HP/UX, Tru64, Irix, SCO DOS/Windows, Darwin (MacOS X) embedded targets and others Supported modes of operation native compiler cross-compiler 'Canadian cross' builds GCC Architecture: Overview C C++ Fortran Java ... front-end front-end front-end front-end tree Optimizer rtx i386 s390 rs6000 sparc ... back-end back-end back-end
    [Show full text]
  • Chapter 1: Introduction
    Chapter 1: Introduction Operating System Concepts Silberschatz, Galvin and Gagn Objectives To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization Operating System Concepts 1.2 Silberschatz, Galvin and Gagne What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware Operating system goals: Execute user programs and make solving user problems easier Make the computer system convenient to use Use the computer hardware in an efficient manner Operating System Concepts 1.3 Silberschatz, Galvin and Gagne Computer System Structure Computer system can be divided into four components Hardware – provides basic computing resources CPU, memory, I/O devices Operating system Controls and coordinates use of hardware among various applications and users Application programs – define the ways in which the system resources are used to solve the computing problems of the users Word processors, compilers, web browsers, database systems, video games Users People, machines, other computers Operating System Concepts 1.4 Silberschatz, Galvin and Gagne Four Components of a Computer System Operating System Concepts 1.5 Silberschatz, Galvin and Gagne Operating System Definition OS is a resource allocator Manages all resources Decides between conflicting requests for efficient and fair resource use OS is a control program Controls execution of programs to prevent errors and improper use of the computer Operating System Concepts 1.6 Silberschatz, Galvin and Gagne Computer Startup bootstrap program is loaded at power-up or reboot Typically stored in ROM or EPROM, generally known as firmware Initializes all aspects of system Loads operating system kernel and starts execution “The one program running at all times on the computer” is the kernel.
    [Show full text]