五分钟粗略了解Linux内核

news/2024/10/22 15:31:25/

1 操作系统是什么

  • 用户使用的交互系统

  • Linux操作系统,Window操作系统

2 内核是什么

从技术上来看,内核其实是硬件和软件之间的连接层,我们也可以称之为中间层。

网卡, 磁盘, 内存,寄存器。。。。硬件设备。

运行在操作系统上面的是我们的软件程序。web服务器。

软硬件之间的链接层。

我们还可以从以下几个方面来理解内核

  • 你可以把内核看作一个库,例如read write这些函数,内核提供了许多系统调用,供我们的应用程序使用。

  • 你可以把内核看做一个Manager, 这个Manager管理资源的共享和隔离,例如给每个进程分配多大的资源。

你还可以这么理解内核

  • 内核就是一个大的Linux程序,做了好多它应该做的事情。

3 内核实现的策略

宏内核

内核的所有代码,包括子系统(如内存管理、文件管理、设备驱动程序)都打包到一个文件中。内核中的每一个函数都可以访问到内核中所有其他部分。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的

微内核

最基本的功能由中央内核(微内核)实现。所有其他的功能都委托给一些独立进程,这些进程通过明确定义的通信接口与中心内核通信。

4 内核包含哪些核心的模块

4.1 进程的调度,切换

1 电脑--》你现在可以打开多个应用

本质上是你的后台开了多个进程,这也就意味着你的cpu运行了多个进程。

3个人 干100个任务

是不是需要有一个人来管理这个任务的分配呀?

100个任务还没干完,又来了新的任务

这个新的任务分配给哪个cpu? 是不是也是需要管的呀

不是每个任务都有一样的优先级,那怎么调度保证相对的公平呢?

以上都是内核需要去解决的问题。

4.2 内存管理

每个进程都需要资源,都需要存储和操作数据,所以我们需要一个人来对资源进行分配,

当进程使用完资源之后,我们需要回收资源。

所以我们需要对内存进行管理。

4.3 虚拟内存机制

每个进程都要相互隔离,需要有自己的独立空间,所以需要有一个机制来进行隔离

这个就是我们的虚拟内存机制。

4.4 网络

网卡,接收和发包的地方

当你使用微信的时候,你的第一想法是不是摇一摇,先找下好友哈哈。

内核需要和网络交互。

4.5 设备驱动程序

我们的电脑为什么可以连接usb和手机,是因为我们的内核有设备驱动驱动。

有的时候我们电脑没有声音,可能是因为没有装声音的驱动。

4.6 进程通信机制&锁

进程之间需要相互通信,需要共享资源。

进程之间操作资源的时候,不能相互持有对方的资源而不释放,所以还需要有锁的机制。

4.7 其他模块

  • 时间管理

  • 页面回收

  • 数据同步

    • 很多时候数据是操作的内存的数据,计算机不会频繁的将数据刷到磁盘。但是你必须选择在合适的时候保存到磁盘,不然会发生丢数据的情况。数据的同步就是解决这个问题。

  • 文件系统


http://www.ppmy.cn/news/1047041.html

相关文章

MetaMask Mobile +Chrome DevTools 调试Web3应用教程

注:本教程来源网络,根据项目做的整理 写好了WEB3应用,在本地调试用得好好的,但是用钱包软件访问就报莫名的错,但是又不知道是什么原因,排查的过程非常浪费时间 。 因此在本地同一局域网进行调试就非常有必要…

【数据结构OJ题】合并两个有序链表

原题链接:https://leetcode.cn/problems/merge-two-sorted-lists/description/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 可以先创建一个空链表,然后依次从两个有序链表中选取最小的进行尾插操作。(有点类似双…

【Go语言】go_session(超级详细)

目录 前言附件代码审计Index函数Admin函数Flask函数server.py问题 思路本地搭建环境admin绕过SaveUploadedFile方法payload 总结 前言 国赛初赛有一道题目go session,用go的Gin框架和pongo2模板引擎写的,是关于go的pongo2模板注入和flask的热加载&#…

软考高级系统架构设计师系列之:搭建论文写作的万能模版

软考高级系统架构设计师系列之:搭建论文写作的万能模版 一、选择合适的模版二、论文摘要模版1.论文摘要模版一2.论文摘要模版二3.论文摘要模版三4.论文摘要模版四三、项目背景四、正文写作五、论文结尾六、论文万能模版一、选择合适的模版 选择中、大型商业项目,一般金额在2…

Python Django 模型概述与应用

今天来为大家介绍 Django 框架的模型部分,模型是真实数据的简单明确的描述,它包含了储存的数据所必要的字段和行为,Django 遵循 DRY Principle 。它的目标是你只需要定义数据模型,然后其它的杂七杂八代码你都不用关心,…

docker搭建es+kibana

docker搭建eskibana 0 安装docker 如果是mac或者windows,可以直接安装Docker Desktop更加便捷。 前提条件: Docker可以运行在Windows、Mac、CentOS、Ubuntu等操作系统上 Docker支持以下的CentOS版本: CentOS 7 (64-bit)CentOS 6.5 (64-bit…

6.redis面试题和坑

1.哨兵模式 多少个节点多少个哨兵(如果全部哨兵检测到已经master dead,重新选举)写sentinel.conf,监控的主机 票数 sentinel monitor myredis 127.0.0.1 6379 1启动哨兵 redis-sentinel sentinel.conf关闭主机 failover sdown info replication shutdown优点 1.基于主从复制模式…

【Linux】传输层协议:UDP和TCP

争做西格玛男人 文章目录 一、UDP协议1.端口号2.理解UDP报头3.UDP的特点(面向数据报,全双工) 二、TCP协议1.理解TCP报头某些TCP的策略1.1 TCP报头字段(TCP的黏包问题)1.2 网络协议栈和linux系统的联系(以p…