CS 350 Operating Systems Spring 2021

Total Page:16

File Type:pdf, Size:1020Kb

CS 350 Operating Systems Spring 2021 CS 350 Operating Systems Spring 2021 1. Operating systems overview 1 What is an OS? Applications Von Neumann model Hardware • Can applications/programs directly run upon hardware? • Yes • But normally not. Why? • Because it is too complex! You (developers) have to deal with hardware. • Also limits applications’ portability. 2 What is an OS? Applications Von Neumann model Hardware • The code for hardware interaction will be repeatedly used under the same hardware. • More efficient design? • How about to separate this code from applications! 3 What is an OS? Applications OS Hardware • An OS: a software layer between the hardware and the applications/programs • for making it easy to run applications/programs • But how? 4 What is an OS? App1 App2 App3 CPU Memory Disk virtualization virtualization OS virtualization Hardware • A general technique in an OS: Virtualization • The OS takes a physical resource (e.g., processor, memory, or a disk) and transforms it into a more general, powerful, and easy-to- use virtual form of itself • Hardware details are abstracted away and hidden from application developers 5 What is an OS? App1 App2 App3 Interfaces or system calls OS CPU virtualization Memory virtualization Disk virtualization Hardware • A general technique in an OS: Virtualization • To make use of virtual resources (e.g., running a program, allocating memory, or accessing a file), the OS also provides some interfaces (APIs) • A typical OS exports a few hundred system calls that are available to applications • We consider an OS provides a standard library to applications 6 What is an OS? App1 App2 Interfaces or system calls OS CPU virtualization Hardware • The second technique/feature in an OS: Concurrency • An OS serves as a resource manager that allows concurrent programs/users to share the hardware resources • allocate resources for each application, and guarantee isolation among these applications with concurrent control mechanism. 7 What is an OS? App1 App2 App3 Interfaces or system calls OS Memory virtualization Disk virtualization volatile Hardware Persistent • The third technique in an OS: Persistence • data can be easily lost, as devices such as DRAM store values in a volatile manner • we need hardware (e.g., HDD or SSD) and software (e.g., file systems) to be able to store data persistently • Persistence relates to how to store data in an organized, meaningful manner, easy for applications/user to access, and preventing data from corruption and lost. 8 In summary: What is an OS? • A software layer between the hardware and the application programs which virtualizes hardware resources and provides Applications a virtualization interface. OS • A resource manager that allows concurrent programs to share the Hardware hardware resources • And it ensures information stored persistently in the computer. • Three themes of operating systems: virtualization, concurrency and persistence. 9 Theme 1: Virtualization – Make one physical CPU look like multiple virtual CPUs • Via the abstraction of “process” – Make physical memory (RAM) and look like multiple virtual memory spaces • Via the abstraction of “address space” – Make physical disk look like a file system • Physical disk = raw bytes. • File system = user’s view of data on disk. 10 Virtualization example – Virtualizing the CPU cpu.c (simple code that loops and prints) 11 Virtualization example – Virtualizing the CPU Run one instance of “cpu” program on a single core CPU The CPU runs the program and outputs to the terminal the messages that the program wants to print. 12 Virtualization example – Virtualizing the CPU Run many instances of “cpu” program on a single core CPU Even though we have only one processor, somehow all four of these programs seem to be running at the same time! How? The operating system, with some help from the hardware, turns (or virtualizes) a single CPU (or small set of them) into a seemingly infinite number of CPUs and thus allowing many programs to seemingly run at once → virtualizing the CPU. 13 Virtualization example – Virtualizing Memory What is the variable p stored? stored in 14 Virtualization example – Virtualizing Memory Run a single instance of the “mem” program. Run two instances of the “mem” program. stored in stored in For the two instances case, each running program has allocated memory at the same address (00200000), and each seems to be updating the value at 00200000 independently! 15 Virtualization example – Virtualizing Memory Run a single instance of the “mem” program. Run two instances of the “mem” program. stored in stored in Virtualizing memory: - Each process accesses its own private virtual memory address space (sometimes just called its address space), which the OS maps onto the physical memory of the machine. - A memory reference within one running process does not affect the address space of other processes (or the OS itself); as far as the running process is concerned, it has physical memory all to itself. 16 Theme 2: concurrency • Virtualization allows multiple concurrent programs to share the virtualized hardware resources, which brings out another class of topics: concurrency. • Examples –One physical CPU runs many processes –One process runs many threads –One OS juggles process execution, system calls, interrupts, exceptions, CPU scheduling, memory management, etc. • There’s a LOT of concurrency in modern computer systems. • And it’s the source of most of the system complexity. 17 Concurrency Example Main function invoked by threads main p1 p2 counter++ counter++ main Create the first thread, p1 Create the second thread, p2 Wait till the end of thread p1 Wait till the end of thread p2 18 Concurrency Example Expected output? Reality? A key part of the program above, where the shared counter is What happed? incremented, takes three instructions: one to load the value of the counter from memory into a register, one to increment it, and one to store it back into memory. Because these three instructions do not execute atomically (all at once), strange things can happen. 19 Concurrency Example • What happened? Inst2 CPU MEM Instructions counter counter 100 100 counter ++; CPU P1: Inst1 P2: Inst1 100 100 Inst1: Load counter from memory 100->101 100->101 P1: Inst2 101 100 to CPU register Register Register Inst1 Inst3 Inst2: Increment counter by 1 P1 P2 P2: Inst2 101 100 P1: Inst3 Inst3: Store it back from CPU 101 P2: Inst3 register to memory MEM 101 counter=100; A key part of the program above, where the shared counter is incremented, takes three instructions: one to load the value of the counter from memory into a register, one to increment it, and one to store it back into memory. Because these three instructions do not execute atomically (all at once), “strange” things can happen. One key question in the concurrency case is how to ensure correct execution. 20 Theme 3: Persistence • Storing data “forever” – On hard disks, SSDs, CDs, floppy disks, tapes, phono discs, paper! • But its not enough to just store raw bytes • Users want to – Organize data (via file systems) – Share data (via network or cloud) – Access data easily • …and recover data when lost. – Protect data from being stolen. 21 Persistence Example Create a file Write data to the file Close the file On the one hand, the file system needs to figure out where on disk this new data will reside and then keep track of it in various on-device structures the file system maintains. On the other hand, the file system provides a standard and simple way to access devices through its system calls. 22 History of OSes Personal computing era Mobile device OS and ▪ MacOS, IBM PC and its DOS, hypervisors Windows, and so forth. • Android, iOS ▪ Unfortunately, many lessons from • VMWare ESX, Early operating systems earlier multi-programming era Xen, Linux/KVM were simple batch were forgotten and had to be re- etc. processing systems learned (painfully). ▪ 1980s also saw the fragmentation of UNIX – many proprietary OSes 1970s 1990s 1950s 1960s 1980s 2000s Multi-programming on mainframes • BSD and Linux • Concurrency, memory protection, • Open source. Kernel mode, system calls, hardware • Led the way to modern privilege levels, trap handling OSes and cloud platforms • Earliest Multics hardware and OS on • Wider adoption of threads IBM mainframes and parallelism • Which led to the first UNIX OS which pioneered file systems, shell, pipes, and the C language. 23 Evolution of Operating Systems A major OS will evolve over time for a number of reasons: hardware upgrades new types of hardware new services Fixes The need to change an OS regularly places certain requirements on its design. An obvious statement is that the system should be modular in construction, with clearly defined interfaces between the modules. 24 Architecting OSes • Three basic approaches 1. Monolithic kernels • All functionalities are compiled together • All code runs in privileged kernel-space 2. Microkernels • Only essential functionalities are compiled into the kernel • All other functionalities run in unprivileged user space 3. Hybrid kernels • Most functionalities are compiled into the kernel • Some functions are loaded dynamically • Typically, all functionality runs in kernel-space 25 Monolithic Kernel Kernel Space User Space Monolithic Kernel Code CPU Program Memory Scheduling Manager Loader User Program Error System Security Handling Policies APIs File Device Systems Drivers Advantages Disadvantages • Single code base eases kernel development • Large code base, hard to check • Robust APIs for application developers for correctness • No need to find separate device drivers • Bugs crash the entire kernel • Fast performance due to tight coupling (and thus, the machine) 26 Microkernel Kernel Space User Space File Disk System Driver Kernel Code Memory Networking Network Manager Service Card Driver CPU Scheduling User Program 1 Interprocess Communication User Program 2 Advantages Disadvantages • Small code base, easy to check for correctness • Performance is • Excellent for high-security systems slower: many context • Extremely modular and configurable switches • Choose only the pieces you need for embedded systems • No stable APIs, more • Easy to add new functionality (e.g.
Recommended publications
  • 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
    [Show full text]
  • 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.
    [Show full text]
  • 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.
    [Show full text]
  • Die Geschichte Der Betriebssysteme
    REGIONALES RECHENZENTRUM ERLANGEN [RRZE] Geschichte der Betriebssysteme: Vom Mainframe zum Smartphone Systemausbildung − Grundlagen und Aspekte von Betriebssystemen und System-nahen Diensten 26. April 2017 Gregor Longariva - RRZE Willkommen RRZE Achtung, Aufnahme! Agenda 2 1. Gen - 1940 - 1955 2. Gen - 1955 - 1965 3. Gen - 1965 - 1980 4. Gen - 1980 - heute analytical engine - 19. Jh Analytical Engine (Nachbau) 3 - Mitte 19. Jh Charles Babbage - erster Digitalrechner (aber mechanisch) - wurde zu seiner Zeit nie realisiert da mechanische Elemente in notwendiger Präzision - Babbage erkannte, dass seine Maschine einer Programmierung bedurfte. analytical engine - 19. Jh 4 - Charles Babbage 1792-1871 Ada Lovelace 1815-1852 - Lovelace übersetzte Babbage Beschreibung Analytical Engine und fügte Kommentare hinzu - Entwurf Berechnung Bernoulli Zahlen auf der analyitcal engine -> erste Programmiererin - Rechenmaschine -> feste Berechnungen, manuelle Eingabe u. Operation, analytical engine -> beliebige Algorithmen, Programme - auf andere Dinge anwenden, nicht nur Zahlen wenn man Objekte findet deren Wechselwirkungen durch abstrakte Operationen dargestellt werden können Erste Generation von Computern 1940-1955 Nachbau der Z3 im Deutschen Museum München 5 - 1941 erster funktionstüchtiger elektrischer Digitalrechner, Zuse Z3, Konrad Zuse Berlin - mechanische Relais - 600 Relais Rechenwerk, 1600 Relais Speicherwerk - Nachfolger Z1 die vollmechanisch war Erste Generation von Computern 1940-1955 6 - es herrschte Krieg - Deutschland hatte die Enigma um
    [Show full text]
  • Virtualization on the Hurd
    Virtualization on the Hurd Justus Winter <[email protected]> 2017-02-04 Justus Winter <[email protected]> Virtualization on the Hurd 2017-02-04 1 / 12 What is the Hurd, and why should I care? general-purpose multiserver operating system GNU: replacement for traditional OS kernel that didn’t happen. me: an independent long-term research project it exists and is highly compatible (glibc, Debian/Hurd) learn systems programming learn to contribute to (GNU) projects free ones mind from narrow definitions of what an OS can do and be Freedom #0: The freedom to run the program as you wish, for any purpose. Justus Winter <[email protected]> Virtualization on the Hurd 2017-02-04 2 / 12 Virtualization virtualization is everywhere, and not going away anytime soon different goals ease management (teh cloud) increase isolation development testing granularity coarse-grained (bochs, qemu, . ) somewhere in between ({LD_LIBRARY_,}PATH) fine-grained (LD_PRELOAD trickery) Renzo Davoli’s definition Virtualization is the ability to replace / interpose a resource. My definition Virtualization is the ability to freely shape the computation environment. Justus Winter <[email protected]> Virtualization on the Hurd 2017-02-04 3 / 12 Subhurds: coarse-grained virtualization one kernel, multiple logical systems a bit like containers, zones, jails, . tricky to do on monolithic systems a decade of getting namespaces right in Linux next to trivial on multiservers Booting a Subhurd $ boot /dev/sd1s1 /hurd/ext2fs.static --readonly[...] -T device pseudo-root /lib/ld.so /hurd/exec
    [Show full text]
  • Final Year Project
    Final Year Project Porting MINIX to Xen Name Ivan Kelly ID Number 0225991 Supervisor John Sturdy Course Computer Systems Submitted in part requirement for final year project course CS4618 to University of Limerick, Ireland on May 8, 2006 i Copyright c 2006, Ivan Kelly. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/licenses/fdl.html. Acknowledgements MINIX on Xen would not have been possible without the support of many people. I would like to thank the Xen Team, not only for creating Xen, but for providing support through IRC and email. Without the help of Mark Williamson and Keir Fraser in particular, this project would have never gotten off the ground. I would also like to thank Andrew S. Tanenbaum whose help in the early days of the project, helped me see what needed to be done. I would like to thank John Sturdy and Mel Gorman for talking me through many difficult problems during the implementation of MINIX on Xen. I would like to thank my friends and family for their support and my housemates for bring- ing me tea, and listening to my ranting. Lastly, I would like to thank Pili for her love and support, and for her willingness to endure hours of rants regarding GDTs and interrupt handlers.
    [Show full text]
  • A Secure Computing Platform for Building Automation Using Microkernel-Based Operating Systems Xiaolong Wang University of South Florida, [email protected]
    University of South Florida Scholar Commons Graduate Theses and Dissertations Graduate School November 2018 A Secure Computing Platform for Building Automation Using Microkernel-based Operating Systems Xiaolong Wang University of South Florida, [email protected] Follow this and additional works at: https://scholarcommons.usf.edu/etd Part of the Computer Sciences Commons Scholar Commons Citation Wang, Xiaolong, "A Secure Computing Platform for Building Automation Using Microkernel-based Operating Systems" (2018). Graduate Theses and Dissertations. https://scholarcommons.usf.edu/etd/7589 This Dissertation is brought to you for free and open access by the Graduate School at Scholar Commons. It has been accepted for inclusion in Graduate Theses and Dissertations by an authorized administrator of Scholar Commons. For more information, please contact [email protected]. A Secure Computing Platform for Building Automation Using Microkernel-based Operating Systems by Xiaolong Wang A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Science and Engineering Department of Computer Science and Engineering College of Engineering University of South Florida Major Professor: Xinming Ou, Ph.D. Jarred Ligatti, Ph.D. Srinivas Katkoori, Ph.D. Nasir Ghani, Ph.D. Siva Raj Rajagopalan, Ph.D. Date of Approval: October 26, 2018 Keywords: System Security, Embedded System, Internet of Things, Cyber-Physical Systems Copyright © 2018, Xiaolong Wang DEDICATION In loving memory of my father, to my beloved, Blanka, and my family. Thank you for your love and support. ACKNOWLEDGMENTS First and foremost, I would like to thank my advisor, Dr. Xinming Ou for his guidance, encouragement, and unreserved support throughout my PhD journey.
    [Show full text]
  • GNU/Hurd DDE Userland Device Drivers
    GNU/Hurd DDE userland device drivers Samuel Thibault 2014 February 2nd 1 It's all about freedom #0 “The freedom to run the program, for any purpose” I.e.: ● Freedom from sysadmin! ● WTH is fdisk/mke2fs/... hidden in /sbin? ● I should be able to just work with my disk/network access ● Freedom to innovate ● Experimental filesystem, personal work-flow, new kind of process combination,... ● Also provide freedom from misbehaving programs and drivers 2 It's all about freedom #0 From: xxx <[email protected]> Subject: Network expertise Date: Thu, 31 Jan 2013 12:37:34 +0100 [¼] Would it be possible to route to my VPN the traffic of only one application? Actually, also well-known classical issue of full-VPN: traffic of the VPN itself shouldn't go through the VPN! And yet, here root capabilities!! Spoiler: Yes, GNU/Hurd can already do it. Without even asking root. 3 It's all about freedom #0 Extensibility for the user ● Mount one's own files ● Access archives content ● Access remote files ● Experiment with filesystems ● Access one's own network ● Access remote networks / VPN ● Access virtual machine network ● Redirect one's sound ● Through network ● Sound effects ● Recording ● … ● and Flexible hardware support 4 Outline ● Hurd architecture Overview ● Network flexibility ● DDE stack ● Console support ● Hardware support ● Releases & future 7 Micro-kernel layering ext2fs sh auth cp pfinet proc root user Kernel Tasks, memory, IPC 15 Micro-kernel layering ext2fs sh auth cp pfinet proc root user Kernel Tasks, memory, IPC 16 Micro-kernel layering ● Server crash? Not a problem ● “Computer bought the farm” is just an error, not something-of-the-death ● Easier to debug/tune ● Just run gdb, gprof, … ● Can dare crazy things ● The Hurd console has dynamic font support – See chinese support in pseudo-graphical mode (actually pure VGA textmode!) of Debian installer.
    [Show full text]
  • Minix 3 Going from Educational Showcase to Day-To-Day Productive Use History of Micro Kernels
    Minix 3 going from educational showcase to day-to-day productive use History of micro kernels • Early approaches ▫ IBM's hypervisor launching CP/CMS • Microkernel designs ▫ Mach 3 (microkernel) XNU (hybrid kernel) lauching the OS GNU Hurd ▫ MINIX (microkernel) ▫ Plan 9 (concepts) • Specific implementations ▫ AmigaOS Comparison monolithic / micro Micro kernel Monolithic kernel • Bootstrap mechanism • All from micro kernel • Address space handling plus • CPU allocation • Memory Manager • Interprocess Communication • Scheduler (IPC) • Device drivers • Basic file system Comparison monolithic / micro Hypervisor • Based on „any“ kernel plus • Virtualisation layer for ▫ any hardware component ▫ any virtual device Key principles • Its all about abstraction! ▫ Top down approach ▫ Implicite hierarchy ▫ Model • Focusing following principles ▫ Separation of Concerns ▫ Components Separation of Concerns • Mentioned first by Dijkstra (1974) • Makes the abstraction more cohesive ▫ Weaker coupling between „modules“ ▫ Explicite (abstract) contract for using the module • Commonly used in many engineering domains ▫ Layer-based approaches, e.g. block device/file system • Leverages abstraction ▫ As a result you also get a hierarchy for free! • Drill down process ends typically too early! Components • A Component encapsulates related functions • Abstract interface and implementation ▫ Top-down approach, interface first! • Encapsulation ▫ State is manipulated via interface (contract) only! • Information hiding ▫ No implementation details are exposed • Own lifecycle
    [Show full text]
  • Advanced Certification in Science - Level I
    Advanced Certification in Science - Level I www.casiglobal.us | www.casi-india.com | CASI New York; The Global Certification body. Page 1 of 391 CASI New York; Reference material for ‘Advanced Certification in Science – Level 1’ Recommended for college students (material designed for students in India) About CASI Global CASI New York CASI Global is the apex body dedicated to promoting the knowledge & cause of CSR & Sustainability. We work on this agenda through certifications, regional chapters, corporate chapters, student chapters, research and alliances. CASI is basically from New York and now has a presence across 52 countries. World Class Certifications CASI is usually referred to as one of the BIG FOUR in education, CASI is also referred to as the global certification body CASI offers world class certifications across multiple subjects and caters to a vast audience across primary school to management school to CXO level students. Many universities & colleges offer CASI programs as credit based programs. CASI also offers joint / cobranded certifications in alliances with various institutes and universities. www.casiglobal.us CASI India CASI India has alliances with hundreds of institutes in India where students of these institutes are eligible to enroll for world class certifications offered by CASI. The reach through such alliances is over 2 million citizens CASI India also offers cobranded programs with Government Polytechnic and many other institutes of higher learning. CASI India has multiple franchises across India to promote certifications especially for school students. www.casi-india.com Volunteering @ CASI NY CASI India / CSR Diary also provide volunteering opportunities and organizes mega format events where in citizens at large can also volunteer for various causes.
    [Show full text]
  • GNU Hurd Workshop
    Indian GNU/Linux Users' Group, Chennai (ILUGC) presents GNU Hurd Workshop conducted by Shakthi Kannan , MS Venue Madras Institute of Technology, Chennai Introduction Free software ✔ Free software licenses ✔ Freedom from software patents ✔ User freedom Richard M Stallman “The Danger of Software Patents” (IIT-Madras) http://www.chennailug.org/meeting/info/TheDangerOfSWPatent1of2.ogg http://www.chennailug.org/meeting/info/TheDangerOfSWPatent2of2.ogg http://www.cs.iitm.ernet.in/~ramk/stallman.wav GNU Hurd Overview ➔ Multi-server ➔ POSIX compliant ➔ User extensible system framework ➔ Top of GNU Mach microkernel GNU Hurd History 1983 GNU Project started by Richard Stallman 1988 Decision made to use Mach 3.0 as the kernel 1991 Mach 3.0 is released under compatible license 1991 Thomas Bushnell, BSG, starts the Hurd project 1994 The Hurd boots the first time 1997 Version 0.2 of the Hurd is released 1998 Debian hurd-i386 archive is created 2001 Debian GNU/Hurd snapshot three CD images GNU Hurd Kernel Architectures Monolithic Microkernels ● Device drivers ● Resource management ● Network protocols ● Task management ● Process ● IPC management ● Basic hardware support ● Authentication ● File systems ● Scheduling GNU Hurd Single/Multi-server models Single-server Multi-server ● Single task ● Multiple tasks ● Comparable to ● Cooperative monolithic kernel ● Responsibilities distributed logically ● Stability ● Scalability GNU Hurd GNU Hurd allows users to: ➔ write and run their own servers ➔ replace system servers dynamically with their own implementations
    [Show full text]
  • System GNU/Hurd on Architecture X86 Bachelor Project
    Brno University of Technology Faculty of Information Technology System GNU/Hurd on Architecture x86 Bachelor Project 2006 ZbynˇekMichl System GNU/Hurd on Architecture x86 Submitted in partial fulfillment of the requirements for the degree of Bachelor of Information Technology at Brno University of Technology, Faculty of Information Technology, April 27, 2006 c Zbynˇek Michl, 2006 The author thereby grants persmission to reproduce and distribute copies of this document in whole or in part to Brno University of Technology, Faculty of Information Technology. Declaration I hereby declare that I have created this project on my own and under the supervision of Ing. Tom´aˇsKaˇsp´arek. I have listed all information sources which I used. ....................... ZbynˇekMichl April 27, 2006 Abstract This project focuses on the GNU Hurd operating system. The first part presents concept of the Hurd, Mach and L4 microkernels that create a base of the whole system. The second part describes a few installation procedures of the Hurd on x86 architecture. Current status of the Hurd and presumption of the future development is also mentioned. Keywords Coyotos, Debian, GNU, GPL, Grub, Hurd, Hurd-NG, kernel, kernel space, L4, L4.Sec, Mach, microkernel, ngHurd, operating system, Pistachio, POSIX, server, translator, UNIX, user space. Acknowledgements First, I would like to thank my supervisor Ing. Tom´aˇsKaˇsp´arek for the opportunity to work on this project and for the time to discuss problems with him. My special thanks go to my family for the possibility to study in Brno and for their constant support all the time as well as to my friends for their encouragement.
    [Show full text]