Chapter 12. Technical Background: Operating System Kernels, User Space, and Elements of Programming

Acomputer functions by executing extremely simple instructions—but executing so many instructions so quickly that its actions seem complex. It can do this because computer programming allows programmers to use theoretical "layers" of functionality, which are sometimes calle d levels of abstraction. These layers are fundamentally arbitrary, but they must be used by everyone if programs are to be reusable from computer to computer. In the lowest level of abstraction, which is generally called the operating system, the computer executes the basic functions for the machine's processor to interface with the physical devices attached to the machine. In higher levels of abstraction, programmers can write a simple line of script (such as Hypertext Markup Language or HTML) that directs the computer to perform extremely complex tasks, because each line of code represents many low-level instructions. When analyzing certain open source issues, most significantly the border dispute of GNU General Public License version 2 (GPL2) in the area of Linux kernel development, it is essential to understand how this works.

Exhibit 12.1 shows a very abstract depiction of how a Linux kernel powers a computer. In the exhibit, the code in user space talks to the code in operating system space via system calls. System calls are the interface between the lowest level of abstraction—the operating system—and high ...

Get The Open Source Alternative: Understanding Risks and Leveraging Opportunities now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.