1.1 The birth and development of Linux
- 10 -
GNU C compiler has emerged, but the free GNU operating system has not yet been developed. Even the
MINIX operating system used in teaching has begun to have copyright, and it is necessary to purchase it to get
the source code. Although the GNU operating system HURD has been under development, it did not appear to
have been completed within a few years.
To better learn computer knowledge (perhaps just for interest), Linus purchased a 386-compatible
computer using Christmas lucky money and loans, and mailed a MINIX system software from the United States.
While waiting for the MINIX software, Linus learned the hardware knowledge of Intel 80386 seriously. In order
to be able to connect to the school's mainframe through a Modem dial-up, he uses assembly language and uses
the multitasking features of the 80386 CPU to create a terminal emulation program. Later, in order to copy his
own software on an old computer to a new computer, he also compiled drivers for floppy disk drives, keyboards,
and other hardware devices.
Through programming practice and recognizing the many limitations of the MINIX system during the
learning process (MINIX is good, but it is only a simple operating system for teaching purposes, rather than a
powerful and practical operating system), Linus already has something similar. The code for the operating
system device driver, so he began to have the idea of a new operating system. At this point, the GNU Project has
developed many tools and software, among which the most anticipated GNU C compiler has appeared.
Although GNU's free operating system HURD is under development. But Linus has waited for no hurry.
From April 1991, he began to develop his own operating system by modifying the terminal emulation
program and hardware drivers. At the beginning, his purpose was simple, just to learn the programming
techniques of the Intel 386 architecture protection mode operation. However, the development of Linux has
completely changed its original intention. According to Linus's news release on the comp.os.minix newsgroup,
we can see that he has gradually evolved from learning the MINIX system stage to developing his own Linux
system.
Linus delivered the message to comp.os.minix for the first time on March 29, 1991. The title of the posted
post is "gcc on minix-386 doesn't optimize". It is about the gcc compiler running optimized on the MINIX-386
system (MINIX-386 is an improvement from Bruce Evans using Intel 386 features 32 Bit MINIX system).
From this it can be seen that Linus had already begun to study the MINIX system in depth in early 1991, and
during this time there has been an improvement of the MINIX operating system. After further learning about the
MINIX system, this idea gradually evolved into the idea of redesigning a new operating system based on the
Intel 80386 architecture.
When he answered someone's question on MINIX, the first sentence said was "Read the F**ing Source
Code :-)"). He thinks the answer lies in the source program. This also shows that for the learning system
software, we not only need to understand the basic working principles of the system, but also need to combine
the actual system to learn how to implement the actual system. After all, theory is a theory, in which many
branches are omitted. Although these branch problems do not have much theoretical content, they are a
necessary part of the system, just like a feather in a sparrow.
From April 1991, Linus spent almost all of his time researching the MINIX-386 system (Hacking the
kernel) and trying to port GNU software to the system (GNU gcc, bash, gdb, etc.). And announced on
comp.os.minix on April 13 that he had successfully ported bash to MINIX, and he could not afford to leave the
shell software.
The first Linux-related news was released on comp.os.minix on July 3, 1991. (Of course, there was no such
name as Linux at that time. Linus thought that the name might be FREAK , FREAX. The English meaning is
grotesque, monsters, whimsical, etc.). It revealed that he is developing Linux system and he has already thought
of the problem of compatibility with POSIX.