The root of Linux

The root of Linux

Linux
        Linux is a collective name for a class of Unix computer operating systems. The name of the kernel of the Linux operating system is also “Linux”. The Linux operating system is also the most famous example of the development of free software and open source. Strictly speaking, the word Linux itself only means the Linux kernel, but in fact, people are used to using Linux to describe the entire operating system based on the Linux kernel and using various tools and databases from the GNU project. Linux gets its name from Linus Torvalds, a computer hobbyist.


The founder

AMANDA LUCIER/THE WASHINGTON POST/GETTY IMAGES
AMANDA LUCIER/THE WASHINGTON POST/GETTY IMAGES


Torvalds was born in Helsinki, Finland. Father Nils Torvalds (Nils Torvalds) is an active communist and radio reporter. The Torvalds family belongs to the Finnish-Swedish minority, which accounts for 6% of Finland. He graduated from the Department of Computer Science at the University of Helsinki. From 1997 to 2003, he worked at Transmeta Corporation in Silicon Valley, California, and participated in the development of the company’s chip code morph technology. Later, he was hired by the Open Source Development Lab (OSDL: Open Source Development Labs, Inc) to develop the Linux kernel. Currently working in the Linux Foundation.


The mascot

Tux, originally drawn as a raster image by Larry Ewing in 1996.
Tux, originally drawn as a raster image by Larry Ewing in 1996.


Tux (a penguin) is a symbol of Linux. The penguin as a Linux logo was proposed by Linus Torvalds. Most people believe that the name “Tux” comes from Torvalds UniX, not because it looks like it is wearing a tuxedo. This penguin pattern was selected in the best Linux icon competition. Some other patterns can be found on the Linux Icon Contest website. The designer of Tux is Larry Ewing. He designed the penguin in 1996 using GIMP software. Tux has become a symbol of Linux and the open source community.


The historical conditions of the birth of Linux

UNIX System III running on a simulated Digital Equipment Corporation PDP-11 using SIMH
UNIX System III running on a simulated Digital Equipment Corporation PDP-11 using SIMH

Linux operating system is a kind of clone system of UNIX operating system. It was born on October 5, 1991 (this is the first time it was officially announced). With the help of the Internet and the joint efforts of computer enthusiasts all over the world, it has become the most used UNIX operating system in the world today, and the number of users is still growing rapidly. The birth, development and growth of the Linux operating system has always relied on the following five important pillars: UNIX operating system, MINIX operating system, GNU project, POSIX standard and Internet network. The following is mainly based on these five basic clues to trace the development process of Linux, its brewing process, and the initial development experience. First introduce the four basic elements (UNIX, MINIX, GNU and POSIX, the importance of the Internet is obvious, so there is no need to talk about them), and then according to Linus Toravlds, the founder of Linux, learn computer knowledge from his interest in computers, I started to prepare my own operating system in my heart, to the release of version 0.01 of the original Linux kernel, and how hard it has been to finally launch a relatively complete version 1.0 with the help of hackers all over the world. That is, a detailed introduction to the early development history of Linux. 


The Birth of the UNIX Operating System

Unix creators Ken Thompson (left) and Dennis Ritchie (right) from the latest edition of the Jargon File
Unix creators Ken Thompson (left) and Dennis Ritchie (right) from the latest edition of the Jargon File


The Linux operating system is a clone version of the UNIX operating system. The UNIX operating system is a time-sharing operating system developed by Ken Thompson and Dennis Ritchie of Bell Labs on the DEC PDP-7 small computer in the summer of 1969. At that time, Ken Thompson developed the unix operation within a month in order to be able to run his favorite Space travel game on the idle PDP-7 computer, taking his wife home to California for vacation in the summer of 1969. The prototype of the system. At that time, the BCPL language (basic combined programming language) was used, and it was rewritten in the highly portable C language by Dennis Ritchie in 1972, which made the UNIX system popularized in colleges and universities.


MINIX operating system

Screenshot of Minix 3.3.0 login prompt
Screenshot of Minix 3.3.0 login prompt

The MINIX system was developed by Andrew S. Tanenbaum (AST). AST works in the Mathematics and Computer Science System of Vrije University in Amsterdam, the Netherlands, and is a senior member of ACM and IEEE (there are very few people in the world who are senior members of the two associations). More than 100 articles and 5 computer books have been published. Although AST was born in New York, he is a Dutch expatriate (his ancestors came to the United States in 1914). He went to the middle school in New York, the university at MIT, and the University of California at Berkeley for a Ph. As a postdoctoral fellow, he came to his hometown of Holland. Since then, he has been in contact with his hometown. Then I started teaching and leading graduate students at Vrije University. Amsterdam, the capital of the Netherlands, is a rainy city all year round, and for AST, this is the best, because he can stay at home and play with his computer. MINIX was compiled by him in 1987, mainly for students to learn operating system principles. The version was 1.5 in 1991. Currently there are two main versions in use: version 1.5 and version 2.0. At that time, the operating system was free for use in universities, but not for other purposes. Of course, it is now free and can be downloaded from many FTP. For the Linux system, he expressed his compliments to its developer Linus. However, he believes that the development of Linux is largely due to the fact that in order to keep minix small, students can complete the study within one semester, instead of accepting the expansion requirements of many people around the world for Minix. So this inspired Linus to write Linux. Linus just seized this good opportunity. As an operating system, MINIX is not an excellent one, but it also provides system source code written in C language and assembly language. This is the first time that aspiring programmers or hackers can read the source code of an operating system, which was guarded carefully by software vendors at the time.


GNU Project

GNU mascot, by Aurelio A. Heckert (derived from a more detailed version by Etienne Suvasa)
GNU mascot, by Aurelio A. Heckert (derived from a more detailed version by Etienne Suvasa)

