Linux! Why did he write such a strong system alone?

Who is he, Linus!

Linus Benedict Torvalds (Linus Benedict Torvalds, 1969~), a famous computer programmer. The inventor of the Linux kernel and a collaborator of the project.

Torvalds used personal time and equipment to create one of the most popular operating system (operating system) kernels in the world today.

Currently employed by the Open Source Development Labs (OSDL: Open Source Development Labs, Inc) to develop the Linux kernel.

Linus started writing operating systems during his graduate school years (approximately 1991). Although personal computers (PCs) have been around for a few years, they were still toys for a small number of programmers and enthusiasts. Basically, the hardware is built on their own, and the software is also modified with open source systems.

So ordinary people have no motivation and reason to toss PC.

Unix has dominated many productivity scenarios, the only drawback is that it is expensive, and many distributions are closed source. Individual users don’t even think about it.

At that time, Linus saved a set of 386, but couldn't find a useful, cheap/free operating system. Of course, there was also a free and open source system in the community at that time, but it was either poor compatibility, or all kinds of pits, or no software, or all kinds of problems. Compatibility is the most important issue. At that time, CPUs were not as popular as the current two architectures (x86, Arm). At that time, there were more than a dozen famous architectures, so the compatibility of the operating system was very high. important.

Linus started to learn the operating system by himself and found a very good textbook "Operating System: Design and Implementation" , and then spent a summer vacation to read it and started writing his own operating system.

The author of the book "Operating System: Design and Implementation" is Talebaum . He was already a big man in the industry when he wrote the book. He was teaching operating systems at university, but he suffered from the fact that students could not afford too expensive Unix distributions. , So I wrote a compatible Unix standard operating system (mainly compatible with POSIX standards), called Minix (the name is very opposite, Universe-mini).

The Minix system was born for teaching. As long as you buy this book, you can mail a copy of Minix source code for free. In order to facilitate teaching and keep the code concise, Minix refused to add too many complicated functions to it. So although Minix is ​​elegantly implemented, players in the community have to use it daily and have to modify many things.

By the way, Minix is ​​a microkernel. Yes, the concept of microkernels has existed for decades, not born in 2019.

The structure of the microkernel is very elegant. The file system, memory management, and hardware drivers all exist in the form of processes , not kernel codes, which means that the drivers will not hang with the kernel when they are hung up. The disadvantage is that the system call overhead is too large, making it unacceptably slow. Therefore, the current desktop system does not have a pure microkernel.

For teaching systems, microkernels are not a problem, after all, they are teaching, not production tools.

The community and Linus both like Minix, but they are not satisfied that Minix authors give up compatibility and scalability for teaching purposes. So Linus started Linux development on his PC running Minix. Linux is a macro kernel.

Linux is not originally called Linux. Linus is a very introverted person. I am embarrassed to take such a narcissistic name, but the collaborator strongly recommends this name, so I used it. x stands for unix connection (all compatible with POSIX).

Just to mention, Unix was not born for open source and free, but for commerce, but the development of Unix gave birth to the best open source environment (such as GNU).

Note that the community in the past few years belongs to the "warlord melee". Everyone lacks a useful free operating system, but it is not just Linus who thought of solving this problem. The GNU organization led by Richard Stallman in the 1990s They have been brewing a free operating system, because their purpose is to fight against commercial Unix. It is not enough to have a GCC compiler. You also need your own operating system.

Various technicians in the community are also looking forward to the GNU operating system, but this thing is difficult to give birth. Until a long time later, after Linux became popular, it still didn't make it.

The original Linux version only had a few thousand lines of code. Nowadays, CS undergraduates with a solid foundation can understand it within a period of time. Even some OS textbooks are taught using the original version of Linux, such as the Harbin Institute of Technology Li Zhijun's course.

Linus has been posting his progress on the minix forum from the very beginning, which made a lot of people on the forum very interested, so many people joined the development. At this time, Linus received everyone's code by mail and then merged it manually. After a while, the minix forums were all about Linux. Although Talebaum was not a stingy person, Talebaum was very upset by doing so.

Soon after, a conflict broke out between Linus and Talebaum.

Talebaum wrote an article on the forum, demonstrating the advantages and disadvantages of microkernels and macrokernels. In fact, they mainly attacked macrokernels. They said that macrokernels are all shortcomings except for better performance, and that Linux is outdated. Linus is a grumpy person and never compromises on technical issues. So began to mock minix. Linux is more portable than minix, and it is free and open source (minix needs to be obtained after buying a book).

Then came and went and quarreled many times. For details, see:

https://www.oreilly.com/openbook/opensources/book/appa.html

It's just that neither of the two of them thought at the time that the war of words on the forum would become a dispute over operating systems that people still talk about decades later.

Linus didn't hate Talebaum. He said that he went to Talebaum to give a speech and then took the book and wanted Talebaum's signature, but he didn't wait for anyone.

I think Linus respects him somewhat, after all, he is the leader in learning the operating system.

With the efforts of Linus and community members, by extending GCC to support Linux, Linux is also compatible with more and more platforms. It has become easier to transplant other kinds of software to Linux, especially in the era when many softwares are distributed as source code. As long as there is a compiler for the corresponding platform, the transplantation is done after one compilation.

Catch up with the wave of PC development, but it is not enough. After all, Apple and Microsoft are not easy to deal with, and the ease of use of commercial operating systems is still very strong.

But Linux has begun to be favored by all kinds of companies, because not every company has the money to buy a set of Unix at a high price, or a more expensive mainframe with software + hardware. Linux has given them the hope of saving money.

GNU began to support Linux, and Linux has become the official operating system of GNU, so it is now called GNU/Linux.

It can be said that Linux and GCC are almost the two greatest open source projects. Together they are more powerful.

GCC makes the software easy to transplant. The Linux software ecosystem is good. If the software ecosystem is good, there will be more users. If there are more users, hardware companies will be greedy. All hardware companies develop drivers and various extensions for Linux to support their own hardware. There are more users. This multiplier effect is very strong.

After Linus reached a certain scale of the project, he stopped writing code himself, mainly merging code. After all, so many people around the world submitted code, he was busy enough to review the merger alone, and he didn’t have time to write the code himself.

Until one day he felt too busy to review the code, he would encounter a lot of stupid code and developers, so he developed the most popular version control tool, git, which literally means rice bucket.

I have to say that his control of the development direction of the operating system is precise.

To sum up, the success of Linux requires the following conditions:

  1. Linus strong development capabilities

  2. Linus' project management capabilities

  3. Linus's control over the development direction of the operating system

  4. In an era where there is a lack of free and easy-to-use operating systems.

  5. This is an era where not only the dominance is divided, there is a lack of free and easy-to-use operating systems, but the programming language, operating system theory, and compiler technology have developed to a certain extent, and the personal PC continues to develop.

  6. The GNU system did not make it

  7. Minix sticks to "education"

  8. GNU support

  9. Support from hardware manufacturers all over the world

  10. Support from software vendors worldwide

  11. Great contributions of open source developers all over the world

To sum up, a person's destiny, of course, depends on self-struggle, but also takes into account the course of history.

From: know almost, author: Moran

Link: https://www.zhihu.com/question/63187737/answer/1415937231

Friends who like this article, please click on the picture to follow the subscription account and watch more exciting content!

Recommended reading:

我知道你 “在看”

Guess you like

Origin blog.csdn.net/qq_39507327/article/details/110102471