Proceedings of 3Rd International Workshop on Plan 9 October 30-31, 2008

Total Page:16

File Type:pdf, Size:1020Kb

Proceedings of 3Rd International Workshop on Plan 9 October 30-31, 2008 Proceedings of 3rd International Workshop on Plan 9 October 30-31, 2008 Computer and Communication Engineering Department University of Thessaly Volos, Greece Organization Organizing Committee Spyros Lalis, University of Thessaly Manos Koutsoumpelias, University of Thessaly Francisco Ballesteros, Universidad Rey Juan Carlos de Madrid Sape Mullender, Bell Labs, Alcatel-Lucent Program Committee Richard Miller (chair), Miller Research Ltd. Peter Bosch, Bell Labs, Alcatel-Lucent Geoff Collyer, Bell Labs, Alcatel-Lucent Latchesar Ionkov, Los Alamos National Laboratory Paul Lalonde, Intel Corp. Eric Nichols, Nara Institute of Science and Technology Brantley Coile, Coraid Inc. Charles Forsyth, Vita Nuova Ltd. Table of Contents Glendix: A Plan9/Linux Distribution Anant Narayanan, Shantanu Choudhary, Vinay Pamarthi and Manoj Gaur..........................................1 Upperware: Pushing the Applications Back Into the System Gorka Guardiola, Francisco J. Ballesteros and Enrique Soriano..........................................................9 Scaling Upas Erik Quanstrom....................................................................................................................................19 Vidi: A Venti To Go Latchesar Ionkov..................................................................................................................................25 Inferno DS : Inferno port to the Nintendo DS Salva Peiro...........................................................................................................................................31 9P For Embedded Devices Bruce Ellis and Tiger Ellis.....................................................................................................................39 Mrph: A Morphological Analyzer Noah Evans..........................................................................................................................................43 Semaphores in Plan 9 Sape Mullender and Russ Cox.............................................................................................................53 v9fb: A Remote Framebuffer Infrastructure for Linux Abhishek Kulkarni and Latchesar Ionkov..............................................................................................63 Glendix: A Plan9/Linux Distribution Anant Narayanan Shantanu Choudhary Vinay K. Pamarthi Manoj S. Gaur !=#=LEO=(=JE*+=#1+IJEJKJA*B6A?D+*#*CO56=EFKH51+@E= )*564)+6 9A @AI?HE>A *KH =FFH*=?D *B >HE+CE+C JDA 2#=+ ' KIAHIF=?A J* JDA CE+KN EAH+A# E+ *H@AH J* IFHA=@ JDA KIA *B 2#=+ ' J**#I =F*+CIJ JDA CE+KN@ALA#G *FAH?*FFK+EJOH 1. Introduction /(7KCE+KN EI = F*FK#=H BHAA *FAH=JE+C IOIJAF E+ KIA J*@=OH /(7KCE+KN IJHELAI J* >A IJHE?J#O ?*FF#E=+J MEJD 2M51: IJ=+@=H@I5 =+@ EI JDKI JEA@ @*M+ MEJD IALAH=# HAGKEHAG FA+JI =+@ JDAHA>O ?A=IAI J* >A E++*L=JELA =I B=H =I *FAH=JE+C IOIJAF @AIEC+ EI ?*+G ?AH+A@H 2#=+ ' PR5 *+ JDA *JDAH D=+@5 M=I @AIEC+A@ J* >A = BH*FSI?H=J?D IK??AII*H J* 7(1:H 6DA 2#=+ ' *FAH=JE+C IOIJAF *BBAHI IALAH=# +AM BA=JKHAI JD=J =HA LAHO ?*FFA##E+C J*=@ALA#*FAHE+J*@=OߣIAH=*B*BFAHI*+=#?*FFKJE+CH 6DA 2#=+ ' EAH+A#5 D*MALAH5 IKFF*HJI *+#O = >=HA FE+EFKF *B D=H@M=HAH 6D=J EI *+A *B JDA FHEF=HO HA=I*+I *B EJI K+F*FK#=HEJO B*H @=OSJ*S@=O KIAH 6DA CE+KN EAH+A#5 *+ JDA *JDAH D=+@5 D=I D=@ OA=HI *B @ALA#*FFA+J >ADE+@ EJ5 =+@ A+T*OI JDA IKFF*HJ *B IALAH=# D=H@M=HA?*FF*+A+JI=+@@ALA#*FAHI=#EEAH 9A FH*F*IA /#A+@EN5 = CA+AH=# FKHF*IA *FAH=JE+C IOIJAF JD=J =EFI J* ?*F>E+A JDA 2#=+ ' KIAHIF=?A MEJD JDA CE+KN EAH+A#5 J* *BBAH J*@=OߣI @ALA#*FAH =+ AN?EJE+C A+LEH*+G FA+JB*H=FF#E?=JE*+@ALA#*FFA+J*+FAHI*+=#?*FFKJAHI=+@AF>A@@A@IOIJAFI=#EEAH 6DA FHEF=HO F*JEL=JE+C B=?J*H DAHA EI J* FH*F*JA JDA 2#=+ ' IJO#A *B =FF#E?=JE*+ @ALA#*FG FA+J J* JDA #=HCA >=IA *B @ALA#*FAHI JD=J CE+KN =#HA=@O D=IH ) IA?*+@=HO B=?J*H EI J* A#EFE+=JA JDA +AA@ B*H GNU P R >=IA@ KIAHIF=?A I*BJM=HA5 >O HAF#=?E+C JDAF MEJD JDAEH #ECDJMAECDJ 2#=+ ' ?*K+JAHF=HJI5 MDE?D =HA TKIJ =I BK+?JE*+=# =+@ F*HJ=>#AH 6DA HAIK#JE+C @EIJHE>KJE*+M*K#@>A=#ECDJMAECDJCE+KN>=IA@*FAH=JE+CIOIJAFH 1+ JDEI F=FAH5 MA @AI?HE>A JDA =FFH*=?D J=EA+ >O KI J* ?HA=JA /#A+@ENH 9A >ACE+ MEJD = HALEAM *B JDA @EBBAHA+J =FFH*=?DAI F*IIE>#A5 =+@ JDA+ @AI?HE>A JDA ?D*IA+ FAJD*@*#*CO5 =#*+C MEJD IEC+EBE?=+J ?D=##A+CAI =+@ D*M MA *LAH?=FA JDAFH 9A ?*+G ?#K@AMEJD=IKFF=HO*BMD=JD=I>AA+@*+AI*B=H=+@=BAM+*JAI*+BKJKHAM*HEH 2. Review .H*F = >H*=@ FAHIFA?JELA5 JDAHA =HA JM* EE+@I *B ?*FF=JE>E#EJO MA ?=+ ?HA=JA >AJMAA+ FH*CH=FI *+ 2#=+ ' =+@ CE+KNH 1+ JDEI IA?JE*+5 MA @EI?KII I*KH?A =+@ >E+=HO ?*FF=JE>E#G EJO5=+@MD=JJDAOFA=+E+JDA?*+JANJ*B/#A+@ENH __________________ {[email protected],[email protected],[email protected],[email protected]} 1 2.1. Source compatibility 2#=+'BH*F7IAH5F=?A=#I*E+*M+=I plan9port) P!REI=+ANEIJE+CI*BJM=HAF=?EG =CA B*H 2M51: ?*FF#E=+J *FAH=JE+C IOIJAFI JD=J ?*+IEIJI *B F*HJI *B IALAH=# 2#=+ ' =FF#EG ?=JE*+IH 9DE#A F*IJ *B 2#=+ 'ߣI #E>H=HEAI D=LA =#I* >AA+ F*HJA@5 JDA I*#KJE*+ EI +*J ?*FG F#AJA#O FAHBA?JH .*H AN=FF#A5 J=EE+C JDA I*KH?A B*H = 2#=+ ' FH*CH=F =+@ HA?*FFE#E+C EJ KIE+C plan9port F=O+*JHAIK#JE+?*HHA?J#OM*HEE+C>E+=HEAI=##JDAJEFAH M+A *B JDA =FFH*=?DAI MA HALEAMA@ A=H#O *+ @KHE+C JDA FH*TA?J M=I LAHO IEFE#=H J* plan9port. 6DA F*IJ IEC+EBE?=+J =@L=+J=CA B*H JDEI =FFH*=?D EI JD=J 2#=+ ' =FF#E?=JE*+I ?=+>AHK+*+=L=HEAJO*B7(1:?#*+AI+*JTKIJCE+KN=BJAH=HA?*FFE#AH 0*MALAH5 JDEI M*K#@ HAGKEHA KI J* MHEJA 2M51: AGKEL=#A+JI *B =## JDA 2#=+ ' #E>H=HEAI5 MDE?D IAAFA@ #EEA = IJAF >=?EM=H@H 6DA =@@EJE*+=# ?*+IJH=E+J *B D=LE+C J* HA?*FFE#A JDA FH*CH=F B*H A=?D J=HCAJ A+LEH*+FA+J M=I +*J LAHO =FFA=#E+C MD=J EB JDA I*KH?AI MAHA +*J=L=E#=>#A\5=+@JDKIMA?D*IAJ*HATA?JJDEI=FFH*=?DH 2.2. Binary compatibility ) F*HA =FFA=#E+C I*#KJE*+ M=I J* =?DEALA >E+=HOS#ALA# ?*FF=JE>E#EJO *B =## 2#=+ ' =FF#E?=JE*+IH 6DA F=+JH= DAHA M=I compile−once−execute−everywhere. 9A M=+JA@ J* A+IKHA JD=J EJ M*K#@+ߣJ F=JJAH MDAHA JDA FH*CH=F M=I ?*FFE#A@5 EJ ID*K#@ HK+ =I ANFA?JA@*+>*JD2#=+'=+@CE+KNH 9DE#AJDEI =FFH*=?D IAAFI E@A=#5 JDA CE+KN EAH+A# FH*LE@AI JDA ?=F=>E#EJO J* IKFF*HJ +AM >E+=HO B*HF=JI5 IK?D =I 2#=+ 'ߣI a.out. 1+ *H@AH B*H JDEI =FFH*=?D J* M*HE5 MA D=LA J* F=EA CE+KN >AD=LA AN=?J#O =I = 2#=+ ' EAH+A# M*K#@5 =I B=H =I =FF#E?=JE*+I =HA ?*+G ?AH+A@H 6DAHA =HA JM* FHEF=HO ?D=++A#I B*H =+ =FF#E?=JE*+ J* =??AII BK+?JE*+=#EJO FH*G LE@A@ >O JDA 2#=+ ' EAH+A#] IOIJAF ?=##I =+@ BE#A IAHLAHIH 1B MA MAHA J* FH*LE@A IKEJ=>#A EFF#AFA+J=JE*+I *B >*JD E+ JDA CE+KN EAH+A#5 KIAHIF=?A =FF#E?=JE*+I ID*K#@ >A *>#ELE*KI J* JDA B=?J JD=J JDA K+@AH#OE+C EAH+A# EI CE+KN =+@ +*J 2#=+ '5 MDE?D EI AN=?J#O MD=J MA M=+JH 9A @A?E@A@ J* =@*FJ JDEI =FFH*=?D >A?=KIA EJ M=I E+JAHAIJE+C =+@ IAAFA@ J* =?DEALA*KHIJ=JA@C*=#IE+=?#A=+F=++AHH 3. Methodology 1+ JDEI IA?JE*+ MA @EI?KII JDA EFF#AFA+J=JE*+ @AJ=E#I *B =+ a.out >E+=HO #*=@AH B*H CE+KN=+@2#=+'IJO#AIOIJAF?=##D=+@#E+CH 3.1. Loader 9A ME## +*J @AI?HE>A JDA IJHK?JKHA *B = 2#=+ ' ANA?KJ=>#A5 MDE?D EI =#HA=@O @*?KG FA+JA@ P"R E+ a.out#H CE+KN =#HA=@O IKFF*HJI = L=HEAJO *B ANA?KJ=>#AI S H=+CE+C BH*F -C.JDA+=JELACE+KNANA?KJ=>#AB*HF=JJ*+M..H 0A+?A5JDAB*K+@=JE*+B*H=@@E+CIKFG F*HJ B*H = +AM ANA?KJ=>#A B*HF=J D=@ =#HA=@O >AA+ #=E@5 MA IEFF#O D=@ J* KIA JDA J**#I JD=JJDAEAH+A#*BBAHA@KIH M+A *B JDA H*#AI JD=J EAH+A# F*@K#AI ?=+ =??*FF#EID EI =@@E+C +AM >E+=HO B*HF=JI J* = HK++E+C IOIJAF5 I* MA ?D*IA J* MHEJA = EAH+A# F*@K#A B*H JDA 2#=+ ' ANA?KJ=>#A B*HF=JH 6DA IE+C#A >ECCAIJ =@L=+J=CA *B MHEJE+C = EAH+A# F*@K#A B*H JDEI FKHF*IA EI JD=J MA @E@+ߣJ D=LA J* HA?*FFE#A JDA EAH+A# =+@ HA>**J ALAHO JEFA MA F=@A = ?D=+CA J* JDA #*=@AHSJD=+EIJ*CE+KNߣI@O+=FE?F*@K#A#*=@E+CKK+#*=@E+CB=?E#EJEAIH CAJߣI J=EA = #**E =J D*M JDA exec IOIJAF ?=## EI EFF#AFA+JA@ E+ CE+KN5 >A?=KIA JD=J EI ?A+JH=# J* *KH *>TA?JELAH 6DA A+JHO F*E+J *B exec #ELAI E+ JDA =H?DEJA?JKHAS@AFA+@A+J JHAA*BJDAI*KH?ABE#AI5>KJ=##JDAE+JAHAIJE+C?*@AEIF=HJ*B fs/exec.c. 6DAJ*F#ALA# BK+?JE*+5 do_execve(), FAHB*HFI I*FA >=IE? AHH*H ?DA?EE+C5 BE##I JDA >E+=HO F=H=FG AJAH IJHK?JKHA linux_binprm =+@ #**EI B*H = IKEJ=>#A >E+=HO D=+@#AHH 6DA #=IJ IJAF EI FAHB*HFA@ >O = IAFAH=JA BK+?JE*+ search_binary_handler(), 6DA BK+?JE*+ BE+@I 2 JDA =FFH*FHE=JA >E+=HO D=+@#AH >O I?=++E+C = #EIJ *B HACEIJAHA@ >E+=HO B*HF=JI5 =+@ F=IIG E+C JDA binprm IJHK?JKHA J* =## *B JDAF K+JE# *+A IK??AA@IH 1B +* D=+@#AH EI =>#A J* @A=#MEJDJDAANA?KJ=>#ABE#A5JDAIOIJAF?=##HAJKH+IJDA ENOEXEC AHH*H?*@AH CE+KN EI =#I* ?*FF=JE>#A MEJD JDA IJ=+@=H@ 7+EN >AD=LE*H *B IKFF*HJE+C ANA?JK=>#A JANJ BE#AI JD=J >ACE+ MEJD #!.
Recommended publications
  • Venti Analysis and Memventi Implementation
    Master’s thesis Venti analysis and memventi implementation Designing a trace-based simulator and implementing a venti with in-memory index Mechiel Lukkien [email protected] August 8, 2007 Committee: Faculty of EEMCS prof. dr. Sape J. Mullender DIES, Distributed and Embedded Systems ir. J. Scholten University of Twente ir. P.G. Jansen Enschede, The Netherlands 2 Abstract [The next page has a Dutch summary] Venti is a write-once content-addressed archival storage system, storing its data on magnetic disks: each data block is addressed by its 20-byte SHA-1 hash (called score). This project initially aimed to design and implement a trace-based simula- tor matching Venti behaviour closely enough to be able to use it to determine good configuration parameters (such as cache sizes), and for testing new opti- misations. A simplistic simulator has been implemented, but it does not model Venti behaviour accurately enough for its intended goal, nor is it polished enough for use. Modelled behaviour is inaccurate because the advanced optimisations of Venti have not been implemented in the simulator. However, implementation suggestions for these optimisations are presented. In the process of designing the simulator, the Venti source code has been investigated, the optimisations have been documented, and disk and Venti per- formance have been measured. This allowed for recommendations about per- formance, even without a simulator. Beside magnetic disks, also flash memory and the upcoming mems-based storage devices have been investigated for use with Venti; they may be usable in the near future, but require explicit support. The focus of this project has shifted towards designing and implementing memventi, an alternative implementation of the venti protocol.
    [Show full text]
  • Java Implementation of the Graphical User Interface of the Octopus Distributed Operating System
    Java implementation of the graphical user interface of the Octopus distributed operating system Submitted by Aram Sadogidis Advisor Prof. Spyros Lalis University of Thessaly Volos, Greece October 2012 Acknowledgements I am sincerely grateful for all the people that supported me during my Uni- versity studies. Special thanks to professor Spyros Lalis, my mentor, who had decisive influence in shaping my character as an engineer. Also many thanks to my family and friends, whose support all these years, encouraged me to keep moving forward. 1 Contents 1 Introduction 4 2 System software technologies 6 2.1 Inferno OS . 6 2.2 JavaSE and Android framework . 8 2.3 Synthetic file systems . 10 2.3.1 Styx . 10 2.3.2 Op . 12 3 Octopus OS 14 3.1 UpperWare architecture . 14 3.2 Omero, a filesystem based window system . 16 3.3 Olive, the Omero viewer . 19 3.4 Ox, the Octopus shell . 21 4 Java Octopus Terminal 23 4.1 JOlive . 24 4.2 Desktop version . 25 4.2.1 Omero package . 26 4.2.2 ui package . 27 4.3 Android version . 28 4.3.1 com.jolive.Omero . 28 4.3.2 com.jolive.ui . 29 4.3.3 Pull application's UI . 30 5 Future perspective 33 5.1 GPS resources . 33 5.2 JOp . 34 5.3 Authentication device . 34 5.4 Remote Voice commander . 34 5.5 Conclusion . 35 6 Thesis preview in Greek 38 2 List of Figures 2.1 An application operates on a synthetic file as if it is a disk file, effectively communicating with a synthetic file system server.
    [Show full text]
  • Persistent 9P Sessions for Plan 9
    Persistent 9P Sessions for Plan 9 Gorka Guardiola, [email protected] Russ Cox, [email protected] Eric Van Hensbergen, [email protected] ABSTRACT Traditionally, Plan 9 [5] runs mainly on local networks, where lost connections are rare. As a result, most programs, including the kernel, do not bother to plan for their file server connections to fail. These programs must be restarted when a connection does fail. If the kernel’s connection to the root file server fails, the machine must be rebooted. This approach suffices only because lost connections are rare. Across long distance networks, where connection failures are more common, it becomes woefully inadequate. To address this problem, we wrote a program called recover, which proxies a 9P session on behalf of a client and takes care of redialing the remote server and reestablishing con- nection state as necessary, hiding network failures from the client. This paper presents the design and implementation of recover, along with performance benchmarks on Plan 9 and on Linux. 1. Introduction Plan 9 is a distributed system developed at Bell Labs [5]. Resources in Plan 9 are presented as synthetic file systems served to clients via 9P, a simple file protocol. Unlike file protocols such as NFS, 9P is stateful: per-connection state such as which files are opened by which clients is maintained by servers. Maintaining per-connection state allows 9P to be used for resources with sophisticated access control poli- cies, such as exclusive-use lock files and chat session multiplexers. It also makes servers easier to imple- ment, since they can forget about file ids once a connection is lost.
    [Show full text]
  • HTTP-FUSE Xenoppix
    HTTP-FUSE Xenoppix Kuniyasu Suzaki† Toshiki Yagi† Kengo Iijima† Kenji Kitagawa†† Shuichi Tashiro††† National Institute of Advanced Industrial Science and Technology† Alpha Systems Inc.†† Information-Technology Promotion Agency, Japan††† {k.suzaki,yagi-toshiki,k-iijima}@aist.go.jp [email protected], [email protected] Abstract a CD-ROM. Furthermore it requires remaking the entire CD-ROM when a bit of data is up- dated. The other solution is a Virtual Machine We developed “HTTP-FUSE Xenoppix” which which enables us to install many OSes and ap- boots Linux, Plan9, and NetBSD on Virtual plications easily. However, that requires in- Machine Monitor “Xen” with a small bootable stalling virtual machine software. (6.5MB) CD-ROM. The bootable CD-ROM in- cludes boot loader, kernel, and miniroot only We have developed “Xenoppix” [1], which and most part of files are obtained via Internet is a combination of CD/DVD bootable Linux with network loopback device HTTP-FUSE “KNOPPIX” [2] and Virtual Machine Monitor CLOOP. It is made from cloop (Compressed “Xen” [3, 4]. Xenoppix boots Linux (KNOP- Loopback block device) and FUSE (Filesys- PIX) as Host OS and NetBSD or Plan9 as Guest tem USErspace). HTTP-FUSE CLOOP can re- OS with a bootable DVD only. KNOPPIX construct a block device from many small block is advanced in automatic device detection and files of HTTP servers. In this paper we describe driver integration. It prepares the Xen environ- the detail of the implementation and its perfor- ment and Guest OSes don’t need to worry about mance. lack of device drivers.
    [Show full text]
  • Bell Labs, the Innovation Engine of Lucent
    INTERNSHIPS FOR RESEARCH ENGINEERS/COMPUTER SCIENTISTS BELL LABS DUBLIN (IRELAND) – BELL LABS STUTTGART (GERMANY) Background Candidates are expected to have some experience related to the following topics: Bell Laboratories is a leading end-to-end systems and • Operating systems, virtualisation and computer solutions research lab working in the areas of cloud architectures. and distributed computing, platforms for real-time • big-data streaming and analytics, wireless networks, Software development skills (C/C++, Python). • semantic data access, services-centric operations and Computer networks and distributed systems. thermal management. The lab is embedded in the • Optimisation techniques and algorithms. great traditions of the Bell Labs systems research, in- • Probabilistic modelling of systems performance. ternationally renowned as the birthplace of modern The following skills or interests are also desirable: information theory, UNIX, the C/C++ programming • languages, Awk, Plan 9 from Bell Labs, Inferno, the Experience with OpenStack or OpenNebula or Spin formal verification tool, and many other sys- other cloud infrastructure management software. • tems, languages, and tools. Kernel-level programming (drivers, scheduler,...). • Xen, KVM and Linux scripting/administration. We offer summer internships in our Cloud • Parallel and distributed systems programming Computing team, spread across the facilities in Dublin (Ireland) and Stuttgart (Germany), focusing (MPI, OpenMP, CUDA, MapReduce, StarSs, …). • on research enabling future cloud
    [Show full text]
  • Shared Name Spaces
    Shared Name Spaces Geoff Collyer (geoff@collyer.net) Russ Cox ([email protected]) Bruce Ellis ([email protected]) Fariborz “Skip” Tavakkolian ([email protected]) ABSTRACT One of the strengths of the Plan 9 operating system[4] is its ability to multiplex name spaces efficiently. Another key Plan 9 concept is the 9P[5] file protocol, and its uniform application to all resources – stored files and devices. The Shared Name Space system is a technique to dynamically manage name spaces exported by a group of users into an aggregate name space, and reflect it back to each group member. The net effect is a mechanism for providing a virtual network service that competes favorably with peer-to- peer networks, or central-storage file sharing and has advantages over both. Although currently the only resources that are sharable are stored files, the system allows sharing of other types of resources in the future. These would include mouse, keyboard, and display, making services such as remote desktop access or on-line collaboration and conferencing possible. The RangboomTM Adhoc Virtual Networks1 service is a commercial endeavor based on this technology. It provides remote file access and file sharing service to broadband Internet users. It is initially targeted for devices running Microsoft Windows, Linux and Mac OS X. 1. Preface The problem that Shared Name Space addresses is how a typical user is able to securely access his/her resources or discover and use resources belonging to a group over the Internet. As the adoption of broadband access increases, as the ratio of computing devices per user increases and as the Internet users become more savvy, there is an increasing need for and expectation of ubiquitous access to all resources on all personal electronics, from any other.
    [Show full text]
  • Plan 9 from Bell Labs
    Plan 9 from Bell Labs “UNIX++ Anyone?” Anant Narayanan Malaviya National Institute of Technology FOSS.IN 2007 What is it? Advanced technology transferred via mind-control from aliens in outer space Humans are not expected to understand it (Due apologies to lisperati.com) Yeah Right • More realistically, a distributed operating system • Designed by the creators of C, UNIX, AWK, UTF-8, TROFF etc. etc. • Widely acknowledged as UNIX’s true successor • Distributed under terms of the Lucent Public License, which appears on the OSI’s list of approved licenses, also considered free software by the FSF What For? “Not only is UNIX dead, it’s starting to smell really bad.” -- Rob Pike (circa 1991) • UNIX was a fantastic idea... • ...in it’s time - 1970’s • Designed primarily as a “time-sharing” system, before the PC era A closer look at Unix TODAY It Works! But that doesn’t mean we don’t develop superior alternates GNU/Linux • GNU’s not UNIX, but it is! • Linux was inspired by Minix, which was in turn inspired by UNIX • GNU/Linux (mostly) conforms to ANSI and POSIX requirements • GNU/Linux, on the desktop, is playing “catch-up” with Windows or Mac OS X, offering little in terms of technological innovation Ok, and... • Most of the “modern ideas” we use today were “bolted” on an ancient underlying system • Don’t believe me? A “modern” UNIX Terminal Where did it go wrong? • Early UNIX, “everything is a file” • Brilliant! • Only until people started adding “features” to the system... Why you shouldn’t be working with GNU/Linux • The Socket API • POSIX • X11 • The Bindings “rat-race” • 300 system calls and counting..
    [Show full text]
  • (Brief) 2. an Extensible Compiler for Systems Programming
    Show and Tell 1. Plan 9 Things (brief) 2. An Extensible Compiler for Systems Programming Russ Cox rsc@plan9 1127 Show and Tell April 19, 2005 who am i ................................................................................................................. ‘‘Neighborhood kid’’ 1995 summer hacking Excel (jlb) 1995-1997 cable modems (nls, tom) 1997-1999 annoying Plan 9 user 1999 summer doing Plan 9 graphics (rob, jmk) 1999-present assorted Plan 9 hacking Plan 9 Things ........................................................................................................ VBE ߝ use BIOS to set up VGA modes ߝ requires switching into real mode and back Venti ߝ reworked significantly ߝ aggressive caching, prefetching, batching, delayed writes ߝ Bloom filter to avoid index misses Plan 9 from User Space (plan9port) ߝ port bulk of Plan 9 software to Unix systems ߝ Linux, FreeBSD, NetBSD, SunOS, Mac OS X .................................................................................................................................... An Extensible Compiler for Systems Programming Russ Cox Frans Kaashoek Eddie Kohler [email protected] Outline ..................................................................................................................... Why bother? What could it do? How could it work? Ground rules: ߝ interrupt with questions ߝ work in progress ߝ show and tell, not a job talk Man vs. Machine ߝ Linguistic Tensions ................................................... The most important readers of a program are people.
    [Show full text]
  • The Effectiveness of Deduplication on Virtual Machine Disk Images
    The Effectiveness of Deduplication on Virtual Machine Disk Images Keren Jin Ethan L. Miller Storage Systems Research Center Storage Systems Research Center University of California, Santa Cruz University of California, Santa Cruz [email protected] [email protected] ABSTRACT quired while preserving isolation between machine instances. Virtualization is becoming widely deployed in servers to ef- This approach better utilizes server resources, allowing many ficiently provide many logically separate execution environ- different operating system instances to run on a small num- ments while reducing the need for physical servers. While ber of servers, saving both hardware acquisition costs and this approach saves physical CPU resources, it still consumes operational costs such as energy, management, and cooling. large amounts of storage because each virtual machine (VM) Individual VM instances can be separately managed, allow- instance requires its own multi-gigabyte disk image. More- ing them to serve a wide variety of purposes and preserving over, existing systems do not support ad hoc block sharing the level of control that many users want. However, this between disk images, instead relying on techniques such as flexibility comes at a price: the storage required to hold overlays to build multiple VMs from a single “base” image. hundreds or thousands of multi-gigabyte VM disk images, Instead, we propose the use of deduplication to both re- and the inability to share identical data pages between VM duce the total storage required for VM disk images and in- instances. crease the ability of VMs to share disk blocks. To test the One approach saving disk space when running multiple effectiveness of deduplication, we conducted extensive eval- instances of operating systems on multiple servers, whether uations on different sets of virtual machine disk images with physical or virtual, is to share files between them; i.
    [Show full text]
  • Security of OS-Level Virtualization Technologies: Technical Report
    Security of OS-level virtualization technologies Elena Reshetova1, Janne Karhunen2, Thomas Nyman3, N. Asokan4 1 Intel OTC, Finland 2 Ericsson, Finland 3 University of Helsinki, Finland 4 Aalto University and University of Helsinki, Finland Abstract. The need for flexible, low-overhead virtualization is evident on many fronts ranging from high-density cloud servers to mobile devices. During the past decade OS-level virtualization has emerged as a new, efficient approach for virtualization, with implementations in multiple different Unix-based systems. Despite its popularity, there has been no systematic study of OS-level virtualization from the point of view of security. In this report, we conduct a comparative study of several OS- level virtualization systems, discuss their security and identify some gaps in current solutions. 1 Introduction During the past couple of decades the use of different virtualization technolo- gies has been on a steady rise. Since IBM CP-40 [19], the first virtual machine prototype in 1966, many different types of virtualization and their uses have been actively explored both by the research community and by the industry. A relatively recent approach, which is becoming increasingly popular due to its light-weight nature, is Operating System-Level Virtualization, where a number of distinct user space instances, often referred to as containers, are run on top of a shared operating system kernel. A fundamental difference between OS-level virtualization and more established competitors, such as Xen hypervisor [24], VMWare [48] and Linux Kernel Virtual Machine [29] (KVM), is that in OS-level virtualization, the virtualized artifacts are global kernel resources, as opposed to hardware.
    [Show full text]
  • Persistent 9P Sessions for Plan 9
    Persistent 9P Sessions for Plan 9 Gorka Guardiola, [email protected] Russ Cox, [email protected] Eric Van Hensbergen, [email protected] ABSTRACT Traditionally, Plan 9 [5] runs mainly on local networks, where lost connections are rare. As a result, most programs, including the kernel, do not bother to plan for their file server connections to fail. These programs must be restarted when a connection does fail. If the kernel’s connection to the root file server fails, the machine must be rebooted. This approach suffices only because lost connections are rare. Across long distance networks, where connection failures are more common, it becomes woefully inadequate. To address this problem, we wrote a program called recover, which proxies a 9P session on behalf of a client and takes care of redialing the remote server and reestablishing connec- tion state as necessary, hiding network failures from the client. This paper presents the design and implementation of recover, along with performance benchmarks on Plan 9 and on Linux. 1. Introduction Plan 9 is a distributed system developed at Bell Labs [5]. Resources in Plan 9 are presented as synthetic file systems served to clients via 9P, a simple file protocol. Unlike file protocols such as NFS, 9P is stateful: per-connection state such as which files are opened by which clients is maintained by servers. Maintaining per-connection state allows 9P to be used for resources with sophisticated access control poli- cies, such as exclusive-use lock files and chat session multiplexers. It also makes servers easier to imple- ment, since they can forget about file ids once a connection is lost.
    [Show full text]
  • A Flexible Framework for File System Benchmarking &Pivot
    ;login SPRING 2016 VOL. 41, NO. 1 : & Filebench: A Flexible Framework for File System Benchmarking Vasily Tarasov, Erez Zadok, and Spencer Shepler & Pivot Tracing: Dynamic Causal Monitoring for Distributed Systems Jonathan Mace, Ryan Roelke, and Rodrigo Fonseca & Streaming Systems and Architectures: Kafka, Spark, Storm, and Flink Jayant Shekhar and Amandeep Khurana & BeyondCorp: Design to Deployment at Google Barclay Osborn, Justin McWilliams, Betsy Beyer, and Max Saltonstall Columns Red/Blue Functions: How Python 3.5’s Async IO Creates a Division Among Function David Beazley Using RPCs in Go Kelsey Hightower Defining Interfaces with Swagger David N. Blank-Edelman Getting Beyond the Hero Sysadmin and Monitoring Silos Dave Josephsen Betting on Growth vs Magnitude Dan Geer Supporting RFCs and Pondering New Protocols Robert G. Ferrell UPCOMING EVENTS NSDI ’16: 13th USENIX Symposium on Networked USENIX Security ’16: 25th USENIX Security Systems Design and Implementation Symposium March 16–18, 2016, Santa Clara, CA, USA August 10–12, 2016, Austin, TX, USA www.usenix.org/nsdi16 www.usenix.org/sec16 Co-located with NSDI ’16 Co-located with USENIX Security ’16 CoolDC ’16: USENIX Workshop on Cool Topics on WOOT ’16: 10th USENIX Workshop on Offensive Sustainable Data Centers Technologies March 19, 2016 August 8–9, 2016 www.usenix.org/cooldc16 Submissions due May 17, 2016 www.usenix.org/woot16 SREcon16 CSET ’16: 9th Workshop on Cyber Security April 7–8, 2016, Santa Clara, CA, USA Experimentation and Test www.usenix.org/srecon16 August 8, 2016 Submissions
    [Show full text]