Mach: a New Kernel Foundation for UNIX Development
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Vcf Pnw 2019
VCF PNW 2019 http://vcfed.org/vcf-pnw/ Schedule Saturday 10:00 AM Museum opens and VCF PNW 2019 starts 11:00 AM Erik Klein, opening comments from VCFed.org Stephen M. Jones, opening comments from Living Computers:Museum+Labs 1:00 PM Joe Decuir, IEEE Fellow, Three generations of animation machines: Atari and Amiga 2:30 PM Geoff Pool, From Minix to GNU/Linux - A Retrospective 4:00 PM Chris Rutkowski, The birth of the Business PC - How volatile markets evolve 5:00 PM Museum closes - come back tomorrow! Sunday 10:00 AM Day two of VCF PNW 2019 begins 11:00 AM John Durno, The Lost Art of Telidon 1:00 PM Lars Brinkhoff, ITS: Incompatible Timesharing System 2:30 PM Steve Jamieson, A Brief History of British Computing 4:00 PM Presentation of show awards and wrap-up Exhibitors One of the defining attributes of a Vintage Computer Festival is that exhibits are interactive; VCF exhibitors put in an amazing amount of effort to not only bring their favorite pieces of computing history, but to make them come alive. Be sure to visit all of them, ask questions, play, learn, take pictures, etc. And consider coming back one day as an exhibitor yourself! Rick Bensene, Wang Laboratories’ Electronic Calculators, An exhibit of Wang Labs electronic calculators from their first mass-market calculator, the Wang LOCI-2, through the last of their calculators, the C-Series. The exhibit includes examples of nearly every series of electronic calculator that Wang Laboratories sold, unusual and rare peripheral devices, documentation, and ephemera relating to Wang Labs calculator business. -
Unix Protection
View access control as a matrix Protection Ali Mashtizadeh Stanford University Subjects (processes/users) access objects (e.g., files) • Each cell of matrix has allowed permissions • 1 / 39 2 / 39 Specifying policy Two ways to slice the matrix Manually filling out matrix would be tedious • Use tools such as groups or role-based access control: • Along columns: • - Kernel stores list of who can access object along with object - Most systems you’ve used probably do this dir 1 - Examples: Unix file permissions, Access Control Lists (ACLs) Along rows: • dir 2 - Capability systems do this - More on these later. dir 3 3 / 39 4 / 39 Outline Example: Unix protection Each process has a User ID & one or more group IDs • System stores with each file: • 1 Unix protection - User who owns the file and group file is in - Permissions for user, any one in file group, and other Shown by output of ls -l command: 2 Unix security holes • user group other owner group - rw- rw- r-- dm cs140 ... index.html 3 Capability-based protection - Eachz}|{ groupz}|{ z}|{ of threez}|{ lettersz }| { specifies a subset of read, write, and execute permissions - User permissions apply to processes with same user ID - Else, group permissions apply to processes in same group - Else, other permissions apply 5 / 39 6 / 39 Unix continued Non-file permissions in Unix Directories have permission bits, too • Many devices show up in file system • - Need write permission on a directory to create or delete a file - E.g., /dev/tty1 permissions just like for files Special user root (UID 0) has all -
A Practical UNIX Capability System
A Practical UNIX Capability System Adam Langley <[email protected]> 22nd June 2005 ii Abstract This report seeks to document the development of a capability security system based on a Linux kernel and to follow through the implications of such a system. After defining terms, several other capability systems are discussed and found to be excellent, but to have too high a barrier to entry. This motivates the development of the above system. The capability system decomposes traditionally monolithic applications into a number of communicating actors, each of which is a separate process. Actors may only communicate using the capabilities given to them and so the impact of a vulnerability in a given actor can be reasoned about. This design pattern is demonstrated to be advantageous in terms of security, comprehensibility and mod- ularity and with an acceptable performance penality. From this, following through a few of the further avenues which present themselves is the two hours traffic of our stage. Acknowledgments I would like to thank my supervisor, Dr Kelly, for all the time he has put into cajoling and persuading me that the rest of the world might have a trick or two worth learning. Also, I’d like to thank Bryce Wilcox-O’Hearn for introducing me to capabilities many years ago. Contents 1 Introduction 1 2 Terms 3 2.1 POSIX ‘Capabilities’ . 3 2.2 Password Capabilities . 4 3 Motivations 7 3.1 Ambient Authority . 7 3.2 Confused Deputy . 8 3.3 Pervasive Testing . 8 3.4 Clear Auditing of Vulnerabilities . 9 3.5 Easy Configurability . -
System Calls System Calls
System calls We will investigate several issues related to system calls. Read chapter 12 of the book Linux system call categories file management process management error handling note that these categories are loosely defined and much is behind included, e.g. communication. Why? 1 System calls File management system call hierarchy you may not see some topics as part of “file management”, e.g., sockets 2 System calls Process management system call hierarchy 3 System calls Error handling hierarchy 4 Error Handling Anything can fail! System calls are no exception Try to read a file that does not exist! Error number: errno every process contains a global variable errno errno is set to 0 when process is created when error occurs errno is set to a specific code associated with the error cause trying to open file that does not exist sets errno to 2 5 Error Handling error constants are defined in errno.h here are the first few of errno.h on OS X 10.6.4 #define EPERM 1 /* Operation not permitted */ #define ENOENT 2 /* No such file or directory */ #define ESRCH 3 /* No such process */ #define EINTR 4 /* Interrupted system call */ #define EIO 5 /* Input/output error */ #define ENXIO 6 /* Device not configured */ #define E2BIG 7 /* Argument list too long */ #define ENOEXEC 8 /* Exec format error */ #define EBADF 9 /* Bad file descriptor */ #define ECHILD 10 /* No child processes */ #define EDEADLK 11 /* Resource deadlock avoided */ 6 Error Handling common mistake for displaying errno from Linux errno man page: 7 Error Handling Description of the perror () system call. -
Advanced Components on Top of a Microkernel
Faculty of Computer Science Institute for System Architecture, Operating Systems Group Advanced Components on Top of A Microkernel Björn Döbel What we talked about so far • Microkernels are cool! • Fiasco.OC provides fundamental mechanisms: – Tasks (address spaces) • Container of resources – Threads • Units of execution – Inter-Process Communication • Exchange Data • Timeouts • Mapping of resources TU Dresden, 2012-07-24 L4Re: Advanced Components Slide 2 / 54 Lecture Outline • Building a real system on top of Fiasco.OC • Reusing legacy libraries – POSIX C library • Device Drivers in user space – Accessing hardware resources – Reusing Linux device drivers • OS virtualization on top of L4Re TU Dresden, 2012-07-24 L4Re: Advanced Components Slide 3 / 54 Reusing Existing Software • Often used term: legacy software • Why? – Convenience: • Users get their “favorite” application on the new OS – Effort: • Rewriting everything from scratch takes a lot of time • But: maintaining ported software and adaptions also does not come for free TU Dresden, 2012-07-24 L4Re: Advanced Components Slide 4 / 54 Reusing Existing Software • How? – Porting: • Adapt existing software to use L4Re/Fiasco.OC features instead of Linux • Efficient execution, large maintenance effort – Library-level interception • Port convenience libraries to L4Re and link legacy applications without modification – POSIX C libraries, libstdc++ – OS-level interception • Wine: implement Windows OS interface on top of new OS – Hardware-level: • Virtual Machines TU Dresden, 2012-07-24 L4Re: -
微软郑宇:大数据解决城市大问题 18 更智能的家庭 19 微博拾粹 Weibo Highlights
2015年1月 第33期 P7 WWT: 数字宇宙,虚拟星空 P16 P12 带着微软坐过山车 P4 P10 1 微软亚洲研究院 2015年1月 第33期 以“开放”和“极客创新”精神铸造一个“新”微软 3 第十六届“二十一世纪的计算”学术研讨会成功举办 4 微软与清华大学联合举办2014年微软亚太教育峰会 5 你还记得一夜暴红的机器人小冰吗? 7 Peter Lee:带着微软坐过山车 10 计算机科学家周以真专访 12 WWT:数字宇宙,虚拟星空 16 微软郑宇:大数据解决城市大问题 18 更智能的家庭 19 微博拾粹 Weibo Highlights @微软亚洲研究院 官方微博精彩选摘 20 让虚拟世界更真实 22 4K时代,你不能不知道的HEVC 25 小冰的三项绝技是如何炼成的? 26 科研伴我成长——上海交通大学ACM班学生在微软亚洲研究院的幸福实习生活 28 年轻的心与渐行渐近的梦——记微软-斯坦福产品设计创新课程ME310 30 如何写好简历,找到心仪的暑期实习 32 微软研究员Eric Horvitz解读“人工智能百年研究” 33 2 以“开放”和“极客创新”精神 铸造一个“新”微软 爆竹声声辞旧岁,喜气洋“羊”迎新年。转眼间,这一 年的时光即将伴着哒哒的马蹄声奔驰而去。在这辞旧迎新的 时刻,我们怀揣着对技术改变未来的美好憧憬,与所有为推 动互联网不断发展、为人类科技进步不断奋斗的科技爱好者 一起,敲响新年的钟声。挥别2014,一起期盼那充满希望 的新一年! 即将辞行的是很不平凡的一年。这一年的互联网风起云 涌,你方唱罢我登场,比起往日的峥嵘有过之而无不及:可 穿戴设备和智能家居成为众人争抢的高地;人工智能在逐渐 触手可及的同时又引起争议不断;一轮又一轮创业大潮此起 彼伏,不断有优秀的新公司和新青年展露头角。这一年的微 软也在众人的关注下发生着翻天覆地的变化:第三任CEO Satya Nadella屡新,确定以移动业务和云业务为中心 的公司战略,以开放的姿态拥抱移动互联的新时代,发布新一代Windows 10操作系统……于我个人而言,这一 年,就任微软亚太研发集团主席开启了我20年微软旅程上的新篇章。虽然肩上的担子更重了,但心中的激情却 丝毫未减。 “开放”和“极客创新”精神是我们在Satya时代看到微软文化的一个演进。“开放”是指不固守陈规,不囿 于往日的羁绊,用户在哪里需要我们,微软的服务就去哪里。推出Office for iOS/Android,开源.Net都是“开放” 的“新”微软对用户做出的承诺。关于“极客创新”,大家可能都已经听说过“车库(Garage)”这个词了,当年比 尔∙盖茨最早就是在车库里开始创业的。2014年,微软在全球范围内举办了“极客马拉松大赛(Hackthon)”,并鼓 励员工在业余时间加入“微软车库”项目,将自己的想法变为现实。这一系列的举措都是希望激发微软员工的“极 客创新”精神,我们也欣喜地看到变化正在微软内部潜移默化地进行着。“微软车库”目前已经公布了一部分有趣 的项目,我相信,未来还会有更多让人眼前一亮的创新。 2015年,我希望微软亚洲研究院和微软亚太研发集团的同事能够保持和发扬“开放”和“极客创新”的精 神。我们一起铸造一个“新”微软,为用户创造更多的惊喜! 微软亚洲研究院院长 3 第十六届“二十一世纪的计算”学术研讨会成功举办 2014年10月29日由微软亚洲研究院与北京大学联合主办的“二 形图像等领域的突破:微软语音助手小娜的背后,蕴藏着一系列人 十一世纪的计算”大型学术研讨会,在北京大学举行。包括有“计 工智能技术;大数据和机器学习技术帮助我们更好地认识城市和生 算机科学领域的诺贝尔奖”之称的图灵奖获得者、来自微软及学术 -
Lecture Notes in Assembly Language
Lecture Notes in Assembly Language Short introduction to low-level programming Piotr Fulmański Łódź, 12 czerwca 2015 Spis treści Spis treści iii 1 Before we begin1 1.1 Simple assembler.................................... 1 1.1.1 Excercise 1 ................................... 2 1.1.2 Excercise 2 ................................... 3 1.1.3 Excercise 3 ................................... 3 1.1.4 Excercise 4 ................................... 5 1.1.5 Excercise 5 ................................... 6 1.2 Improvements, part I: addressing........................... 8 1.2.1 Excercise 6 ................................... 11 1.3 Improvements, part II: indirect addressing...................... 11 1.4 Improvements, part III: labels............................. 18 1.4.1 Excercise 7: find substring in a string .................... 19 1.4.2 Excercise 8: improved polynomial....................... 21 1.5 Improvements, part IV: flag register ......................... 23 1.6 Improvements, part V: the stack ........................... 24 1.6.1 Excercise 12................................... 26 1.7 Improvements, part VI – function stack frame.................... 29 1.8 Finall excercises..................................... 34 1.8.1 Excercise 13................................... 34 1.8.2 Excercise 14................................... 34 1.8.3 Excercise 15................................... 34 1.8.4 Excercise 16................................... 34 iii iv SPIS TREŚCI 1.8.5 Excercise 17................................... 34 2 First program 37 2.1 Compiling, -
Systems Corporation Pern SYSTEM OVERVIEW March 1984
o PERn Systems Corporation PERn SYSTEM OVERVIEW o March 1984 This manual is for use with POS Release G.5 and subsequent releases until further notice. Copyri9ht(C) 19B3, 19Bi PERC Systems Corporation 2600 Liberty Avenue P. O. Box 2600 Pittsbur9h, PA 15230 (HZ) 355-0900 o o This document is not to be reproduced in any fonn or transmitted in whole or in part, without the prior written authorization of PERQ Systems Corporation. o The information in this document is subject to change without notice and should not be construed as a commitment by PERQ Systems Corporation. The company assumes no responsibility for any errors that may appear in this document. PERQ Systems Corporation will make every effort to keep customers apprised of all documentation changes as quickly as possible. The Reader's Comments card is distributed with this document to request users' critical evaluation to assist us in preparing future documentation. PERQ and PEROZ are trademarks of PERQ Systems Corporation. o - ii - --~---- ----------- PREFACE January 15, 1984 o PREFACE This manual is intended for new users of PERQ and PERQ2. The manual will familiarize you with the machines and get you started using either system. As you learn more about your system, you will find that it provides you with many facilities, both conveniences and necessities. This manual consists of three chapters. Chapter One describes the method to turn the system on and the bootstrap process. Chapter Two describes the PERQ and PERQ2 hardware. Chapter Three discusses the basic operation of the system software. Distinctions between the PERQ and PERQ2 are explicit. -
Operating System Support for Redundant Multithreading
Operating System Support for Redundant Multithreading Dissertation zur Erlangung des akademischen Grades Doktoringenieur (Dr.-Ing.) Vorgelegt an der Technischen Universität Dresden Fakultät Informatik Eingereicht von Dipl.-Inf. Björn Döbel geboren am 17. Dezember 1980 in Lauchhammer Betreuender Hochschullehrer: Prof. Dr. Hermann Härtig Technische Universität Dresden Gutachter: Prof. Frank Mueller, Ph.D. North Carolina State University Fachreferent: Prof. Dr. Christof Fetzer Technische Universität Dresden Statusvortrag: 29.02.2012 Eingereicht am: 21.08.2014 Verteidigt am: 25.11.2014 FÜR JAKOB *† 15. Februar 2013 Contents 1 Introduction 7 1.1 Hardware meets Soft Errors 8 1.2 An Operating System for Tolerating Soft Errors 9 1.3 Whom can you Rely on? 12 2 Why Do Transistors Fail And What Can Be Done About It? 15 2.1 Hardware Faults at the Transistor Level 15 2.2 Faults, Errors, and Failures – A Taxonomy 18 2.3 Manifestation of Hardware Faults 20 2.4 Existing Approaches to Tolerating Faults 25 2.5 Thesis Goals and Design Decisions 36 3 Redundant Multithreading as an Operating System Service 39 3.1 Architectural Overview 39 3.2 Process Replication 41 3.3 Tracking Externalization Events 42 3.4 Handling Replica System Calls 45 3.5 Managing Replica Memory 49 3.6 Managing Memory Shared with External Applications 57 3.7 Hardware-Induced Non-Determinism 63 3.8 Error Detection and Recovery 65 4 Can We Put the Concurrency Back Into Redundant Multithreading? 71 4.1 What is the Problem with Multithreaded Replication? 71 4.2 Can we make Multithreading -
High Velocity Kernel File Systems with Bento
High Velocity Kernel File Systems with Bento Samantha Miller, Kaiyuan Zhang, Mengqi Chen, and Ryan Jennings, University of Washington; Ang Chen, Rice University; Danyang Zhuo, Duke University; Thomas Anderson, University of Washington https://www.usenix.org/conference/fast21/presentation/miller This paper is included in the Proceedings of the 19th USENIX Conference on File and Storage Technologies. February 23–25, 2021 978-1-939133-20-5 Open access to the Proceedings of the 19th USENIX Conference on File and Storage Technologies is sponsored by USENIX. High Velocity Kernel File Systems with Bento Samantha Miller Kaiyuan Zhang Mengqi Chen Ryan Jennings Ang Chen‡ Danyang Zhuo† Thomas Anderson University of Washington †Duke University ‡Rice University Abstract kernel-level debuggers and kernel testing frameworks makes this worse. The restricted and different kernel programming High development velocity is critical for modern systems. environment also limits the number of trained developers. This is especially true for Linux file systems which are seeing Finally, upgrading a kernel module requires either rebooting increased pressure from new storage devices and new demands the machine or restarting the relevant module, either way on storage systems. However, high velocity Linux kernel rendering the machine unavailable during the upgrade. In the development is challenging due to the ease of introducing cloud setting, this forces kernel upgrades to be batched to meet bugs, the difficulty of testing and debugging, and the lack of cloud-level availability goals. support for redeployment without service disruption. Existing Slow development cycles are a particular problem for file approaches to high-velocity development of file systems for systems. -
Moving FLASK to BSD Systems
MovingMoving FLASKFLASK toto BSDBSD SSystemsystems SELinux Symposium 2006 Chris Vance Information Systems Security Operation, SPARTA, Inc. Vance_20060301_01 Overview • Security Frameworks • A Brief History • SELinux Inspired… – Security Enhanced BSD – Security Enhanced Darwin Vance_20060301_02 Security Frameworks • Traditional UNIX security isn’t enough – OS hardening – Mandatory protection – Flexible, manageable, scalable protection • Support required in the operating system for new security services – Costs of locally maintaining security extensions are high – Framework offers extensibility so that policies may be enhanced without changing the base operating system • There does not appear to be one perfect security model or policy – Sites may have different security/performance trade-offs – Sites may have special local requirements – Vendors unlikely to adopt a single policy • Bottom Line: Frameworks for Linux, FreeBSD, Darwin Vance_20060301_03 How We Got Here… Vance_20060301_04 Focus and Reuse • Don’t “reinvent” security – Learn from the past – The research is often decades old – A good design is durable, doesn’t require constant change – FLASK hasn’t changed much recently, what’s that mean? • Leverage existing technology, focus on “new” issues – Focus on improving operating system security – Spend the time to get Frameworks correct – Work with vendor for acceptance – Develop rule sets that work – Develop effective tools to manage policy • Do innovate – Don’t stop thinking! – Don’t squash new ideas – Re-factor old ideas Vance_20060301_05 -
Operating System Structure
Operating System Structure Joey Echeverria [email protected] modified by: Matthew Brewer [email protected] Nov 15, 2006 Carnegie Mellon University: 15-410 Fall 2006 Overview • Motivations • Kernel Structures – Monolithic Kernels ∗ Kernel Extensions – Open Systems – Microkernels – Exokernels – More Microkernels • Final Thoughts Carnegie Mellon University: 15-410 Fall 2006 1 Motivations • Operating systems have a hard job. • Operating systems are: – Hardware Multiplexers – Abstraction layers – Protection boundaries – Complicated Carnegie Mellon University: 15-410 Fall 2006 2 Motivations • Hardware Multiplexer – Each process sees a “computer” as if it were alone – Requires allocation and multiplexing of: ∗ Memory ∗ Disk ∗ CPU ∗ IO in general (network, graphics, keyboard etc.) • If OS is multiplexing it must also allocate – Priorities, Classes? - HARD problems!!! Carnegie Mellon University: 15-410 Fall 2006 3 Motivations • Abstraction Layer – Presents “simple”, “uniform” interface to hardware – Applications see a well defined interface (system calls) ∗ Block Device (hard drive, flash card, network mount, USB drive) ∗ CD drive (SCSI, IDE) ∗ tty (teletype, serial terminal, virtual terminal) ∗ filesystem (ext2-4, reiserfs, UFS, FFS, NFS, AFS, JFFS2, CRAMFS) ∗ network stack (TCP/IP abstraction) Carnegie Mellon University: 15-410 Fall 2006 4 Motivations • Protection Boundaries – Protect processes from each other – Protect crucial services (like the kernel) from process – Note: Everyone trusts the kernel • Complicated – See Project 3 :) – Full