Through this article, you can understand the basic concepts, history, and development of Linux and UNIX;
First of all, we will briefly introduce UNIX and Linux, so that readers can compare their differences and understand why Linux is very good and the background of Linux is related;
Introduction to the Operating System
The kernel is responsible for controlling the allocation of hardware resources. If only the kernel is available, only the computer hardware can run without any functions. Therefore, the system calls must be provided to developers to develop applications;
The kernel can control the hardware, such as CPU computing and Hard Disk Data Reading and Writing. Only the kernel can run the computer, but we cannot control the computer;
System calls are the call interfaces provided by the operating system to developers;
No hardware is controlled by the operating system by default. developers need to develop drivers based on the interfaces provided by the operating system. Only drivers installed can control hardware devices;
Preface (2): A Brief Introduction to Unix
Unix was open-source at the beginning, and at&t withdrew its copyright and did not disclose the source code;
The UNIX code is composed of 90% C language and 10% assembly;
Two major branches of UNIX: at&t's System V and BSD (we will talk about it in the development history of Linux );
I,Linux Introduction
1. Brief Introduction to Linux
Linux core concepts:Everything is a directory;
Linux: it is a kernel, not an operating system. Therefore, we usually say "windows, Mac, or Linux are used in the operating system ?" Yes. Ubuntu and ora are the operating system names. They all use the Linux kernel;
Initially developed by Linus Torvalds for 1991 (personal computers) in 386, Linus Torvalds was a graduate student in Finland at that time;
UNIX like: a UNIX operating system;
Why can I install a Windows operating system on an Apple Computer? Because Apple uses Intel's X86 architecture and windows also targets this architecture, Mac operating systems can also be installed on PCs theoretically;
The mascot of Linux is penguin (English name: tux). I was very impressed because Torvalds was bitten by penguins when I was a child;
The UNIX and Linux code is composed of the C language of 90% and the assembly of 10%. Therefore, the code can be transplanted to other hardware with a slight modification;
2. Linux advantages and disadvantages
Linux advantages
1. Open learning environment;
2. Fast vulnerability repair;
3. Because the kernel is only several hundred kb, it is suitable for embedded systems;
Disadvantages of Linux
1. Some professional software is not available in Linux;
3. Linux development history
UNIX is written in a mix of 90% C language and 10% assembly language. Therefore, you still need to change the code when porting the hardware platform. Therefore, various companies have launched UNIX systems for their own models;
At the seventh edition of at&t System V, UNIX for x86 was finally introduced, so UNIX can finally be installed on a personal computer, but there is a rule: "Source Code cannot be disclosed to students ", professor tanebaum has compiled a Unix-compatible minix operating system for x86 without looking at the Unix source code;
Because minix is only used for teaching, it is not powerful. Therefore, Torvalds uses GNU Bash as the development environment and GCC as the compilation tool to compile the Linux kernel-v0.02, however, at first Linux is not compatible with Unix, that is, applications running on UNIX cannot run on Linux, that is, the interfaces between applications and the kernel are inconsistent, because UNIX complies with POSIX specifications, Torvalds modifies Linux and complies with POSIX (Portable Operating System
Interface, which standardizes the interface specifications of the application and the kernel );
At first, Linux was only applicable to 386. Later, with the help of netizens all over the world, Linux was compatible with multiple types of hardware;
4. Linux kernel version
Command: Uname-R
3.2.0-23
Main version. Minor version. Release Version-Modify version
Linux Kernel versions are classified into stable and development versions;
If this version is an even number, it is a stable version. If it is an odd number, it is a development version, which is used by kernel developers;
Releasing a version is a change to the next version, that is, adding some features;
The number of times the version is compiled. Add one at a time;
Ii. Linux history
In 1960s, MIT developed the compatible time-sharing system, which allows 30 terminals to access hosts;
~ The host is responsible for calculation, while the terminal is responsible for input and output;
In 1965, Bell Labs, MIT, and Ge (General Electric) were preparing to develop the multics system. To support 300 terminals to access hosts at the same time, they failed in 1969;
~ At the beginning, there was no mouse or keyboard, and the input device only had a card machine. Therefore, if you want to test a program, you need to insert the read card into the card machine. If there is an error, You need to repeat it;
~ Multics: multiplexed information and computing service
In 1969, Ken Thompson developed the File Server System (UNICs, a Unix prototype) using the assembly language)
~ Because assembly languages are dependent on hardware, they can only be used for specific hardware;
~ Just to transplant a space tourism game;
In 1973, Dennis Ritchie and Ken Thompson invented the C language and then wrote the Unix kernel.
~ The C language is changed to the C language, resulting in the father of the C language;
~ 90% of the Code is written in C language, and 10% of the Code is written in sink. Therefore, you only need to modify the 10% code During porting;
In 1977, Bill Joy of the University of Berkeley modified the Unix source code for his machine, known as BSD (Berkeley Software Distribution)
~ Bill Joy is the founder of sun;
In 1979, Unix released System V for personal computers;
In 1984, due to Unix rules: "The Source Code cannot be provided to students", Tanenbaum wrote Unix-compatible minix for teaching;
In 1984, Stallman started the GNU (GNU's not UNIX) project and founded the FSF (Free Software Foundation) Foundation;
~ Products: GCC, emacs, bash shell, glibc;
~ Advocate "Free Software ";
~ GNU software lacks an open platform and can only run on UNIX;
~ Free Software means that the user can make any modification to the software or even release it again, but the GPL copyright is always required;
~ Free software can be sold, but not software, but services and manuals;
In 1985, a General Public License (GPL) was created to prevent free software developed by GNU from being used as patented by others;
In 1988, MIT established the xfree86 organization to develop the GUI;
In 1991, Linus Torvalds, a graduate student at Helsinki University in Finland, developed the lniux kernel for 386 machines based on GCC and bash;
Torvalds released Linux-v1.0 in 1994;
In 1996, Torvalds released Linux-v2.0, identified the Linux mascot: Penguin;
Iii. Important Linux characters
1. Ken Thompson: Father of C language and father of UNIX
2. Dennis Ritchie: Father of C language and father of UNIX;
3. Stallman: famous hacker, founder of GNU, developed Emacs, GCC, and bash shell;
4. Bill Joy: BSD developer;
5. Tanenbaum: minix developer;
6. Linus Torvalds: Father of Linux, University of Helsinki, Finland;
TIPS: Basic Terms
(1) Linux distribution
Linux distribution: An installable system consisting of kernel + softwares + tools; Ubuntu, fedora, Suse, and RedHat are all Linux distribution;
Linux distribution is divided into RPM package and dpkg installation Based on the software installation method;
Linux distribution is divided into the team version (applicable to personal computers) and the commercial version (applicable to servers) according to the released version );
(2) UNIX like
It is similar to a UNIX operating system;
(3) Authorization Mode
1. Open Source: Open Source Code;
2. Close Source: no source code;
Freeware: free but not open-source;
Ware: free trial at the beginning, and charges will be collected after a period of time;
(4) POSIX specifications
POSIX is the specification for interfaces between applications and system calls;
(5) SELinux
Security Enhanced Linux: Developed by the US National Security Agency to control access to Linux system files;
(6) kdump Function
When an error occurs in the kernel, messages in memory at that time are written to the file for Kernel developers to view;