小林图解系统-三、操作系统结构

news2025/1/17 6:15:54

Linux 内核 vs Windows 内核

内核

作为应用连接硬件设备的桥梁,保证应用程序只需要关心与内核交互,不需要关心硬件的细节

内核具备四个基本能力:

  • 管理进程、线程,决定哪个进程、线程使用CPU,也就是进程调度的能力;
  • 管理内存,决定内存的分配和回收,内存管理能力
  • 管理硬件设备,为进程与硬件设备之间提供通信能力,硬件通信能力
  • 提供系统调用,如果应用程序要运行更高权限运行的服务,就需要有系统调用,是用户程序和系统操作之间的接口

内核怎么工作的?

内核可以控制cpu、内存、硬盘等硬件,而应用程序具有的权限小,因此大多数操作系统,把内存分成了两个区域:

  • 内核空间,这个内存空间只有内核程序可以访问;
  • 用户空间,这个内存空间专门给应用程序使用

用户空间的代码只能访问一个局部的内存空间,而内核空间的代码可以访问所有的内存空间。因为此,当程序使用用户空间时,我们常说该程序在用户态执行,而当程序使用内核空间时,程序在内核态执行。

应用程序如果需要进入内核空间,就需要通过系统调用:

内核程序执行在内核态,用户程序执行在用户态。当应用程序使用系统调用时,会产生一个中断。发生中断后,CPU会中断当前在执行的用户程序,转而跳转到中断处理程序,也就是开始执行内核程序。内核处理完后,主动出发中断,把CPU执行权限交回给用户程序,回到用户态继续工作。


Linux的设计

  • MultiTask,多任务
  • SMP对称多处理
  • ELF,可执行文件链接格式
  • Monolithic Kernel,宏内核

MultiTask

多任务,Linux是一个多任务的操作系统。

[同时]:并发或并行

对于单核CPU,可以让每个任务执行一小段时间,时间到了就切换另一个任务,从宏观角度看,一段时间内执行了多个任务,称为并发。

对于多核CPU时,多个任务可以同时被不同核心的CPU用时执行,这被称为并行。

SMP

SMP的意思是对称多处理,代表每个CPU的地位是相等的,对资源的使用权限也是相同的,多个CPU共享同一个内存,每个CPU都可以访问完整的内存和硬件资源。

决定了Linux操作系统不会有某个CPU单独服务应用程序或内核程序,而是每个程序都可以被分配到任意一个CPU上执行。

ELF

可执行文件链接格式,是Linux操作系统重可执行文件的存储格式

ELF把文件分成了一个个分段。

ELF文件有两种索引,Program header table中记录了[运行时]所需的段,而Section header table记录了二进制文件中各个[段的首地址]

ELF文件怎么生成的呢?

编写的代码,首先通过[编译器]编译成汇编代码,接着通过[汇编器]变成目标代码,也就是目标文件,最后通过[链接器]把多个目标文件以及调用的各种函数库连接起来,形成一个可执行文件,也就是ELF文件。

ELF怎么执行

通过[装载器]把ELF文件装载到内存里,CPU读取内存中的指令和数据,于是程序就被执行起来了。

Monolithic Kernel

宏内核,Linux内核架构就是宏内核,Linux的内核是一个完整的可执行程序,且拥有最高的权限

宏内核的特征是系统内核的所有模块,比如进程调度、内存管理、文件系统、设备驱动等,都运行在内核。

Linux也实现了动态加载内核模块的功能,例如大部分设备驱动是以可加载模块的形式存在的,与内核其他模块解耦,让驱动开发和驱动加载更为方便灵活。

宏内核相反的是微内核,微内核只保留基本的能力。如进程调度、虚拟机内存、中断等,把一些应用放到了用户空间,驱动程序、文件系统。这样服务之间是隔离的,出现故障也不会挂掉整个系统,提高稳定性和操作性。

微内核内核功能少,可移植性高,由于驱动程序不在内核,驱动程序会频繁调用底层能力,驱动和硬件设备交互就需要频繁切换到内核态,会带来损耗,华为的鸿蒙操作系统的内核架构就是微内核。

