首页 > 其他分享 >操作系统学习笔记(二)——操作系统结构

操作系统学习笔记(二)——操作系统结构

时间:2023-08-27 17:55:26浏览次数:40  
标签:硬件 调用 操作系统 笔记 学习 内核 用户程序 应用程序

一、内核

作为应用和硬件设备之间的桥梁,负责应用程序只与内核交互,不用关心硬件的细节。

4 个基本能力:

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

内核如何工作?

内存分为内核空间、用户空间。

内核空间:只有内核程序可以访问;

用户空间:专门给应用程序使用。

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

用户程序使用系统调用时,会发生中断,CPU会中断用户程序,转而跳到中断处理程序也就开始执行内核程序,内核程序处理完毕后主动触发中断,CPU继续执行用户程序。

 

二、LINUX系统与WINDOWS系统的区别

对于内核的架构一般有这三种类型:

  • 宏内核,包含多个模块,整个内核像一个完整的程序;
  • 微内核,有一个最小版本的内核,一些模块和服务则由用户态管理;
  • 混合内核,是宏内核和微内核的结合体,内核中抽象出了微内核的概念,也就是内核中会有一个小型的内核,其他模块就在这个基础上搭建,整个内核是个完整的程序;

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

这两个操作系统的可执行文件格式也不一样, Linux 可执行文件格式叫作 ELF,Windows 可执行文件格式叫作 PE。

 

标签:硬件,调用,操作系统,笔记,学习,内核,用户程序,应用程序
From: https://www.cnblogs.com/coooookie/p/17660560.html

相关文章

  • 多元回归预测 | Matlab天鹰算法优化深度极限学习机(AO-DELM)回归预测
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • Reminisce.ai - 更快理解新技术的人工智能学习应用
    什么是Reminisce.aiReminisce.ai是一个人工智能驱动的学习应用。它旨在帮助用户以最快的速度理解各种新技术的高层架构,比如React、Django、AWS等。Reminisce.ai非常适合需要经常学习使用新技术的人群,比如程序员、IT从业人员、学生等。它可以大大缩减用户理解新技术所需的时间,......
  • cmake学习方法+CHI独占+ctags编写+C/C++语言原子的序+单核比多核快的C代码
    cmake学习方法主要是cmake这个东西好像有点抽象,而我想要的是完完全全的控制,虽然是花里胡哨的;但是在高手看来,这些东西有点过家家,而不是真正意义上的技术,甚至经常被怼,净是花拳绣腿,不容易阅读,控制效果不好,有时候还有语法错误云云。因此我还是用的Makefile,但是想必cmake是更好的,因......
  • [算法学习笔记][刷题笔记] 单调队列优化 dp
    前置知识·单调队列单调队列顾名思义,一般用于解决滑动RMQ问题。它的原理非常简单。我们维护一个双端队列,这个双端队列只维护可能成为区间最值的元素。最基础的单调队列,例如滑动窗口。直接依据题意维护即可。这里提供单调队列模板(STLdeque版)单调队列模板(STLdeque版)......
  • 操作系统学习笔记(一)——硬件
    一、冯诺依曼模型定义计算机基本结构为5个部分:存储器、运算器、控制器、输入设备、输出设备。运算器和控制器在中央处理器(CPU)里,存储器就是常见的内存,输入输出设备就是计算机外接的设备,比如键盘是输入设备,显示器是输出设备。1、内存 程序和数据存储在内存里,存储数据的基本单......
  • openGauss学习笔记-52 openGauss 高级特性-LLVM
    openGauss学习笔记-52openGauss高级特性-LLVMopenGauss借助LLVM(LowLevelVirtualMachine)提供的库函数,依据查询执行计划树,将原本在执行器阶段才会确定查询实际执行路径的过程提前到执行初始化阶段,从而规避原本查询执行时候伴随的函数调用、逻辑条件分支判断以及大量的数据读取......
  • python+playwright 学习-76 playwright 忽略SSL 错误
    前言playwright设置ignore_https_errors参数忽略SSL错误context上下文中设置browser.new_context()创建上下文时fromplaywright.sync_apiimportsync_playwright,expectwithsync_playwright()asp:browser=p.chromium.launch(headless=False)conte......
  • 多元回归预测 | Matlab 向量加权优化算法优化深度极限学习机(INFO-DELM)回归预测
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进。......
  • 多元回归预测 | Matlab 向量加权优化算法优化深度极限学习机(INFO-DELM)回归预测
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进。......
  • go 进阶训练营 微服务可用性(下)笔记
    降级:减少工作量,丢弃不重要的请求。确定具体采用哪个指标作为流量评估和优雅降级的决定性指标:如CPU、延迟、队列长度、线程数量、错误等当服务进入降级时,需要执行什么动作?流量抛弃或者优雅降级应该在服务的哪一层实现?是否需要在整个服务的每一层都实现,还是可以选择某个高层面......