Librettos: a Dynamically Adaptable Multiserver-Library OS∗

Total Page:16

File Type:pdf, Size:1020Kb

Librettos: a Dynamically Adaptable Multiserver-Library OS∗ LibrettOS: A Dynamically Adaptable Multiserver-Library OS∗ Ruslan Nikolaev, Mincheol Sung, Binoy Ravindran Bradley Department of Electrical and Computer Engineering, Virginia Tech frnikola;mincheol;[email protected] Abstract network components fail or need to be upgraded. Finally, to eciently use hardware resources, applications can dynam- We present LibrettOS, an OS design that fuses two ically switch between the indirect and direct modes based paradigms to simultaneously address issues of isolation, on their I/O load at run-time. We evaluate LibrettOS with performance, compatibility, failure recoverability, and run- 10GbE and NVMe using Nginx, NFS, memcached, Redis, and time upgrades. LibrettOS acts as a microkernel OS that runs other applications. LibrettOS’s performance typically ex- servers in an isolated manner. LibrettOS can also act as a ceeds that of NetBSD, especially when using direct access. library OS when, for better performance, selected applica- Keywords: operating system, microkernel, multiserver, net- tions are granted exclusive access to virtual hardware re- work server, virtualization, Xen, IOMMU, SR-IOV, isolation sources such as storage and networking. Furthermore, ap- plications can switch between the two OS modes with no interruption at run-time. LibrettOS has a uniquely distin- guishing advantage in that, the two paradigms seamlessly 1 Introduction coexist in the same OS, enabling users to simultaneously ex- Core components and drivers of a general purpose mono- ploit their respective strengths (i.e., greater isolation, high lithic operating system (OS) such as Linux or NetBSD typ- performance). Systems code, such as device drivers, net- ically run in privileged mode. However, this design is of- work stacks, and le systems remain identical in the two ten inadequate for modern systems [13, 30, 43, 50, 62]. On modes, enabling dynamic mode switching and reducing de- the one hand, a diverse and ever growing kernel ecosys- velopment and maintenance costs. tem requires better isolation of individual drivers and other To illustrate these design principles, we implemented a system components to localize security threats due to the prototype of LibrettOS using rump kernels, allowing us to increasingly large attack surface of OS kernel code. Bet- reuse existent, hardened NetBSD device drivers and a large ter isolation also helps with tolerating component failures ecosystem of POSIX/BSD-compatible applications. We use and thereby increases reliability. Microkernels achieve this hardware (VM) virtualization to strongly isolate dierent goal, specically in multiserver OS designs [13, 30, 33].1 On rump kernel instances from each other. Because the orig- the other hand, to achieve better device throughput and inal rumprun unikernel targeted a much simpler model for resource utilization, some applications need to bypass the uniprocessor systems, we redesigned it to support multi- system call and other layers so that they can obtain exclu- core systems. Unlike kernel-bypass libraries such as DPDK, sive access to device resources such as network adapter’s applications need not be modied to benet from direct (NIC) Tx/Rx queues. This is particularly useful in recent arXiv:2002.08928v1 [cs.OS] 20 Feb 2020 hardware access. LibrettOS also supports indirect access hardware with SR-IOV support [63], which can create vir- through a network server that we have developed. Instances tual PCIe functions: NICs or NVMe storage partitions. Li- of the TCP/IP stack always run directly inside the address brary OSes and kernel-bypass libraries [77, 84] achieve this space of applications. Unlike the original rumprun or mono- goal. Multiserver-inspired designs, too, can outperform tra- lithic OSes, applications remain uninterrupted even when ditional OSes on recent hardware [54, 56]. Microkernels, though initially slow in adoption, have gai- ∗©2020 Copyright held by the owner/author(s). Publication rights licensed to ACM. This is the author’s version of the work. It is ned more traction in recent years. Google’s Fuchsia OS [24] posted here for your personal use. Not for redistribution. The deni- uses the Zircon microkernel. Intel Management Engine [37] tive Version of Record was published in Proceedings of the 16th uses MINIX 3 [30] since 2015. A multiserver-like network- ACM SIGPLAN/SIGOPS International Conference on Virtual Execu- tion Environments (VEE ’20), March 17, 2020, Lausanne, Switzerland ing design was recently revisited by Google [56] to improve http://dx.doi.org/10.1145/3381052.3381316. performance and upgradability when using their private The U.S. Government is authorized to reproduce and distribute reprints 1As microkernels are dened broadly in the literature, we clarify that for Governmental purposes notwithstanding any copyright annotation we consider multiserver OSes as those implementing servers to isolate core thereon. OS components, e.g., MINIX 3 [30]. 1 ) ) e devices restrict the number of SR-IOV interfaces – e.g., the e python JDK g g a a Intel 82599 adapter [38] supports up to 16 virtual NICs, 4 r r o ntp o NFS t t Tx/Rx queues each; for other adapters, this number can be s s Network e e rsyslog Server ssh even smaller. Thus, it is important to manage available M M V hardware I/O resources eciently. Since I/O load is usu- V N HTTP N DB key-value ( ( ally non-constant and changes for each application based s (mySQL) (Redis) (Nginx) s u u on external circumstances (e.g., the number of clients con- b b e I e nected to an HTTP server during peak and normal hours), I C C PCIe bus (NIC) P PCIe bus (NIC) conservative resource management is often desired: use P network server(s) until I/O load increases substantially, at Figure 1. Server ecosystem example. which point, migrate to the library OS mode (for direct ac- cess) at run-time with no interruption. This is especially useful for recent bare metal cloud systems – e.g., when one (non-TCP) messaging protocol. However, general-purpose Amazon EC2 bare metal instance is shared by several users. application and device driver support for microkernels is In this paper, we present a new OS design – LibrettOS limited, especially for high-end hardware such as 10GbE+. – that not only reconciles the library and multiserver OS paradigms while retaining their individual benets (of bet- Kernel-bypass techniques, e.g., DPDK [84] and ter isolation, failure recoverability, and performance), but SPDK [77], are also increasingly gaining traction, as also overcomes their downsides (of driver and application they eliminate OS kernels from the critical data path, incompatibility). Moreover, LibrettOS enables applications thereby improving performance. Unfortunately, these to switch between these two paradigms at run-time. While techniques lack standardized high-level APIs and require high performance can be obtained with specialized APIs, massive engineering eort to use, especially to adapt to which can also be adopted in LibrettOS, they incur high en- existing applications [89]. Additionally, driver support in gineering eort. In contrast, with LibrettOS, existing appli- kernel-bypass libraries such as DPDK [84] is great only cations can already benet from more direct access to hard- for high-end NICs from certain vendors. Re-implementing ware while still using POSIX. drivers and high-level OS stacks from scratch in user space We present a realization of the LibrettOS design through involves signicant development eort. a prototype implementation. Our prototype leverages rump Oftentimes, it is overlooked that “no one size ts all.” In kernels [42] and reuses a fairly large NetBSD driver collec- other words, no single OS model is ideal for all use cases. tion. Since the user space ecosystem is also inherited from Depending upon the application, security or reliability re- NetBSD, the prototype retains excellent compatibility with quirements, it is desirable to employ multiple OS paradigms existing POSIX and BSD applications as well. Moreover, in in the same OS. In addition, applications may need to switch the two modes of operation (i.e., library OS mode and multi- between dierent OS modes based on their I/O loads. In server OS mode), we use an identical set of drivers and soft- Figure1, we illustrate an ecosystem of a web-driven server ware. In our prototype, we focus only on networking and running on the same physical or virtual host. The server storage. However, the LibrettOS design principles are more uses tools for logging (rsyslog), clock synchronization (ntp), general, as rump kernels can potentially support other sub- NFS shares, and SSH for remote access. The server also runs systems – e.g., NetBSD’s sound drivers [18] can be reused. python and Java applications. None of these applications The prototype builds on rumprun instances, which execute are performance-critical, but due to the complexity of the rump kernels atop a hypervisor. Since the original rumprun network and other stacks, it is important to recover from did not support multiple cores, we redesigned it to support temporary failures or bugs without rebooting, which is im- symmetric multiprocessing (SMP) systems. We also added possible in monolithic OSes. One way to meet this goal is 10GbE and NVMe drivers, and made other improvements to to have a network server as in the multiserver paradigm, rumprun. As we show in Section5, the prototype outper- which runs system components in separate user processes forms the original rumprun and NetBSD, especially when for better isolation and failure recoverability. This approach employing direct hardware access. In some tests, the pro- is also convenient when network components need to be totype also outperforms Linux, which is often better opti- upgraded and restarted at run-time [56] by triggering an ar- mized for performance than NetBSD. ticial fault. The paper’s research contribution is the proposed OS Core applications such as an HTTP server, database, and design and its prototype. Specically, LibrettOS is the rst key-value store are more I/O performance-critical.
Recommended publications
  • Upgrading Cfengine Nova a Cfengine Special Topics Handbook
    Upgrading CFEngine Nova A CFEngine Special Topics Handbook CFEngine AS This document describes how software updates work in CFEngine Nova. ¨ © Copyright c 2010- CFEngine AS 1 v i Table of Contents What does upgrading mean? ::::::::::::::::::::::::::::::::::::::::: 3 Why do I need to upgrade?::::::::::::::::::::::::::::::::::::::::::: 3 How does upgrading work? ::::::::::::::::::::::::::::::::::::::::::: 3 How can I do phased deployment? :::::::::::::::::::::::::::::::::::: 4 What if I have multiple operating system platforms? ::::::::::::::::::: 4 How do Nova policies update if I already have my own policy? ::::::::: 4 Appendix A Manual package upgrade commands ::::::: 5 3 What does upgrading mean? A software upgrade involves obtaining a new version of the CFEngine software from soft- ware.CFEngine.com and installing it in place of the old. When software is updated, the previous version of the software is retained. From version 1.1 of CFEngine Nova, CFEngine is fully capable of managing its own updates ¨ and service restarts with a minimum of manual work on the policy server. Existing users of version 1.0 will need to upgrade the software manually on the affected sys- tems, or use the existing CFEngine to assist in the manual process. Please contact CFEngine Professional Services for for assistance (see Appendix). © Why do I need to upgrade? Bug fixes and new features are included in new software releases. To gain access to these fixes, you need to upgrade the software. Changes to the standard Community Open Promise Body Library might make use of new features, so upgrading brings you access to these new methods. How does upgrading work? CFEngine packages its software in operating sytsem compatible package formats (RPM, PKG, MSI, etc).
    [Show full text]
  • The Politics of Roman Memory in the Age of Justinian DISSERTATION Presented in Partial Fulfillment of the Requirements for the D
    The Politics of Roman Memory in the Age of Justinian DISSERTATION Presented in Partial Fulfillment of the Requirements for the Degree Doctor of Philosophy in the Graduate School of The Ohio State University By Marion Woodrow Kruse, III Graduate Program in Greek and Latin The Ohio State University 2015 Dissertation Committee: Anthony Kaldellis, Advisor; Benjamin Acosta-Hughes; Nathan Rosenstein Copyright by Marion Woodrow Kruse, III 2015 ABSTRACT This dissertation explores the use of Roman historical memory from the late fifth century through the middle of the sixth century AD. The collapse of Roman government in the western Roman empire in the late fifth century inspired a crisis of identity and political messaging in the eastern Roman empire of the same period. I argue that the Romans of the eastern empire, in particular those who lived in Constantinople and worked in or around the imperial administration, responded to the challenge posed by the loss of Rome by rewriting the history of the Roman empire. The new historical narratives that arose during this period were initially concerned with Roman identity and fixated on urban space (in particular the cities of Rome and Constantinople) and Roman mythistory. By the sixth century, however, the debate over Roman history had begun to infuse all levels of Roman political discourse and became a major component of the emperor Justinian’s imperial messaging and propaganda, especially in his Novels. The imperial history proposed by the Novels was aggressivley challenged by other writers of the period, creating a clear historical and political conflict over the role and import of Roman history as a model or justification for Roman politics in the sixth century.
    [Show full text]
  • Examining the Viability of MINIX 3 As a Consumer Operating
    Examining the Viability of MINIX 3 as a Consumer Operating System Joshua C. Loew March 17, 2016 Abstract The developers of the MINIX 3 operating system (OS) believe that a computer should work like a television set. You should be able to purchase one, turn it on, and have it work flawlessly for the next ten years [6]. MINIX 3 is a free and open-source microkernel-based operating system. MINIX 3 is still in development, but it is capable of running on x86 and ARM processor architectures. Such processors can be found in computers such as embedded systems, mobile phones, and laptop computers. As a light and simple operating system, MINIX 3 could take the place of the software that many people use every day. As of now, MINIX 3 is not particularly useful to a non-computer scientist. Most interactions with MINIX 3 are done through a command-line interface or an obsolete window manager. Moreover, its tools require some low-level experience with UNIX-like systems to use. This project will examine the viability of MINIX 3 from a performance standpoint to determine whether or not it is relevant to a non-computer scientist. Furthermore, this project attempts to measure how a microkernel-based operating system performs against a traditional monolithic kernel-based OS. 1 Contents 1 Introduction 5 2 Background and Related Work 6 3 Part I: The Frame Buffer Driver 7 3.1 Outline of Approach . 8 3.2 Hardware and Drivers . 8 3.3 Challenges and Strategy . 9 3.4 Evaluation . 10 4 Progress 10 4.1 Compilation and Installation .
    [Show full text]
  • The Dragonflybsd Operating System
    1 The DragonFlyBSD Operating System Jeffrey M. Hsu, Member, FreeBSD and DragonFlyBSD directories with slightly over 8 million lines of code, 2 million Abstract— The DragonFlyBSD operating system is a fork of of which are in the kernel. the highly successful FreeBSD operating system. Its goals are to The project has a number of resources available to the maintain the high quality and performance of the FreeBSD 4 public, including an on-line CVS repository with mirror sites, branch, while exploiting new concepts to further improve accessible through the web as well as the cvsup service, performance and stability. In this paper, we discuss the motivation for a new BSD operating system, new concepts being mailing list forums, and a bug submission system. explored in the BSD context, the software infrastructure put in place to explore these concepts, and their application to the III. MOTIVATION network subsystem in particular. A. Technical Goals Index Terms— Message passing, Multiprocessing, Network The DragonFlyBSD operating system has several long- operating systems, Protocols, System software. range technical goals that it hopes to accomplish within the next few years. The first goal is to add lightweight threads to the BSD kernel. These threads are lightweight in the sense I. INTRODUCTION that, while user processes have an associated thread and a HE DragonFlyBSD operating system is a fork of the process context, kernel processes are pure threads with no T highly successful FreeBSD operating system. Its goals are process context. The threading model makes several to maintain the high quality and performance of the FreeBSD guarantees with respect to scheduling to ensure high 4 branch, while exploring new concepts to further improve performance and simplify reasoning about concurrency.
    [Show full text]
  • Ein Wilder Ritt Distributionen
    09/2016 Besichtigungstour zu den skurrilsten Linux-Distributionen Titelthema Ein wilder Ritt Distributionen 28 Seit den frühen 90ern schießen die Linux-Distributionen wie Pilze aus dem Boden. Das Linux-Magazin blickt zurück auf ein paar besonders erstaunliche oder schräge Exemplare. Kristian Kißling www.linux-magazin.de © Antonio Oquias, 123RF Oquias, © Antonio Auch wenn die Syntax anderes vermu- samer Linux-Distributionen aufzustellen, Basis für Evil Entity denkt (Grün!), liegt ten lässt, steht der Name des klassischen denn in den zweieinhalb Jahrzehnten falsch. Tatsächlich basierte Evil Entity auf Linux-Tools »awk« nicht für Awkward kreuzte eine Menge von ihnen unseren Slackware und setzte auf einen eher düs- (zu Deutsch etwa „tolpatschig“), sondern Weg. Während einige davon noch putz- ter anmutenden Enlightenment-Desktop für die Namen seiner Autoren, nämlich munter in die Zukunft blicken, ist bei an- (Abbildung 3). Alfred Aho, Peter Weinberger und Brian deren nicht recht klar, welche Zielgruppe Als näher am Leben erwies sich der Fo- Kernighan. Kryptische Namen zu geben sie anpeilen oder ob sie überhaupt noch kus der Distribution, der auf dem Ab- sei eine lange etablierte Unix-Tradition, am Leben sind. spielen von Multimedia-Dateien lag – sie heißt es auf einer Seite des Debian-Wiki wollten doch nur Filme schauen. [1], die sich mit den Namen traditioneller Linux für Zombies Linux-Tools beschäftigt. Je kaputter, desto besser Denn, steht dort weiter, häufig halten Apropos untot: Die passende Linux- Entwickler die Namen ihrer Tools für Distribution für Zombies ließ sich recht Auch Void Linux [4], der Name steht selbsterklärend oder sie glauben, dass einfach ermitteln. Sie heißt Undead Linux je nach Übersetzung für „gleichgültig“ sie die User ohnehin nicht interessieren.
    [Show full text]
  • NOVA: a Log-Structured File System for Hybrid Volatile/Non
    NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main Memories Jian Xu and Steven Swanson, University of California, San Diego https://www.usenix.org/conference/fast16/technical-sessions/presentation/xu This paper is included in the Proceedings of the 14th USENIX Conference on File and Storage Technologies (FAST ’16). February 22–25, 2016 • Santa Clara, CA, USA ISBN 978-1-931971-28-7 Open access to the Proceedings of the 14th USENIX Conference on File and Storage Technologies is sponsored by USENIX NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main Memories Jian Xu Steven Swanson University of California, San Diego Abstract Hybrid DRAM/NVMM storage systems present a host of opportunities and challenges for system designers. These sys- Fast non-volatile memories (NVMs) will soon appear on tems need to minimize software overhead if they are to fully the processor memory bus alongside DRAM. The result- exploit NVMM’s high performance and efficiently support ing hybrid memory systems will provide software with sub- more flexible access patterns, and at the same time they must microsecond, high-bandwidth access to persistent data, but provide the strong consistency guarantees that applications managing, accessing, and maintaining consistency for data require and respect the limitations of emerging memories stored in NVM raises a host of challenges. Existing file sys- (e.g., limited program cycles). tems built for spinning or solid-state disks introduce software Conventional file systems are not suitable for hybrid mem- overheads that would obscure the performance that NVMs ory systems because they are built for the performance char- should provide, but proposed file systems for NVMs either in- acteristics of disks (spinning or solid state) and rely on disks’ cur similar overheads or fail to provide the strong consistency consistency guarantees (e.g., that sector updates are atomic) guarantees that applications require.
    [Show full text]
  • Red Hat Enterprise Linux Openstack Platform on Inktank Ceph Enterprise
    Red Hat Enterprise Linux OpenStack Platform on Inktank Ceph Enterprise Cinder Volume Performance Performance Engineering Version 1.0 December 2014 100 East Davie Street Raleigh NC 27601 USA Phone: +1 919 754 4950 Fax: +1 919 800 3804 Linux is a registered trademark of Linus Torvalds. Red Hat, Red Hat Enterprise Linux and the Red Hat "Shadowman" logo are registered trademarks of Red Hat, Inc. in the United States and other countries. Dell, the Dell logo and PowerEdge are trademarks of Dell, Inc. Intel, the Intel logo and Xeon are registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. All other trademarks referenced herein are the property of their respective owners. © 2014 by Red Hat, Inc. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, V1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). The information contained herein is subject to change without notice. Red Hat, Inc. shall not be liable for technical or editorial errors or omissions contained herein. Distribution of modified versions of this document is prohibited without the explicit permission of Red Hat Inc. Distribution of this work or derivative of this work in any standard (paper) book form for commercial purposes is prohibited unless prior permission is obtained from Red Hat Inc. The GPG fingerprint of the [email protected] key is: CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E www.redhat.com 2 Performance Engineering Table of Contents 1 Executive Summary ........................................................................................
    [Show full text]
  • 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]
  • Perceptions of the Ancient Jews As a Nation in the Greek and Roman Worlds
    Perceptions of the Ancient Jews as a Nation in the Greek and Roman Worlds By Keaton Arksey A Thesis submitted to the Faculty of Graduate Studies of The University of Manitoba In partial fulfilment of the requirements of the degree of MASTER OF ARTS Department of Classics University of Manitoba Winnipeg Copyright © 2016 by Keaton Arksey Abstract The question of what made one Jewish in the ancient world remains a fraught topic for scholars. The current communis opinio is that Jewish communities had more in common with the Greeks and Romans than previously thought. Throughout the Diaspora, Jewish communities struggled with how to live amongst their Greco-Roman majority while continuing to practise their faith and thereby remain identifiably ‘Jewish’. To describe a unified Jewish identity in the Mediterranean in the period between 200 BCE and 200 CE is incorrect, since each Jewish community approached its identity in unique ways. These varied on the basis of time, place, and how the non-Jewish population reacted to the Jews and interpreted Judaism. This thesis examines the three major centres of Jewish life in the ancient world - Rome, Alexandria in Egypt, and Judaea - demonstrate that Jewish identity was remarkably and surprisingly fluid. By examining the available Jewish, Roman, and Greek literary and archaeological sources, one can learn how Jewish identity evolved in the Greco-Roman world. The Jews interacted with non-Jews daily, and adapted their neighbours’ practices while retaining what they considered a distinctive Jewish identity. Each chapter of this thesis examines a Jewish community in a different region of the ancient Mediterranean.
    [Show full text]
  • Cisco Telepresence Server 4.4(1.16) MR1 Open Source Documentation
    Open Source Used In Cisco TelePresence Server 4.4(1.16) MR1 Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on the Cisco website at www.cisco.com/go/offices. Text Part Number: 78EE117C99-139358573 Open Source Used In Cisco TelePresence Server 4.4(1.16) MR1 1 This document contains licenses and notices for open source software used in this product. With respect to the free/open source software listed in this document, if you have any questions or wish to receive a copy of any source code to which you may be entitled under the applicable free/open source license(s) (such as the GNU Lesser/General Public License), please contact us at [email protected]. In your requests please include the following reference number 78EE117C99-139358573 Contents 1.1 Brian Gladman's AES Implementation 11-01-11 1.1.1 Available under license 1.2 busybox 1.15.1 :15.el6 1.2.1 Available under license 1.3 Coreboot d9b5d897d7f05d0ee8f9411628b757beea990b4b 1.3.1 Available under license 1.4 curl and libcurl 7.44.0 :7.44.0 1.4.1 Available under license 1.5 dhcp 4.1.1-P1 1.5.1 Available under license 1.6 expat 2.2.0 1.6.1 Available under license 1.7 FatFS R0.05 1.7.1 Available under license 1.8 freetype 2.5.3 1.8.1 Available under license 1.9 fribidi 0.19.6 :1 1.9.1 Available under license 1.10 G.722 2.00 1.10.1 Available under license 1.11 HMAC n/a 1.11.1 Available under license 1.12 icelib f50dffe9820bb7e32ac7b9b1b1d19aa3431227a2 1.12.1 Available under license 1.13
    [Show full text]
  • Mac OS X Intro for UNIX Users
    Mac OS X An Introduction for UNIX Users Leon Towns-von Stauber, Occam's Razor Seattle BSD Users Group, October 2004 http://www.occam.com/osx/ X Contents Opening Remarks.............................3 Where Did Mac OS X Come From?.....5 What is Mac OS X?..........................13 A New Kind of UNIX........................25 A Different Kind of UNIX.................28 Why Use Mac OS X?.........................60 Resources.......................................63 Closing Remarks.............................67 X Opening Remarks 3 This is a technical introduction to Mac OS X, mainly targeted to experienced UNIX users for whom OS X is at least relatively new Some emphasis on comparisons with FreeBSD I'm assuming basic familiarity with operating system design Where I'm coming from: UNIX user and some-time admin since 1990 Full-time UNIX admin since 1995 NeXTstep user and admin since 1991 This presentation covers primarily Mac OS X 10.3.5 (Darwin 7.5) X Legal Notices 4 This presentation Copyright © 2003-2004 Leon Towns-von Stauber. All rights reserved. Trademark notices Apple®, Mac®, Macintosh®, Mac OS®, Aqua®, Finder™, Quartz™, Cocoa®, Carbon®, AppleScript®, Rendezvous™, Panther™, and other terms are trademarks of Apple Computer. See <http:// www.apple.com/legal/appletmlist.html>. NeXT®, NeXTstep®, OpenStep®, and NetInfo® are trademarks of NeXT Software. See <http://www.apple.com/legal/nexttmlist.html>. PowerPC™ is a trademark of International Business Machines. Java™ is a trademark of Sun Microsystems. Other trademarks are the property of their
    [Show full text]
  • A Brief History of Unix
    A Brief History of Unix Tom Ryder [email protected] https://sanctum.geek.nz/ I Love Unix ∴ I Love Linux ● When I started using Linux, I was impressed because of the ethics behind it. ● I loved the idea that an operating system could be both free to customise, and free of charge. – Being a cash-strapped student helped a lot, too. ● As my experience grew, I came to appreciate the design behind it. ● And the design is UNIX. ● Linux isn’t a perfect Unix, but it has all the really important bits. What do we actually mean? ● We’re referring to the Unix family of operating systems. – Unix from Bell Labs (Research Unix) – GNU/Linux – Berkeley Software Distribution (BSD) Unix – Mac OS X – Minix (Intel loves it) – ...and many more Warning signs: 1/2 If your operating system shows many of the following symptoms, it may be a Unix: – Multi-user, multi-tasking – Hierarchical filesystem, with a single root – Devices represented as files – Streams of text everywhere as a user interface – “Formatless” files ● Data is just data: streams of bytes saved in sequence ● There isn’t a “text file” attribute, for example Warning signs: 2/2 – Bourne-style shell with a “pipe”: ● $ program1 | program2 – “Shebangs” specifying file interpreters: ● #!/bin/sh – C programming language baked in everywhere – Classic programs: sh(1), awk(1), grep(1), sed(1) – Users with beards, long hair, glasses, and very strong opinions... Nobody saw it coming! “The number of Unix installations has grown to 10, with more expected.” — Ken Thompson and Dennis Ritchie (1972) ● Unix in some flavour is in servers, desktops, embedded software (including Intel’s management engine), mobile phones, network equipment, single-board computers..
    [Show full text]