1 计算机系统

一.计算机系统

1.冯诺依曼体系结构

(1)二进制和十进制单位
2^0=1=1b
2^1=2=10b
2^3=8=1000b
2^4=16=10000b
2^5=32=100000b
2^6=64=1000000b
2^7=128=10000000b
2^8=256=100000000b
2^9=512=1000000000b
2^10=1024=10000000000b
2^11=2048=100000000000b
2^12=4096=1000000000000b
(2)常见单位
10的36次方 X
10的33次方 C
10的30次方 D
10的27次方 N
10的24次方 B
10的21次方 Y
10的18次方 E
10的15次方 P
10的12次方 T 二进制 2^40 1024G
10的 9次方 G 二进制 2^30 1024M
10的 6次方 M 二进制 2^20 1024K
10的 3次方 K 二进制 2^10=1024
10的 2次方 百
10的 1次方 十
10的-1次方 分 d
10的-2次方 厘 c
10的-3次方 m 毫
10的-6次方 μ 微
10的-9次方 n 纳
10的-12次方 p
10的-15次方 f
10的-18次方 a
# 十进制和二进制互相转换
[root@centos7 ~]#bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2*3
6
obase=2
168
10101000
quit
[root@centos7 ~]#bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
ibase=2
1010
10
# 进制转换
# obase 输入进制, ibase 输出进制
#十进制转二进制:echo "obase=2;255" | bc
#八进制转十进制:echo "obase=10;ibase=8;377" | bc
#二进制转十进制:echo "obase=10;ibase=2;11111111" | bc
#二进制转16进制:echo "obase=16;ibase=2;11111111" | bc
[root@centos8 ~]#echo "obase=2;255" | bc
11111111
[root@centos8 ~]#echo "obase=10;ibase=8;377" | bc
255
[root@centos8 ~]#echo "obase=10;ibase=2;11111111" | bc
255
[root@centos8 ~]#echo "obase=16;ibase=2;11111111" | bc
FF
#注意前后顺序
[root@centos8 ~]#echo "ibase=2;obase=16;11111111" | bc
100110

# 确定当前系统是32位或64位
[root@centos8 ~]#getconf LONG_BIT
64
[root@rhel5 ~]# getconf LONG_BIT
32
root@ubuntu2004:~# arch
x86_64
[root@rhel5 ~]# arch
i686
(3)摩尔定律

由英特尔(Intel)创始人之一戈登·摩尔于1965年提出,当价格不变时,集成电路上可容纳的元器件的
数目,约每隔18-24个月便会增加一倍,性能也将提升一倍

image-20211123093839967

2.操作系统功能

OS: Operation System 操作系统,通用目的的软件程序

(1)操作系统功能:
  • 硬件驱动
  • 进程管理
  • 内存管理
  • 网络管理
  • 安全管理
  • 文件管理
(2)操作系统分类:
  • 服务器OS:Centos,Ubuntu,windows server,AIX
  • 桌面OS:windows,macOS,Fedora
  • 移动设备OS:Andriod,IOS,Alios,HarmonyOS

3.操作系统相关概念

(1)接口 interface:

来源于电气工程学科,指的是插座与插头的连接口,起到将电与电器连接起为的功
能。后来延伸到软件工程里指软件包向外提供的功能模块的函数接口。所以接口是用来连接两个东西、
信号转换和屏蔽细节
操作系统通过接口的方式,建立了用户与计算机硬件的沟通方式。用户通过调用操作系统的接口来使用
计算机的各种计算服务。
为操作系统一般会提供两个重要的接口,来满足用户的一些一般性的使用需求:
命令行:实际是一个叫shell的终端程序提供的功能,该程序底层的实质还是调用一些操作系统提
供的函数
窗口界面:通过图形窗口程序接收来自操作系统的消息,比如:鼠标、键盘动作,进而做出一些响

(2)ABI

Application Binary Interface,应用程序二进制接口,ABI描述了应用程序与OS之间的底层接口,允许编
译好的目标代码在使用兼容ABI的系统中无需改动就能运行
运行程序格式:
Windows: PE(portable executable)格式, .dll(dynamic link library),.lib
Linux: ELF(Executable and Linking Format)格式, .so(shared object), .a

(3)API

Application Programming Interface,应用程序开发接口,API定义了源代码和库之间的接口,因此同
样的源代码可以在支持这个API的任何系统中编译
POSIX: Portable Operating System Interface 可移植的操作系统接口
IEEE在操作系统上定义的一系列API标准
POSIX兼容的程序可在其它POSIX操作系统编译执行

(4)用户态和内核态

img

