What & How & Why

这是本文档旧的修订版!


History of Liunx

Linus Torvalds

Linus Benedict Torvalds: a Finnish software engineer who is the creator and principal developer of the Linux kernel.

Multitasking for x86386

Torvalds created three small programs: one can print “A”, other can print “B”, the third one can switch between the first and second program by some custom logicals. He put all of these three programs into x86386 and run them together; then he got a result like: “ABABABAB…”. That being said, x86386 is able to run multitasking base on the hardware.

Linux 0.02

Reference: Minix
Programming language & Complier: C & GCC
Compatible: Torvalds hope linux could be compatible with Unix so that people who use linux can also run programs that developed on Unix. So he followed POSIX standard to develop the next version of linux.

Linux kernel

After Torvalds published his Linux source code to the Internet, a lot of volunteers participated into developing Linux. Because Linux is a open source OS, volunteer developer could easily build there own functions they need, such as drivers, applications for a kind of device, and so on. Torvalds was response for testing those codes and combine then into the newest version of Linux. Those caused the updates of Liunx is rapid and more and more developers and users took part in developing Liunx. During these progresses, Linux was modularized and became easily to add and remove functions.

Famous testing assistants: Alan Cox, Stephen Tweedie
Websites:kernel.org
Release time for Linux version 1.0(the first formal version): 1994
Symbol: Penguin.

Version format

A formal Liunx release version should be like:

3.10.0-123.el7.x86_64
3.10.0 means main version,123 means sub version,el7 mean release version, and x86_64 means platform.

version format before 3.0

If main & sub version is odd, the version is a build for testing new functions. If main & sub version is even, the version is a stable build.

version format after 3.0

Prepatch: Prepatch or “RC” kernels are mainline kernel pre-releases that are mostly aimed at other kernel developers and Linux enthusiasts. They must be compiled from source and usually contain new features that must be tested before they can be put into a stable release. Prepatch kernels are maintained and released by Linus Torvalds.
Mainline: Mainline tree is maintained by Linus Torvalds. It's the tree where all new features are introduced and where all the exciting new development happens. New mainline kernels are released every 2-3 months.
Stable: After each mainline kernel is released, it is considered “stable.” Any bug fixes for a stable kernel are backported from the mainline tree and applied by a designated stable kernel maintainer. There are usually only a few bugfix kernel releases until next mainline kernel becomes available – unless it is designated a “longterm maintenance kernel.” Stable kernel updates are released on as-needed basis, usually 2-3 a month.
Longterm: There are usually several “longterm maintenance” kernel releases provided for the purposes of backporting bugfixes for older kernel trees. Only important bugfixes are applied to such kernels and they don't usually see very frequent releases, especially for older trees.

all above I am talking about is Linux kernel version, not for distribution. Distribution has their own version.

version check in distribution

uname -r

Linux distributions

Linux distributions: kernel + softwares + Tools = install package.



Why distributions: Linux kernel is base on the GPL(GNU's), that means anything include Linux must be a free software. So some people earn money from their own distributions by providing customer services.

distributions categories
R/C Software managed by *.RPM Software managed by *. DPKG Other
Commercial RHEL / SuSE Ubuntu
Personal / Communities CentOS / Fedora / OpenSuSE Debian / B2D Gentoo
distribution standards

FHS: File system Hierarchy Standard
LSB: Linux Standard Base