The GNU Project and the Free Software Foundation (the Free Software Foundation-FSF) were founded by Richard M. Stallman in 1984. Aim to develop a complete operating system similar to Unix and free software: GNU system. (GNU is a recursive abbreviation for “GNU’s Not Unix”, and it is pronounced “guh-NEW”.) Various GNU operating systems that use Linux as the core are being widely used. Although these systems are usually called “Linux”, strictly speaking, they should be called GNU/Linux systems. By the early 1990s, the GNU project had developed many high-quality free software, including the famous emacs editing system, bash shell program, gcc series compiler, gdb debugging program, and so on. These softwares create a suitable environment for the development of the Linux operating system and are one of the foundations for the birth of Linux. As a result, many people currently refer to the Linux operating system as the “GNU/Linux” operating system.


POSIX standard

IBM System 360 | Image Credit: IBM
IBM System 360 | Image Credit: IBM


POSIX (Portable Operating System Interface for Computing Systems) is a cluster of standards developed by IEEE and ISO/IEC. The standard is based on the existing UNIX practice and experience, and describes the operating system’s calling service interface to ensure that the compiled application program can be transplanted and run on multiple operating systems at the source code level. It is based on the early work of a UNIX user group (usr/group) in the early 1980s. The UNIX user group originally tried to reconcile and integrate the difference between AT&T’s System V and Berkeley CSRG’s BSD system call interface, which resulted in the /usr/group standard in 1984. In 1985, the Standards Subcommittee of the IEEE Operating System Technical Committee (TCOS-SS) began to instruct the IEEE Standards Committee with the support of ANSI to formulate formal operating system service interface standards for program source code portability. By April 1986, the IEEE had developed a trial standard. The first official standard was approved in September 1988 (IEEE 1003.1-1988), which is also the POSIX.1 standard that is often mentioned later. In 1989, the work of 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 was combined with the already adopted C language standard and formally approved as IEEE 1003.1-1990 (also ANSI standard) and ISO/IEC 9945-1:1990 standard. POSIX.1 only specifies the system service application programming interface (API), and only summarizes the basic system service standards, so it is expected that other functions of the system will also be standardized. In this way, the work of IEEE POSIX began. In 1990, ten approved plans were in progress at the beginning, and nearly 300 people attended quarterly weekly meetings. The work started includes command and tool standards (POSIX.2), test method standards (POSIX.3), and real-time API (POSIX. 4) Wait. By the first half of 1990, there were already 25 projects in progress, and 16 working groups participated. At the same time, some organizations are also developing similar standards, such as X/Open, AT&T, OSF, etc. In the early 1990s, the formulation of the POSIX standard was in the final vote, which was between 1991 and 1993. This is when Linux is just getting started. 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 original Linux kernel code (version 0.01, version 0.11), preparations have been made for compatibility between Linux and POSIX standards. In the 0.01 version of the kernel/include/unistd.h file, several constant symbols related to the POSXI standard requirements have been defined, and the comment says “ok, this may be a joke, but I am working on it” .


Internet spread

The post published on comp.os.minix on July 3, 1991 mentioned that POSIX information was being collected. (Of course, the name Linux does not yet exist at this time. At that time, Linus might have FREAX in mind. The English meaning of FREAX is weird, monster, whimsical, etc.). It revealed that he was developing the Linux system, and at the beginning of Linux, he had already thought of achieving compatibility with POSIX (UNIX’s international standard). The birth of the Linux operating system In 1981, IBM launched the world-renowned microcomputer IBM PC. From 1981 to 1991, the MS-DOS operating system has always dominated the operating system on microcomputers. Although the price of computer hardware is declining year by year at this time, the price of software is still high. At that time, Apple’s MACs operating system could be said to have the best performance, but no one could easily approach its sky-high price. By 1991, the GNU Project had developed many software tools. The most anticipated Gnu C compiler has appeared, but a free GNU operating system has not yet been developed. Even MINIX began to have copyrights and needed to purchase to get the source code. The GNU operating system HURD has been under development, but it cannot be completed within a few years. For Linus, it can no longer wait. From April 1991, he began to brew and set about compiling his own operating system. At the beginning, his purpose was very simple, just to learn the programming technology in the protected mode of the Intel 386 architecture. But then the development of Linux completely changed the original intention. In early 1991, Linux started to learn the minix operating system on a 386sx compatible computer. Through learning, he gradually could not meet the existing performance of the minix system, and began to develop a new free operating system. According to Linus on comp.os. According to the news published on the minix newsgroup, we can know his step by step from learning the minix system to developing his own Linux. Starting in April 1991, Linus spent almost all his time studying the 386-minix system (hack the kernel) and tried to port GNU software to the system (GNU gcc, bash, gdb, etc.). And on April 13th, it was announced on comp.os.minix that he had successfully ported bash to minix, and he couldn’t put it down and couldn’t leave this shell software. The first news related to Linux was published on comp.os.minix on July 3, 1991 (Of course, the name Linux does not exist at this time. At that time, Linus thought FREAX, FREAX in English The meaning is weird, monster, whimsical, etc.). It revealed that he is developing the Linux system, and at the beginning of Linux, he had already thought of achieving compatibility with POSIX (UNIX’s international standard). In Linus’ next announcement (comp.os.minix on August 25, 1991), he asked all minix users “What would you like to see in minix?” (“What would you like to see in minix?” What?”). In the news, he revealed for the first time that he was developing a (free) 386 (486) operating system, and said that it was just an interest, the code would not be very large, and it would not be as professional as GNU. The idea of ​​developing a free operating system has been brewing since April. I hope you will give us some feedback on what you like and dislike in the minix system. Due to practical and other reasons, the newly developed system is just beginning to be very similar to minix ( And use the minix file system). And has successfully combined bash (version 1.08) and gcc (1. Version 40) has been ported to the new system, and it will be available in a few months. Finally, Linus affirmed that the operating system he developed did not use a line of minix source code; and because of the use of the 386 task switching feature, the operating system was not easy to port (no portability) and could only use AT hard disks. Linus did not consider the portability of Linux at the time. But currently Linux can run on almost any hardware architecture. On October 5th, 1991, Linus was on comp.os. The minix news group announced the birth of the Linux kernel system (Free minix-like kernel sources for 386-AT). This piece of news can be called the birth declaration of Linux, and has been widely circulated. Therefore, October 5th is a special day for the Linux community, and many later new versions of Linux chose this day. So it is not accidental that RedHat chose to release its new system this day. The origin of the Linux name The Linux operating system was not called Linux when it first started. Linus named his operating system FREAX, which means weird, monster, and whimsical in English. He uploaded the new operating system to ftp, funet. When on the fi server, the administrator Ari Lemke disliked the name. He thought that since it was Linus’s operating system, it should take its homophonic Linux as the directory of the operating system, so the name Linux began to spread. In Linus’s autobiography “Just for Fun”, Linus explained: “Frankly speaking, I never thought of publishing this operating system under the name Linux, because the name is a bit too conceited. And I was ready for the final release. What is the name of the version prepared for Freax. In fact, some early Makefiles in the kernel code-files used to describe how to compile the source code-already contain the name “Freax”, which has been around for about half a year. But it doesn’t really matter. I didn’t need a name at the time, because I had not released the kernel code to anyone. And Ari Lemke, he insisted on putting the kernel code on the ftp site in his own way, and he didn’t I like the name Freax. He insisted on using the current name (Linux). I admit that I didn’t argue with him much at the time. But it was all his name. So I can honestly say that I am not arrogant or partly honest Say that I don’t have a self-contained mindset. But I think well, this is also a good name, and I can always persuade others about this in the future, just like I do now.”-Linus Torvalds “Just for fun” Pages 84-88. The name. He insisted on using the current name (Linux), and I admit that I didn’t argue with him much at the time. But these are all his names. So I can honestly say that I am not arrogant, or partly frankly say that I don’t have a selfish mind. But I think okay, this is also a good name, and I can always persuade others about this in the future, just like I do now. “– Linus Torvalds, “Just for fun”, pages 84-88. The name. He insisted on using the current name (Linux), and I admit that I didn’t argue with him much at the time. But these are all his names. So I can honestly say that I am not arrogant, or partly frankly say that I don’t have a selfish mind. But I think okay, this is also a good name, and I can always persuade others about this in the future, just like I do now. “– Linus Torvalds, “Just for fun”, pages 84-88.


