01 minimalist Linux operating system development history

The birth of the Unix operating system

Prior to 1965 when the computer is not as common as they are now, it is not generally able to touch the play, unless it is a military academy or research institutions, and even then the mainframe can provide up to 30 terminals (30 keyboard, monitor) connecting a computer.

In order to solve the problem [of] the number is not enough

In 1965 the left rear of Bell Labs joined the Massachusetts Institute of Technology and General Electric cooperation plan - the plan to establish a multi-user (Multi-the User) , multitasking (Multi-Processor) , multi-level (multi- level) of MULTICS operating system, want to mainframe support 300 terminals.

After 1969 years ago, the slow progress of the project, a shortage of funds, Bell Labs withdrew from the study.

1969 exit from this project Ken Thompson was bored in the laboratory, in order to allow to run "Star Trek (Space Travel)" game on a spare computer, in August or taking advantage of the time to visit his wife, with the one month's time , use assembly to write a prototype of the Unix operating system.

In 1970, Bell Labs Ken Thompson , with BCPL language based design is very simple and very close to the hardware of the B language (taking the first letter of the BCPL), and he used the B language wrote the first UNIX operating system.

In 1971, the same love of "Star Trek (Space Travel)" The Dennis M.Ritchie order to be able to play the game early child, joined Thompson 's development projects, develop UNIX, his main job is to transform the B language , because language B of cross-platform poor

In 1972, Dennis M. Ritchie in B language based on the final design of a new language, he took BCPL second letter as the name of the language, this is the C language.

In early 1973, C language subject is completed, Thompson and Ritchie could not wait to start using it completely rewritten and now famous Unix operating system.

 

 Ken Thompson (left) and Dennis Ritchie (right)

 

The birth of the C language

When the UNIX ported to other types of computers, powerful C portability (Portability) in this show.

Machine language and assembly language is not very portable, for the x86 development program, it is impossible to run on Alpha, SPARC, and ARM and other machines

The C language program can be used on any processor architecture, as long as the processor architecture that has a corresponding C language compiler and libraries to run after the C source code is then compiled, linked to a target binary

 

Minix's birth

Because AT & T (GE) of the policy change after the introduction of Version 7 Unix, released a new Terms of Use, the privatization of UNIX source code, can no longer use the UNIX source code to universities

Andrew S. Tanenbaum (Tanenbaum) Prof. order to Prof. details student operating system works in the classroom , decided not to use any AT & T source code under the premise of self-developed UNIX-compatible operating system, in order to avoid the copyright dispute

With small UNIX (mini-UNIX) meaning, it called MINIX

 

Unix family of operating systems evolutionary history

 

 

Linux was born

In 1991 Linus (Linus) While studying at the University of Helsinki, a keen interest in Unix, try to do some development work on the Minix

因为 Minix 只是教学使用,因此功能并不强,林纳斯 经常要用他的终端 仿真器(Terminal Emulator) 去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了 Linux 第一个内核的雏形,当时,他年仅 21 岁。

林纳斯·本纳第克特·托瓦兹

它利用 GNU 的 bash 当做开发环境,gcc 当做编译工具,编写了 Linux 内核,一开始 Linux 并不能兼容 Unix

----------  即 Unix 上跑的应用程序不能在 Linux 上跑,即应用程序与内核之间的接口不一致

---------- 一开始 Linux 只适用于 386,后来经过全世界的网友的帮助,最终能够兼容多种硬件

 

Linux 内核及发行版

Linux 内核版本

  • 内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层

  • Linux 内核版本又分为

    稳定版和开发版

    两种版本是相互关联,相互循环

    • 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些 bug 或加入一些新的驱动程序

    • 开发版:由于要试验各种解决方案,所以变化很快

  • 内核源码网址:http://www.kernel.org

  • 所有来自全世界的对 Linux 源码的修改最终都会汇总到这个网站,由 Linus 领导的开源社区对其进行甄别和修改最终决定是否进入到 Linux 主线内核源码

Linux 发行版本

Linux 发行版(也被叫做 GNU/Linux 发行版)通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件

 

