| Related sites for http://en.wikipedia.org/wiki/L4_microkernel_family |
| APL_White_Pages A directory of many serious APL users all over the globe | | Jim_Weigang\'s_APL_Information Many articles, programs, definitions, and links. | | Oleg\'s_J_Page Various user scripts in J. Links to other J sites. | | Présentations_AFAPL Part of the site of a French speaking APLer. | | Sam_Sirlin\'s_APL_Page Useful APL information and links. Particularly interesting is the APL c compiler project, based on T. Budd's original work. | | Timothy_A__Budd_home_page The creator of Little Smalltalk does APL too. | | Yoshi\'s_APL_Page APL and Japanese Language and Japanese Market. | | Unix_Days_Are_Over Author explains why he believes Windows is superior to Unix. | | Unix_Realm Portal of Unix related information mainly for system administrators. | | UnixGeeks_org A growing repository of resources and information related to the Unix operating system. All content is maintained by the group of users, to which membership is free. | | The_Unix-Haters_Handbook Complete text of the book edited by Simson Garfinkel, Daniel Weise, and Steven Strassmann. [PDF] | | TUCOWS_News__Windows_NT__A_Reality_Check The Internet runs on *nix, not NT. (April 10, 2000) | | all_about_Steve Biography, media gallery, bibliography, interviews, links. | | Apple_-_Bios_-_Steve_Jobs Official biography of the co-founder of Apple and Pixar. | | Apple_Expo_Paris_-_Keynote Pictures of Steve Jobs' keynote address at Apple Expo Paris 2003 | | boomcounter_org Counting Steve Jobs' booms. | | Pineapple Macworld keynotes pictures, covers of magazines with Steve Jobs on. | | Salon_Directory Articles. | | Salon_com__The_once_and_future_Steve_Jobs Excerpts from Alan Deutschman's biography, The Second Coming of Steve Jobs. | | The_State_of_the_Beard_O\'_Jobs_(S_B_O_J_) Humorous site about the state of the Beard of Steve Jobs, past, present, and future. | | Steve_Jobs_-_Wikipedia Biography from Wikipedia, the free encyclopedia: brief history, business ventures, quotes, and links. | | Steve_Jobs_Info Movies, audio clips, pictures, history, 1995 Oral History Interview. | | Steve\'s_Résumé From his personal site. | | TIME__Apple\'s_New_Core Cover story on the flat-screen iMac from Apple, along with a timeline of Steve Jobs' machines. | | Wired_Archives Interviews and stories. | | \'You\'ve_got_to_find_what_you_love,\'_Jobs_says Standford Commencement Address (June 12, 2006) | | Steve_Job\'s_Stanford_Commencement_Address BusinessWeek Interview (October 12, 2004) | | Steve_Jobs__The_Rolling_Stone_Interview Steve Jobs has been back at Apple for 13 months. The bottom line, and much else, looks different. [Wired News] (January 14, 1998) | | Creating_Jobs__Apple\'s_Founder_Goes_Home_Again New York Times Magazine profile by Steve Lohr. (January 18, 1997) | | Smithsonian_Oral_and_Video_Histories___Steve_Jobs Excerpts from an Oral History Interview with Steve Jobs. (April 20, 1995) | | Chistory The Development of the C Language (written by Dennis M. Ritchie) | | Dennis_M__Ritchie Homepage in the Computing Sciences Research Center, Bell Laboratories. | | Dennis_M__Ritchie His Lucent page. Central Unix figure, co-creator of Unix, with Ken Thompson; co-inventor of C programming language, with Brian Kernighan. Unix and C history and references. | | Dennis_Ritchie Ultra-high resolution picture. | | ITworld__The_Future_According_to_Dennis_Ritchie Few names in computing are bigger than that of Dennis Ritchie. In this interview, Ritchie talks about the future of C and the C99 standard, Plan 9, and offers advice to would-be authors of programming | | Proolix Simple, maximally POSIX compliant mini-OS for i8086+ real mode, coded in C, assembly; uses and needs BIOS for calls. Documents in Russian, Ukrainian, English; description, download: binary, sources. [ | | ThrillOS Experimental 32-bit multitasking, multithreaded OS, Unix-like inode based FS, runs on x86, growing POSIX compliance. Compiler, virtual machine for Thrill Mnemonic Language (TML), byte-code interpreted | | DROPS__Dresden_Real-Time_Operating_System_Project Several RTOSs with QoS focus: much research is done on networking support for continuous-media applications, very few projects tackle related OS issues, such as scheduling and file system support for | | Project_Satori High-Performance distributed object environment emphasizing adaptive end-to-end QoS guarantees. Abstract, components, documents, people, funding. | | Roadrunner One-user, general purpose OS built on a protected memory, POSIX threads RT kernel; full kernel, device drivers, file systems, and network protocols runs in about 200 K RAM; now runs on x86 CPUs but de |
|
L4 microkernel family - Wikipedia, the free encyclopedia /**/ /**/ if (wgNotice != '') document.writeln(wgNotice); L4 microkernel family From Wikipedia, the free encyclopedia Jump to: navigation, search L4 is a family of second-generation microkernels based on the original designs and implementations by German computer scientist Jochen Liedtke. Originally implemented in highly tuned Intel i386-specific assembly language code, the API has seen extensive development in a number of directions, both in achieving a higher grade of platform independence and also in improving security, isolation, and robustness. There have been various re-implementations of the original binary L4 kernel interface (ABI) and its higher level successors, including L4Ka::Pistachio (Uni Karlsruhe), L4/MIPS (UNSW) and Fiasco (TU Dresden). For this reason, the name L4 has been generalized and no longer only refers to Liedtke's original implementation. It now applies to the whole microkernel family including the L4 kernel interface and its different versions.Contents1 Design paradigm2 History2.1 L32.2 L42.3 L4Ka::Hazelnut2.4 Fiasco3 Platform independence3.1 L4Ka::Pistachio3.2 Newer Fiasco versions3.3 University of New South Wales and NICTA4 Current research and development5 Commercial deployment6 References7 Further reading8 External links//[edit] Design paradigmSpecifying the general idea of a microkernel, Liedtke states:A concept is tolerated inside the microkernel only if moving it outside the kernel, i.e., permitting competing implementations, would prevent the implementation of the system's required functionality.[1]In this spirit, the L4 microkernel only provides the four basic mechanisms: a thread model, a mechanism for synchronous thread communication, scheduling, and an address space abstraction.An operating system based on a microkernel like L4 has to provide services as servers in user space that monolithic kernels like Linux or older generation microkernels include internally. For example, in order to implement a secure Unix-like system, servers will have to provide the rights management that Mach included inside the kernel.[edit] HistoryThe realization of drawbacks in design and performance of the first-generation Mach microkernel led a number of developers to re-examine the entire microkernel concept in the mid-1990s. The asynchronous in-kernel-buffering process communication concept used in Mach turned out to be one of the main reasons for its poor performance. This induced some of the Mach developers to put some time-critical components, like file systems or drivers, back inside the kernel, which of course, conflicted with the minimality concept of a true microkernel.[edit] L3Jochen Liedtke set out to prove that a well designed thinner IPC layer, with careful attention to performance and machine-specific (as opposed to platform independent) design could yield massive real-world performance improvements. Instead of Mach's complex IPC system, his L3 microkernel simply passed the message without any additional overhead. Defining and implementing the required security policies were considered to be duties of the user space servers. The role of the kernel was only to provide the necessary mechanism to enable the user-level servers to enforce the policies. L3 proved itself a safe and robust operating system, used for many years for example by TÜV SÜD.[edit] L4After some experience using L3, Liedtke came to realize that several other Mach concepts were also misplaced. By simplifying the microkernel concepts even further he developed the first L4 kernel which was primarily designed with high performance in mind. In order to wring out every bit of performance the entire kernel was written in assembly language. His work caused a minor revolution in operating system design circles. Soon it was being studied by a number of universities and research institutes, including IBM, where Liedtke started to work in 1996. At IBM's T.J. Watson Research Center Liedtke and his colleagues continued research on L4 and microkernel based systems in general.[edit] L4Ka::HazelnutIn 1999, Liedtke took over the Systems Architecture Group at the University of Karlsruhe, where he continued the research into microkernel systems. As a proof of concept that a high performance microkernel could also be constructed in a higher level language, the group developed L4Ka::Hazelnut, a C++ version of the kernel that ran on IA32- and ARM-based machines. The effort was a success — performance was still acceptable — and with its release the pure assembly language versions of the kernels were effectively discontinued.[edit] FiascoIn parallel to the development of L4Ka::Hazelnut, in 1998 the operating systems group of the TU Dresden (Technische Universität Dresden) started to develop their own C++ implementation of the L4 kernel interface, called Fiasco. In contrast to L4Ka::Hazelnut, which does not allow concurrency in the kernel at all and its successor L4Ka::Pistachio, which allows interrupts in the kernel only at specific preemption points, Fiasco is fully preemptible (with the exception of extremely short atomic operations) to achieve a low interrupt latency. This was considered necessary because Fiasco is used as the basis of DROPS, a hard real-time capable operating system, also developed at the TU Dresden.[edit] Platform independence[edit] L4Ka::PistachioUp until the release of L4Ka::Pistachio and newer versions of Fiasco, all L4 microkernels had been inherently tied close to the underlying CPU architecture. The next big shift in L4 development was the development of a platform independent API that still retained the high performance characteristics despite its higher level of portability. Although the underlying concepts of the kernel were the same, the new API provided many radical changes to previous L4 versions, including better support for multi-processor systems, looser ties between threads and address spaces, and the introduction of user-level thread control blocks (UTCBs) and virtual registers. After releasing the new L4 API (Version X.2 a.k.a. Version 4) in early 2001, the System Architecture Group at the University of Karlsruhe implemented a new kernel, L4Ka::Pistachio, completely from scratch, now with focus on both high performance as well as portability.[edit] Newer Fiasco versionsThe Fiasco microkernel has also been extensively improved over the years. It now supports several hardware platforms ranging from x86 through AMD64 to several ARM platforms. Notably, a version of Fiasco (FiascoUX) is able to run as a user-level application on top of Linux.Fiasco implements several extensions to the L4v2 API. Exception IPC enables the kernel to send CPU exceptions to user-level handler applications. With the help of alien threads it is possible to perform fine-grained control over system calls. X.2-style UTCBs have been added. Furthermore, Fiasco contains mechanisms for controlling communication rights as well as kernel-level resource consumption. On top of Fiasco a collection of basic user level services are developed (called L4Env) that amongst others are used to para-virtualise current Linux version (2.6.x) (called L4Linux).[edit] University of New South Wales and NICTADevelopment also took place at the University of New South Wales (UNSW), where developers implemented L4 on several 64-bit platforms. Their work resulted in L4/MIPS and L4/Alpha, resulting in Liedtke's original version being retroactively named L4/x86. Like Liedtke's original kernels, the UNSW kernels (written in a mixture of assembly and C) were unportable and each implemented from scratch. With the release of the highly portable L4Ka::Pistachio, the UNSW group abandoned their own kernels in favour of producing highly-tuned ports of L4Ka::Pistachio, including the fastest-ever reported implementation of message passing (36 cycles on the Itanium architecture).[2] The group has also demonstrated that user-level device drivers can perform as well as in-kernel drivers,[3] and developed Wombat, a highly portable version of Linux on L4 that runs on x86, ARM and MIPS processors. On XScale processors, Wombat demonstrates context-switching costs that are up to 30 times lower than in native Linux.[4][edit] Current research and developmentRecently the UNSW group, at their new home at National ICT Australia (NICTA), forked L4Ka::Pistachio into a new L4 version called NICTA::L4-embedded. As the name implies, this is aimed at use in commercial embedded systems, and consequently the implementation trade-offs favour small memory footprints and aim to reduce complexity. The API was modified to keep almost all system calls short enough so they do not require preemption points in order to ensure high real-time responsiveness.[5]The NICTA group now focuses on turning L4 into a highly-secure and -reliable platform. A formal proof of the correctness of the implementation is in progress.[6] This is combined with the development of a new L4 API, called seL4, aimed at satisfying security requirements such as those of Common Criteria. The seL4 API is represented by an executable specification[7] written in Haskell. There is a similar project on performing an exhaustive analysis of the latencies of kernel operations. Further work is developing frameworks for building componentised systems on top of L4.[8]The GNU Hurd project was considering adopting the L4 microkernel (GNU Hurd/L4 [1]) to replace Mach, but the new design will be capability-based and L4 does not support capabilities. Possible alternatives are the upcoming microkernels L4.sec and Coyotos, with a strong bias towards Coyotos (its development is made public, its specification published and efforts have been made to make it fit HURD's needs).Osker [2], an OS written in Haskell, is being written to match the L4 specification; although this focuses on the use of a functional programming language for OS development, not strictly microkernel research.[edit] Commercial deploymentIn November 2005, NICTA announced that Qualcomm was deploying NICTA's L4 version on their Mobile Station Modem chipsets. This led to the use of L4 in mobile phone handsets on sale from late 2006. In August 2006, ERTOS leader and UNSW professor Gernot Heiser spun out a company called Open Kernel Labs (OK Labs) to support commercial L4 users and further develop L4 for commercial use, in close collaboration with NICTA. OK Labs distributes its own version of L4, called OKL4, which is descended from NICTA::L4-embedded, and is supported for x86, ARM and MIPS. OKL4 was initially distributed under a BSD license. Recent releases use a dual licensing scheme with a Sleepycat-style open-source license. OK Labs also distributes a para-virtualized Linux called OK Linux, a descendant of Wombat.In April 2008, OK Labs released OKL4 2.1, which is the first public version of L4 using capability-based protection.[edit] References^ Jochen Liedtke (December 1995). "On µ-Kernel Construction". Proc. 15th ACM symposium on Operating Systems Principles (SOSP): 237–250. ^ Gray, Charles; Chapman, Matthew; Chubb, Peter; Mosberger-Tang, David; Heiser, Gernot (April 2005). "Itanium—a system implementor's tale". USENIX Annual Technical Conference: 264–278. ^ Leslie, Ben; Chubb, Peter; FitzRoy-Dale, Nicholas; Götz, Stefan; Gray, Charles; Macpherson, Luke; Potts, Daniel; Shen, Yueting; Elphinstone, Kevin; Heiser, Gernot (September 2005). "User-level device drivers: achieved performance". Journal of Computer Science and Technology 5 (20): 654–664. doi:10.1007/s11390-005-0654-4. ^ van Schaik, Carl; Heiser, Gernot (January 2007). "High-performance microkernels and virtualisation on ARM and segmented architectures". 1st International Workshop on Microkernels for Embedded Systems: 11–21, Sydney, Australia: NICTA. Retrieved on 2007-04-01. ^ Ruocco, Sergio (October 2008). "A Real-Time Programmer's Tour of General-Purpose L4 Microkernels". EURASIP Journal on Embedded Systems, Special Issue on Operating System Support for Embedded Real-Time Applications 2008: 1. doi:10.1155/2008/234710, http://www.hindawi.com/getarticle.aspx?doi=10.1155/2008/234710. ^ Tuch, Harvey; Klein, Gerwin; Norrish, Michael (January 2007). "Types, bytes, and separation logic". 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages: 97–108. ^ Derrin, Philip; Elphinstone, Kevin; Klein, Gerwin; Cock; David; Chakravarty, Manuel M. T. (September 2006). "Running the manual: an approach to high-assurance microkernel development". ACM SIGPLAN Haskell Workshop: 60–71. ^ Kuz, Ihor; Liu, Yan; Gorton, Ian; Heiser, Gernot (to appear). "CAmkES: a component model for secure microkernel-based embedded systems". Journal of Systems and Software 80: 687. doi:10.1016/j.jss.2006.08.039. [edit] Further readingJochen Liedtke, Ulrich Bartling, Uwe Beyer, Dietmar Heinrichs, Rudolf Ruland, Gyula Szalay. Two years of experience with a μ-Kernel based OS, ACM Press 1991Liedtke, Jochen; Haeberlen, Andreas; Park, Yoonho; Reuther, Lars; Uhlig, Volkmar (2000-10-22). "Stub-Code Performance is Becoming Important" (PDF). In Proceedings of the 1st Workshop on Industrial Experiences with Systems Software (WIESS), San Diego, CA, October 2000. Retrieved on 2006-09-05. (on L4 kernel and compiler)Cheng Guanghui, Nicholas Mc Guire. L4/Fiasco/L4Linux Kickstart, Distributed & Embedded Systems Lab - Lanzhou University[edit] External linksL4ka publicationsL4Hq – L4 headquarters, community site for L4 projectsThe L4 microkernel family – Overview over L4 implementations, documentation and projectsOfficial L4.Fiasco WikiL4Ka – Implementations L4Ka::Pistachio and L4Ka::HazelnutFiasco – A free C++ implementation for x86 and ARM processorsUNSW – Implementations for DEC Alpha and MIPS architectureOKL4 – Commercial L4 version from Open Kernel LabsNICTA L4 – Research Overview and PublicationsWombat – A Linux port on top of the L4/Iguana OSDarbat – A Darwin port on top of the L4 microkernelL4Linux – Linux running on L4 microkernelDROPS – The Dresden Real-Time Operating System ProjectGNU Hurd/L4 – Port of GNU Hurd/Mach to L4China Comp L4 Research Group – The China Computer µKernel L4 Research GroupInformation about L3, L4's predecessorRetrieved from "http://en.wikipedia.org/wiki/L4_microkernel_family" Category: Microkernels Views Article Discussion Edit this page History Personal tools Log in / create account if (window.isMSIE55) fixalpha(); Navigation Main page Contents Featured content Current events Random article Search Interaction About Wikipedia Community portal Recent changes Contact Wikipedia Donate to Wikipedia Help Toolbox What links here Related changesUpload fileSpecial pages Printable version Permanent linkCite this page Languages Deutsch Español Français 日本語 Polski Русский 中文 This page was last modified on 14 October 2008, at 07:32. All text is available under the terms of the GNU Free Documentation License. (See Copyrights for details.) Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a U.S. registered 501(c)(3) tax-deductible nonprofit charity. Privacy policy About Wikipedia Disclaimers if (window.runOnloadHook) runOnloadHook(); |
|