Surviving Sensor Network Software Faults

Total Page:16

File Type:pdf, Size:1020Kb

Surviving Sensor Network Software Faults Surviving Sensor Network Software Faults Yang Chen†, Omprakash Gnawali∗, Maria Kazandjieva‡, Philip Levis‡, and John Regehr† †School of Computing ∗Computer Science Department ‡Computer Systems Laboratory University of Utah University of Southern California Stanford University Salt Lake City, UT USA Los Angeles, CA USA Stanford, CA USA {chenyang, regehr}@cs.utah.edu [email protected] [email protected] [email protected] ABSTRACT after deployment [34]. A recent deployment in the Swiss Alps illus- We describe Neutron, a version of the TinyOS operating system trates this challenge. Network communication failed during morn- that efficiently recovers from memory safety bugs. Where existing ings and evenings, but worked during the day and night. The cause schemes reboot an entire node on an error, Neutron’s compiler and was temperature response differences for the processor and radio runtime extensions divide programs into recovery units and reboot oscillators. Periods of warming and cooling led their clocks to drift only the faulting unit. The TinyOS kernel itself is a recovery unit: too much for their interconnect to be reliable [3]. a kernel safety violation appears to applications as the processor Unforeseen bugs often manifest as memory errors. For example, being unavailable for 10–20 milliseconds. a popular radio chip, the ChipCon CC2420, erroneously signals re- Neutron further minimizes safety violation cost by supporting ception of corrupted packets shorter than the 802.15.4 standard per- “precious” state that persists across reboots. Application data, time mits. Early CC2420 drivers for the TinyOS operating system did synchronization state, and routing tables can all be declared as pre- not consider this case; receiving a short, corrupt packet triggered an cious. Neutron’s reboot sequence conservatively checks that pre- off-by-one error in a loop, overwriting unrelated parts of RAM [28]. cious state is not the source of a fault before preserving it. Together, As wireless sensors use microcontrollers whose RAM is no larger recovery units and precious state allow Neutron to reduce a safety than a typical MMU page, compiler-enforced safety is the stan- violation’s cost to time synchronization by 94% and to a routing dard mechanism for detecting memory bugs. For example, Safe protocol by 99.5%. Neutron also protects applications from losing TinyOS [8] uses Deputy [7] to make all of TinyOS and its applica- data. Neutron provides this recovery on the very limited resources tions type-safe, preventing pointer bugs from cascading into mem- of a tiny, low-power microcontroller. ory corruption and random consequences. Safe execution is an important step towards dependable software, Categories and Subject Descriptors D.4.5 [Operating Systems]: but it raises a difficult question: How should a node respond to a Reliability—fault tolerance safety violation? These embedded, event driven systems typically have no concept of a process or unit of code isolation. Thus, on General Terms Reliability, Design a safety violation, Safe TinyOS spits out an error message (for lab Keywords Wireless Sensor Networks, TinyOS, nesC, Deputy, testing) or reboots the entire node (in deployment). Kernel, Reboot, Reliability Rebooting an entire node is costly: it wastes energy and loses data. Systems gather state such as routing tables and link quality estimates to improve energy efficiency by minimizing communica- 1. INTRODUCTION tion. Systems gather this state slowly to avoid introducing signifi- Sensor networks consist of large numbers of small, low-power, wire- cant load. After rebooting, a node may take some time—minutes, less devices, often embedded in remote and inconvenient locations even hours—to come fully back online. For example, in a recent such as volcanoes [35], thickets [25], bird burrows [31], glaciers [32], deployment on Reventador Volcano, reboots from a software error and tops of light poles [22]. Applications commonly specify a net- led to a 3-day network outage [35], reducing mean node uptime work should operate unattended for months or years [25, 31]. Soft- from >90% to 69%. ware dependability and reliability are therefore critical concerns. This paper presents Neutron, a version of the TinyOS operating In practice, however, sensor networks operate for weeks or months system that improves the efficiency and dependability of wireless and require significant attention from developers or system admin- sensor networks by reducing the cost of memory safety violations. istrators [31, 35]. The discrepancy between desired and actual avail- Neutron has two parts: extensions to the TinyOS compiler toolchain ability is in part due to difficult-to-diagnose bugs that emerge only (nesC and Deputy) and extensions to TinyOS itself. Neutron extends the nesC compiler to provide boundaries be- tween “recovery units.” Similarly to microreboots [6], Neutron re- Permission to make digital or hard copies of all or part of this work for boots only the faulting unit on a safety violation. TOSThreads, the personal or classroom use is granted without fee provided that copies are TinyOS threading library, helps define application recovery units. not made or distributed for profit or commercial advantage and that copies Unlike microreboots, which operate only on application-level struc- bear this notice and the full citation on the first page. To copy otherwise, to tures, Neutron must also be able to survive kernel faults, as the republish, to post on servers or to redistribute to lists, requires prior specific TinyOS kernel is typically the largest and most complex part of an permission and/or a fee. SOSP’09, October 11–14, 2009, Big Sky, Montana, USA. application image. In Neutron, the kernel itself is also a recovery Copyright 2009 ACM 978-1-60558-752-3/09/10 ...$10.00. unit. If the kernel violates safety, Neutron reboots it without dis- Send/FAIL Send/EBUSY Cancel/FAIL rupting application recovery units. Cancel/FAIL Send/SUCCESS Rebooting a recovery unit is better than rebooting a node, but it conservatively wastes energy by discarding valid state. Neutron Idle Busy allows application and kernel recovery units to declare memory structures as “precious,” indicating that they should persist across faults when possible. The complication is that precious state may sendDone(SUCCESS) be involved in a safety violation and become inconsistent. Neu- tron uses a combination of static analysis, type safety checks, and sendDone(FAIL) Cancel/SUCCESS user-specified checks to determine which precious structures can be Cancel safely retained, and which must be re-initialized on a reboot. Neutron must provide these mechanisms in the limited code space Send/EBUSY (tens of kilobytes) and RAM (4–10 kB) typical to ultra low-power Cancel/SUCCESS microcontrollers. These constraints, combined with embedded sys- tem workloads, lead Neutron to take different approaches than are Figure 1: Simplified FSM for the TinyOS interface for send- typical in systems that have plenty of available resources. By mod- ing a packet. A call to send that returns SUCCESS moves the ifying variables in-place, Neutron introduces no instruction over- interface into the busy state, at which point subsequent calls to head in the common case of correctly executing code. In contrast, send return FAIL. It moves back to the idle state when it signals transactions would introduce a RAM overhead for scratch space the sendDone callback with a SUCCESS argument denoting the and a CPU overhead for memory copies. Neutron re-initializes pos- packet was sent successfully. sibly corrupt variables, rather than restore them to their last known good state, because logging good states to nonvolatile storage has a 2.1 TinyOS significant energy cost. Neutron minimizes its overhead through compiler techniques that TinyOS is a wireless sensornet operating system. Its mechanisms leverage the static nature of TinyOS programs. For example, the and abstractions are designed for ultra-low-power microcontrollers component graph of a TinyOS program allows Neutron to infer re- with limited RAM and no hardware support for memory isolation. covery unit boundaries at compile time. Similarly, Neutron stati- TinyOS typically runs on 16-bit microcontrollers, at 1–8 MHz, have cally analyzes each memory safety check to determine which pre- 4–10 kB of SRAM, and have 40–100 kB of flash memory for code [26]. cious data structures may be in the middle of an update at the pro- The operating system uses components as the unit of software gram point where the check occurs. When a safety check fails, composition [15]. Like objects, components couple code and data. Neutron does not preserve the contents of any precious data whose Unlike objects, however, they can only be instantiated at compile invariants are potentially broken. From the user’s point of view, time. TinyOS components, written in a dialect of C called nesC [12], Neutron’s interface consists of simple, optional annotations, mak- have interfaces which define downcalls (“commands”) and upcalls ing it easy to retrofit existing sensornet application code. (“events”). Upcalls and downcalls are bound statically: the absence We evaluate Neutron by demonstrating that it isolates recovery of function pointers simplifies call graph analysis. units and increases application availability. We find that Neutron TinyOS interfaces, and components in general, are designed as saves energy by preserving precious state across reboots. Our ex- simple finite state machines. Calls into a component cause state periments are on
Recommended publications
  • ICACC Abstracts Book
    The American Ceramic Society 42nd International Conference & Exposition on Advanced Ceramics and Composites ABSTRACT BOOK January 21–26, 2018 Daytona Beach, Florida Introduction This volume contains abstracts for over 900 presentations during the 42nd International Conference & Exposition on Advanced Ceramics & Composites in Daytona Beach, Florida. The abstracts are reproduced as submitted by authors, a format that provides for longer, more detailed descriptions of papers. The American Ceramic Society accepts no responsibility for the content or quality of the abstract content. Abstracts are arranged by day, then by symposium and session title. An Author Index appears at the back of this book. The Meeting Guide contains locations of sessions with times, titles and authors of papers, but not presentation abstracts. How to Use the Abstract Book Refer to the Table of Contents to determine page numbers on which specific session abstracts begin. At the beginning of each session are headings that list session title, location and session chair. Starting times for presentations and paper numbers precede each paper title. The Author Index lists each author and the page number on which their abstract can be found. Copyright © 2018 The American Ceramic Society (www.ceramics.org). All rights reserved. MEETING REGULATIONS The American Ceramic Society is a nonprofit scientific organization that facilitates whether in print, electronic or other media, including The American Ceramic Society’s the exchange of knowledge meetings and publication of papers for future reference. website. By participating in the conference, you grant The American Ceramic Society The Society owns and retains full right to control its publications and its meetings.
    [Show full text]
  • Freier Download BA 104 Als
    BAD 104 ALCHEMY Gone, gone, gone... [31 May 2019] Roky Erickson (The 13th Floor Elevators), 71 [01 Jun 2019] Michel Serres (Philosoph der Parasiten, Gemenge und Gemische), 88 [06 Jun 2019] Dr. John Mac Rebennack (the Night Tripper w/ New Orleans R&B), 77 [22 July 2019] Brigitte Kronauer (Teufelsbrück, Zwei schwarze Jäger), 78 [11 Sep 2019] Daniel Johnston (American singer-songwriter), 58 [30 Sep 2019] Gianni Lenoci (italienischer NowJazz-Pianist), 56 [06 Oct 2019] Ginger Baker (Trommelfeuerkopf bei Cream, Air Force...), 80 [03 Nov 2019] Katagiri Nobukazu (der Drummer von Ryorchestra) Hirnschlag BA's Top Ten 2019 Arashi - Jikan (PNL) d.o.o.r - Songs from a Darkness (poise) Fire! Orchestra - Arrival (Rune Grammofon) Kamilya Jubran & Werner Hasler - Wa (Everest) Land of Kush - Sand Enigma (Constellation) Les Comptes De Korsakoff - Nos Amers (Puzzle) MoE & Pinquins - Vi som elsket kaos (ConradSound) Stephanie Pan - Have Robot Dog, Will Travel (Arteksounds) Andrew Poppy - Hoarse Songs (Field Radio) La STPO - L'Empreinte (The Legacy) (Azafran Media) Die Macht eines Buches, ganz gleich welchen Buches, ... liegt darin, daß es eine offenstehende Tür ist, durch die man abhauen kann. Ich unterstreiche abhauen. Julien Green ...ein Kraut Schmerzenlos, einen Tropfen Todvorbei, einen Löffel Barmherzigkeit. Alles auf des Messers Schneide: Lachen, Weinen, Worte. Ernst Wiechert Honoré de Balzac - Verlorene Illusionen Karl Heinz Bohrer - Granatsplitter Charlotte Brontë - Erzählungen aus Angria Albert Camus - Der Fall ... Das Exil und das Reich Joseph Conrad - Taifun Jean-Pierre Gibrat - Mattéo: August 1936 André Gide - Die Verliese des Vatikan Julien Green - Der Geisterseher; Tagebücher 1996 bis 1998 Ernst Jünger - Eumeswil [nochmal] Daniel Kehlmann - Tyll Esther Kinsky - Hain Sibylle Lewitscharoff - Blumenberg Henry de Montherlant - Das Chaos und die Nacht [noch besser als beim ersten Mal] Walter Muschg - Tragische Literaturgeschichte Raymond Queneau - Mein Freund Pierrot Hugo Pratt - Corto Maltese: Das Goldene Haus von Samarkand ..
    [Show full text]
  • Partition Types
    Partition Types Partition Types The number on the right is in Hexadecimal. 01 DOS 12-bit fat 02 XENIX root 03 XENIX /usr 04 DOS 3.0+ 16-bit FAT (up to 32M) 05 DOS 3.3+ Extended Partition 06 DOS 3.31+ 16-bit FAT (over 32M) 07 OS/2 IFS (e.g., HPFS) 07 Advanced Unix 07 Windows NT NTFS 07 QNX2.x (pre-1988) 08 OS/2 (v1.0-1.3 only) 08 AIX boot partition 08 SplitDrive 08 DELL partition spanning multiple drives 08 Commodore DOS 08 QNX 1.x and 2.x ("qny") 09 AIX data partition 09 Coherent filesystem 09 QNX 1.x and 2.x ("qnz") 0a OS/2 Boot Manager 0a Coherent swap partition 0a OPUS 0b WIN95 OSR2 32-bit FAT 0c WIN95 OSR2 32-bit FAT, LBA-mapped 0e WIN95: DOS 16-bit FAT, LBA-mapped 0f WIN95: Extended partition, LBA-mapped 10 OPUS (?) 11 Hidden DOS 12-bit FAT 12 Compaq config partition 14 Hidden DOS 16-bit FAT <32M 16 Hidden DOS 16-bit FAT >=32M 17 Hidden IFS (e.g., HPFS) 18 AST SmartSleep Partition 19 Unused (Claimed for Willowtech Photon COS) 1b Hidden WIN95 OSR2 32-bit FAT 1c Hidden WIN95 OSR2 32-bit FAT, LBA-mapped 1e Hidden WIN95 16-bit FAT, LBA-mapped 20 Unused 21 Reserved 21 Unused 22 Unused 23 Reserved 24 NEC DOS 3.x 26 Reserved 31 Reserved 32 NOS 33 Reserved 34 Reserved 35 JFS on OS/2 or eCS 36 Reserved 38 THEOS ver 3.2 2gb partition 39 Plan 9 partition 39 THEOS ver 4 spanned partition 3a THEOS ver 4 4gb partition 3b THEOS ver 4 extended partition 3c PartitionMagic recovery partition 3d Hidden NetWare 40 Venix 80286 41 Linux/MINIX (sharing disk with DRDOS) 41 Personal RISC Boot 41 PPC PReP (Power PC Reference Platform) Boot 42 Linux swap (sharing
    [Show full text]
  • Microkernels: Mach and L4
    Microkernels: Mach and L4 Presented by Jason Wu With content borrowed from Dan Williams (2009) and Hakim Weatherspoon (2008) Outline • Introduction to Kernels • 1st Generation Microkernels – Mach • 2nd Generation Microkernels – L4 • Conclusions Introduction to Kernels • Different Types of Kernel Designs – Monolithic kernel – Microkernel – Hybrid Kernel – Exokernel – Virtual Machines? Monolithic Kernels • All OS services operate in kernel space • Good performance • Disadvantages – Dependencies between system component – Complex & huge (millions(!) of lines of code) – Larger size makes it hard to maintain • E.g. Multics, Unix, BSD, Linux Microkernels • Minimalist approach – IPC, virtual memory, thread scheduling • Put the rest into user space – Device drivers, networking, file system, user interface • More stable with less services in kernel space • Disadvantages – Lots of system calls and context switches • E.g. Mach, L4, AmigaOS, Minix, K42 Monolithic Kernels VS Microkernels Hybrid Kernels • Combine the best of both worlds – Speed and simple design of a monolithic kernel – Modularity and stability of a microkernel • Still similar to a monolithic kernel – Disadvantages still apply here • E.g. Windows NT, NetWare, BeOS Exokernels • Follows end-to-end principle – Extremely minimal – Fewest hardware abstractions as possible – Just allocates physical resources to apps • Disadvantages – More work for application developers • E.g. Nemesis, ExOS • Next Thursday! The Microkernel Debate • How big should it be? • Big debate during the 1980’s Summary:
    [Show full text]
  • Opensource Software Im Alltag
    OpensourceOpensource SoftwareSoftware imim AlltagAlltag -- IstIst dasdas möglich?möglich? Willkommen zum Xing Stammtisch Alexander Demmler – 25.11.2016 © A. Demmler 2016 www.lacunasolutions.com 1 Marktanteile Desktop Systeme 2016 © A. Demmler 2016 www.lacunasolutions.com 2 Webserver Systeme © A. Demmler 2016 www.lacunasolutions.com 3 Einsatz von OSS in US Unternehmen: Northbridge Eine Venture Capital Company. Game changers disrupt existing markets. They also create new multi-billion dollar markets and have the potential to change the way we live and work. http://www.northbridge.com © A. Demmler 2016 www.lacunasolutions.com 4 Was bedeutet OpenSource? • OpenSource Software (OSS) ist professionelle Software unter einer alternativen Entwicklungs- und Vertriebsform • OpenSource ist nicht Linux - aber Linux ist auch OpenSource! • OpenSource bedeutet ein Stück Freiheit: - freie Auswahl - Freiheit ob und wieviel man bezahlt - Freiheit in der Nutzung © A. Demmler 2016 www.lacunasolutions.com 5 Was ist die Community? • Die Community besteht aus - Entwicklern + Beratern + Anwendern + Hobbyisten - grossen Unternehmen (HP, IBM, SUN) - Distributoren wie SUSE, RedHat, Ubuntu u.a. • Die Community entwickelt und pflegt gemeinsam die Software und bietet Unterstützung (Support) • Die Community ist kein Club von Hackern, Freaks und anderen Bösewichten! © A. Demmler 2016 www.lacunasolutions.com 6 Das Geschäftsmodell Freie Software Dienstleistungen (Kosten) Basis Version Erweiterungen Download im WWW Service + Support Online Support Schulungen Zusatzeinkünfte Werbung + Sponsoren © A. Demmler 2016 www.lacunasolutions.com 7 Lizenzrechtliches • Softwarecode (Quellen) sind offen gelegt: - Verbreitung und Nutzung sind ausdrücklich erlaubt - Veränderung (Anpassung, Erweiterung) erlaubt - Quellcode muss offengelegt werden • Es gibt historisch bedingt verschiedene Lizenzmodelle. (GPL, OSL, CPL, EPL u.a) • EU Initiative um Lizenzen vereinen: http://ec.europa.eu ACHTUNG: Auch hier gelten Vorschriften! Computerwoche: http://www.computerwoche.de © A.
    [Show full text]
  • Modeling Large Populations of Full-Sized Virtual Machines Using Minimal Virtual Instances
    UNIVERSITY OF OSLO Department of Informatics Modeling large populations of full-sized virtual machines using minimal virtual instances H˚avard Ostnes haavako@ifi.uio.no Network and System Administration Oslo University College May 23, 2012 1 Modeling large populations of full-sized virtual machines using minimal virtual instances H˚avard Ostnes haavako@ifi.uio.no Network and System Administration Oslo University College May 23, 2012 Abstract This thesis proposes the use of minimal virtual machines to model larger populations of instances in different environments, and investigates if a cloud environment is able to take the populations even further. Finally the thesis wants to investigate if min- imal virtual machines are suitable to host custom application stacks and are able to compete with full-sized virtual machines. As virtualization technology has achieved increased popularity the recent years virtual machines are now used by many busi- nesses, institutions and consumers for different purposes. Full-sized virtual machines are large, and demand considerable amounts of computing resources from the Cloud Resource Pool. This project was able to significantly reduce the size of virtual ma- chines and the amount of computing resources required to host them. The smallest virtual machine accomplished in this project had a size of merely 1.5MB allowing a population of almost 500 times, or at least two orders of magnitude, larger than one standard-sized Ubuntu Server instance. Custom written software was also created for each type of virtual machine for the purpose of simulating real-world CPU usage pat- terns. Several population sizes of minimal virtual machines were deployed and tested in Hypervisor-on-Hardware and Hypervisor-in-Cloud labs to compare their behavior and performance in different environments.
    [Show full text]
  • Design of the SPEEDOS Operating System Kernel
    Universität Ulm Fakultät für Informatik Abteilung Rechnerstrukturen Design of the SPEEDOS Operating System Kernel Dissertation zur Erlangung des Doktorgrades Dr. rer. nat. der Fakultät für Informatik der Universität Ulm vorgelegt von Klaus Espenlaub aus Biberach a.d. Riß 2005 Official Copy, serial number df13c6b7-d6ed-e3f4-58b6-8662375a2688 Amtierender Dekan: Prof. Dr. Helmuth Partsch Gutachter: Prof. Dr. J. Leslie Keedy (Universität Ulm) Gutachter: Prof. Dr. Jörg Kaiser (Otto-von-Guericke-Universität, Magdeburg) Gutachter: Prof. John Rosenberg (Deakin University, Geelong, Victoria, Australia) Prüfungstermin: 11.07.2005 iii Abstract (Eine inhaltsgleiche, deutsche Fassung dieser Übersicht ist ab Seite 243 zu finden.) The design of current operating systems and their kernels shows deficiencies in re- spect to the structuring approach and the flexibility of their protection systems. The operating systems and applications suffer under this lack of extensibility and flexib- ility. The protection model implemented in many operating systems is not powerful enough to represent arbitrary protection conditions on a more fine-grained granu- larity than giving read and/or write access to an entire object. Additionally current operating systems are not capable of controlling the flow of information between software units effectively. Confinement conditions cannot be expressed explicitly and thus confinement problems can only be solved indirectly. Further complications with the protection system and especially the software structure in modern operating systems based on the microkernel approach are caused by the use of the out-of-process model. It is extremely difficult to spe- cify access rights appropriately, because the client/server paradigm does not easily allow a relationship to be established between the role of the client and the per- missions of the server.
    [Show full text]
  • Microkernel-Based and Capability-Based Operating Systems
    Microkernel-based and Capability-based Operating System Martin Děcký [email protected] March 2021 About the Speaker Charles University Research scientist at D3S (2008 – 2017) Graduated (Ph.D.) in 2015 Co-author of the HelenOS (http://www.helenos.org/) microkernel multiserver operating system Huawei Technologies Senior Research Engineer, Munich Research Center (2017 – 2018) Principal Research Engineer, Dresden Research Center (2019 – present) Martin Děcký, March 25th 2021 Microkernel-based and Capability-based Operating Systems 2 Sweden RC Finland RC UK RC Ireland RC Belgium RC Vancouver Edmonton Toronto Poland RC Ukraine RC Montreal France RC Ottawa Germany, Austria, Switzerland RC Israel RC Beijing Waterloo Italy RC Xi’an Nanjing Japan RC Chengdu Shanghai Wuhan Suzhou Songshanhu Hangzhou HQ Shenzhen India RC Edinburgh Tampere Stockholm Helsinki Cambridge Singapore RC Ipswich Goteburg London Lund Warsaw Leuven Dublin Dresden Nuremburg Kyiv Paris Zurich Munich City R&D Center Lagrange Vienna Grenoble Milan Related Country Research Center Nice Pisa City Research Center Tel Aviv Martin Děcký, March 25th 2021 Microkernel-based and Capability-based Operating Systems 3 Huawei Dresden Research Center (DRC) Since 2019, ~20 employees (plus a virtualization team in Munich) Martin Děcký, March 25th 2021 Microkernel-based and Capability-based Operating Systems 4 Huawei Dresden Research Center (DRC) (2) Focuses on R&D in the domain of operating systems Microkernels, hypervisors Collaboration with the OS Kernel Lab in Huawei HQ Collaboration with
    [Show full text]
  • In Memoriam Jochen Liedtke (1953 - 2001)
    Prof. Dr. Jochen Liedtke It is with sorrow that we announce the death of Jochen Liedtke. He died unexpectedly on Sunday, June 10th, 2001. In Memoriam Jochen Liedtke (1953 - 2001) Jochen studied mathematics at the University of Bielefeld, completing his diploma in 1977. The focus of his thesis was the novel programming language ELAN. Jochen's first operating system was a by-product; a run time environment for ELAN was needed on small Z80 micro computers. The result of Jochen's effort, EUMEL, was based on two simple principles: persistent processes and data spaces. All data of the entire system including process control blocks and data space descriptors were contained in these data spaces. They could be copied efficiently and atomically using copy on write and garbage collection techniques. By copying the "data space of data spaces" every few minutes, a complete copy of the entire system state was taken and lazily written out to disk. Thus, process persistence came for free (at least conceptually). Sending around data spaces in synchronous messages was the only means of process interaction which made it easy to build a simple distributed EUMEL system. The paging device was a floppy disk (what else on a cheap computer at that time). In 1984 Jochen moved to GMD, the German National Research Center to build a "native code" version of EUMEL, called L3. This was the time when microkernel based systems were en vogue. Soon however, many researchers gave up their attempts to build the really fast message passing systems that were needed to run device drivers and other performance critical components at user level.
    [Show full text]
  • Bibliography
    Bibliography ACPO (2003) Good Practice Guide for Computer Based Electronic Evidence V3, Association of Chief Police Officers (ACPO), National Hi-Tech Crime Unit (NHTCU). Adams, C. K. (1981) Master Handbook of Microprocessor Chips, Tab Books Inc, Pennsylvania. Aikenhead, M. (1995) Legal knowledge based systems: some observations for the future, Web Journal of Current Legal Issues, [1995] 2 Web JCLI, 19 May. URL: http://webjcli. ncl.ac.uk/articles2/aiken2.html. Akdeniz, Y. (1996) Section 3 of the Computer Misuse Act 1990: an antidote for computer viruses!, Web Journal of Current Legal Issues, [1996] 3 Web JCLI, 24 May. URL: http:// webjcli.ncl.ac.uk/1996/issue3/akdeniz3.html. Akdeniz, Y.(1997) UK government policy on encryption, Web Journal of Current Legal Issues, [1997] 1 Web JCLI, 28 February. URL: http://webjcli.ncl.ac.uk/1997/issue1/ akdeniz1.html. Anderson,M.R.(1996) Erased files often aren’t,Government Technology Magazine,November. URL: http://www.govtech.net/magazine/story.php?id=95238. No longer available. ANSI (1996) ANSI X3.279-1996 – AT Attachment Interface with Extensions (ATA-2), ANSI, 11 West 42nd Street, New York, URL: http://alpha1.dyns.net/files/Drive/d0948r4c. pdf. Apple Computer Inc. (1999) More About IEEE 1394 and FireWire. URL: http://developer. apple.com/hardware/FireWire/More_about_Firewire.htm. No longer available. Apple Computer Inc. (2006) Device Drivers FireWire. URL: http://developer.apple.com/ hardwaredrivers/fireWire/Index.html. ASUS (2005) ASUS Motherboard A8N32-SLI, E2280, Second Edition V2, October 2005, ASUSTeK Computer Inc. Atzberger, P. and Zolli, A. (1996) Portable Network Graphics, Trincoll Journal. URL: http:// www.webtechniques.com/archives/1996/12/zolli/.
    [Show full text]
  • CS 414/415 Systems Programming and Operating Systems
    1 MICROKERNELS: MACH AND L4 CS6410 Hakim Weatherspoon Introduction to Kernels Different Types of Kernel Designs Monolithic kernel Microkernel Hybrid Kernel Exokernel Virtual Machines? Monolithic Kernels All OS services operate in kernel space Good performance Disadvantages Dependencies between system component Complex & huge (millions(!) of lines of code) Larger size makes it hard to maintain E.g. Multics, Unix, BSD, Linux Microkernels Minimalist approach IPC, virtual memory, thread scheduling Put the rest into user space Device drivers, networking, file system, user interface, even the pager for virtual memory More stable with less services in kernel space Disadvantages Lots of system calls and context switches E.g. Mach, L4, AmigaOS, Minix, K42 Monolithic Kernels VS Microkernels Hybrid Kernels Combine the best of both worlds Speed and simple design of a monolithic kernel Modularity and stability of a microkernel Still similar to a monolithic kernel Disadvantages still apply here E.g. Windows NT, NetWare, BeOS Exokernels Follows end-to-end principle Extremely minimal Fewest hardware abstractions as possible Just allocates physical resources to apps Disadvantages More work for application developers E.g. Nemesis, ExOS This Thursday! The Microkernel Debate How big should it be? Big debate during the 1980’s Summary: Kernels Monolithic kernels Advantages: performance Disadvantages: difficult to debug and maintain Microkernels Advantages: more reliable and secure Disadvantages: more overhead Hybrid
    [Show full text]
  • Lecture Notes in Computer Science 2135 Edited by G
    Lecture Notes in Computer Science 2135 Edited by G. Goos, J. Hartmanis, and J. van Leeuwen 3 Berlin Heidelberg New York Barcelona Hong Kong London Milan Paris Tokyo Graham N.C. Kirby Alan Dearle Dag I.K. Sjøberg (Eds.) Persistent Object Systems Design, Implementation, and Use 9thInternational Workshop,POS-9 Lillehammer, Norway, September 6-8, 2000 Revised Papers 13 Series Editors Gerhard Goos, Karlsruhe University, Germany Juris Hartmanis, Cornell University, NY, USA Jan van Leeuwen, Utrecht University, The Netherlands Volume Editors Graham N.C. Kirby Alan Dearle University St. Andrews, School Computer Science NorthHaugh,St. Andrews, Fe KY16 9SS, UK E-mail: {graham/al}@dcs.st-and.ac.uk Dag I.K. Sjøberg Simula ResearchLaboratory P.O. Box 1080 Blindern, 0316 Oslo, Norway E-mail: Dag.Sjoberg@ifi.uio.no Cataloging-in-Publication Data applied for Die Deutsche Bibliothek - CIP-Einheitsanahme Persistent object systems : design, implementation, and use ; 9th international workshop ; revised papers / POS-9, Lillehammer, Norway, September6-8,2000. Graham N. C. Kirby ... (ed.). - Berlin ; Heidelberg ; New York ; Barcelona ; Hong Kong ; London ; Milan ; Paris ; Tokyo : Springer, 2001 (Lecture notes in computer science ; 2135) ISBN 3-540-42735-X CR Subject Classification (1998): C.2.4, D.2, D.3, D.4, H.2, H.4, F.3 ISSN 0302-9743 ISBN 3-540-42735-X Springer-Verlag Berlin Heidelberg New York This work is subject to copyright. All rights are reserved, whether the whole or part the material is concerned, specifically the rights translation, reprinting, re-use illustrations, recitation, broadcasting, reproduction on microfilms or in any other way, and storage in data banks.
    [Show full text]