
一、Linux是什么Linux 是一套免费、开源的类 Unix 操作系统由芬兰人林纳斯·托瓦兹Linus Torvalds于1991 年首次发布。二、操作系统操作系统管理计算机底层硬件的和软件资源的系统软件处理在硬件和上层应用中间向下管理CPU内存、磁盘这些硬件向上给应用程序提供服务接口核心作用管理硬件资源抽象硬件支持并发执行做安全隔离三、内核操作系统的核心内核内核是一段软件程序不是硬件它跑在CPU之上是操作系统的核心内核的工作就是管理CPU,内存磁盘硬盘网卡这些硬件给上层应用提供服务系统调用内核的几种架构1.宏内核单内核Linux就是宏内核。进程管理内存管理文件系统网络全部跑在内核态。优点调用速度快缺点某一块内核代码出错整个系统容易崩溃2.微内核只保留最基础的进程通信、调度在内核态文件系统、网络这些模块都跑在用户态。优点模块隔离一个模块崩溃并不影响整体缺点模块之间通信开销极大速度慢3.混合内核不是宏内核和微内核简单拼在一起。低沉郭家沟记住微内核思路将核心最基础的功能放在内核态但是像是设备驱动文件系统、网络协议栈这些模块依然运行在内核态不在用户态。四、CPU计算机中最重要的硬件CPUCPU是中央处理器硬件是计算机里面负责执行指令作运算的硬件芯片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没有CD盘的概念只有一个根目录/目录结构是树形结构所有的硬盘U盘都挂载到根目录下的某个文件夹。一切皆文件。Windows分盘符C盘D盘。文件系统NTFS。4.用户权限机制Linux严格的多用户权限模型文件有读、写、执行权限。日常操作不适用最高权限root降低风险。Windows早期权限管控弱新版有UAC用户控制。习惯用管理员账号操作。5.操作方式Linux优先使用命令行Shell图形界面属于可选组件。服务器环境经常不带图形界面Windows以图形化桌面为主命令行只是复制cmd,powershell6.软件安装与生态Linux软件大多通过包管理器apt、yum源码编译安装也很常见软件版本分散不同发行版本软件包不通用游戏办公类桌面软件偏少Windows大多下载exe安装包双击安装桌面软件游戏生态极其丰富7.安全性Linux病毒、木马想读较少。一方面用户基数小林一方面权限模型严格Windos个人用户基数大病毒、恶意软件更多需要杀毒软件防护Linux是开源宏内核系统目录以根/起始适合服务器开发命令优先权限管控严格Window时闭源混合内核分盘符桌面生态强面向普通个人用户