Linux操作系统概要认识

01)发展与演变

 从ENIARC到Linux,前发展时期从20世纪40年代至20世纪90年代。
 Linux出现后的后发展时期,从1992年往后。
 认识到GUN/Linux才是操作系统的名称。
 更多的就不做介绍了。

02)操作系统开发模式

 大型软件开发模式:大教堂式、集市模式
 Linux开发模式:集市模式
 Windows开发模式:大教堂式

03)操作系统的组成

 狭义的操作系统:内核
 广义操作系统:内核+应用程序

04)操作系统(内核)功能

 1、驱动程序
 2、进程管理
 3、安全管理
 4、网络管理
 5、内存管理
 6、文件系统
 …

05)系统调用接口(Syscall)

 操作系统内核全盘接管计算机硬件,用户通过内核功能使用到计算机硬件,内核向上提供系统调用接口(API)为用户提供使用方式。
 调用接口的模式还有利于抹平下层的复杂性,为上次提供统一的调用方法,例如不同公司生产的磁盘、CPU,其规格和使用方式不同,通过专门的驱动程序实现与硬件的匹配,但向上提供相同的调用接口,这样上层软件就可以不用管下层硬件。
 注:系统调用接口不是给使用者(人)使用的,是给程序使用的

06)库接口(Libcall)

 将系统调用进一步封装,以及将一些常用函数进一步封装,为程序提供更便捷的调用,便形成库。
 有通用的库,例如glibc,已成为Linux操作系统标准,操作系统自带。也有用户自己的私有库,需要用户自己添加。
 注:库也是程序使用的接口

*)关于程序的接口、库的认识

  在编写程序时,可以使用库接口,也可以使用系统调用接口。
库、系统接口是代码片段,编程时就是将这些代码片段复制一份组合出一个新的程序,在程序运行时,不是跳到库所在的地方执行库,而是直接运行程序里面库的代码。库和系统调用的地位就是资料集的作用,程序本身是一个完整的代码体。
  另外,编程也可以使用用户库,用户库不是系统的一部分,由用户自己产生
  从编程的角度看接口:API-》代码接口 统一标准-》POISX 当使用的是同一套标准接口,平台切换,编译后能给运行
    编译后-》
  从运行的角度看接口:ABI-》二进制接口 不同的运行平台,编译后的系统应用程序并不能跨平台运行

07)操作系统接口

  接口程序就在内核外层。接口程序的功能就是给用户一个程序能够使用内核,使用内核不是针对内核进行修改,而是使用内核功能:用户-》接口程序-》内核
 接口程序在本质上与其他程序平行,但在功能上更基础
 注:操作系统接口是给人使用的接口
 两种操作系统接口:
 GUI: Graphic User Interface
   GNome: C, gtk
   KDE: c++; qt
 CLI:Command L ine Interface
   bash
   zsh
   sh
   csh
   tcsh
   ksh

08)应用程序

 为解决某一特定问题而实现的程序
 当通过接口程序进入其他程序使用计算机时,其目的时进行特定运算:用户-》应用程序-》内核

09)Linux内核

 Linux内核官网:www. kernel. org
 版本号:major. minor. release
 例如:5.4.10

10)Linux发行版

 Linux内核/GUN程序的开源发行都是发行的源码,包括gcc、glibc等。
 要从源码编译成为可使用的Linux操作系统,是非常难的事情,所以便有人按照自己对操作系统的理解将Linux内核和部分GUN程序打包编译成二进制格式,并提供安装程序,他们被称为发行商,他们所产生编译发行的Linux就被称为发行版。
 著名的主流发行版:(缩进表示二次发行)
  Debian(完全由社区发行)
   ubuntu(专注桌面版,但服务器版也逐渐可用)
    mint
   knopix
  Slackware
   S.u.S.E
    OpenSUSE
  RedHat:(在Redhat 9. 0时出现一下两个分支)
   RedHat Enterprise L inux: RHEL(企业版)
    CentOS: Community Enterprise OS(企业版的社区开源版)
   Fedora Core: 6个月(桌面版)
  Gentoo
  ArchLinux
 最后,附一张截至2017年的发行版统计图
Linux操作系统概要认识