混合类型内核,像微内核,内核里面会有一个最小版本的内核,其他模块在这个基础上搭建,实现的时候会跟宏内核类似,也就是把整个内核做成一个完成的程序,大部分服务都在内核中,像是宏内核包裹着一个微内核。


Windows设计

Windows NT,全称:New Technology

支持MultiTask和SMP,但是,Windows的内核设计是混合型内核,MicroKernel模块就是最小版本的内核

可执行文件的格式不同,所以和Linux不能相互运行。

Windows的可执行文件叫PE,称为可移植执行文件,扩展名通常是.exe/.dll/.sys等


总结

内核架构三种类型

宏内核,包含多个模块,整个内核像一个完整的程序;

微内核,有一个最小版本的内核,一个模块和服务则由用户动态管理

混合内核,宏内核和微内核的结合体,内核中抽象除了微内核的概念,也就是内核中会有一个小型的内核,其他模块在这个基础上搭建,整个内核是个完整的程序。

Linux的内核设计是采用了宏内核,Windows的内核设计则是采用了混合内核

Linux可执行文件格式叫做ELF,Window可执行文件格式叫做PE

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1844625.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ArcGIS查找相同图斑、删除重复图斑

​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 这次是上次 今天分享一下,很重要却被大家忽略的两个工具 这两个工具不仅可以找出属性…

【总线】AXI4第二课时:深入AXI4总线的基础事务

大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁…

PHP转Go系列 | 条件循环的使用姿势

大家好,我是码农先森。 条件 在 PHP 语言中条件控制语句,主要有 if、elseif、else 和 switch 语句 // if、elseif、else 语句 $word "a"; if ($word "a") {echo "a"; } elseif ($word "b") {echo "b&…

【论文笔记】LoRA LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

题目:LoRA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 来源: ICLR 2022 模型名称: LoRA 论文链接: https://arxiv.org/abs/2106.09685 项目链接: https://github.com/microsoft/LoRA 文章目录 摘要引言问题定义现有方法的问题方法将 LORA 应用于 Transformer 实…

无源编缆测尺助力料场实现自动化堆取料作业

随着工业4.0时代的到来,智能化、无人化成为现代工业发展的重要趋势。在港口码头、钢铁冶金、焦化等高耗能行业中,如何实现物料的精准测量与无人化操作,成为企业提高生产效率、降低人工成本的关键。武汉市微深节能科技有限公司凭借其先进的分段…

【面试干货】抽象类与接口的区别

【面试干货】抽象类与接口的区别 💖The Begin💖点点关注,收藏不迷路💖 在Java编程中,抽象类和接口是两个非常重要的概念,它们都为代码的可扩展性和复用性提供了基础。但是,它们之间也有一些明显…

class的流光效果

效果图&#xff1a; 代码示例 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title&g…

React路由笔记(函数组件,自用)

配置 npm i react-router-dom基本使用 目录结构 在src中创建page文件夹放置各页面组件&#xff0c;router中放置路由 1、router中配置路由 在/router/index.js中&#xff0c;使用createBrowserRouter配置路由。 import { createBrowserRouter } from "react-router…

[Python人工智能] 四十六.PyTorch入门 (1)环境搭建、神经网络普及和Torch基础知识

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解合如何利用keras和tensorflow构建基于注意力机制的CNN-BiLSTM-ATT-CRF模型,并实现中文实体识别研究。这篇文章将介绍PyTorch入门知识。前面我们的Python人工智能主要以TensorFlow和Keras为主,…

Flutter第十四弹 抽屉菜单效果

目标&#xff1a; 1.怎么构建抽屉菜单效果&#xff1f; 2.抽屉菜单怎么定制&#xff1f; 一、抽屉菜单 侧滑抽屉菜单效果 1.1 抽屉菜单入口 Flutter 的脚手架Scaffold&#xff0c;默认提供了抽屉菜单效果入口。 主页面采用一个简单的页面&#xff0c;侧滑菜单首先使用一个I…

三星与SK海力士:以混合键合技术引领3D DRAM革新之路