Linux Kernel

Messages from the Linux kernel 3.0.0 booting, from Debian sid i386
Messages from the Linux kernel 3.0.0 booting, from Debian sid i386

Linux is the most popular free computer operating system kernel. It is a Unix-like operating system written in C and assembly language and conforms to the POSIX standard. Linux was first developed by Finnish hacker Linus B. Torvalds to try to provide a free Unix-like operating system on Intel’s x86 architecture. The project began in 1991, when Linus Torvalds posted a post on the Usenet newsgroup comp.os.minix. This famous post marked the official start of the Linux project. Some Minix hackers provided assistance in the early stages of the project, and today countless programmers around the world are helping the project for free. Technically speaking, Linux is a kernel. “Kernel” refers to a system software that provides hardware abstraction layer, disk and file system control, multitasking and other functions. A kernel is not a complete operating system. A complete operating system based on the Linux kernel is called the Linux operating system, or GNU/Linux.


The basic idea of Linux

Linux has two points: first, everything is a file; second, every software has a certain purpose. The first one in detail is that everything in the system comes down to one file, including commands, hardware and software devices, operating systems, processes, etc. For the operating system kernel, they are all regarded as files with their own characteristics or types. . As for Linux is based on Unix, it is largely because the basic ideas of the two are very similar.


Version naming

Linux kernel has three different naming schemes. Early version: The first version of the kernel is 0.01. Followed by 0.02, 0.03, 0.10, 0.11,0.12 (first GPL version), 0.95, 0.96, 0.97, 0.98, 0.99 and 1.0. From version 0.95 there are many patches released between major versions. The old plan (between version 1.0 and 2.6), the format of the version is ABC, where A, B, and C represent: A greatly changed kernel. This is rarely changed, only when major changes to the code and core occur. The kernel has been changed twice in history: 1.0 in 1994 and 2.0 in 1996. B refers to some major modified kernel. The kernel uses the traditional odd-numbered minor version number software number system (using even-numbered minor version numbers to represent stable versions). C refers to the slightly revised kernel. This number will change when there are security patches, bug fixes, new features or drivers. For the third time, since the release of 2.6.0 (December 2003), people realized that a shorter release cycle would be beneficial. Since then, the format of the version has been ABCD, where A, B, C, and D represent: A and B are irrelevant, C is the kernel version, and D is the pronunciation of the security patch.


Linux

There are many different versions of linux pronunciation, and there are no less than 10 kinds to see and hear. According to Linus Torvalds, the founder of Linux, the pronunciation of Linux rhymes with “Minix”. The pronunciation of “i” in “Li” is similar to the pronunciation of “i” in “Minix”, and the pronunciation of “u” in “nux” is similar to the pronunciation of “o” in the English word “profess”. According to the IPA, it should be /’linэks/-similar to “linэks”. However, because Linus Torvalds is a Finnish, his Linux pronunciation is not /’linэks/, but /’liniks/. Someone synthesizes the pronunciations on the Internet and Linux, and summarizes several pronunciations that they think are the most appropriate and common: /li’n^ks/(“Linax”) or /’li:nэks/(“里Ks”) or /li’nju:ks/(“Linjux”). These few should be understood by everyone. As for which is more authentic, of course it is the original sound of Linux. But in fact, it seems that there are not many people who read Linux.


Desktop environment

