The Birth and Development of Linux
Linux is a clone system of UNIX operating systems. It was first officially announced in 1991, October 5 ). With the help of Internet networks and the joint efforts of computer enthusiasts around the world, it has become the most widely used UNIX operating system in the world today, and the number of users is growing rapidly. The birth, development, and growth of a Linux operating system have always relied on the following five pillars: UNIX operating system, MINIX operating system, GNU program, POSIX standard, and Internet network.
The following describes the development process of Linux based on these five basic clues, including the brewing process and initial development experience. First, we will introduce the four basic elements (UNIX, MINIX, GNU, and POSIX. The importance of the Internet is obvious, so you don't have to worry about it ), then, according to Linux's founder Linus Toravlds, he learned computer knowledge from his interest in computers, started to develop his own operating system, and published the Linux kernel version 0.01 at the beginning, from then on, how can we make a step by step, with the help of hacker from all over the world, finally introduce the development history of Linux in detail.
For the general development history of Linux, many articles and books have been introduced.
The emergence of UNIX operating systems
Linux is a clone of a UNIX operating system. UNIX operating system is a time-sharing operating system developed by Ken. Thompson and Dennis Ritchie at DEC PDP-7 in the summer of 1969. At that time, Ken Thompson wanted to run his favorite Space travel game on idle PDP-7 computers, during his vacation home to his hometown of California in the summer of 1969, A prototype of unix operating system was developed within one month. At that time, the BCPL language was used to basically combine programming languages. Later, Dennis Ritchie revised it in 1972 with a highly portable C language, which promoted the UNIX System in Colleges and Universities.
MINIX Operating System
The MINIX system is developed by Andrew S. TanenbaumAST. AST works in mathematics and computer science systems at the University of Vrije in Amsterdam, the Netherlands, and is a senior member of ACM and IEEE (and few of them are senior members of the NPC and CPPCC ). I have published more than 100 articles and 5 computer books. AST was born in New York, United States, but a Dutch expatriate (his ancestor came to the United States in 1914 ). He holds a doctorate degree at a middle school in New York, a university in M. I .T, and a Berkeley branch at the University of California. Because of his post-doctoral studies, he came to his hometown of Holland. Since then, I have been in contact with my hometown. Later, I started teaching at Vrije University and brought my graduate students. Amsterdam, the capital of the Netherlands, is a rainy city all the year round. For AST, this is the best thing, because he can stay at home and play with his computer. MINIX was developed in 1987 and is mainly used by students to learn operating system principles. By 91 years, the version is 1.5. Currently, two major versions are available: Version 1.5 and Version 2.0. At that time, the operating system was used for free at the university, but it was not used for other purposes. Of course, it is already free of charge, can be downloaded from many FTP.
For Linux systems, he praised its developer Linus. However, he believes that the development of Linux is largely due to the fact that, in order to keep minix small, it will allow students to finish learning in one semester, without accepting the expansion requirements of many people around the world for Minix. Therefore, this inspired Linus to write Linux. Linus just grabbed this opportunity.
As an operating system, MINIX is not excellent, but it also provides system source code written in C and assembly languages. This was the first time that an ambitious programmer or hacker could read the source code of the operating system. At that time, such source code was carefully guarded by software vendors.
GNU Program
The GNU program and the Free Software Foundation-FSF was founded in 1984 by Richard M. Stallman. It is designed to develop a complete operating system similar to Unix and free software: GNU system. GNU is the abbreviation of "GNU's Not Unix". Its pronunciation is "guh-NEW ".) Linux is widely used as the core GNU operating system. Although these systems are often called "Linux", they should be called GNU/Linux systems strictly.
By the beginning of the 1990s S, the GNU project had developed many high-quality free software, including the famous emacs editing system, bash shell program, gcc Compilation Program, and gdb debugging program. These software creates an appropriate environment for the development of Linux operating systems and is one of the foundations for the birth of Linux. So many people now call the Linux operating system "GNU/Linux.
POSIX standard
POSIX (Portable Operating System Interface for Computing Systems) is a cluster of standards developed by IEEE and ISO/IEC. This standard is based on existing UNIX practices and experience. It describes the calling service interfaces of the operating system to ensure that the compiled applications can be transplanted to multiple operating systems at the source code level. It was obtained based on the early work of a UNIX user group (usr/group) in the early 1980 s. The UNIX user group originally attempted to re-reconcile and integrate the differences between the call interfaces of AT&T's System V and Berkeley CSRG's BSD system, thus generating the/usr/group standard in 1984. In 1985, IEEE Technical Committee standards Subcommittee TCOS-SS began to instruct the IEEE Standards Committee with ANSI support to develop formal standards for program source code portability of operating system service interfaces. In April 1986, IEEE developed a trial standard. The first formal standard is the IEEE 1003.1-1988 approved in January), which is also frequently referred to later in POSIX.1.
In 1989, POSIX was transferred to the ISO/IEC community, and the 15 working group continued to develop it into an ISO standard. By 1990, POSIX.1 had been combined with the passed C language standards and formally approved as IEEE 1003.1-1990 is also an ANSI standard) and ISO/IEC 9945-1: 1990 standards.
POSIX.1 only specifies the System Service Application Programming Interface API), only summarizes the basic system service standards, so it is expected to develop standards for other functions of the system. In this way, the work of ieee posix is started. At the beginning of 1990, ten approved plans were underway, and nearly 300 people attended the weekly meeting every quarter. Starting work includes command and tool standards (POSIX.2), test method standards POSIX.3), and real-time APIPOSIX.4. By the first half of 1990, 25 plans were in progress and 16 working groups were involved. At the same time, some organizations are also developing similar standards, such as X/Open, AT&T, and OSF.
In early 1990s, the POSIX standard was being finalized by a vote between 1991 and 1993. At this point, at the beginning of Linux, this UNIX standard provides extremely important information for Linux, enabling Linux to be developed under the guidance of the standard and compatible with most UNIX systems. In the initial Linux kernel code (version 0.01 and version 0.11), preparations have been made for compatibility between Linux and POSIX standards. The kernel/include/unistd in version 0.01. the h file defines several constant symbols related to the requirements of the POSXI standard, and writes "OK" in the comments. This may be a joke, but I am working on it ".
Post published on comp. OS. minix in July 3, 1991 has mentioned that POSIX is being collected. (Of course, the Linux name does not exist at this time. At that time, Linus thought of FREAX. FREAX's English meaning was strange, strange, and whimsical ). It revealed that he was developing a Linux system, and he had thought of compatibility with POSIXUNIX international standards at the beginning of Linux.
The birth of Linux
In 1981, IBM released the world-renowned ibm pc. In 1981-1991, MS-DOS operating systems have been dominated by operating systems on micro computers. At this time, although the computer hardware price drops year by year, the software price remains high. At that time, Apple's MACs operating system could be said to be the best in performance, but no one could easily get close to it at a high price.
At that time, another computer technology camp was the Unix world. However, Unix operating systems are not only expensive. In order to seek high interest rates, Unix dealers raise prices extremely high, so small PC users simply cannot approach it. Once licensed by Bell Labs, UNIX source code that can be used for teaching in universities has been carefully guarded against disclosure. For the majority of PC users, large suppliers in the software industry have never provided effective solutions to this problem. At this point, the MINIX operating system appears, and a detailed book describes its design implementation principles. As AST is very detailed and well-founded, almost all computer enthusiasts around the world are reading this book to understand how operating systems work. It also includes Linus Benedict Torvalds, the founder of Linux. At that time (1991), Linus Benedict Torvalds was a sophomore in the Computer Science Department at the University of Helsinki and also a self-taught hacker. The 21-year-old Finnish man prefers computers to test their abilities and limitations. However, what was lacking at the time was a professional operating system. Although MINIX is good, it is only a simple operating system for teaching purposes, rather than a powerful practical operating system.
By 1991, the GNU program had developed many tools and software. The most anticipated Gnu C compiler has appeared, but it has not yet developed a free GNU operating system. Even MINIX has started to have copyright, and you need to purchase the source code. The GNU Operating System HURD has been under development, but it cannot be completed within a few years. Linus cannot wait. Starting from February April 1991, he began to develop his own operating system. At the beginning, his goal was very simple, just to learn Programming Technology in the operating mode of Intel 386 architecture protection. However, the development of Linux has completely changed the original intention.
In early 1991, Linux began to learn the minix operating system on a 386sx-compatible microcomputer. After learning, he gradually became unable to meet the existing performance of the minix system and began to develop a new free operating system. According to the message posted by Linus on the comp. OS. minix newsgroup, we can know that Linus is gradually learning the minix system and developing its own Linux.
Linus shipped 1st messages to comp. OS. minix on January 1, March 29, 1991. The title is "gcc on minix-386 doesn't optimize", is the optimization problem of gcc compiler running on the minix-386, it can be seen that Linus has started to study the minix system in the early stage of 1991, during this period, I had the idea of improving the minix operating system. In addition, I learned more about the minix system and gradually evolved into wanting to redesign a new operating system based on the Intel 80386 architecture. When answering a question raised by someone on minix, he said the first sentence was "Read Source Code" "RTFSC (Read the Fucking Source Code :-)"). He thinks the answer is in the source program. This also shows that for learning system software, you not only need to understand the basic working principles of the system, but also need to learn the implementation methods of the actual system based on the actual system. Because the theory is a theory after all, many branches are omitted. Although these branches have not much theoretical content, they are a necessary part of the system, like a feather on a sparrow.
Since January, Linus spent almost all its time researching the 386-minix System (hack the kernel ), and try to transplant the GNU software to the system (GNU gcc, bash, gdb, etc ). In April 13, the release of comp. OS. minix said that he had successfully transplanted bash to minix, and he could not leave the shell software.
The first message related to Linux was sent on July 15, July 3, 1991 at comp. OS. released on minix (of course, the Linux name does not exist yet. At that time, Linus thought of FREAX, and FREAX's English meaning was weird, monster, and whimsical ). It revealed that he was developing a Linux system, and he had thought of compatibility with POSIXUNIX international standards at the beginning of Linux.
In the next message of Linus (comp. OS. minix, August 25, 1991), he asked all minix users, "What wocould you like to see in minix? "(" What do you want to see most in minix? "), In this message, he first revealed that he is developing a (free) 386 (486) operating system, and said that he is only interested, and the code will not be very large, it is not as professional as GNU. The idea of developing a free operating system has been brewing since September. I hope you will give us some information about the characteristics and dislike of the minix system. For actual and other reasons, the newly developed system is very similar to minix at the beginning and uses minix's file system ). Bash (Version 1.08) and gcc (version 1.40) have been successfully transplanted to the new system and will be available in a few months.
Finally, Linus declares that the operating system he developed does not use a line of minix source code. Moreover, due to the use of the 386 Task Switching feature, the operating system is hard to transplant and has no portability ), you can only use AT disks. Linus did not consider Linux portability at the time. However, at present, Linux can run on almost any hardware architecture.
In 386, Linus published a message in the comp. OS. minix news group, officially announcing the birth of the Linux kernel system Free minix-like kernel sources for-). This message can be called the birth declaration of Linux and has been widely used. Therefore, October 5 is a special day for the Linux community. Many later versions of Linux chose this day. So it is no coincidence that RedHat chose to release its new system on this day.
Changes in Linux OS versions
0.00 (1991.2-4 ?) The two processes respectively display AAA BBB
0.01 (1991.9 ?) The first Linux kernel version officially released.
0.02 (1991.10.5) This version and 0.03 version are internal versions and cannot be found at present.
0.03 (1991.10.5)
0.10 (1991.10) Linux kernel version released by Ted Ts o.
0.11 (1991.12.8) is a kernel version that can run normally.
0.12 (1992.1.15) is mainly added to the software simulation program of the mathematical coprocessor.
0.95 (0.13) (1992.3.8) began to join the kernel version of the Virtual File System idea.
0.96 (1992.5.12) began to join network support and Virtual File System VFS.
0.97 (1992.8.1)
0.98 (1992.9.29)
0.99 (1992.12.13)
1.0 (1994.3.14)
1.20 (1995.3.7)
2.0 (1996.2.9)
2.20)
2.40 (2001.1.4)
2.60 (2003.12.17)
Rename the Linux 0.13 kernel to version 0.95. Linus means that it is far away from Version 1.0. At the same time, since version 0.95, many improvements to the kernel (the provision of patches) are dominated by others, the main task of Linus is to maintain the kernel and decide whether to use a patch.
Reason for Linux name
Linux was not called Linux at the beginning. Linus named FREAX as his operating system. The English meaning of FREAX is weird, strange, and whimsical. When he uploads the new operating system to the ftp. funet. fi server, the Administrator Ari Lemke does not like this name. He believes that since it is the Linux operating system of Linus, it should take its homophonic Linux as the directory of the operating system, so the Linux name began to be circulated.
In Linus's autobiography Just for Fun, Linus explained: "Frankly speaking, I never thought of using the Linux name to publish this operating system, this name is too conceited. What is the name I have prepared for the final release? Freax. In fact, some early makefiles in the kernel code-files used to describe how to compile the source code-files already contain the "Freax" name, which lasted about half a year. But in fact, this does not matter. At that time, there was no need for a name, because I had not released the kernel code to anyone. Ari Lemke insisted that he put the kernel code on the ftp site in his own way and did not like Freax very much. He insisted on using the current name (Linux). I admit that I didn't argue with him much at the time. But this is all his name. So I can honestly say that I am not at your own risk, or that I do not have a localism. But I think, well, this is also a good name, And I Will Always persuade others for this in the future, as I do now. "-- Pages 84th-88 of Linus Torvalds Just for fun.
Through the preceding instructions, we can summarize the five pillars of Linux as follows:
① UNIX operating system --UNIX was born in the Bell Laboratory in 1969. Linux is a clone system of UNIX. Needless to say about the importance of UNIX.
② MINIX operating system --Minix operating system is also a clone system of UNIX. It was developed in 1987 by Andrew S. Tanenbaum, a famous computer professor. Thanks to the emergence of the MINIX system and the provision of source code (only available for free within the University), the UNIX system learning tornado has been found in universities around the world. At the beginning of Linux, development started in 1991 with reference to the Minix system.
③ GNU program --The development of Linux operating systems and most of the software used on Linux are basically from the GNU program. Linux is only a kernel of the operating system. If there is no GNU software environment (such as bash shell), it will be hard for Linux.
④ POSIX standard-- This standard plays an important role in promoting the development of the Linux operating system in the future. It is the beacon of the Development of Linux.
⑤ INTERNET-- Without the Intenet network and the selfless dedication of countless computer hackers all over the world, Linux can only grow to version 0.13 (0.95) at most.
Related Articles]
- Brief history of culture in Linux
- Looking back at the early history of Linux in China