Linux kernel analysis

Source: Internet
Author: User
Article title: Linux kernel analysis. Linux is a technology channel of the IT lab in China. Includes basic categories such as desktop applications, Linux system management, kernel research, embedded systems, and open source.

Linux kernel is the core of a large and complex operating system. However, despite its large size, it is well organized using subsystems and layers. In this article, you will explore the overall structure of the Linux kernel and learn some major subsystems and core interfaces. You can also learn more through links to other IBM articles.

As the goal of this article is to introduce the Linux kernel and explore its architecture and main components, we should first review the brief history of Linux and then review the Linux kernel architecture at a higher level, finally, we will introduce its main subsystems. The Linux kernel has more than 6 million lines of code, so this article cannot be a complete introduction. Use a link pointing to other content for further learning.

  Brief Linux History

Although Linux is definitely the most popular open-source operating system, The History of Linux is very short compared with that of other operating systems. In the early days of the emergence of computers, programmers used hardware languages for development on bare hardware. The absence of an operating system means that only one application (and one user) at a time can use these large and expensive devices. The early operating system was developed in 1950s to provide a simple development experience. This includes General Motors Operating System (GMOS) developed for IBM 701 and FORTRAN Monitor System (FMS) developed for IBM 709 for North American Aviation ).

In 1960s, MIT and some companies developed an experimental operating system named Multiplexed Information and Computing Service for GE-645. AT&T, one of the developers of this operating system, later withdrew from Multics and developed its own operating system named Unics in 1970. C language was born with this operating system. C language was developed for this purpose. then they used C language to rewrite the operating system, making the operating system development portable.

Twenty years later, Andrew Tanenbaum created a micro-kernel version of UNIX ?, The name is MINIX (minimal UNIX), which can run on a small PC. This open-source operating system inspired Linus Torvalds to develop Linux in 1990s (see figure 1 ).

Figure 1. Brief history of major Linux kernel releases

Linux quickly evolved from a personal project to a development project involving thousands of people around the world. For Linux, one of the most important decisions is to use GPL (GNU General Public License ). Under the protection of GPL, the Linux kernel can prevent commercial use, and it also benefited from the user space development of the GNU Project (Richard Stallman, whose source code is much larger than the Linux kernel. This allows the use of some very useful applications, such as GCC (GNU Compiler Collection) and various shell support.

  Linux kernel introduction

Now let's take a high-level look at the GNU/Linux operating system architecture. You can consider the operating system at two levels, as shown in figure 2.

Figure 2. basic architecture of the GNU/Linux operating system

The top is the user (or application) space. This is where your application runs. The user space is the kernel space, and the Linux kernel is located here.

Gnu c Library (glibc) is also here. It provides a system call interface to connect to the kernel, and a conversion mechanism between the user space application and the kernel. This is very important because the kernel and user space applications use different protective address spaces. Each user space process uses its own virtual address space, while the kernel occupies a separate address space.

The Linux kernel can be further divided into three layers. At the top is the system call interface, which implements some basic functions, such as read and write. The kernel code under the system call interface can be more accurately defined as the kernel code independent of the architecture. These codes are common to all the processor architectures supported by Linux. The code that relies on the architecture forms part of the BSP (Board Support Package. These codes are used as processors and platform-specific code for a given architecture.

[1] [2] [3] Next page

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.