一、Linux是什么?

Linux 是一套免费、开源的类 Unix 操作系统,由芬兰人林纳斯·托瓦兹(Linus Torvalds)1991 年首次发布。

二、操作系统

操作系统:管理计算机底层硬件的和软件资源的系统软件

处理在硬件和上层应用中间,向下管理CPU,内存、磁盘这些硬件,向上给应用程序提供服务接口

核心作用:

管理硬件资源,抽象硬件,支持并发执行,做安全隔离

三、内核

操作系统的核心:内核

内核是一段软件程序,不是硬件,它跑在CPU之上,是操作系统的核心

内核的工作就是管理CPU,内存,磁盘,硬盘,网卡这些硬件,给上层应用提供服务(系统调用)

内核的几种架构:

1.宏内核(单内核):Linux就是宏内核。进程管理,内存管理,文件系统,网络全部跑在内核态。

优点:调用速度快

缺点:某一块内核代码出错,整个系统容易崩溃

2.微内核:只保留最基础的进程通信、调度在内核态,文件系统、网络这些模块都跑在用户态。

优点:模块隔离,一个模块崩溃并不影响整体

缺点:模块之间通信开销极大,速度慢

3.混合内核:不是宏内核和微内核简单拼在一起。低沉郭家沟记住微内核思路,将核心最基础的功能放在内核态,但是像是设备驱动,文件系统、网络协议栈这些模块,依然运行在内核态,不在用户态。

四、CPU

计算机中最重要的硬件:CPU

CPU:是中央处理器,硬件,是计算机里面负责执行指令,作运算的硬件芯片


CPU不同运行权限级别:(重点)

1.内核态:最高权限,能够直接访问全部的物理内存,所有的硬件资源

2.用户态:普通权限,只能访问进程自己的用户空间,不能直接操作硬件

注:CPU硬件提供了权限隔离能力,内核利用这个能力保护系统


用户态到内核态的三种触发条件:

1.系统调用:应用程序主动请求内核服务(最常用)

2.中断:硬件设备主动触发,比如网卡收到数据包

3.异常:程序运行出错,比如除零,缺页异常

CPU与用户态,内核态之间的关系:

当CPU处于内核态运行的时候,CPU正在执行的是内核代码,比如处理中断,进程调度

当CPU处于用户态运行的时候,CPU运行的是应用程序代码,比如某个C程序

应用程序想操做硬件,申请内存,必须发起系统调用,让CPU进入从用户态进入内核态,有内核态帮他完成操做,完成之后CPU切换回用户态继续跑应用代码

单核CPU与多核CPU之间的区别:

单核CPU:是说能够执行指令过运算的CPU核心只有一个,也就是说同一时刻之你呢个执行一条指令流。

(此时如果要让多个程序并行,只能通过操作系统的时间片轮转法,加上快速切换,这样就能够呈现出宏观上看起来是两个程序在同一时间内同时执行,但是微观上,某一个时刻内只有一天执行流在执行,但是这种做法上下文切换开销极大)

多核CPU:是说一块芯片内部,有多个完整独立的CPU,可以独立执行指令

(多核CPU能够实现真正的并行,多个核心在同一时刻,可以运行多条执行流,不是淡出的快速切换,不会有上下文切换带来的开销)


在这里需要搞清楚并发与并行的概念:

1.并发:一个核心快速切换,宏观同时跑,微观上是串行的(单核)

2.并行:在同一时刻,有多个不同的执行流同时执行(多核)

注:Linux支持SMP(堆成多处理),内核回做进程/线程的负载均衡,把任务分配到各个CPU核心上去,防止有些CPU核心满载,有些CPU核心过于空闲

五、Linux与Windows的区别

1.内核上:

Linux宏内核,开源,内核代码完全公开,可以自由阅读、修改、分发。采用GPL协议。

Windows:混合内核,闭源。

2.使用定位:

Linux:多用于服务器、嵌入式、开发环境。稳定,长时间运行不容易蓝屏奔溃,桌面占有率低。

Windows:面向个人PC,桌面生态强,软件、游戏丰富。服务器版本也有,但是Linux的服务器更多

3.文件系统与目录结构:

Linux:没有C,D盘的概念,只有一个根目录/,目录结构是树形结构,所有的硬盘,U盘都挂载到根目录下的某个文件夹。一切皆文件。

Windows:分盘符,C盘,D盘。文件系统NTFS。

4.用户权限机制:

Linux:严格的多用户权限模型,文件有读、写、执行权限。日常操作不适用最高权限root,降低风险。

Windows:早期权限管控弱,新版有UAC用户控制。习惯用管理员账号操作。

5.操作方式:

Linux:优先使用命令行Shell;图形界面属于可选组件。服务器环境经常不带图形界面

Windows:以图形化桌面为主,命令行只是复制(cmd,powershell)

6.软件安装与生态

Linux:软件大多通过包管理器(apt、yum),源码编译安装也很常见,软件版本分散,不同发行版本软件包不通用,游戏办公类桌面软件偏少

Windows:大多下载exe安装包,双击安装,桌面软件,游戏生态极其丰富

7.安全性:

Linux:病毒、木马想读较少。一方面用户基数小,林一方面权限模型严格

Windos:个人用户基数大,病毒、恶意软件更多,需要杀毒软件防护

Linux是开源宏内核系统,目录以根/起始,适合服务器开发,命令优先,权限管控严格;Window时闭源混合内核,分盘符,桌面生态强,面向普通个人用户

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