Study on the kernel of a Unix-like Operating System

Source: Internet
Author: User

From: http://blog.csdn.net/superwiles/archive/2006/09/14/1220357.aspx

This was written on Qilin's forum more than half a year ago. I saw a lot of new beginners here, and I wrote it again (with some corrections ). please correct me more. I have published some bibliography that I think are very important. I hope it will be useful. I made some corrections. I can't help but think of the time I spent as a TA. please indicate the source for reprinting.
The purpose of this article is to hope that more people can join the research community of system software. The debate on Kylin's own problems is meaningless. As we learn more deeply, it is self-evident. so I hope it will be helpful to beginners. I hope you can correct me more. it is hoped that at least one person may be affected to enter the system software development community. haha.

Unix-like systems refer to Unix (trademark ownership belongs to opengroup) and UNIX variants (Aix, HP-Unix, Solaris, BSD, FreeBSD, etc) and clone such as Linux. the following is the most comprehensive family chart. If you are interested, take a look at it. [UNIX pedigree] http://www.levenez.com/unix/

Step 0:
At this stage, I am not familiar with OS. I can install the system, configure the system, and learn how to use various editors,
It is recommended that you start with Linux when writing scripts. After all, it is easier to get various Release versions, and the user base is large.
Easy to answer. The recommended release version is desktop Ubuntu and server Debian.
Recommended teaching materials:
The training materials of the linuxcbt series are good. SWF files are hand-taught and only used for English teaching.

O'reilly published a series of books on tools used in Linux, including bash, Vim, emacs,
Linux configuration and many other tools. For more information, see.

The FAQ in each Linux community is very important at the entry stage. It basically contains most of the problems that beginners can encounter and makes good use of them.
For example, the domestic linuxsir, ClF, Cu, etc. Main overseas email lists.

Step 1:

After having a basic understanding of the system usage, the system begins to write applications,
The premise for entering this stage is
The C language must have a solid foundation. If you have read the Expert C Programming, you will not find it difficult.
Can basically use vim and Emacs, one of which.
Makefile is basically written.
This is an essential book for learning at this stage. The author, Steven, is a senior whom I admire very much. Unfortunately, this book is just a few years old.
It is comprehensive and difficult to learn at the beginning, but it is not a small benefit to stick to it. The second edition has been introduced and can be bought.

The howto write makefile contains Chinese characters and can be used as a reference for writing makefile.
O 'Reilly can also search for eMule.

 

In addition to general applications, there are three important branches.

A. network programming. There are rich network tools in Unix-like environments, so this is a very large branch. network communication is essentially
Inter-process communication, so Steven's inter-process communication 3 volumes is a must-read book (Steven completed only 2 volumes during his lifetime
The third volume was continued by his friends. The specific situation is unknown). As a derivative project that can further study Apache
APR and ACE (this requires a deep knowledge of C ++ and design patterns). It can be said that network programming is a very large branch,
It takes a lot of time to be proficient. You just need to study the kernel and read the first two volumes of Steven.

B. xwindows, which involves GUI, is also a huge branch. To study the kernel, you only need to pay attention to the architecture and
Between drivers
This branch is huge, but there are not many good books. This series is only 92 years old.
O 'Reilly-the definitive guides to the X Window systems,
Vol 1-xlib Programming Manual, 3rd ed.
The architecture of xserver has changed a lot recently. The appearance of xgl is shocking. I have seen the demonstration of NOVELL in France in February.
There is nothing to say. We are not qualified to talk about innovation. I agree with BNN.
In the past 10 years, our task is to learn and catch up with CLF. There are some articles and translation projects on it.

C. Script. Study the kernel to master Bash. However, Perl, PHP, Python, and Ruby have been very popular in recent years.
This is also very popular. These books are nothing to say.

Step 2:
Start to get started with the OS. First, you must master the basic concepts. First, operating system concepts version 6.
Through this book, you can master the basic concepts and have a perceptual knowledge.

Then you can see <Operating System Design and Implementation> This book is based on the minix teaching system and is also a classic book.
But few people have the patience to read the last two books. Now it has evolved into minix3, and the old man is unwilling to work only as a teaching system.
Go to the old man's PhD. minix3 has changed a lot.

There is also a good book operating systems: a design-oriented approach which is hard to find,
When I picked up the photocopies of the world map from a pile of junk books, the number of copies was very small, but it was indeed a good book.
I read the corresponding Java code in a simple way, but no one pays attention to it.

M. J. Bach, the design of the UNIX operating system, Prentice-Hall
Classic

At this stage, we mainly grasp the overall structure of the OS and have a basic understanding of each concept.

Step 3:

The initial development stage of Linux-based kernel.

<Understand Linux kernel> 3th

<Linux Device Driver> 3th

<Linux kernel develop> 2th

<Approach for. x86.and. PowerPC. ubuntures>

This article introduces several important books on the Unix OS kernel:

The Design and Implementation of the FreeBSD operating system
A classic interpretation of FreeBSD.

The Design and Implementation of the 4.4bsd Operating System

4.4bsd-Lite

The "UNIX advanced tutorial system technology insider" is a 96-year old Chinese version. I have heard of the new version, but it is not yet ready.

Solaris internals: Core kernel architecture
Sun has made many contributions in the history of Unix. The Solaris process scheduling memory management and file systems are all unique.
The thread model is a mixed mode of M: N, and the implementation method is also very interesting.


Step 4:
Starting from here, we enter the specific implementation of the OS and the very specific branch of the kernel.
Before entering this chapter, you must have a moderate understanding of the compiler and architecture.
That is to say, the compiler has to read longshu, and the system has to read the quantitative method. You 'd better add see MIPS run.
Scheduling, memory management, network protocol stack, file system, system-related, process management,
Linker & loader, tool-chain
These are all important branches that have very important applications.

Have a certain understanding of the principle of the debugger and be proficient in using it.

The Linux & reg; networking architecture: Design and Implementation of Network

Understanding the Linux Virtual Memory Manager Mel Gorman,
I discussed it with the author of this book in person. Nice people, but it's strange to be doing Java coder at IBM.

2.4 kernel memory management comprehensive analysis, 2.6 of the changes are not small

Linux scenario analysis 2.4 Comprehensive Analysis of kernel. Mao decao of Zhejiang University, masterpiece of Li shanping.

Linux fully comments the full analysis of Chinese talents in earlier versions of Linux

Www.opensolaris.org
The Solaris code has been published. For details, refer

Wiley. Unix. filesystems. Evolution. design. And. Implementation

Sunos50multithreadarchitecture

Wiley-Symbian OS internals {Real-Time Kernel programming}

Books at this stage are already auxiliary, mainly by viewing Code, making actual modifications, experiments, and comparison.

Step 5:
Migration and development of high-end dedicated micro-kernel systems. QNX, iox, rtem, ARINC-653 xen
Purely academic OS: Plan 9 (derived from utf8, proc file system) Plan B Hurd oskit L4

At this stage, the number of people is very limited, basically relying on teams, strength, and experience.

Useful Tools: powerful tool for lxr indexing code.

For more information about the strategy of system software, see Chen huailin's Thoughts on System Software in China.
Http://www.xtrj.org/

BTW: it is estimated that not everyone has the patience to read kuth's books. Therefore, we recommend that you watch videos guided by the MIT algorithm when you are bored.
Absolutely, eMule has it. You can go down to the ACM site of the. Emy of science and technology, and the CERNET can go down.
Please correct me for any omissions.

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.