Kernel Tricks COVER STORY Kernelpromising Projects from the Linux Kerneltricks Community

Total Page:16

File Type:pdf, Size:1020Kb

Kernel Tricks COVER STORY Kernelpromising Projects from the Linux Kerneltricks Community Cover Intro: Kernel Tricks COVER STORY KERNELPromising projects from the Linux kernelTRICKS community Developers are constantly looking for new ways to interact with the versatile Linux kernel. This month we study some innovative projects leading deep into kernel space. BY JON MASTERS, JAN RÄHM, AND JOE CASAD ost Linux users know they can tion. At the heart of that distribution is is really doing, take a look at Figure 1. rely on the kernel without ever the Linux kernel itself – a complex col- The kernel appears in the center of the Mgiving it much thought. But if lection of software routines that takes diagram, surrounded by a sample of the you do look a little deeper, you’ll find control whenever a machine first boots operations it assists in performing. some evolving technologies that extend and periodically (many times each sec- On the left, hardware interrupts from the kernel in interesting ways. This ond) handles the resource requirements devices such as disks, network cards, month we cover some innovations at of applications, manages system hard- sound devices, graphics cards, and so on the edges of the Linux kernel. ware devices, and generally does a lot arrive at unpredictable times (data has Our first article describes the new of the low level dirty work. perhaps been requested, but there is no userspace driver model in upcoming ker- The Linux kernel is regarded as a fully way to know exactly when the device nel versions. In our second story, Klaus functional, complex, and well-docu- will actually deliver that data). In a simi- Knopper looks at block device compres- mented role model for open source soft- lar way, the system timer (on most sys- sion with the Cloop module, which lets ware. Everyone has access to the source Live CD developers put up to 2GBs on a code, which is updated daily; and ev- 700MB CD. We’ll also examine kernel- eryone can join in with dis- based virtualization with KVM, and cussions on the mailing we’ll end with a look at the Flash Trans- lists or submit lation Layer and the LogFS flash filesys- patches. tem. To under- We hope you enjoy this month’s stand what Kernel Tricks cover story collection. But the kernel first, read on for a brief introduction to the brain of Linux. The Linux Kernel The term Linux, in the strictest sense, does not refer to the shiny collection of software components and applications that is often known as a Linux distribu- COVER STORY Userspace Drivers .................... 28 Cloop .......................................... 32 KVM .......................................... 37 LogFS ........................................ 40 JANUARY 2008 ISSUE 86 21 021-026_coverintro.indd 21 16.11.2007 13:32:04 Uhr COVER STORY Cover Intro: Kernel Tricks opment, Linux 2.4 was released in the late 1990s. Linux 2.4 was significant because it was the first kernel release widely used by the masses – not just computer enthusiasts, but also those try- ing Linux for the first time on their desk- top computers, servers, and even embed- ded gadgets. Version 2.4 was also used in the new generation of “Enterprise” distributions from major Linux vendors. Once Linux 2.4 was safely out of the way, work began in earnest on a 2.5 de- velopment series, leading up to a major 2.6 kernel release a few years ago. Version 2.6 was a complete revolution for Linux. It had a rewritten scheduler (that can scale to many thousands of CPUs by now), a full device manage- Figure 1: The Linux kernel manages processes, hardware interrupts, and housekeeping tasks. ment subsystem with greatly improved and re-written dynamic device support, tems) fires regularly to allow Linux to kernel itself should be thought of more and literally countless other improve- perform periodic housekeeping opera- as a collection of software routines in a ments that came as a result of the grow- tions many times per second. privileged library. These specially privi- ing acceptance of Linux as a viable com- A kernel would not be particularly leged routines are always executed in mercial offering. By this point, features useful if it were not able to also service response to specific events, and at that weren’t coming in from enthusiasts at the user in the provision of support for time, whatever else was running is tem- nearly the same rate that they were running programs (called tasks, within porarily saved as the system switches being offered by well-known Linux the world of the Linux kernel). On the into kernel code. Most of the time, ker- hackers employed by Linux vendors and right side of the diagram are three tasks. nel code runs either as a result of timers companies like IBM. Each represents a different kind of appli- and hardware interrupts, or as the result cation. The first, at the bottom, is a regu- of a request from an application. It also Linux Is Not Just Linus lar user program – in this case, a Bash runs at startup and in various error con- Although it should be obvious by now, shell running on a user’s desktop. Most ditions. Linux is not the day-to-day product of programs don’t communicate with the one man’s efforts. Linus Torvalds is kernel directly. Instead, they use the A Little History widely recognized as the inventor and GNU C Library functions, which in turn The Linux operating system dates back head of the Linux kernel project, but call standard kernel interfaces in order to Linus Torvalds’ first experiments in Linus serves more as a highly skilled to provide required services. 1991. At that time, Linux was merely a project manager at this point (Figure 2). Sometimes, an application does not toy operating system alternative. It ran From a qualitative point of view, Linus use the C library but talks to the kernel only on Intel more directly instead. This is the case 386-compatible with certain low-level, statically linked processors; how- tools – for example, busybox (commonly ever, it was very used as a recovery tool, as well as in em- hackable, and it bedded gadgets such as the Nokia N810 wasn’t long be- Internet Tablet). In the diagram, you can fore Linux was see one of these special tools providing available for a the services of init. Finally, at times the wide variety of kernel runs special kernel code as if it different ma- were almost a regular program (but with chines – first privileges). came the more The key point of Figure 1 is that a ker- generic PC sup- nel is far from magical. Its behaviors and port, but thereaf- processes can be explained. Many peo- ter, developers ple believe that a kernel is somehow began to port “running” all the time and constantly Linux to other overseeing system operations. Although architectures. Figure 2: Linus Torvalds at the Kernel Summit 2007: the founding it is true that Linux does perform a vari- After almost a father of the Linux kernel still makes a major contribution to its devel- ety of system monitoring functions, the decade of devel- opment. 22 ISSUE 86 JANUARY 2008 021-026_coverintro.indd 22 16.11.2007 13:32:47 Uhr Anzeige Nokia 021-026_coverintro.indd 23 16.11.2007 13:33:07 Uhr COVER STORY Cover Intro: Kernel Tricks When you read the document, you may Linus’ git repository. Git is the Linux notice some gaps and that the column kernel source management utility writ- contains an s for orphaned status. These ten by Linus Torvalds. orphaned projects are projects that no- body is currently working on. Of course, Tree Structure the developer community is always The kernel tree structure consists of happy for somebody to step in and as- four main trees above the branches or sume responsibility for an orphaned de- subtrees: main 2.6.x, 2.6.x.y-stable, velopment sector, but if you are new to 2.6.x-git, and 2.6.x-mm. Linus Torvalds kernel development, you should proba- maintains the main 2.6.x tree. When a bly consider sticking to bug fixes and new kernel version is imminent, Tor- patches before attempting the main- valds opens a two-week window in Figure 3: Andrew Morton is the number two tainer role. which developers can send him their in kernel development. His -mm branch diffs. provides the impetus for new features in Linux Day-to-Day In nearly every case, changes destined the Linux kernel. Development for the main tree have been tested in the Linux kernel development takes place on -mm kernel over a period of days or may not be the main code developer; a minute-by-minute basis, around the weeks. Andrew Morton’s 2.6.x-mm tree however, he still coordinates releases clock, every day of the year. Central differs from Torvald’s Vanilla kernel in and work on the kernel, contributes to co-ordination happens using the Linux that it contains untested changes by mailing lists, and takes an active part Kernel Mailing List (LKML), an archive Morton himself or resulting from patches in discussions on new functions. of which you can find at lkml. org. reviewed by Morton. Morton integrates Below Linus Torvalds in the kernel Although general Linux kernel develop- changes to all subsystems and patches hierarchy are a number of maintainers ment discussion happens on the LKML, from the mailing list with his version. supervising work on different parts of literally dozens of other popular email- The -mm branch is regarded as a play- the kernel. A maintainer decides on the ing lists cover each of the many features ground for new developments and fea- development roadmap, typically in col- within Linux.
Recommended publications
  • The Kernel Report
    The kernel report (ELC 2012 edition) Jonathan Corbet LWN.net [email protected] The Plan Look at a year's worth of kernel work ...with an eye toward the future Starting off 2011 2.6.37 released - January 4, 2011 11,446 changes, 1,276 developers VFS scalability work (inode_lock removal) Block I/O bandwidth controller PPTP support Basic pNFS support Wakeup sources What have we done since then? Since 2.6.37: Five kernel releases have been made 59,000 changes have been merged 3069 developers have contributed to the kernel 416 companies have supported kernel development February As you can see in these posts, Ralink is sending patches for the upstream rt2x00 driver for their new chipsets, and not just dumping a huge, stand-alone tarball driver on the community, as they have done in the past. This shows a huge willingness to learn how to deal with the kernel community, and they should be strongly encouraged and praised for this major change in attitude. – Greg Kroah-Hartman, February 9 Employer contributions 2.6.38-3.2 Volunteers 13.9% Wolfson Micro 1.7% Red Hat 10.9% Samsung 1.6% Intel 7.3% Google 1.6% unknown 6.9% Oracle 1.5% Novell 4.0% Microsoft 1.4% IBM 3.6% AMD 1.3% TI 3.4% Freescale 1.3% Broadcom 3.1% Fujitsu 1.1% consultants 2.2% Atheros 1.1% Nokia 1.8% Wind River 1.0% Also in February Red Hat stops releasing individual kernel patches March 2.6.38 released – March 14, 2011 (9,577 changes from 1198 developers) Per-session group scheduling dcache scalability patch set Transmit packet steering Transparent huge pages Hierarchical block I/O bandwidth controller Somebody needs to get a grip in the ARM community.
    [Show full text]
  • The Linux Kernel Module Programming Guide
    The Linux Kernel Module Programming Guide Peter Jay Salzman Michael Burian Ori Pomerantz Copyright © 2001 Peter Jay Salzman 2007−05−18 ver 2.6.4 The Linux Kernel Module Programming Guide is a free book; you may reproduce and/or modify it under the terms of the Open Software License, version 1.1. You can obtain a copy of this license at http://opensource.org/licenses/osl.php. This book is distributed in the hope it will be useful, but without any warranty, without even the implied warranty of merchantability or fitness for a particular purpose. The author encourages wide distribution of this book for personal or commercial use, provided the above copyright notice remains intact and the method adheres to the provisions of the Open Software License. In summary, you may copy and distribute this book free of charge or for a profit. No explicit permission is required from the author for reproduction of this book in any medium, physical or electronic. Derivative works and translations of this document must be placed under the Open Software License, and the original copyright notice must remain intact. If you have contributed new material to this book, you must make the material and source code available for your revisions. Please make revisions and updates available directly to the document maintainer, Peter Jay Salzman <[email protected]>. This will allow for the merging of updates and provide consistent revisions to the Linux community. If you publish or distribute this book commercially, donations, royalties, and/or printed copies are greatly appreciated by the author and the Linux Documentation Project (LDP).
    [Show full text]
  • Studying the Real World Today's Topics
    Studying the real world Today's topics Free and open source software (FOSS) What is it, who uses it, history Making the most of other people's software Learning from, using, and contributing Learning about your own system Using tools to understand software without source Free and open source software Access to source code Free = freedom to use, modify, copy Some potential benefits Can build for different platforms and needs Development driven by community Different perspectives and ideas More people looking at the code for bugs/security issues Structure Volunteers, sponsored by companies Generally anyone can propose ideas and submit code Different structures in charge of what features/code gets in Free and open source software Tons of FOSS out there Nearly everything on myth Desktop applications (Firefox, Chromium, LibreOffice) Programming tools (compilers, libraries, IDEs) Servers (Apache web server, MySQL) Many companies contribute to FOSS Android core Apple Darwin Microsoft .NET A brief history of FOSS 1960s: Software distributed with hardware Source included, users could fix bugs 1970s: Start of software licensing 1974: Software is copyrightable 1975: First license for UNIX sold 1980s: Popularity of closed-source software Software valued independent of hardware Richard Stallman Started the free software movement (1983) The GNU project GNU = GNU's Not Unix An operating system with unix-like interface GNU General Public License Free software: users have access to source, can modify and redistribute Must share modifications under same
    [Show full text]
  • Android (Operating System) 1 Android (Operating System)
    Android (operating system) 1 Android (operating system) Android Home screen displayed by Samsung Nexus S with Google running Android 2.3 "Gingerbread" Company / developer Google Inc., Open Handset Alliance [1] Programmed in C (core), C++ (some third-party libraries), Java (UI) Working state Current [2] Source model Free and open source software (3.0 is currently in closed development) Initial release 21 October 2008 Latest stable release Tablets: [3] 3.0.1 (Honeycomb) Phones: [3] 2.3.3 (Gingerbread) / 24 February 2011 [4] Supported platforms ARM, MIPS, Power, x86 Kernel type Monolithic, modified Linux kernel Default user interface Graphical [5] License Apache 2.0, Linux kernel patches are under GPL v2 Official website [www.android.com www.android.com] Android is a software stack for mobile devices that includes an operating system, middleware and key applications.[6] [7] Google Inc. purchased the initial developer of the software, Android Inc., in 2005.[8] Android's mobile operating system is based on a modified version of the Linux kernel. Google and other members of the Open Handset Alliance collaborated on Android's development and release.[9] [10] The Android Open Source Project (AOSP) is tasked with the maintenance and further development of Android.[11] The Android operating system is the world's best-selling Smartphone platform.[12] [13] Android has a large community of developers writing applications ("apps") that extend the functionality of the devices. There are currently over 150,000 apps available for Android.[14] [15] Android Market is the online app store run by Google, though apps can also be downloaded from third-party sites.
    [Show full text]
  • Redhawk Linux User's Guide
    Linux® User’s Guide 0898004-520 May 2007 Copyright 2007 by Concurrent Computer Corporation. All rights reserved. This publication or any part thereof is intended for use with Concurrent products by Concurrent personnel, customers, and end–users. It may not be reproduced in any form without the written permission of the publisher. The information contained in this document is believed to be correct at the time of publication. It is subject to change without notice. Concurrent makes no warranties, expressed or implied, concerning the information contained in this document. To report an error or comment on a specific portion of the manual, photocopy the page in question and mark the correction or comment on the copy. Mail the copy (and any additional comments) to Concurrent Computer Corporation, 2881 Gateway Drive, Pompano Beach, Florida, 33069. Mark the envelope “Attention: Publications Department.” This publication may not be reproduced for any other reason in any form without written permission of the publisher. Concurrent Computer Corporation and its logo are registered trademarks of Concurrent Computer Corporation. All other Concurrent product names are trademarks of Concurrent while all other product names are trademarks or registered trademarks of their respective owners. Linux® is used pursuant to a sublicense from the Linux Mark Institute. Printed in U. S. A. Revision History: Date Level Effective With August 2002 000 RedHawk Linux Release 1.1 September 2002 100 RedHawk Linux Release 1.1 December 2002 200 RedHawk Linux Release 1.2 April 2003 300 RedHawk Linux Release 1.3, 1.4 December 2003 400 RedHawk Linux Release 2.0 March 2004 410 RedHawk Linux Release 2.1 July 2004 420 RedHawk Linux Release 2.2 May 2005 430 RedHawk Linux Release 2.3 March 2006 500 RedHawk Linux Release 4.1 May 2006 510 RedHawk Linux Release 4.1 May 2007 520 RedHawk Linux Release 4.2 Preface Scope of Manual This manual consists of three parts.
    [Show full text]
  • Android Operating System
    Software Engineering ISSN: 2229-4007 & ISSN: 2229-4015, Volume 3, Issue 1, 2012, pp.-10-13. Available online at http://www.bioinfo.in/contents.php?id=76 ANDROID OPERATING SYSTEM NIMODIA C. AND DESHMUKH H.R. Babasaheb Naik College of Engineering, Pusad, MS, India. *Corresponding Author: Email- [email protected], [email protected] Received: February 21, 2012; Accepted: March 15, 2012 Abstract- Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Android, an open source mobile device platform based on the Linux operating system. It has application Framework,enhanced graphics, integrated web browser, relational database, media support, LibWebCore web browser, wide variety of connectivity and much more applications. Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. Architecture of Android consist of Applications. Linux kernel, libraries, application framework, Android Runtime. All applications are written using the Java programming language. Android mobile phone platform is going to be more secure than Apple’s iPhone or any other device in the long run. Keywords- 3G, Dalvik Virtual Machine, EGPRS, LiMo, Open Handset Alliance, SQLite, WCDMA/HSUPA Citation: Nimodia C. and Deshmukh H.R. (2012) Android Operating System. Software Engineering, ISSN: 2229-4007 & ISSN: 2229-4015, Volume 3, Issue 1, pp.-10-13. Copyright: Copyright©2012 Nimodia C. and Deshmukh H.R. This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
    [Show full text]
  • Version 7.8-Systemd
    Linux From Scratch Version 7.8-systemd Created by Gerard Beekmans Edited by Douglas R. Reno Linux From Scratch: Version 7.8-systemd by Created by Gerard Beekmans and Edited by Douglas R. Reno Copyright © 1999-2015 Gerard Beekmans Copyright © 1999-2015, Gerard Beekmans All rights reserved. This book is licensed under a Creative Commons License. Computer instructions may be extracted from the book under the MIT License. Linux® is a registered trademark of Linus Torvalds. Linux From Scratch - Version 7.8-systemd Table of Contents Preface .......................................................................................................................................................................... vii i. Foreword ............................................................................................................................................................. vii ii. Audience ............................................................................................................................................................ vii iii. LFS Target Architectures ................................................................................................................................ viii iv. LFS and Standards ............................................................................................................................................ ix v. Rationale for Packages in the Book .................................................................................................................... x vi. Prerequisites
    [Show full text]
  • Introduction to Linux Kernel Driver Programming
    IntroductionIntroduction toto LinuxLinux kernelkernel driverdriver programmingprogramming Introduction to Linux kernel driver programming The Linux kernel device model Authors and license ● Authors – Michael Opdenacker ([email protected]) Founder of Bootlin, kernel and embedded Linux engineering company https://bootlin.com/company/staff/michael-opdenacker ● License – Creative Commons Attribution – Share Alike 4.0 https://creativecommons.org/licenses/by-sa/4.0/ – Document sources: https://github.com/e-ale/Slides Need for a device model ● For the same device, need to use the same device driver on multiple CPU architectures (x86, ARM…), even though the hardware controllers are different. ● Need for a single driver to support multiple devices of the same kind. ● This requires a clean organization of the code, with the device drivers separated from the controller drivers, the hardware description separated from the drivers themselves, etc. Driver: between bus infrastructure and framework In Linux, a driver is always interfacing with: ● a framework that allows the driver to expose the hardware features in a generic way. ● a bus infrastructure, part of the device model, to detect/communicate with the hardware. Let’s focus on the bus infrastructure for now Device model data structures The device model is organized around three main data structures: ● The struct bus_type structure, which represent one type of bus (USB, PCI, I2C, etc.) ● The struct device_driver structure, which represents one driver capable of handling certain devices on a certain bus. ● The struct device structure, which represents one device connected to a bus The kernel uses inheritance to create more specialized versions of struct device_driver and struct device for each bus subsystem.
    [Show full text]
  • History and Evolution of the Android OS
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Springer - Publisher Connector CHAPTER 1 History and Evolution of the Android OS I’m going to destroy Android, because it’s a stolen product. I’m willing to go thermonuclear war on this. —Steve Jobs, Apple Inc. Android, Inc. started with a clear mission by its creators. According to Andy Rubin, one of Android’s founders, Android Inc. was to develop “smarter mobile devices that are more aware of its owner’s location and preferences.” Rubin further stated, “If people are smart, that information starts getting aggregated into consumer products.” The year was 2003 and the location was Palo Alto, California. This was the year Android was born. While Android, Inc. started operations secretly, today the entire world knows about Android. It is no secret that Android is an operating system (OS) for modern day smartphones, tablets, and soon-to-be laptops, but what exactly does that mean? What did Android used to look like? How has it gotten where it is today? All of these questions and more will be answered in this brief chapter. Origins Android first appeared on the technology radar in 2005 when Google, the multibillion- dollar technology company, purchased Android, Inc. At the time, not much was known about Android and what Google intended on doing with it. Information was sparse until 2007, when Google announced the world’s first truly open platform for mobile devices. The First Distribution of Android On November 5, 2007, a press release from the Open Handset Alliance set the stage for the future of the Android platform.
    [Show full text]
  • Linux Kernel and Driver Development Training Slides
    Linux Kernel and Driver Development Training Linux Kernel and Driver Development Training © Copyright 2004-2021, Bootlin. Creative Commons BY-SA 3.0 license. Latest update: October 9, 2021. Document updates and sources: https://bootlin.com/doc/training/linux-kernel Corrections, suggestions, contributions and translations are welcome! embedded Linux and kernel engineering Send them to [email protected] - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/470 Rights to copy © Copyright 2004-2021, Bootlin License: Creative Commons Attribution - Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0/legalcode You are free: I to copy, distribute, display, and perform the work I to make derivative works I to make commercial use of the work Under the following conditions: I Attribution. You must give the original author credit. I Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. I For any reuse or distribution, you must make clear to others the license terms of this work. I Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Document sources: https://github.com/bootlin/training-materials/ - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/470 Hyperlinks in the document There are many hyperlinks in the document I Regular hyperlinks: https://kernel.org/ I Kernel documentation links: dev-tools/kasan I Links to kernel source files and directories: drivers/input/ include/linux/fb.h I Links to the declarations, definitions and instances of kernel symbols (functions, types, data, structures): platform_get_irq() GFP_KERNEL struct file_operations - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/470 Company at a glance I Engineering company created in 2004, named ”Free Electrons” until Feb.
    [Show full text]
  • The Linux Kernel Past, Present and Future - the Linux Way
    The Linux kernel Past, Present and Future - the Linux way Muli Ben-Yehuda [email protected] IBM Haifa Research Labs The Linux Kernel - HRL 2003 – p.1/21 The Linux Kernel linux is a free (speech and beer) UNIX like operating system, developed by thousands of volunteers around the world - including yours truly started as a hobby, grew and matured with the years countless man years went into it, some paid, some for fun one of the leading server operating systems today . and one of the leading embedded operating systems poised to take over the desktop? Hebrew support? The Linux Kernel - HRL 2003 – p.2/21 The beginning From: [email protected] (Linus Benedict Torvalds) Date: 25 Aug 91 20:57:08 GMT Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work.This implies that I'll get something practical within a few months, andI'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus ([email protected]) PS. Yes - it's free of any minix code, and it has a multi-threaded fs.
    [Show full text]
  • Kshot: Live Kernel Patching with SMM and SGX
    KShot: Live Kernel Patching with SMM and SGX Lei Zhou∗y, Fengwei Zhang∗, Jinghui Liaoz, Zhengyu Ning∗, Jidong Xiaox Kevin Leach{, Westley Weimer{ and Guojun Wangk ∗Department of Computer Science and Engineering, Southern University of Science and Technology, Shenzhen, China, zhoul2019,zhangfw,ningzy2019 @sustech.edu.cn f g ySchool of Computer Science and Engineering, Central South University, Changsha, China zDepartment of Computer Science, Wayne State University, Detroit, USA, [email protected] xDepartment of Computer Science, Boise State University, Boise, USA, [email protected] Department of Computer Science and Engineering, University of Michigan, Ann Arbor, USA, kjleach,weimerw @umich.edu { f g kSchool of Computer Science and Cyber Engineering, Guangzhou University, Guangzhou, China, [email protected] Abstract—Live kernel patching is an increasingly common kernel vulnerabilities also merit patching. Organizations often trend in operating system distributions, enabling dynamic up- use rolling upgrades [3], [6], in which patches are designed dates to include new features or to fix vulnerabilities without to affect small subsystems that minimize unplanned whole- having to reboot the system. Patching the kernel at runtime lowers downtime and reduces the loss of useful state from running system downtime, to update and patch whole server systems. applications. However, existing kernel live patching techniques However, rolling upgrades do not altogether obviate the need (1) rely on specific support from the target operating system, to restart software or reboot systems; instead, dynamic hot and (2) admit patch failures resulting from kernel faults. We patching (live patching) approaches [7]–[9] aim to apply present KSHOT, a kernel live patching mechanism based on patches to running software without having to restart it.
    [Show full text]