Linux in Safety-Critical Applications

Total Page:16

File Type:pdf, Size:1020Kb

Linux in Safety-Critical Applications Die approbierte Originalversion dieser Diplom-/Masterarbeit ist an der Hauptbibliothek der Technischen Universität Wien aufgestellt (http://www.ub.tuwien.ac.at). The approved original version of this diploma or master thesis is available at the main library of the Vienna University of Technology (http://www.ub.tuwien.ac.at/englweb/). Linux in Safety-Critical Applications DIPLOMARBEIT zur Erlangung des akademischen Grades Diplom-Ingenieur im Rahmen des Studiums Technische Informatik eingereicht von Roland Kammerer Matrikelnummer 0125555 an der Fakultät für Informatik der Technischen Universität Wien ausgeführt am ICT - Institut für Computertechnik Betreuung: Betreuer: O. Univ. Prof. Dipl.-Ing. Dr. techn. Dietmar Dietrich Betreuer: Dipl.-Ing. Andreas Gerstinger Wien, 04. 11. 2008 (Unterschrift Verfasser) (Unterschrift Betreuer) Technische Universität Wien A-1040 Wien Karlsplatz 13 Tel. +43/(0)1/58801-0 http://www.tuwien.ac.at Kurzfassung Die heutige Gesellschaft ist von einer Vielzahl von sicherheitskritischen Systemen abh¨angig,die die Sicherheit der Benutzer und der Umwelt garantieren m¨ussen. Deshalb ist es entscheidend welches Betriebssystem auf solchen sicherheitskritischen Systemen zum Einsatz kommt. Diese Ar- beit untersucht einen m¨oglichen Einsatz des Kernels Linux und des Betriebssystems GNU/Linux f¨ursicherheitskritische Systeme. Um Vertrauen zu schaffen, dass GNU/Linux als Plattform f¨ur sicherheitskritische Anwendungen eingesetzt werden kann, wurde anhand von relevanter Literatur erforscht, wie Linux entwickelt und getestet wird. Das Open Source Entwicklungsmodell wurde mit traditionellen Entwicklungsmodellen vergleichen. Es wurde analysiert, ob der aktuelle Stand der Entwicklung die Anforderungen von existierenden Normen im Bereich sicherheitskritischer Anwendungen erf¨ullenkann. Um die Relevanz von Linux f¨ursicherheitskritische Anwendungen noch weiter zu erh¨ohen,wurden zwei Projekte implementiert. Das erste ist eine vollautoma- tische Testumgebung f¨urRAID-1 Systeme auf Kernelebene, das zweite ist ein Dateisystem, das schadhafte Daten erkennt und korrigiert. Es zeigt sich, dass das Verfahren der Open Source Entwicklung, das von der GNU/Linux Entwicklergemeinschaft eingesetzt wird, kein limitierender Faktor ist. Die meisten Standards, die sich mit sicherheitskritischen Systemen besch¨aftigen,sind flexibel genug, um Systeme, die auf neuen und offenen Wegen entwickelt wurden, zu zertifizieren. Dies f¨uhrtzum Ergebnis, dass Linux als Plattform f¨ursichheitskritische Anwendungen in Be- tracht gezogen werden sollte. Die Entwicklung von Linux hat in den letzen Jahren einen großen Fortschritt gemacht, der Linux reif f¨urden Einsatz in sicherheitskritischen Systemen macht. II Abstract Modern society depends on a range of systems that need to guarantee the safety of their users and the environment. Therefore it is crucial which operating system is used for such safety-critical systems. This thesis examines the potential use of the operating system kernel Linux, and the GNU/Linux operating system for safety-critical systems. To gain confidence that GNU/Linux can be used as a platform for safety-critical applications, it was examined how Linux is developed and tested by assembling information from relevant literature. This Open Source development model was compared to traditional software development models. It was analyzed, if the current state of development can fulfil the requirements of existing safety-related standards. To further improve the relevance of Linux for safety-critical systems, two projects have been implemented. The first one is a fully automatic test suite for kernel-level software RAID-1 systems, the second one is a wrapper file system that detects and corrects faulty data on hard disks. It turns out that the Open Source development approach taken by the GNU/Linux community is not a limiting factor for its use in safety-critical applications. Most standards that deal with safety-critical systems are flexible enough to certify systems that are developed in new and open ways. As a result, Linux should be considerd as a platform for safety-critical systems. The development of Linux made large progress during the last years, which makes Linux fit for safety-critical systems. III Acknowledgements First of all I would like to thank my parents for giving me financial and personal support during my whole lifetime. Thanks to Andreas Gerstinger for his endless patience and the ability to talk to people involved in Linux kernel development. Thanks to Wolfgang Puffitsch for reviewing my source code and to Daniel Schneider for proof-reading. Thanks to my fellow students and true friends Harald Krapfenbauer and Wolfgang Puffitsch for all their support and interesting discussions during the last years. Last but not least I would like to thank all the Linux kernel hackers and the GNU project for providing such great software, which makes computer science that much fun for me. IV Table of Contents 1 Introduction 1 1.1 Problem Description...................................1 1.2 Intentions.........................................2 1.3 Method..........................................2 2 Linux and GNU/Linux3 2.1 Free and Open Source Software.............................4 2.2 History..........................................5 2.3 Features and Design...................................6 2.4 Development Process................................... 10 2.4.1 Software Development - The Traditional Way................. 10 2.4.2 Kernel Development - The Open Source Way................. 17 2.4.3 Kernel Management - The git Way....................... 18 2.4.4 Release Cycle................................... 21 2.4.5 The Modularity of Linux and GNU/Linux Distributions........... 22 2.4.6 FreeBSD...................................... 26 2.5 Testing, Standardization and Backports........................ 28 2.5.1 Testing and Standardization........................... 28 2.5.2 Backports..................................... 31 3 Safety 33 3.1 Definition of Safety.................................... 33 3.2 Dependability....................................... 35 3.2.1 Threats...................................... 35 3.2.2 Attributes..................................... 37 3.2.3 Means....................................... 38 3.3 Testing.......................................... 41 3.3.1 Black-Box Testing................................ 42 3.3.2 White-Box Testing................................ 43 3.3.3 Fault Injection.................................. 46 3.4 Safety-Related Standards................................ 49 3.4.1 Safe State..................................... 50 3.4.2 Requirements in Different Safety-Related Standards............. 51 3.5 COTS........................................... 55 3.5.1 Definition of COTS............................... 55 V 3.5.2 GNU/Linux Distributors and Their COTS Products............. 57 4 Related Work 65 4.1 Preliminary Assessment of Linux for Safety-Related Systems............ 65 4.2 COTS Components in Safety-Critical Systems..................... 67 4.3 Further Important Work................................. 71 4.3.1 Linux and Real-Time.............................. 71 4.3.2 Linux, Safety, and COTS............................ 72 5 Improving Linux for Safety-Critical Applications 74 5.1 A Test-Suite for Kernel Level RAID-1 Systems - raid1test.............. 74 5.1.1 Implementation.................................. 75 5.1.2 Configuration................................... 83 5.1.3 Test Results.................................... 88 5.2 A File System for Safety-Critical Applications - tinysafefs.............. 89 5.2.1 FUSE....................................... 89 5.2.2 Features...................................... 89 5.2.3 Implementation.................................. 92 5.2.4 Configuration................................... 98 5.2.5 Test Results.................................... 99 6 Conclusion 100 Appendices 104 A Extreme Programming 104 B Selected Source Code 107 B.1 raid1test.......................................... 107 B.2 tinysafefs......................................... 112 Literature 113 Internet References 117 VI Abbreviations API Application Programming Interface BSD Berkeley Software Distribution COTS Commercial/Component Off The Shelf CPU Central Processing Unit CVS Concurrent Versions System FC Failure Case FMEA Failure Mode and Effect Analysis FOSS Free and Open Source Software FS Free Software FTA Fault Tree Analysis GDB GNU Project Debugger GNU GNU's Not Unix GPG GNU Privacy Guard GPL GNU Public Licence GUI Graphical User Interface HRT Hard Real-Time HTML HyperText Markup Language IPC Inter Process Communication ISV Independent Software Vendor KVM Kernel-based Virtual Machine LF Linux Foundation LSB Linux Standard Base LTP Linux Test Project MIT Massachusetts Institute of Technology MMU Memory Management Unit MTA Mail Transfer Agent MTBF Mean Time Between Failures MTTF Mean Time To Failure VII MTTR Mean Time To Repair MULTICS Multiplexed Information and Computation System. NC Normal Case NIC Network Interface Card NPTL Native POSIX Thread Library NUMA Non Uniform Memory Access OEM Original Equipment Manufacturer OSADL Open Source Automation Development Lab OSDL Open Source Development Labs OSS Open Source Software PGP Pretty Good Privacy POSIX Portable Operating System Interface QoS Quality of Service RAID Redundant Array of Inexpensive Disks RAMS Reliability, Availability, Maintainability, and Safety RHMRG Red Hat Messaging, Real Time Grid RTDM Real-Time Driver Model SCI System Call Interface SCSI
Recommended publications
  • FAI.Me a Build Service for Installation Images and Cloud Images
    FAI.me A Build Service for Installation Images and Cloud Images Thomas Lange, Debian Developer and sysadmin at the University of Cologne [email protected] MiniDebConf Hamburg 2018 1/19 finger Mrfai@localhost ◮ whoami ◮ Sysadmin for more than two and a half decades ◮ Debian developer since 2000 ◮ Diploma in computer science, University of Bonn, Germany ◮ SunOS 4.1.1 on SPARC hardware, then Solaris Jumpstart ◮ Started FAI in 1999 for my first cluster (16× Dual PII 400 MHz) ◮ Several talks and tutorials: Linux Kongress, Linuxtag, DebConf, SANE, LCA, FOSDEM, CeBit, OSDC, UKUUG, FrOSCon, Chemnitzer Linuxtag ◮ FAI trainings 2/19 Motivation ◮ Debian installer is not that easy for beginners ◮ Also FAI is not for beginners ◮ How to make FAI usable for beginners? 3/19 The idea ◮ An installer should cover the most usual installations ◮ Ignore the special cases ◮ Do only ask the really important questions ◮ Ask everything at the beginning ◮ Create a customized installation media ◮ Boot this installation media and get yourself a coffee ◮ Ready! 4/19 FAI ◮ FAI = Fully Automatic Installation ◮ FAI is a tool for experienced sysadmins ◮ You have to adjust the config files to your local needs ◮ How to make FAI usable for beginners? FAI.me 5/19 FAI.me 6/19 FAI.me ◮ Easy creation of the installation media (CD/USB stick) ◮ Customizations are easy to do (clicks on a web page) ◮ Lanuage, user name and pw, root pw ◮ Select one of the common desktops ◮ Additional packages ◮ Distributions: stable, stable+backports, testing 7/19 Some more advanced features ◮ A couple of different partitioning variants ◮ SSH key for root login ◮ Use your github account (ssh pub key) for the root login ◮ Add one public available repository 8/19 FAI.me for the cloud ◮ Cloud Images ◮ Get your customized cloud image by just a few clicks ◮ Disk size ◮ Disk image format (raw.xz, raw.zst, qcow2, vmdk,...) ◮ Hostname 9/19 FAI.me more ideas ◮ Make web page dynamic: easy mode Thanks Juri! ◮ Images for non-amd64 archs ◮ Other distributions (e.g.
    [Show full text]
  • Developing and Benchmarking Native Linux Applications on Android
    Developing and Benchmarking Native Linux Applications on Android Leonid Batyuk, Aubrey-Derrick Schmidt, Hans-Gunther Schmidt, Ahmet Camtepe, and Sahin Albayrak Technische Universit¨at Berlin, 10587 Berlin, Germany {aubrey.schmidt,leonid.batyuk,hans-gunther.schmidt,ahmet.camtepe, sahin.albayrak}@dai-labor.de http://www.dai-labor.de Abstract. Smartphones get increasingly popular where more and more smartphone platforms emerge. Special attention was gained by the open source platform Android which was presented by the Open Handset Al- liance (OHA) hosting members like Google, Motorola, and HTC. An- droid uses a Linux kernel and a stripped-down userland with a custom Java VM set on top. The resulting system joins the advantages of both environments, while third-parties are intended to develop only Java ap- plications at the moment. In this work, we present the benefit of using native applications in Android. Android includes a fully functional Linux, and using it for heavy computational tasks when developing applications can bring in substantional performance increase. We present how to develop native applications and software components, as well as how to let Linux appli- cations and components communicate with Java programs. Additionally, we present performance measurements of native and Java applications executing identical tasks. The results show that native C applications can be up to 30 times as fast as an identical algorithm running in Dalvik VM. Java applications can become a speed-up of up to 10 times if utilizing JNI. Keywords: software, performance, smartphones, android, C, Java. 1 Introduction With the growing customer interest in smartphones the number of available platforms increases steadily.
    [Show full text]
  • Free As in Freedom (2.0): Richard Stallman and the Free Software Revolution
    Free as in Freedom (2.0): Richard Stallman and the Free Software Revolution Sam Williams Second edition revisions by Richard M. Stallman i This is Free as in Freedom 2.0: Richard Stallman and the Free Soft- ware Revolution, a revision of Free as in Freedom: Richard Stallman's Crusade for Free Software. Copyright c 2002, 2010 Sam Williams Copyright c 2010 Richard M. Stallman Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License." Published by the Free Software Foundation 51 Franklin St., Fifth Floor Boston, MA 02110-1335 USA ISBN: 9780983159216 The cover photograph of Richard Stallman is by Peter Hinely. The PDP-10 photograph in Chapter 7 is by Rodney Brooks. The photo- graph of St. IGNUcius in Chapter 8 is by Stian Eikeland. Contents Foreword by Richard M. Stallmanv Preface by Sam Williams vii 1 For Want of a Printer1 2 2001: A Hacker's Odyssey 13 3 A Portrait of the Hacker as a Young Man 25 4 Impeach God 37 5 Puddle of Freedom 59 6 The Emacs Commune 77 7 A Stark Moral Choice 89 8 St. Ignucius 109 9 The GNU General Public License 123 10 GNU/Linux 145 iii iv CONTENTS 11 Open Source 159 12 A Brief Journey through Hacker Hell 175 13 Continuing the Fight 181 Epilogue from Sam Williams: Crushing Loneliness 193 Appendix A { Hack, Hackers, and Hacking 209 Appendix B { GNU Free Documentation License 217 Foreword by Richard M.
    [Show full text]
  • Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance
    Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance Redha Gouicem and Damien Carver, Sorbonne University, LIP6, Inria; Jean-Pierre Lozi, Oracle Labs; Julien Sopena, Sorbonne University, LIP6, Inria; Baptiste Lepers and Willy Zwaenepoel, University of Sydney; Nicolas Palix, Université Grenoble Alpes; Julia Lawall and Gilles Muller, Inria, Sorbonne University, LIP6 https://www.usenix.org/conference/atc20/presentation/gouicern This paper is included in the Proceedings of the 2020 USENIX Annual Technical Conference. July 15–17, 2020 978-1-939133-14-4 Open access to the Proceedings of the 2020 USENIX Annual Technical Conference is sponsored by USENIX. Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance Redha Gouicem, Damien Carver Jean-Pierre Lozi Julien Sopena Sorbonne University, LIP6, Inria Oracle Labs Sorbonne University, LIP6, Inria Baptiste Lepers, Willy Zwaenepoel Nicolas Palix University of Sydney Université Grenoble Alpes Julia Lawall, Gilles Muller Inria, Sorbonne University, LIP6 Abstract One source of challenges in managing core frequencies is the Frequency Transition Latency (FTL). Indeed, transitioning In modern server CPUs, individual cores can run at different a core from a low to a high frequency, or conversely, has an frequencies, which allows for fine-grained control of the per- FTL of dozens to hundreds of milliseconds. FTL leads to a formance/energy tradeoff. Adjusting the frequency, however, problem of frequency inversion in scenarios that are typical incurs a high latency. We find that this can lead to a problem of the use of the standard POSIX fork() and wait() system of frequency inversion, whereby the Linux scheduler places calls on process creation, or of synchronization between a newly active thread on an idle core that takes dozens to hun- lightweight threads in a producer-consumer application.
    [Show full text]
  • One Big PDF Volume
    Proceedings of the Linux Symposium July 14–16th, 2014 Ottawa, Ontario Canada Contents Btr-Diff: An Innovative Approach to Differentiate BtrFs Snapshots 7 N. Mandliwala, S. Pimpale, N. P. Singh, G. Phatangare Leveraging MPST in Linux with Application Guidance to Achieve Power and Performance Goals 13 M.R. Jantz, K.A. Doshi, P.A. Kulkarni, H. Yun CPU Time Jitter Based Non-Physical True Random Number Generator 23 S. Müller Policy-extendable LMK filter framework for embedded system 49 K. Baik, J. Kim, D. Kim Scalable Tools for Non-Intrusive Performance Debugging of Parallel Linux Workloads 63 R. Schöne, J. Schuchart, T. Ilsche, D. Hackenberg Veloces: An Efficient I/O Scheduler for Solid State Devices 77 V.R. Damle, A.N. Palnitkar, S.D. Rangnekar, O.D. Pawar, S.A. Pimpale, N.O. Mandliwala Dmdedup: Device Mapper Target for Data Deduplication 83 V. Tarasov, D. Jain, G. Kuenning, S. Mandal, K. Palanisami, P. Shilane, S. Trehan, E. Zadok SkyPat: C++ Performance Analysis and Testing Framework 97 P.H. Chang, K.H. Kuo, D.Y. Tsai, K. Chen, Luba W.L. Tang Computationally Efficient Multiplexing of Events on Hardware Counters 101 R.V. Lim, D. Carrillo-Cisneros, W. Alkowaileet, I.D. Scherson The maxwell(8) random number generator 111 S. Harris Popcorn: a replicated-kernel OS based on Linux 123 A. Barbalace, B. Ravindran, D. Katz Conference Organizers Andrew J. Hutton, Linux Symposium Emilie Moreau, Linux Symposium Proceedings Committee Ralph Siemsen With thanks to John W. Lockhart, Red Hat Robyn Bergeron Authors retain copyright to all submitted papers, but have granted unlimited redistribution rights to all as a condition of submission.
    [Show full text]
  • Essential Linux Device Drivers.Pdf
    Essential Linux Device Drivers by Sreekrishnan Venkateswaran Publisher: Prentice Hall Pub Date: March 27, 2008 Print ISBN-10: 0-13-239655-6 Print ISBN-13: 978-0-13-239655-4 Pages: 744 Table of Contents | Index Overview "Probably the most wide ranging and complete Linux device driver book I've read." --Alan Cox, Linux Guru and Key Kernel Developer "Very comprehensive and detailed, covering almost every single Linux device driver type." --Theodore Ts'o, First Linux Kernel Developer in North America and Chief Platform Strategist of the Linux Foundation The Most Practical Guide to Writing Linux Device Drivers Linux now offers an exceptionally robust environment for driver development: with today's kernels, what once required years of development time can be accomplished in days. In this practical, example-driven book, one of the world's most experienced Linux driver developers systematically demonstrates how to develop reliable Linux drivers for virtually any device. Essential Linux Device Drivers is for any programmer with a working knowledge of operating systems and C, including programmers who have never written drivers before. Sreekrishnan Venkateswaran focuses on the essentials, bringing together all the concepts and techniques you need, while avoiding topics that only matter in highly specialized situations. Venkateswaran begins by reviewing the Linux 2.6 kernel capabilities that are most relevant to driver developers. He introduces simple device classes; then turns to serial buses such as I2C and SPI; external buses such as PCMCIA, PCI, and USB; video, audio, block, network, and wireless device drivers; user-space drivers; and drivers for embedded Linux–one of today's fastest growing areas of Linux development.
    [Show full text]
  • OPENSOURCES Voices from the Open Source Revolution Michael Tiemann Future of Cygnus Solutions: an Entrepreneur’S Account
    Eric S. Raymond A Brief History of Hackerdom Marshall Kirk McKusick Twenty Years of Berkeley Unix: From AT&T-Owned to Freely Redistributable Scott Bradner The Internet Engineering Task Force Richard Stallman The GNU Operating System and the Free Software Movement OPENSOURCES Voices from the Open Source Revolution Michael Tiemann Future of Cygnus Solutions: An Entrepreneur’s Account Paul Vixie Software Engineering Linus Torvalds The Linux Edge Robert Young Giving It Away: How Red Hat Software Stumbled Across a New Economic Model and Helped Improve an Industry Larry Wall Diligence, Patience, and Humility Bruce Perens The Open Source Definition Tim O'Reilly Hardware, Software, and Infoware Jim Hamerly and Tom Paquin with Susan Walton Freeing the Source: The Story of Mozilla Eric S. Raymond Edited by The Revenge of the Hackers Chris DiBona, Sam Ockman and Mark Stone OPENSOURCES Voices from the Open Source Revolution Edited by Chris DiBona, Sam Ockman and Mark Stone Copyright “Free Software” is Copyright c ; 1998 Richard M. Stallman Verbatim copying and duplication is permitted in any medium provided this notice is preserved. “A Brief History of Hackerdom” and “Revenge of the Hackers” are Copyright c ; 1998 Eric S. Raymond. These essays are free; you can redistribute them and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. These essays are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    [Show full text]
  • Free As in Freedom Richard Stallman's Crusade for Free Software
    Free as in Freedom Richard Stallman's Crusade for Free Software Sam Williams ∗ copy @ www.gnu.org ∗ Generated by SiSU www.jus.uio.no/sisu www.sisudoc.org Copyright © Sam Williams 2002, published under the GNU Free Documentation License. Per- mission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Document License, Version 1.1 or any later version published by the Free Software Foun- dation; with the Invariant Sections being no invariant sections, with the Front-Cover Texts being no invariant sections, and with the Back-Cover Texts being no invariant sections. A copy of the license is included in Appendix C, GNU Free Documentation License. All images are to be included verbatim when the document is copied, distributed, or modified under the terms of the GFDL. Generated by SiSU [ SiSU 0.63.0 of 2007w51/1 ] www.jus.uio.no/sisu Copyright © 1997, current 2007 Ralph Amissah, All Rights Reserved. SiSU is software for document structuring, publishing and search (with object citation numbering), www.sisudoc.org SiSU is released under GPL 3 or later, <http://www.fsf.org/licenses/gpl.html>. Document information: sourcefile free as in freedom.richard stallman crusade for free software.sam williams.sst Generated by SiSU www.jus.uio.no/sisu version information: SiSU 0.63.0 of 2007w51/1 For alternative output formats of this document check: <http://www.jus.uio.no/sisu/free as in freedom.richard stallman crusade for free software.sam williams/sisu manifest.html> SiSU www.gnu.org ii Contents Contents Free as in Freedom1 Richard Stallman's Crusade for Free Software2 By Sam Williams3 Preface..........................................4 Comments and Questions............................5 Acknowledgments................................5 Chapter 1 - For Want of a Printer............................6 Chapter 2 - 2001: A Hacker’s Odyssey........................
    [Show full text]
  • 2008 Essential Linux Device Drivers; Sreekrishnan Venkateswaran
    Essential Linux Device Drivers by Sreekrishnan Venkateswaran Publisher: Prentice Hall Pub Date: March 27, 2008 Print ISBN-10: 0-13-239655-6 Print ISBN-13: 978-0-13-239655-4 Pages: 744 Table of Contents | Index Overview "Probably the most wide ranging and complete Linux device driver book I've read." --Alan Cox, Linux Guru and Key Kernel Developer "Very comprehensive and detailed, covering almost every single Linux device driver type." --Theodore Ts'o, First Linux Kernel Developer in North America and Chief Platform Strategist of the Linux Foundation The Most Practical Guide to Writing Linux Device Drivers Linux now offers an exceptionally robust environment for driver development: with today's kernels, what once required years of development time can be accomplished in days. In this practical, example-driven book, one of the world's most experienced Linux driver developers systematically demonstrates how to develop reliable Linux drivers for virtually any device. Essential Linux Device Drivers is for any programmer with a working knowledge of operating systems and C, including programmers who have never written drivers before. Sreekrishnan Venkateswaran focuses on the essentials, bringing together all the concepts and techniques you need, while avoiding topics that only matter in highly specialized situations. Venkateswaran begins by reviewing the Linux 2.6 kernel capabilities that are most relevant to driver developers. He introduces simple device classes; then turns to serial buses such as I2C and SPI; external buses such as PCMCIA, PCI, and USB; video, audio, block, network, and wireless device drivers; user-space drivers; and drivers for embedded Linux–one of today's fastest growing areas of Linux development.
    [Show full text]
  • Overview Overview
    Essential Linux Device Drivers by Sreekrishnan Venkateswaran Publisher: Prentice Hall Pub Date: March 27, 2008 Print ISBN-10: 0-13-239655-6 Print ISBN-13: 978-0-13-239655-4 Pages: 744 Table of Contents | Index Overview "Probably the most wide ranging and complete Linux device driver book I've read." --Alan Cox, Linux Guru and Key Kernel Developer "Very comprehensive and detailed, covering almost every single Linux device driver type." --Theodore Ts'o, First Linux Kernel Developer in North America and Chief Platform Strategist of the Linux Foundation The Most Practical Guide to Writing Linux Device Drivers Linux now offers an exceptionally robust environment for driver development: with today's kernels, what once required years of development time can be accomplished in days. In this practical, example-driven book, one of the world's most experienced Linux driver developers systematically demonstrates how to develop reliable Linux drivers for virtually any device. Essential Linux Device Drivers is for any programmer with a working knowledge of operating systems and C, including programmers who have never written drivers before. Sreekrishnan Venkateswaran focuses on the essentials, bringing together all the concepts and techniques you need, while avoiding topics that only matter in highly specialized situations. Venkateswaran begins by reviewing the Linux 2.6 kernel capabilities that are most relevant to driver developers. He introduces simple device classes; then turns to serial buses such as I2C and SPI; external buses such as PCMCIA, PCI, and USB; video, audio, block, network, and wireless device drivers; user-space drivers; and drivers for embedded Linux–one of today's fastest growing areas of Linux development.
    [Show full text]
  • Wikireader Free Software and Free Contents
    WIKIREADER FREE SOFTWARE AND FREE CONTENTS A COLLECTION OF ARTICLES FROM WIKIPEDIA, THE FREE ENCYCLOPEDIA Last change: June 28th, 2004 W I K I M E D I A F O U N D A T I O N IMPRINT Authors: The volunteer writers of the english Wikipedia Editor: Thomas R. "TomK32" Koll Notable Wikipedians for this WikiReader: Used fonts: FreeSerif und FreeMono Cover: Last change in this edition: June 28th 2004 at 22:40 CEST Webdress of Wikipedia: http://en.wikipedia.org ISSN (Onlineedtion): 1613-7752 ISSN (Printedtion): not known yet A complete list of used articles and the names of all registered authors who worked on these articles can be found in the appendix. WIKIREADER INTERNET 1 ON WIKIPEDIA Wikipedia is a free encyclopedia which was started to give everyone a free source of knowledge which you not only can read but also extend in form of writing for it. On the website http://en.wikipedia.org you can not only find the current articles of Wikipedia but you can also start writing imediately without registration or identification. With this revolutionary method more than 700.000 articles were written since 2001 in more than 40 languages, and it's growing faster. In some languages Wikipedia is the first ency- clopedia ever. Since 2003 the Wikimedia Foundation is taking care of running the farm of webservers and also hosts and supports other projects like the multilinugual dictionary Wiktionary and the textbooks project WikiBooks. ON WIKIREADER WikiReader is a randomly published series of collections of Wikipedia articles, a detai- led overview over a certain topic presented in a editored form.
    [Show full text]
  • Libre Comme Dans Liberté Auteur: Sam Williams Traduction: Collectif Wikisource Version 9.3
    Pour la Liberté Libre comme dans Liberté Auteur: Sam Williams Traduction: Collectif Wikisource Version 9.3 Copyright © U.C.H Pour la Liberté Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU Free Documentation License, Version 1.1 ou ultérieure publiée par la Free Software Foundation. Une copie de cette Licence est incluse dans la section « GNU Free Documentation License » de ce document. HackAngel Pour la Liberté... Libre comme dans Liberté Un hacker est quelqu©un qui apprécie l©intelligence espiègle. Je sais que pour beaucoup de personnes il représente un pirate informatique, mais puisqu©au sein de ma communauté nous nous appelons « hacker » je n©accepterai aucune autre signification. Si vous voulez parler de ces personnes qui cassent les codes de sécurité vous devriez parler de « cracker ». Le terme « hacker » ne se limite pas au domaine des ordinateurs. Au Massachusetts Institute of Technology il existe une ancienne tradition, les gens « hackent » les bâtiments et les lieux publics en y accrochant le fameux panneau de signalisation « Nerd Crossing » par exemple. Aucune sécurité n©est détournée et c©est espiègle et intelligent. Richard M. Stallman Table des matières Libre comme dans Liberté ...................................................................................................................4 Remerciements.................................................................................................................................7 Chapitre I Ð Faute d'une
    [Show full text]