In graphics computing, a desktop environment (Desktop environment, sometimes called a desktop manager) provides a graphical user interface (GUI) for the computer. This name comes from the desktop analogy and corresponds to the early text command line interface (CLI). A typical desktop environment provides icons, windows, toolbars, folders, wallpapers, and capabilities like drag and drop. On the whole, the design and functional characteristics of the desktop environment give it a distinctive look and feel. The current mainstream desktop environments include KDE, gnome, Xfce, LXDE, etc., in addition to Ambient, EDE, IRIX Interactive Desktop, Mezzo, Sugar, CDE, etc.
The KDE
  KDE (Kool Desktop Environment) project was built in October 1996, a bit earlier than GNOME. The KDE project was initiated by the developer of the graphical typesetting tool Lyx and a German named Matthias Ettrich. The purpose is to satisfy ordinary users who can manage various application software on Unix workstations and complete them through a simple and easy-to-use desktop. Various tasks.
Gnome
  GNOME is the GNU Network Object Model Environment (The GNU Network Object Model Environment), part of the GNU project, and an important part of the open source movement. It is a tool that allows users to easily operate and set the computer environment. The goal is to build a desktop environment with complete functions, simple operation and friendly interface for Unix or Unix-like operating systems based on free software. It is the official desktop of the GNU project.
Xfce
  Xfce (XForms Common Environment) was created in July 2007, similar to the commercial graphics environment CDE, is a lightweight desktop environment that runs under various Unixes. The original author Olivier Fourdan first designed XFce based on the XForms 3D graphics library. Xfce is designed to improve the efficiency of the system. While saving system resources, it can quickly load and execute applications.


Linux version history

Linux distribution refers to what we usually call the “Linux operating system”, it may be issued by an organization, company or individual. Linux is mainly used as part of a Linux distribution (often called “distro”). Generally speaking, a Linux distribution includes the Linux kernel, a set of installation tools for installing the entire software on the computer, various GNU software, some other free software, and some proprietary software in some specific Linux distributions. Releases are made for many different purposes, including support for different computer structures, localization of a specific region or language, real-time applications, and embedded systems. Currently, more than 300 releases are actively developed, and there are about twelve of the most commonly used releases. A typical Linux distribution includes: Linux core, some GNU libraries and tools, command-line shell, graphical X window system and corresponding desktop environment, such as KDE or GNOME, and contains thousands of office packages, compilers, Application software from text editors to scientific tools. Many versions of Linux distributions use LiveCD, which can be used without installation. Mainstream Linux distributions Ubuntu, Debian GNU/Linux, Fedora, Gentoo, MandrivaLinux, PCLinuxOS, Slackware Linux, openSUSE, ArchLinux, Puppylinux, Mint, CentOS, Red Hat, etc. The Linux distributions of mainland China Rainforest Woodwind Linux Operating System (Ylmf OS), Kylin Operating System, Redflag Linux (Redflag Linux), Qomo Linux (formerly Everest), Surfing Linux (Xteam Linux), Blue Dot Linux, Xinhua Linux, total Create Linux, Baizi Linux, veket, lucky8k-veket. Open Desktop, Hiweed GNU/Linux, Magic Linux, Engineering Computing GNU/Linux, kylin, won the bid for Puhua Linux, Chinasoft Linux, Xinhua Hua Lei Linux (RaysLX), CD Linux, MC Linux, instant Linux (Thizlinux), b2d linux, IBOX, MCLOS, FANX, Kubo Linux, New Oxygen Linux, Hiweed, Deepin Linux, YLMF OS. It should be noted that Xinox, Hiweed, and Deepin are all based on ubuntu, and Deepin Linux is the merged version of Hiweed and Deepin. The original Hiweed has stopped updating, and Xinox has also stopped updating. Among them, CD linux is deeply loved by some cracking enthusiasts because it can easily integrate some wireless security audit tools, as well as a better Chinese interface and small volume.


The initial version of the popular Ubuntu

ubuntu 10.04 desktop : October 20, 2004 Sponsor: Canonical Co., Ltd. Founder: Mark Shettleworth Supported languages: multilingual (including Chinese) Introduction: Ubuntu is a desktop application The main Linux operating system, its name comes from the word “ubuntu” (translated as Wubangtuo or Ubantu) in Zulu or Hausa in southern Africa, meaning “humanity”, “I exist because of everyone Existence is a traditional value in Africa, similar to the “benevolence” thought of Chinese society. Ubuntu is based on the Debian distribution and GNOME desktop environment. The difference from Debian is that it releases a new version every 6 months. The goal of Ubuntu is to provide general users with an up-to-date, yet fairly stable operating system built primarily of free software. Ubuntu has a huge community power, users can easily get help from the community.


The determined Fedora

Initial version: November 6, 2003 Developer: Fedora Project Supported languages: multilingual (including Chinese) Introduction: The earliest Fedora Linux community’s goal was to make and release third-party software packages for Red Hat Linux. However, when Red Hat After Linux was discontinued, the Fedora community was integrated into the Fedora Project sponsored by Red Hat, with the goal of developing an operating system supported by the community (in fact, in addition to volunteer organizations, many Red Hat employees also participated in the development of the Fedora Project). Red Hat Enterprise Linux replaced Red Hat Linux as the officially supported system version. Fedora Core (renamed Fedora since the seventh edition) is one of many Linux distributions. It is a free Linux system developed from Red Hat Linux. At present, the latest version of Fedora is Fedora 14, Fedora is one of the fastest updated linux distributions, and an official new version is usually released every 6 months. Fedora and Redhat, the two Linux distributions, are closely related. Since Redhat 9.0, it no longer releases the desktop version, but cooperates with the open source community for this project, so there is the Fedora Linux distribution. Fedora can be said to be a continuation of the desktop version of Redhat, just a collaboration with the open source community.
Gorgeous openSUSE