常见的发行版本如下:

  • Ubuntu

  • Tails

  • Elementary OS

  • Redhat

  • Fedora

  • openSUSE

  • Linux Mint

  • Debian

  • Manjaro

  • Mageia

  • CentOS

  • Arch

十大 Linux 服务器发行版排行榜:https://www.10besty.com/best-linux-distros/

Linux 的应用领域

服务器领域

  • Linux 在服务器领域的应用是其重要分支

  • Linux 免费、稳定、高效等特点在这里得到了很好的体现

    • 早期因为维护、运行等原因同样受到了很大的限制

    • 近些年来 Linux 服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛

嵌入式领域

  • 近些年来 Linux 在嵌入式领域的应用得到了飞速的提高

  • Linux 运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百 KB 等特点,使其近些年来在嵌入式领域的应用得到非常大的提高

  • 主要应用:机顶盒数字电视网络电话程控交换机手机PDA手表、眼镜等都是其应用领域,得到了 Google、三星、摩托罗拉、NEC 等公司的大力推广

个人桌面领域

  • 此领域是传统 Linux 应用最薄弱的环节

  • 传统 Linux 由于界面简单、操作复杂、应用软件少的缺点,一直被 Windows 所压制

  • 近些年来随着 UbuntuFedora 等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,Linux 在个人桌面领域的占有率在逐渐的提高

Linux 和 Window

单用户操作系统和多用户操作系统

  • 单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源

    • Windows XP 之前的版本都是单用户操作系统

  • 多用户操作系统:指一台计算机在同一时间可以由 多个用户 使用,多个用户共同享用系统的全部硬件和软件资源

    • UnixLinux 的设计初衷就是多用户操作系统

WindowsLinux 文件系统区别

Windows的文件系统

Windows 下,打开 “计算机”,我们看到的是一个个的驱动器盘符:

 

每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示

Linux 下的文件系统

Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录)

 

Ubuntu 没有盘符这个概念,只有一个根目录 /,所有文件都在它下面

 

 什么叫做用户目录

Window系统的用户目录

在cmd下输入echo %USERPROFILE%可以查看当前系统用户目录

这边列举一些其他常用的获取系统路径的:

%WINDIR%                 {系统目录 - C:\WINDOWS}

%SYSTEMROOT%             {系统目录 - C:\WINDOWS}

%SYSTEMDRIVE%            {系统根目录 - C:}

%HOMEDRIVE%              {当前用户根目录 - C:}

%USERPROFILE%            {当前用户目录 - C:\Documents and Settings\wy}

%HOMEPATH%               {当前用户路径 - \Documents and Settings\wy}

%TMP%                    {当前用户临时文件夹 - C:\DOCUME~1\wy\LOCALS~1\Temp}

%TEMP%                   {当前用户临时文件夹 - C:\DOCUME~1\wy\LOCALS~1\Temp}

%APPDATA%                {当前用户数据文件夹 - C:\Documents and Settings\wy\Application Data}

%PROGRAMFILES%           {程序默认安装目录 - C:\Program Files}

%COMMONPROGRAMFILES%     {文件通用目录 - C:\Program Files\Common Files}

%USERNAME%               {当前用户名 - wy}

%ALLUSERSPROFILE%        {所有用户文件目录 - C:\Documents and Settings\All Users}

%OS%                     {操作系统名 - Windows_NT}

%COMPUTERNAME%           {计算机名 - IBM-B63851E95C9}

%NUMBER_OF_PROCESSORS%   {处理器个数 - 1}

%PROCESSOR_ARCHITECTURE% {处理器芯片架构 - x86}

%PROCESSOR_LEVEL%        {处理器型号 - 6}

%PROCESSOR_REVISION%     {处理器修订号 - 0905}

%USERDOMAIN%             {包含用户帐号的域 - IBM-B63851E95C9}

%PATH%    {搜索路径}

Linux系统的用户目录

位于 /home目录下,称之为用户工作目录或家目录,表示方式:

cd  /home/user
cd  ~

 

Guess you like

Origin www.cnblogs.com/zhaochengf/p/12127961.html