Lessons Learned from 30 Years of MINIX

Total Page:16

File Type:pdf, Size:1020Kb

Lessons Learned from 30 Years of MINIX contributed articles DOI:10.1145/2795228 80-column punched cards and brought MINIX shows even an operating system them to the human operator, who read them in. Several hours later the results can be made to be self-healing. appeared, printed on 132-column fan- fold paper. A single misplaced comma BY ANDREW S. TANENBAUM in a FORTRAN statement could cause a compilation failure, resulting in the programmer wasting hours of time. To give users better service, MIT de- veloped the Compatible Time-Sharing Lessons System (CTSS), which allowed users to work at interactive terminals and re- duce the turnaround time from hours to seconds while at the same time us- Learned ing spare cycles to run old-style batch jobs in the background. In 1964, MIT, Bell Labs, and GE (then a computer vendor) partnered to build a successor from 30 Years that could handle hundreds of users all over the Boston area. Think of it as cloud computing V.0.0. It was called MULTiplexed Information and Com- of MINIX puting Service, or MULTICS. To make a long and complicated story very short, MULTICS had a troubled youth; the first version required more RAM than the GE 645’s entire 288kB memory. Eventually, its PL/1 compiler was im- proved, and MULTICS booted and ran. WHILE LINUX IS well known, its direct ancestor, MINIX, Nevertheless, Bell Labs soon tired of the project and pulled out, leaving one is now 30 and still quite spry for such aged software. of its programmers on the project, Ken Its story and how it and Linux got started is not well Thompson, with a burning desire to reproduce a scaled-down MULTICS on known, and there are perhaps some lessons to be cheap hardware. MULTICS itself was learned from MINIX’s development. Some of these released commercially in 1973 and ran lessons are specific to operating systems, some to at a number of installations worldwide until the last one was shut down on software engineering, and some to other areas (such Oct. 30, 2000, a run of 27 years. as project management). Neither MINIX nor Linux Back at Bell Labs, Thompson found a was developed in a vacuum. There was quite a bit of discarded Digital Equipment Corp. PDP- 7 minicomputer and wrote a stripped relevant history before either got started, so a brief down version of MULTICS in PDP-7 as- introduction may put this material in perspective. sembly code. Since it could handle only In 1960, the Massachusetts Institute of Technology, one user at a time, Thompson’s col- where I later studied, had a room-size vacuum- key insights tube-based scientific computer called the IBM 709. ˽ Each device driver should run as Although a modern Apple iPad is 70,000x faster and an independent, user-mode process. has 7,300x more RAM, the IBM 709 was the most ˽ Software can last a long time and should be designed accordingly. powerful computer in the world when introduced. ˽ It is very difficult to get people Users wrote programs, generally in FORTRAN, on to accept new and disruptive ideas. 70 COMMUNICATIONS OF THE ACM | MARCH 2016 | VOL. 59 | NO. 3 MINIX’s longtime mascot is a raccoon, chosen because it is agile, smart, usually friendly, and eats bugs. league Brian Kernighan dubbed it the Australia, wrote a commentary on the MINIX Is Created UNIplexed Information and Computing V6 source code, explaining line by line There matters rested until 1984, when I Service, or UNICS. Despite puns about what it meant, a technological version decided to rewrite V7 in my spare time EUNUCHS being a castrated MULTICS, of a line-by-line commentary on the while teaching at the Vrije Universiteit the name UNICS stuck, but the spelling Bible. Hundreds of universities world- (VU) in Amsterdam in order to provide was later changed to UNIX. It is some- wide began teaching UNIX V6 courses a UNIX-compatible operating system times now written as Unix since it is not using Lions’s book as the text. my students could study in a course or really an acronym anymore. The lawyers at AT&T, which owned on their own. My idea was to write the In 1972, Thompson teamed up with Bell Labs, were aghast that thousands system, called MIni-uNIX, or MINIX, his Bell Labs colleague Dennis Ritchie, of students were learning all about for the new IBM PC, which was cheap who designed the C language and their product. This had to stop. So the enough (starting at $1,565) a student wrote a compiler for it. Together they next release, V7 (1979), came equipped could own one. Because early PCs did reimplemented UNIX in C on the PDP- with a license that explicitly forbade not have a hard disk, I designed MINIX 11 minicomputer. UNIX went through anyone from writing a book about it to be V7 compatible yet run on an IBM several internal versions until Bell Labs or teaching it to students. Operating PC with 256kB RAM and a single 360kB decided to license UNIX V6 to universi- systems courses went back to theory- 5¼-inch floppy disk—a far smaller con- ties in 1975 for a $300 fee. Since the only mode or had to use toy simula- figuration than the PDP-11 V7 ran on. PDP-11 was enormously popular, UNIX tors, much to the dismay of professors Although the system was supposed to spread fast worldwide. worldwide. The early history of UNIX run on this configuration (and did), I In 1977, John Lions of the Univer- has been documented in Peter Salus’s realized from the start that to actually 14 IMAGE BY IWONA USAKIEWICZ/ANDRIJ BORYS ASSOCIATES BORYS USAKIEWICZ/ANDRIJ IWONA BY IMAGE sity of New South Wales in Sydney, 1994 book. compile and build the whole system MARCH 2016 | VOL. 59 | NO. 3 | COMMUNICATIONS OF THE ACM 71 contributed articles on a PC, I would need a larger system, system components, including the namely one with the maximum possible file system and memory manager, was RAM (640kB) and two 360kB 5¼-inch compiled as a separate program and floppy disks. run as a separate process. Because the My design goals for MINIX were as 8088 did not have a memory manage- follows: Be careful what ment unit (MMU), I could have taken ˲ Build a V7 clone that ran on an IBM you put out on the shortcuts and put everything into one PC with only a single 360kB floppy disk; executable but decided against it be- ˲ Build and maintain the system us- Internet; it might cause I wanted the design to work on ing itself, or “self-hosting”; come back to haunt future CPUs with an MMU. ˲ Make the full source code available It took me approximately two years to everyone; you decades later. to get it running, working on it only ˲ Have a clean design students could evenings and weekends. After the sys- easily understand; tem was basically working, it tended to ˲ Make the (micro) kernel as small as crash after an hour of operation for no possible, since kernel failures are fatal; reason at all and in no discernible pat- ˲ Break the rest of the operating tern. Debugging the operating system system into independent user-mode on the bare metal was well nigh impos- processes; sible and I came within a hair of aban- ˲ Hide interrupts at a very low level; doning the project. ˲ Communicate only by synchro- I then made one final effort. I wrote nous message passing with clear pro- an 8088 simulator on which to run tocols; and MINIX, so when it crashed I could get ˲ Try to make the system port easily a proper dump and stack trace. To my to future hardware. horror, MINIX would run flawlessly for Initially, I did software develop- days, even weeks, at a time on the sim- ment on my home IBM PC running ulator. It never once crashed. I was to- Mark Williams Coherent, a V7 clone tally flummoxed. I mentioned this pe- written by alumni of the University culiar situation of MINIX running on of Waterloo. Its source code was not the simulator but not on the hardware publicly available. Using Coherent to my student, Robbert van Renesse, was initially necessary because at first who said he heard somewhere that the I did not have a C compiler. When my 8088 generated interrupt 15 when it programmer, Ceriel Jacobs, was able got hot. I told him there was nothing to port a C compiler based on the Am- in the 8088 documentation about that, sterdam Compiler Kit,18 written at the but he insisted he heard it somewhere. VU as part of my research, the system So I inserted code to catch interrupt 15. became self-hosting. Because I was Within an hour I saw this message on now using MINIX to compile and build the screen: “Hi. I am interrupt 15. You MINIX, I was extremely sensitive to any will never see this message.” I immedi- bugs or flaws that turned up. All devel- ately made the required patch to catch opers should try to use their own sys- interrupt 15. After that MINIX worked tems as early as feasible so they can see flawlessly and was ready for release. what users will experience. Lesson. Do not trust documentation Lesson. Eat your own dog food. blindly; it could be wrong. The microkernel was indeed small. Thirty years later the consequences Only the scheduler, low-level process of Van Renesse’s offhand remark are management, interprocess communi- enormous. If he had not mentioned cation, and the device drivers were in it.
Recommended publications
  • The Design of the EMPS Multiprocessor Executive for Distributed Computing
    The design of the EMPS multiprocessor executive for distributed computing Citation for published version (APA): van Dijk, G. J. W. (1993). The design of the EMPS multiprocessor executive for distributed computing. Technische Universiteit Eindhoven. https://doi.org/10.6100/IR393185 DOI: 10.6100/IR393185 Document status and date: Published: 01/01/1993 Document Version: Publisher’s PDF, also known as Version of Record (includes final page, issue and volume numbers) Please check the document version of this publication: • A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website. • The final author version and the galley proof are versions of the publication after peer review. • The final published version features the final layout of the paper including the volume, issue and page numbers. Link to publication General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal.
    [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]
  • Blackberry QNX Multimedia Suite
    PRODUCT BRIEF QNX Multimedia Suite The QNX Multimedia Suite is a comprehensive collection of media technology that has evolved over the years to keep pace with the latest media requirements of current-day embedded systems. Proven in tens of millions of automotive infotainment head units, the suite enables media-rich, high-quality playback, encoding and streaming of audio and video content. The multimedia suite comprises a modular, highly-scalable architecture that enables building high value, customized solutions that range from simple media players to networked systems in the car. The suite is optimized to leverage system-on-chip (SoC) video acceleration, in addition to supporting OpenMAX AL, an industry open standard API for application-level access to a device’s audio, video and imaging capabilities. Overview Consumer’s demand for multimedia has fueled an anywhere- o QNX SDK for Smartphone Connectivity (with support for Apple anytime paradigm, making multimedia ubiquitous in embedded CarPlay and Android Auto) systems. More and more embedded applications have require- o Qt distributions for QNX SDP 7 ments for audio, video and communication processing capabilities. For example, an infotainment system’s media player enables o QNX CAR Platform for Infotainment playback of content, stored either on-board or accessed from an • Support for a variety of external media stores external drive, mobile device or streamed over IP via a browser. Increasingly, these systems also have streaming requirements for Features at a Glance distributing content across a network, for instance from a head Multimedia Playback unit to the digital instrument cluster or rear seat entertainment units. Multimedia is also becoming pervasive in other markets, • Software-based audio CODECs such as medical, industrial, and whitegoods where user interfaces • Hardware accelerated video CODECs are increasingly providing users with a rich media experience.
    [Show full text]
  • Blackberry Playbook OS 2.0 Performs. Best in Class Communications
    BlackBerry PlayBook OS 2.0 Performs. Best in class communications. Powerful productivity. Performance powerhouse. What’s new and exciting about PlayBook™ OS 2.0 A proven performance powerhouse PlayBook OS 2.0 builds on proven performance through powerful hardware and intuitive, easy to use gestures. BlackBerry® PlayBook™ packs a blazing fast dual core processor, two HD 1080p video cameras, and 1 GB of RAM for a high performance experience that is up to the task – whatever it may be. The best of BlackBerry® comes built-in The BlackBerry PlayBook now gives you the BlackBerry communications experience you love, built for a tablet. PlayBook OS 2.0 introduces built-in email that lets you create, edit and format messages, and built-in contacts app and social calendar that connect to your social networks to give you a complete profile ™ of your contacts, including recent status updates. So, seize the BlackBerry App World moment and share it with the power of BlackBerry. The BlackBerry PlayBook has all your favorite apps and thousands more. Games like Angry Birds and Cut The Rope, BlackBerry® Bridge™ Technology social networking sites like Facebook, and even your favorite books from Kobo - the apps you want are here for you to New BlackBerry® Bridge™ features let your BlackBerry® smartphone discover in the BlackBerry AppWorld™ storefront. act as a keyboard and mouse for your BlackBerry PlayBook, giving you wireless remote control of your tablet. Perfect for pausing a movie when your BlackBerry PlayBook is connected to your TV with An outstanding web experience an HDMI connection. Plus, if you’re editing a document or browsing BlackBerry PlayBook puts the power of the real Internet at your a webpage on your BlackBerry smartphone and want to see it on a fingertips with a blazing fast Webkit engine supporting HTML5 larger display, BlackBerry Bridge lets you switch screens to view on and Adobe® Flash® 11.1.
    [Show full text]
  • QNX Neutrino® Realtime Operating System
    PRODUCT BRIEF QNX Neutrino® Realtime Operating System QNX Neutrino® is a full-featured and robust operating system designed to enable the next-generation of products for automotive, medical and industrial embedded systems. Microkernel design and modular architecture enable customers to create highly optimized and reliable systems with low total cost of ownership. With QNX Neutrino®, embedded systems designers can create compelling, safe and secure devices built on a highly reliable operating system software foundation that helps guard against system malfunctions, malware and cyber security breaches. For over 35 years, thousands of companies have deployed and The QNX Neutrino microkernel memory-protected architecture trusted QNX realtime technology to ensure the best combination provides a foundation to build safety-critical systems. QNX of performance, security and reliability in the world’s most Neutrino® is 100% API compatible with QNX pre-certified mission-critical systems. software products that address compliance with safety certifica- tions in automotive (ISO 26262), industrial safety (IEC 61508) and Built-in mission critical reliability medical devices (IEC 62304). Time-tested and field-proven, the QNX Neutrino® is built on a true microkernel architecture. Under this system, every driver, Maximize software investments application, protocol stack, and filesystem runs outside the kernel QNX Neutrino® provides a common software platform that can be in the safety of memory-protected user space. Virtually any deployed for safety certified and non-certified projects across a component can fail and be automatically restarted without broad range of hardware platforms. Organizations can reduce aecting other components or the kernel. No other commercial duplication, costs and risks associated with the deployment of RTOS provides such a high level of fault containment and recovery.
    [Show full text]
  • Microkernels in a Bit More Depth • Early Operating Systems Had Very Little Structure • a Strictly Layered Approach Was Promoted by Dijkstra
    Motivation Microkernels In a Bit More Depth Early operating systems had very little structure A strictly layered approach was promoted by Dijkstra THE Operating System [Dij68] COMP9242 2007/S2 Week 4 Later OS (more or less) followed that approach (e.g., Unix). UNSW Such systems are known as monolithic kernels COMP9242 07S2 W04 1 Microkernels COMP9242 07S2 W04 2 Microkernels Issues of Monolithic Kernels Evolution of the Linux Kernel E Advantages: Kernel has access to everything: all optimisations possible all techniques/mechanisms/concepts implementable Kernel can be extended by adding more code, e.g. for: new services support for new harwdare Problems: Widening range of services and applications OS bigger, more complex, slower, more error prone. Need to support same OS on different hardware. Like to support various OS environments. Distribution impossible to provide all services from same (local) kernel. COMP9242 07S2 W04 3 Microkernels COMP9242 07S2 W04 4 Microkernels Approaches to Tackling Complexity Evolution of the Linux Kernel Part 2 A Classical software-engineering approach: modularity Software-engineering study of Linux kernel [SJW+02]: (relatively) small, mostly self-contained components well-defined interfaces between them Looked at size and interdependencies of kernel "modules" enforcement of interfaces "common coupling": interdependency via global variables containment of faults to few modules Analysed development over time (linearised version number) Doesn't work with monolithic kernels: Result 1:
    [Show full text]
  • Building Performance Measurement Tools for the MINIX 3 Operating System
    Building Performance Measurement Tools for the MINIX 3 Operating System Rogier Meurs August 2006 Contents 1 INTRODUCTION 1 1.1 Measuring Performance 1 1.2 MINIX 3 2 2 STATISTICAL PROFILING 3 2.1 Introduction 3 2.2 In Search of a Timer 3 2.2.1 i8259 Timers 3 2.2.2 CMOS Real-Time Clock 3 2.3 High-level Description 4 2.4 Work Done in User-Space 5 2.4.1 The SPROFILE System Call 5 2.5 Work Done in Kernel-Space 5 2.5.1 The SPROF Kernel Call 5 2.5.2 Profiling using the CMOS Timer Interrupt 6 2.6 Work Done at the Application Level 7 2.6.1 Control Tool: profile 7 2.6.2 Analyzing Tool: sprofalyze.pl 7 2.7 What Can and What Cannot be Profiled 8 2.8 Profiling Results 8 2.8.1 High Scoring IPC Functions 8 2.8.2 Interrupt Delay 9 2.8.3 Profiling Runs on Simulator and Other CPU Models 12 2.9 Side-effect of Using the CMOS Clock 12 3 CALL PROFILING 13 3.1 Introduction 13 3.1.1 Compiler-supported Call Profiling 13 3.1.2 Call Paths, Call and Cycle Attribution 13 3.2 High-level Description 14 3.3 Work Done in User-Space 15 3.3.1 The CPROFILE System Call 15 3.4 Work Done in Kernel-Space 16 3.4.1 The PROFBUF and CPROF Kernel Calls 16 3.5 Work Done in Libraries 17 3.5.1 Profiling Using Library Functions 17 3.5.2 The Procentry Library Function 17 3.5.3 The Procexit Library Function 20 3.5.4 The Call Path String 22 3.5.5 Testing Overhead Elimination 23 3.6 Profiling Kernel-Space/User-Space Processes 24 3.6.1 Differences in Announcing and Table Sizes 24 3.6.2 Kernel-Space Issue: Reentrancy 26 3.6.3 Kernel-Space Issue: The Call Path 26 3.7 Work Done at the Application
    [Show full text]
  • Amigaos 3.2 FAQ 47.1 (09.04.2021) English
    $VER: AmigaOS 3.2 FAQ 47.1 (09.04.2021) English Please note: This file contains a list of frequently asked questions along with answers, sorted by topics. Before trying to contact support, please read through this FAQ to determine whether or not it answers your question(s). Whilst this FAQ is focused on AmigaOS 3.2, it contains information regarding previous AmigaOS versions. Index of topics covered in this FAQ: 1. Installation 1.1 * What are the minimum hardware requirements for AmigaOS 3.2? 1.2 * Why won't AmigaOS 3.2 boot with 512 KB of RAM? 1.3 * Ok, I get it; 512 KB is not enough anymore, but can I get my way with less than 2 MB of RAM? 1.4 * How can I verify whether I correctly installed AmigaOS 3.2? 1.5 * Do you have any tips that can help me with 3.2 using my current hardware and software combination? 1.6 * The Help subsystem fails, it seems it is not available anymore. What happened? 1.7 * What are GlowIcons? Should I choose to install them? 1.8 * How can I verify the integrity of my AmigaOS 3.2 CD-ROM? 1.9 * My Greek/Russian/Polish/Turkish fonts are not being properly displayed. How can I fix this? 1.10 * When I boot from my AmigaOS 3.2 CD-ROM, I am being welcomed to the "AmigaOS Preinstallation Environment". What does this mean? 1.11 * What is the optimal ADF images/floppy disk ordering for a full AmigaOS 3.2 installation? 1.12 * LoadModule fails for some unknown reason when trying to update my ROM modules.
    [Show full text]
  • Automotive Foundational Software Solutions for the Modern Vehicle Overview
    www.qnx.com AUTOMOTIVE FOUNDATIONAL SOFTWARE SOLUTIONS FOR THE MODERN VEHICLE OVERVIEW Dear colleagues in the automotive industry, We are in the midst of a pivotal moment in the evolution of the car. Connected and autonomous cars will have a place in history alongside the birth of industrialized production of automobiles, hybrid and electric vehicles, and the globalization of the market. The industry has stretched the boundaries of technology to create ideas and innovations previously only imaginable in sci-fi movies. However, building such cars is not without its challenges. AUTOMOTIVE SOFTWARE IS COMPLEX A modern vehicle has over 100 million lines of code and autonomous vehicles will contain the most complex software ever deployed by automakers. In addition to the size of software, the software supply chain made up of multiple tiers of software suppliers is unlikely to have common established coding and security standards. This adds a layer of uncertainty in the development of a vehicle. With increased reliance on software to control critical driving functions, software needs to adhere to two primary tenets, Safety and Security. SAFETY Modern vehicles require safety certification to ISO 26262 for systems such as ADAS and digital instrument clusters. Some of these critical systems require software that is pre-certified up to ISO 26262 ASIL D, the highest safety integrity level. SECURITY BlackBerry believes that there can be no safety without security. Hackers accessing a car through a non-critical ECU system can tamper or take over a safety-critical system, such as the steering, brakes or engine systems. As the software in a car grows so does the attack surface, which makes it more vulnerable to cyberattacks.
    [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]
  • QNX Software Systems Military, Security, and Defense
    QNX Software Systems Military, security, and defense Reliable, certified, secure, and mission-critical RTOS technology. Solution highlights Common Criteria certification § Common Criteria EAL 4+ certified QNX® OS for Security The QNX Neutrino OS for Security is for customers requiring § Inherently secure design with high availability framework, adaptive Common Criteria ISO/IEC 15408 certification. Certified to EAL 4+, partitioning technology, and predictable and deterministic this is the first full-featured RTOS certified under the Common behavior Criteria standard. The QNX Neutrino OS for Security also benefits from the operating system’s inherent reliability and failure- § Non-stop operation with microkernel architecture and full proof design. memory protection § Standards-based design for security and easy interoperability Military-grade security and reliability of networked applications In mission-critical government and military systems where Advanced graphics for 3D visualization, mapping, ruggedized § information is vital and lives can be at stake, downtime is not an and multi-headed visual display systems, and multi-language option. The need for a highly reliable, secure, and fast operating support system is crucial. § Rich ecosystem of technology partners providing solutions for vehicle busses, databases, navigation, connectivity, graphics, Thanks to the true microkernel architecture of the QNX Neutrino® and speech processing RTOS, full memory protection is built in. Any component can fail § Comprehensive middleware offering that includes multimedia and be dynamically restarted without corrupting the microkernel management, rich HMIs with Adobe Flash Lite, and acoustic or other components. If a failure does occur, a QNX-based echo cancellation system has the capability for self-healing through critical process monitoring and customizable recovery mechanisms.
    [Show full text]
  • Morpho-Syntactic Interactions Between V and C in Romance1
    Dialectologia. Special issue, V (2015), 293-319. ISSN: 2013-2247 Received 7 August 2015. Accepted 26 September 2015. MORPHO-SYNTACTIC INTERACTIONS BETWEEN V AND C IN ROMANCE1 Ángel J. GALLEGO Universitat Autònoma de Barcelona [email protected] Abstract This paper discusses a series of morpho-syntactic (a)symmetries that emerge in the vP and CP levels of different Romance languages. The (a)symmetries considered indicate a P or D oriented nature for specific functional heads placed in the vP and CP domains, an idea that has been at the forefront of micro-parametric studies ever since the 80s (cf. Kayne 1984, 2000; Uriagereka 1995). The consequences of this investigation for the status of parameter theory are further considered (cf. Chomsky 1981; Baker 2001; Biberauer 2008; Kayne 2000; Picallo 2014) and the study of the lexicon, arguably the main locus of linguistic variation (cf. Halle & Marantz 1993; Hale & Keyser 1993; Starke 2014; Uriagereka 2008). Keywords complementizers, lexicon, micro-parameters, Romance languages, variation, verbs INTERACCIONES MORFOSINTÁCTICAS ENTRE V Y C EN ROMANCE Resumen Este trabajo discute una serie de (a)simetrías morfosintácticas que aparecen en los niveles del Sv y el SC de diferentes lenguas románicas. Dichas (a)simetrías indican que núcleos funcionales pertenecientes a los dominios Sv y SC despliegan una naturaleza similar a P o a D, una idea que ha 1 A previous version of this paper was presented at the V Westmost Europe Dialect Syntax (Wedisyn) Meeting, held at the Universidad Autónoma de Madrid (24-25 April 2014), whose audience I thank for questions and suggestions. Special thanks go to Roberta D’Alessandro, Carlota de Benito, Inés Fernández-Ordóñez, and Álvaro Octavio de Toledo for comments and (on-going) discussion.
    [Show full text]