openSUSE logo
Initial version: December 7, 2006 Developer: openSUSE Project Supported languages: multilingual (including Chinese) Introduction: The openSUSE project is an open source community project initiated by Novell. Designed to promote the widespread use of Linux. openSUSEorg provides a free and easy way to get the world’s best Linux distribution, SUSE Linux. The openSUSE project provides Linux developers and enthusiasts with everything they need to start using Linux. The goal of the openSUSE project is to make SUSE Linux the easiest-to-use Linux distribution that everyone can get, and to make it the most widely used open source platform. Provide an environment for open source partners to build SUSE Linux into the best Linux distribution in the world, whether for new users or experienced Linux users. Greatly simplify and open the development and packaging process to make openSUSE the platform of choice for Linux hackers and application software developers.


The initial version of the free Debian Debian logo : August 16, 1993 Developer: Debian Project Supported Languages: Multilingual (including Chinese) Introduction: Debian GNU/Linux was developed by a great man named Ian Murdock (Ian Murdock) Initiated in 1993, his name starts with Ian, and his wife’s name Debra starts with Deb in three letters, so under the power of love, he started the DebianGNU/Linux organization. The Debian Project is a cooperative organization dedicated to creating a free operating system. The operating system we created is called Debian GNU/Linux, or Debian for short. The operating system is a collection of basic programs and tools that make the computer run, the most important part of which is called the kernel. The kernel is the most important program in the computer, responsible for all basic scheduling work, and allows you to run other programs.


Concise Slackware
Initial version of the Slackware logo : July 16, 1993 Founder: Patrick Volkerding Supported languages: multilingual (including Chinese) Introduction: SlackwareLinux is a GNU/Linux distribution made by Patrick Volkerding, it is the longest surviving version in the world The Linux distribution, in its glorious period, once had the largest number of users among all distributions. However, with the commercialization of Linux, products such as Redhat, Mandrake, and Suse have occupied a large market through large-scale commercial promotion; Debian, as a community distribution, also has a large user base. In contrast, Slackware’s quiet publicity made it disappear from the sight of many people (especially new users of Linux). Unlike most other distributions, KISS (Keep it simple, stupid) is a principle that Slackware has always adhered to. Try to keep the system as simple as possible to achieve stability, efficiency and security. In the KISS philosophy, Simple refers to the simplicity of system design, not User friendly. This may sacrifice the ease of use of the system to a certain extent, but it improves the transparency and flexibility of the system. It is precisely the insistence on the KISS principle that Slackware has won a reputation for simplicity, security, stability, and efficiency, and has also won a large number of loyal users.

The old RedHat
    RedHat logo
Initial version: May 13, 1995 Supported languages: multilingual (including Chinese) Introduction: Red Hat is the world’s largest open source technology manufacturer, and its product Red Hat Linux is also the most widely used Linux in the world. Red Hat is headquartered in North Carolina, USA. Has 22 branches worldwide. On April 30, 2004, Red Hat officially stopped supporting Red Hat 9.0 version, marking the official end of Red Hat Linux. The original desktop version of the Red Hat Linux distribution package was merged with the private Fedora project to become the Fedora Core distribution. Red Hat no longer develops the desktop version of the Linux distribution package, but concentrates all its efforts on the development of the server version, which is the Red Hat Enterprise Linux version. RHEL4 was released in October 2005.

LFS
  LFS──Linux from Scratch is an installation method that downloads source code directly from the Internet and compiles LINUX from scratch. It is not a distribution, but a recipe that tells you where to buy food (download the source code), and how to make these raw code into dishes that suit your taste ─ ─ personalized linux, not just a personalized desktop.
Reasons for
  existence An important reason for the existence of LFS is to help people learn how the internals of the Linux system work. Building an LFS system will help demonstrate what makes linux work and how various components work together and depend on each other. One of the best things is that this learning experience gives you the ability to customize Linux to meet your own needs.
Advantages
  A key benefit of LFS is that it allows users to have more control over the system instead of relying on someone’s linux implementation. In the world of LFS, you are sitting in the driver’s seat, controlling every detail of the system, such as directory hierarchy and startup script configuration. You can also control where, why, and how the program is installed. Another benefit of LFS is that it can create a very compact Linux system. When installing a regular distribution, people are often forced to install programs that may never be used. These programs waste valuable disk space, or worse, take up CPU resources. It is not difficult to build an LFS system of less than 100 megabytes (MB), which is much smaller than most current distributions. Does this sound like it still takes up a lot of space? The job of some of us is to create a very small embedded LFS system. We have successfully built a system that occupies approximately 8MB of disk space when only the Apache server is running. Further reduction can be reduced to 5MB or less. Do you try with a regular distribution version? This is just one of the benefits of designing your own Linux. We can compare a Linux distribution to a burger sold in a fast food restaurant. You cannot decide what you should eat. On the contrary, LFS did not give you a burger. Instead, I will give you a recipe for making burgers. Users can check the recipe, subtract unwanted ingredients, and add your own ingredients to enhance the taste of the burger. When you are satisfied with the formula, start to prepare. You can use a certain way: roast, or bake, or fried, or roast. Another analogy is to compare LFS with building houses. LFS provides the framework blueprint of the house, but you need to build it. LFS includes the freedom to adjust the plan in the process, customizing to meet the needs and references of users. Another advantage of the user-customized linux system is security. By compiling the entire system from source code, you can review anything and apply all security patches without waiting for others to compile a binary package that fixes security vulnerabilities. Unless it is a patch you found and made, you will not get any guarantee whether the new binary package is compiled correctly or the problem is corrected.