在高速缓存内存&#xff08;HBM&#xff09;领域持续领跑的三星与SK海力士&#xff0c;正以混合键合技术为突破口&#xff0c;开启3D DRAM技术的新纪元。这一战略转型不仅预示着存储技术的深度革新&#xff0c;更体现了两大半导体巨头在提高集成度、优化性能与成本上的不懈追求…

【计算机网络篇】数据链路层(11)在数据链路层扩展以太网

文章目录 &#x1f354;使用网桥在数据链路层扩展以太网&#x1f95a;网桥的主要结构和基本工作原理&#x1f388;网桥的主要结构&#x1f50e;网桥转发帧的例子&#x1f50e;网桥丢弃帧的例子&#x1f50e;网桥转发广播帧的例子 &#x1f95a;透明网桥&#x1f50e;透明网桥的…

图论——代码随想录打卡

1 DFS深度搜索算法 深度优先搜索算法是从一个方向去进行搜索&#xff0c;直到遇到走不下去的终点&#xff0c;再进行回溯更换方向&#xff0c;重新进行搜索。因此有回溯也就意味着存在递归&#xff1a; void dfs(参数&#xff09;{处理节点dfs(图&#xff0c;选择的节点)回溯…

Hi3861 OpenHarmony嵌入式应用入门--0.96寸液晶屏 iic驱动ssd1306

使用iic驱动ssd1306&#xff0c;代码来源hihope\hispark_pegasus\demo\12_ssd1306 本样例提供了一个HarmonyOS IoT硬件接口的SSD1306 OLED屏驱动库&#xff0c;其功能如下&#xff1a; 内置了128*64 bit的内存缓冲区&#xff0c;支持全屏刷新;优化了屏幕刷新速率&#xff0c;…

AI发展核心要素之一(算力)

背景&#xff1a; 当今时代&#xff0c;云计算、人工智能、视频会议、短视频和各种社交媒体等行业蓬勃兴起&#xff0c;而ChatGPT-OpenAI的一次又一次的版本更新和迭代更是将我们带入了AI时代的新纪元。在2023年底的华为全联接大会上&#xff0c;孟晚舟就曾在演讲中表示:“算力…

云计算【第一阶段(17)】账号和权限管理

目录 一、用户账号和组账号概述 1.1、用户账号的三种角色 1.2、组账号的两个角色 二、用户账号文件 2.1、/etc/passwd 2.2、/etc/shadow 2.3、chage 命令 三、组账号文件 3.1、/etc/group 3.2、/etc/gshadow 四、添加组账户 4.1、添加删除组成员 4.2、删除组账号 …

北航数据结构与程序设计查找与排序编程题

查找与排序编程题 单词查找&#xff08;查找——基本题&#xff09;排座位&#xff08;简&#xff09;a 单词查找&#xff08;查找——基本题&#xff09; 【问题描述】 从标准输入中读入一个英文单词及查找方式&#xff0c;在一个给定的英文常用单词字典文件dictionary3000.…

Maven 和 Gradle 构建工具的基本使用

Maven和Gradle是Java生态系统中最常用的构建工具&#xff0c;它们不仅能简化项目的构建过程&#xff0c;还能帮助管理项目依赖、打包、发布等任务。本文将详细介绍如何掌握Maven和Gradle的基本使用&#xff0c;帮助开发者快速上手并应用于实际项目中。 一、Maven 1.1 什么是M…

第三方软件测试机构流程分享,软件检测报告需多少时间和费用?

第三方软件测试机构是区别于软件开发方和需求方的第三者存在&#xff0c;是专门为客户提供全方位软件测试服务的第三方检测机构。测试流程经过精心设计和不断优化&#xff0c;以确保客户的软件品质得到有效保障&#xff0c;那么第三方软件测试机构的基本测试流程具体有哪些呢?…

一套二开版微交易系统 香港十大贵金属交易平台 贵金属交易平台 贵金属交易app下载 微盘交易系统

一套二开前端UI得贵金属微交易系统&#xff0c;前端产品后台可任意更换 此系统框架不是以往的至尊的框架&#xff0c;系统完美运行&#xff0c;K线采用nodejs方式运行 源码使用起来非常流畅&#xff0c;不像至尊卡成翔 源码下载&#xff1a;https://download.csdn.net/downl…