image-20211121135604713

  • 内核态:一种特殊的软件程序,特殊在哪儿呢?控制计算机的硬件资源,例如协调CPU资源,分配内存资源,并且提供稳定的环境供应用程序运行。
  • 用户态:就是提供应用程序运行的空间,为了使应用程序访问到内核管理的资源例如CPU,内存,I/O。内核必须提供一组通用的访问接口,这些接口就叫系统调用。
(4)系统调用system call和函数库 Library function

image-20211121135957477

  • 系统调用:时操作系统的最小功能单位。根据不同的应用场景,不同的Linux发行版本提供的系统调用数量也不尽相同,大致在240-350之间。这些系统调用组成了用户态跟内核态交互的基本接口
  • 库函数:就是屏蔽这些复杂的底层实现细节,减轻程序员的负担,从而更加关注上层的逻辑实现。它对系统调用进行封装,提供简单的基本接口给用户,这样增强了程序的灵活性,当然对于简单的接口,也可以直接使用系统调用访问资源,例如:open(),write(),read()等等。库函数根据不同的标准也有不同的版本,例如:glibc库,posix库等。
(5)用户和内核空间

image-20211121140224240

  • 用户空间:User space
用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃,内核也不受影响
只能执行简单的运算,不能直接调用系统资源,必须通过系统接口( system call),才能向内核发出指令
  • 内核空间:Kernel space
Linux 内核的运行空间可以执行任意命令,调用系统的一切资源
(6)编程语言
  • 低级语言:计算机能理解的语言,二进制

​ 机器语言:0和1
​ 汇编语言:和机器语言一一对应,与硬件相关的特有代码、驱动程序开发

  • 高级语言: java,python,go,php,Objective-C,C#,易语言(中文),应用级程序开发,人类语言实现
    C 语言,系统级应用、驱动程序

4.各种操作系统

(1)操作系统演变
  • 单用户系统:一次只能支持一个用户程序的运行。向用户提供联机交互式的工作环境,如:DOS
  • 批处理系统:用户将一批作业提交给操作系统后就不再交互,由操作系统控制自动运行,提高系统
    运行效率
  • 多道程序系统:程序控制 CPU 处理顺序
  • 分时系统:提高系统利用率,操作系统控制 CPU 处理顺序,多个人共用一台计算机
  • 个人计算机:每人用户对应一个系统,廉价,方便,易用
  • 分布式计算:每个用户对应多个系统,云计算,大数据处理
(2)服务器三大操作系统
  • Windows:
  • Linux:GNU/Linux
  • Unix:1969年 Ken Thompson
    System: Bell Lab
    AIX (IBM)
    Solaris (SUN)
    HP-UX (HP)
    BSD: (BSRG)Berkeley System Distribution
    NetBSD
    OpenBSD
    FreeBSD

二.Linux操作系统

1991年的10月5日Linus Benedict Torvalds在comp.os.minix 新闻组上发布消息,正式向外宣布他自行
编写的完全自由免费的内核诞生(Freeminix-like kernel sources for 386-AT) — FREAX,含义是怪
诞的、怪物、异想天开类Unix的内核,在GPL下发布
官网:www.kernel.org
最早版本: https://mirrors.edge.kernel.org/pub/linux/kernel/Historic/

1.Linux的内核版本组成

  • 主版本号
  • 次版本号
  • 末版本号
  • 打包版本号
  • 厂商版本

image-20211121141915634

2.Linux发行版

  • slackware:SUSE Linux Enterprise Server (SLES) , OpenSuse桌面

  • debian: ubuntu,deepin(深度),mint

  • redhat: RHEL: RedHat Enterprise Linux, 每18个月发行一个新版本

    • CentOS: Community Enterprise Operating System 兼容RHEL的格式
    • 中标麒麟:中标软件
    • Fedora:每6个月发行一个新版本
  • Alpine: 一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl

    libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,只有

    5M左右大小

  • ArchLinux:轻量简洁,遵循K.I.S.S.原则( keep it simple and stupid ),Manjaro

  • Gentoo:极致性能,不提供传统意义的安装程序,下载源代码在本机上编译安装软件

  • LFS:Linux From scratch 自制Linux,只是一个说明书

  • Android:kernel+busybox(工具集)+java虚拟机

Linux 分支参考网站:http://futurist.se/gldt/
Linux发行版排名: https://distrowatch.com/dwres.php?resource=popularity
Linux 发行版体验: https://distrotest.net/

3.RHEL

img

RedHat 红帽公司

红帽发行版本