Basic Concept
Disk and Partition
  Device management In Linux, every hardware device is mapped to a system file, and IDE or SCSI devices such as hard disks and CD-ROMs are no exception. Linux allocates a file composed of hd prefix to various IDE devices; and for various SCSI devices, a file composed of sd prefix is ​​allocated. For example, for the first IDE device, Linux is defined as hda; the second IDE device is defined as hdb; and so on. The SCSI device should be sda, sdb, sdc, etc. The number of partitions To partition, you must operate on each hardware device, which may be an IDE hard disk or a SCSI hard disk. For each hard disk (IDE or SCSI) device, Linux assigns a serial number from 1 to 16, which represents the partition number on this hard disk. For example, the first partition of the first IDE hard disk is mapped to hda1 under Linux, and the second partition is called hda2. For SCSI hard disks, it is sda1, sdb1, etc. The role of each partition is stipulated in Linux. Each hard disk device can consist of up to 4 primary partitions (including extended partitions). Any extended partition must occupy a primary partition number, that is, in a hard disk, the primary partition and The maximum number of extended partitions is 4. For early DOS and Windows (versions before Windows 2000), the system only recognizes one primary partition. You can further refine the partition by adding a logical drive letter (logical partition) to the extended partition. The main partition is used by the computer to start the operating system. Therefore, each operating system startup, or boot program, should be stored on the main partition. This is the biggest difference between primary partition and extended partition and logical partition. When we specify the bootloader to install and boot Linux, we must specify it on the primary partition, which is the best example. Linux stipulates that the primary partition (or extended partition) occupies the first 4 numbers from 1 to 16. Taking the first IDE hard disk as an example, the primary partition (or extended partition) occupies hda1, hda2, hda3, hda4, and the logical partition occupies 12 numbers ranging from hda5 to hda16. Therefore, each hard disk under Linux has a total of 16 partitions at most. For logical partitions, Linux stipulates that they must be established on extended partitions (the same is true for DOS and Windows systems), not on the primary partition. Therefore, we can see that the extended partition can provide a more flexible partition mode, but it cannot be used as an operating system boot. Remove the above differences between the various partitions, we can simply treat them equally. Partition indicators For each Linux partition, the size and type of the partition are the most important indicators. The size of the capacity is easy for readers to understand, but the type of partition is not so easy to accept. The partition type specifies the format of the file system on this partition. Linux supports a variety of file system formats, including the familiar FAT32, FAT16, NTFS, HP-UX, and various Linux-specific Linux Native and Linux Swap partition types. In Linux systems, these different types of partitions can be distinguished by partition type numbers.

Linux file system
  Linux inherits the clear structure of the Unix operating system. The file structure under linux is very organized. However, the above advantages can only be realized when you are fairly familiar with Linux. / Root directory, all directories, files, and devices are under /. / is the organizer of the Linux file system and the top leader. /bin bin is the abbreviation of binary. In general systems, you can find commonly used Linux commands in this directory. The commands required by the system are located in this directory, such as ls, cp, mkdir and other commands; the function is similar to /usr/bin, the files in this directory are all executable commands that can be used by ordinary users. The most basic commands needed as a basic system are placed here. The /boot Linux kernel and the file directory required by the boot system program, such as the vmlinuz initrd.img file are located in this directory. In general, the GRUB or LILO system boot manager is also located in this directory. The /cdrom directory was empty when you just installed the system. You can mount the CD-ROM file system in this directory. For example: mount /dev/cdrom /cdrom /dev dev is the English abbreviation of device. This directory is very important to all users. Because this directory contains all the external devices used in the Linux system. But this is not the driver of the external device. This is different from our commonly used windows and dos operating systems. It is actually a port to access these external devices. We can access these external devices very conveniently, and there is no difference between accessing a file or a directory. The /etc etc directory is one of the most important directories in the Linux system. Various configuration files and subdirectories used in system management are stored in this directory. The network configuration files, file systems, x system configuration files, device configuration information, and setting user information that we need to use are all in this directory. /home If we create a user, the username is “xx”, Then there is a corresponding /home/xx path in the /home directory to store the user’s home directory. /lib lib is the abbreviation of library (library). This directory is used to store system dynamic link shared libraries. Almost all applications will use the shared library in this directory. Therefore, do not easily perform any operations on this directory. Once a problem occurs, your system will no longer work. /lost+found In the ext2 or ext3 file system, when the system crashes unexpectedly or the machine shuts down unexpectedly, some file fragments are placed here. When the system starts, the fsck tool will check this and repair the damaged file system. Sometimes a problem occurs in the system, and many files are moved to this directory, which may be repaired manually, or moved to the original location. /mnt This directory is generally used to store the mount directory of the mounted storage device, such as cdrom and other directories. See the definition of /etc/fstab. Sometimes we can let the system boot to automatically mount the file system, and it is also possible to put the mount point here. It mainly depends on how it is defined in /etc/fstab; for example, the CD-ROM drive can be mounted to /mnt/cdrom. /media Some Linux distributions use this directory to mount mobile hard drives (including U disks), CD/DVD drives, etc. with USB interfaces. /opt The optional programs are mainly stored here. Do you want to try the latest test version of firefox? Then install it in the /opt directory, so that when you finish trying and want to delete firefox, you can delete it directly without affecting any other settings of the system. All data, library files, etc. of the program installed in the /opt directory are placed in the same directory. /proc can get system information in this directory. This information is in memory and is generated by the system itself. When the operating system is running, process information and kernel information (such as cpu, hard disk partition, memory information, etc.) are stored here. The /proc directory pretends to be the mount directory of the file system proc. proc is not a real file system. For its definition, please refer to the /etc/fstab/root Linux super-privileged user root home directory. /sbin This directory is used to store the system management programs of the system administrator. Most of the commands related to system management are stored, where the executable commands of the super-privileged user root are stored. Ordinary users have no permission to execute the commands in this directory, this directory and /usr/sbin; /usr/X11R6/sbin or /usr The /local/sbin directory is similar; we just need to remember that everything contained in the directory sbin can only be executed with root privileges. /selinux seems to be some configuration file directories for SElinux, SElinux can make your linux more secure. After the /srv service is started, the data directory that needs to be accessed, for example, the web page data read by the www service can be placed in /srv/www/sys Linux kernel to design a newer virtual based The memory file system, its function is similar to proc, but in addition to the same function of viewing and setting kernel parameters as proc, there is also a unified device model for Linux for management purposes. /tmp Temporary file directory, used to store temporary files generated during the execution of different programs. Sometimes when a user runs a program, a temporary file is generated. /tmp is used to store temporary files. The /var/tmp directory is similar to this directory. /usr This is the directory that occupies the largest hard disk space in the Linux system. Many user applications and files are stored in this directory. In this directory, you can find additional tools that are not suitable to be placed in the /bin or /etc directory. For example, like games, some printing tools, etc. The /usr directory contains many subdirectories: /usr/bin is used to store programs; /usr/share is used to store some shared data, such as music files or icons, etc.; The /usr/lib directory is used to store some function library files that cannot be run directly, but are necessary for many programs to run. Your package manager (it should be “Synaptic”) will automatically manage the /usr directory for you. /usr/local This is mainly to store manually installed software, that is, software not installed through “Synaptic” or apt-get. It has a similar directory structure to the /usr directory. Let the package manager manage the /usr directory, and put custom scripts (scripts) under the /usr/local directory. I think this should be a good idea. /usr/share is the storage location for things shared by the system, such as /usr/share/fonts is the font directory, and /usr/share/doc and /usr/share/man help files. The content of the /var directory changes frequently. Just look at the name. We can understand it as the abbreviation of vary. There is /var/log under /var, which is the directory used to store system logs. The /var/www directory defines the storage directory of the Apache server site; /var/lib is used to store some library files, such as MySQL and the storage location of the MySQL database.

file type
  When introducing attributes, it is mentioned that the first sign (d or -) can indicate a directory or file, that is, different file types. Linux file types mainly include the following: Regular file: It is the file that we generally access. Among the attributes displayed by ls -al, the first attribute is [-], such as [-rwxrwxrwx] . In addition, according to the content of the file, it can be roughly divided into: Plain text file (ASCII): This is the most common type of file in the Unix system. It is called a plain text file because the content is directly readable. Data, such as numbers, letters, etc. Almost all settings files belong to this file type. For example, use the command “cat ~/. pipe): FIFO is also a special file type, its main purpose is to solve the error caused by multiple programs accessing a file at the same time. FIFO is the abbreviation of first-in-first-out. The first attribute is [p]. pipe): FIFO is also a special file type, its main purpose is to solve the error caused by multiple programs accessing a file at the same time. FIFO is the abbreviation of first-in-first-out. The first attribute is [p].

LILO and GRUB
  LILO (LInux LOader), LILO stands for Linux loader. LILO is a program that runs when the system starts. It allows you to select the operating system used to boot the computer. GNU GRUB (“GRUB” for short) is a multi-operating system startup program from the GNU project. GRUB is an implementation of the multi-boot specification, which allows users to have multiple operating systems in the computer at the same time, and select the operating system they want to run when the computer starts. GRUB can be used to select different kernels on the operating system partition, and it can also be used to pass startup parameters to these kernels.
Ordinary users and super users
  Ordinary users can use system resources within the scope of their permissions, and super users (user name root) can not only use all resources in the system but also manage system resources.
Working mode
  Linux working mode is divided into character working mode and graphic working mode.
Edit this section of the characteristics of
  Linux Linux is popular because it has many attractive features.
Completely free
  Linux is a free operating system that users can obtain for free through the Internet or other channels, and can modify its source code at will. This is something other operating systems cannot do. It is precisely because of this that countless programmers from all over the world have participated in the modification and writing of Linux, and programmers can change it according to their own interests and inspiration. This allows Linux to absorb the essence of countless programmers and continue to grow.
Fully compatible with POSIX 1.0 standard
  This makes it possible to run common DOS, Windows programs through the corresponding simulator under Linux. This laid the foundation for users to switch from Windows to Linux. When many users consider using Linux, they think about whether the programs that were previously common under Windows can run normally, which eliminates their doubts.
Multi-user, multi-task
  Linux supports multiple users, and each user has his own special rights to his own file device, ensuring that each user does not affect each other. Multitasking is one of the most important features of current computers. Linux can make multiple programs run simultaneously and independently.
Good interface
  Linux has both a character interface and a graphical interface. In the character interface, users can input corresponding instructions through the keyboard to operate. It also provides an X-Windows system similar to a Windows graphical interface, and users can use the mouse to operate it. In the X-Windows environment, it is similar to Windows, it can be said to be a Linux version of Windows.
Abundant network functions    The
  Internet has flourished on the basis of Unix, and the network functions of Linux are certainly not inferior. Its network function and its kernel are closely linked, in this respect Linux is superior to other operating systems. In Linux, users can easily realize network work such as web browsing, file transfer, and remote login. And can be used as a server to provide WWW, FTP, E-Mail and other services.
Reliable security and stable performance
  Linux has adopted many security technical measures, including technologies such as permission control for reading and writing, audit trails, and core authorization, all of which provide a guarantee for security. Because Linux needs to be applied to network servers, it also has relatively high requirements for stability. In fact, Linux is also very good in this regard.
Supports multiple platforms
  Linux can run on multiple hardware platforms, such as platforms with x86, 680×0, SPARC, Alpha and other processors. In addition, Linux is also an embedded operating system that can run on handheld computers, set-top boxes, or game consoles. The Linux 2.4 kernel released in January 2001 has been able to fully support the Intel 64-bit chip architecture. At the same time, Linux also supports multi-processor technology. Multiple processors work simultaneously, greatly improving system performance.