Red Hat Linux 1.0 (Mother's Day) 1994年11月03日
Red Hat Linux 2.0 1995年09月20日
Red Hat Linux 3.0 (Picasso) 1996年05月01日
Red Hat Linux 4.0 (Colgate) 1996年10月08日
Red Hat Linux 5.0 (Hurricane) 1997年12月01日
Red Hat Linux 6.0 (Hedwig) 1999年04月26日
Red Hat Linux 6.2 (Zoot) Red Hat Linux 6.2E 2000年04月03日
Red Hat Linux 7.0 (Guinness) 2000年03月27日
Red Hat Linux 7.2 (Enigma) Red Hat Enterprise Linux 2 2001年10月22日
Red Hat Linux 8.0 (Psyche) 2002年09月30日
Red Hat Linux 9.0 (Shrike) 2003年03月31日
Red Hat Enterprise Linux 3.0(Taroon) Fedora 1 (Yarrow) 2003年10月22日
Red Hat Enterprise Linux 4.0 2005年02月15日
Red Hat Enterprise Linux 5.0(Tikanga) 2007年03月14日
Red Hat Enterprise Linux 6.0(Santiago) 2010年11月10日
Red Hat Enterprise Linux 7.0(Maipo) 2014年06月10日
Red Hat Enterprise Linux 8.0 2019年05月07日

4.Centos

image-20211121142530935

2004年,Gregory Kurtzer和CentOS的其他创始成员基于开源的RHEL创建了CentOS,将Enterprise
Linux引入了社区。
2014年,红帽宣布正式赞助CentOS。CentOS的几个核心团队入职Red Hat专门负责其开发。并在Red Hat
在理事会中占了三席,但是其社区属性得到保留,交易结果是一部分包括将CentOS商标和IP转移到Red Hat
以安全保存。
CentOS 8于2019年9月交付,紧随RHEL 8之后,CentOS Stream的发布和发布是对下一个次要更新中即将
发布内容预览版本。可以说是RHEL的beta频道。
2019,巨头IBM花重资收购了Red Hat。并承诺Red Hat忠于其开源根基不会改变,声称" Red Hat对开源
的使命和坚定承诺将保持不变。"
2020年12月8日IBM宣布将惯例支持到2029年CentOS 8,提前在2年内就终结,唯一的升级途径是Centos
Stream—AKA,RHEL的Beta发布,并建议不再生产环境中使用。预示着CentOS可能会正式死亡。CentOS已
死,但是CentOS精神将会永存。
随后以CentOS创始人之一Gregory Kurtzer为首,8小时内250人啸聚网络,计划以创建Rocky
Linux(Rocky为已经逝世的另外一个CentOS创始人)取代CentOS。Rocky Linux与RHEL兼容
目前已经创建了Github Rocky Linux项目组织(github.com/rocky-linux/rocky)和官网
(rockylinux.org)。

5.Rocky Linux

image-20211121142715829

2020年12月,CentOS宣布将来CentOS的发展方向将是CentOS Stream,CentOS Stream将成为red hat商业版本的前置测试版,而不再是过去的red hat商业版的开源稳定版(暂且这么叫吧,方便理解)。原定于支持到2029年5月份的CentOS 8将于2021年12月31日寿终正寝。

CentOS 创始人 Gregory Kurtzer 以及社区希望开源能继续造福社会,Gregory Kurtzer就发起了rocky linux项目。Kurtzer 解释起名 “Rocky” 是为了纪念一位曾经与自己一起创立 CentOS 的伙伴 Rocky McGaugh。遗憾的是 Rocky 没能看到 CentOS 所取得的成功,所以 Kurtzer 想以这样的方式来缅怀曾经的战友。

img

rocky linux社区将致力于打造兼容red hat且稳定的linux操作系统(即继续做RHEL的下游构建),延续以往CentOS稳定linux发行版路线,让开发者继续使用到稳定版的“CentOS”。【这让我想到了Mysql的命运,以及MariaDB的出现】

https://rockylinux.org/

三.Linux安装

1.UNIX哲学思想

  • 一切都是一个文件(包括硬件)
  • 小型,单一用途的程序
  • 链接程序,共同完成复杂的任务
  • 避免令人困惑的用户界面
  • 配置数据存储在文本中

2.Linux 生产主流版本

Linux 各种版本

CentOS 各版本介绍

https://zh.wikipedia.org/wiki/CentOS

RHEL各版本介绍

https://zh.wikipedia.org/wiki/Red_Hat_Enterprise_Linux

Ubuntu 各版本介绍

https://zh.wikipedia.org/wiki/Ubuntu

https://blog.csdn.net/songfulu/article/details/85310273

3.各版本安装(详见各版本安装说明)

(1)centos7.9安装

(2)Centos8.3安装

(3)Rocky Linux安装

(4)Ubuntu18.04.5安装

posted @ 2021-11-23 10:11  %华&仔%  阅读(540)  评论(0编辑  收藏  举报