Edit this Linux application
  In the past, Linux was mainly used as an operating system for servers because of its cheapness, flexibility, and Unix background. Traditionally, the Linux-based “LAMP (a combination of Linux, Apache, MySQL, Perl/PHP/Python)” technology, in addition to being widely popular among developers, is also the most commonly used by web service providers now Platform. Based on its low cost and high degree of configurability, Linux is often used in embedded systems, such as set-top boxes, mobile phones, and mobile devices. On mobile phones, Linux has become the main competitor of Symbian OS; on mobile devices, it has become an alternative to Windows CE and Palm OS. The current popular TiVo digital camera uses a customized Linux. In addition, there are many hardware-based network firewalls and routers. For example, some LinkSys products are internally driven by Linux and adopt the firewall and routing functions provided by the operating system. There are more and more supercomputers using Linux. According to the TOP500 supercomputer list in November 2008, the fastest supercomputer in the world now uses Linux as its operating system. Among the 500 systems listed, Linux is used as the operating system, accounting for 439 groups (87.8%). The SONY PlayStation 3 launched in 2006 can also use the Linux operating system, and it has a Yellow Dog Linux that can make it a desktop system. Before, Sony had also launched a DIY kit called PS2 Linux for their PlayStation 2. Ubuntu has restored PPC support since version 9.04 (including PlayStation 3). With the introduction of low-cost computers such as OLPC’s XO-1 and Asustek’s Eee PC, many people are optimistic that in the low-end PC market, the market share of Linux is growing rapidly. But after Windows entered this market, Linux’s market share declined rapidly. Now Windows has an absolute advantage in all PC markets.
Edit this section of Linux certification
  Linux certification refers to the qualification obtained after obtaining professional Linux training and passing the exam. At present, Linux certifications widely recognized internationally include Linux Professional Institute (referred to as LPI), SairLinux and GNU, Linux+ and RedHatCertifiedEngineer.
Linux Professional Institute (LPI)
    LPILINUX Certification Authority Guide (Second Edition) From
the current degree of concern of the Linux community, the LPI certification program has received the most extensive support. LPI has launched the Linux Profession Institute Certified-Level 1 (referred to as LPIC-1) certification program in advance, and will launch the second and third levels of certification as scheduled in the near future. In order to obtain the LPIC-1 certificate, you must pass two 90-minute exams—101 (LPI General Linux, Part1) and 102 (LPI General Linux, Part2). The candidates for LPI’s LPIC-1 are mainly system administrators who have at least one year of Linux working experience.
Sair Linux and GNU are the
  same as LPI, Sair provides three levels of certification programs; Level 1-Sair Linux & GNU Certified Administrator (LCA) Level 2-Sair Linux & GNU Certified Engineer (LCE) Level 3-Master Sair Linux & GNU Certified Engineer (MLCE) Level 1 is currently the fully developed Sair certification project, which is the same as LPI.
Linux+
  The Linux+ certification program hosted by CompTIA is the latest to enter the Linux certification market. The plan was officially launched on September 21, 2001, and has attracted widespread attention among Linux practitioners and the industry. Almost all major certification publishers have written exam reference books for Linux+ certification, and many IT training centers are preparing for Linux+ certification programs. Like other certifications with a “+” sign launched by CompTIA, the Linux ten qualification certificate can be obtained by passing only one exam (VUE and Prometric test centers hold such exams). Once you have obtained the Linux+ qualification certificate, the certificate will last a lifetime effective. The price of the Linux+ exam is US$190. The exam uses multiple-choice questions and lasts for 120 minutes. Most of the content covered is exactly the same as Sair and LPI certification, but the difficulty is slightly lower. The LPI and Sair certification programs are targeted for Linux network and system administrators with considerable experience, while Linux+ certification is mainly for individuals who have only about half a year of Linux experience and want to obtain basic Linux technical qualifications.
Red Hat Certified Engineer
  Linux+ represents the low-level Linux certification program, while the high-level Linux certification has long been almost entirely the Red Hat Certified Engineer (RHCE) certification program. RHCE is the most challenging certification exam in this field, so it is also the most valuable Linux certification. But it is also the most expensive. The full course fee is US$2,498, and the certification test can also be taken separately at US$749.
Edit the Linux system on the phone in this paragraph
  Before 2002, there was no mobile phone operating system in the strict sense—mobile phones that were satisfied with the call function did not need so complicated computing power; the mobile phone platforms at the time were closed, and each mobile phone manufacturer made its own chips and equipped There is no universal operating system on its own proprietary software, which is a bit like the original mainframe era. Since then, there have been more and more types of mobile phones, and the “tasks” undertaken have become more and more complex. It is obvious that a closed system can no longer meet this demand, so smart phones and mobile phone operating systems have emerged. In the beginning, mainstream mobile phone manufacturers were not at ease with Linux; however, the demand from end users such as mobile operators was like an invisible hand, pushing Linux to the foreground. As early as the beginning of 2003, NEC had customized several Linux mobile phones for NTT DoCoMo, which launched 3G services; subsequently, mobile operators such as Hutchison and Vodafone also expressed recognition of Linux. The reason is actually very simple. Operators need to provide more and more business types, and business changes are becoming more and more frequent. They urgently need an operating system that runs reliably, has good scalability, and is not expensive. Linux just meets Meet their requirements. From the perspective of the global mobile phone market, mobile phone customization (mobile operators directly place orders to ODM partners, who will develop and produce mobile phones in accordance with the requirements of operators) has long become a trend. In order to meet the needs of operators, ODM vendors have also begun to become enthusiastic about Linux. Motorola is the most supportive mobile phone manufacturer in the Linux camp. New smartphones are launched every year, and in recent years there has been a trend of increasing efforts. After launching excellent smartphones such as V8 and U9 in 2007, it launched E8 and Zn5 in 2008. The strength of the new machine, the launch of the A1210 in 2009, is a surprise, but Motorola has announced that it will no longer develop and use the Linux-based MOTOMAGX mobile operating system. MOTOMAGX is an operating system developed by Motorola based on its early Linux mobile phone experience. Both MOTOROKR Z6 and RAZR2 V8 use this operating system. Since Linux is an open source operating system, mobile phone manufacturers often fight independently, resulting in a plethora of mobile phone Linux systems without overwhelming versions, causing chaos. This situation was not fundamentally reversed until the advent of Android.

whoami
Stefan Pejcic
Join the discussion

I enjoy constructive responses and professional comments to my posts, and invite anyone to comment or link to my site.