Linux 系统-基本概要

2025年5月30日 Mr 焦 127

基本概要

Linux Performance Tools

抽象级别和层次

最底层是硬件系统,包括内存和中央处理器(用于计算和从内存中读写数据),此外硬盘和网络接口也是硬件系统的一部分。

硬件系统之上是 内核,它是操作系统的核心。内核是运行在内存中的软件,它向中央处理器发送指令。内核管理硬件系统,是硬件系统和应用程序之间进行通信的接口。

进程 是指计算机中运行的所有程序,由内核统一管理,它们组成了最顶层,称为 用户空间

Linux Level

内核和用户进程之间最主要的区别是:内核在 内核模式(kernel mode)中运行,而用户进程则在 用户模式(user mode)中运行。在内核模式中运行的代码可以不受限地访问中央处理器和内存,这种模式功能强大,但也非常危险,因为内核进程可以轻而易举地使整个系统崩溃。那些只有内核可以访问的空间我们称为 内核空间(kernel space)。

硬件系统

主内存(main memory)或许是所有硬件系统中最为重要的部分。基本上来讲,主内存存储 01 这样的数据。我们将每个 01 称为一个比特(或位,bit)。内核和进程就在主内存中运行,它们就是一系列比特的大合集。所有外围设备的数据输入和输出都通过主内存完成,同样是以一系列 01 的形式。中央处理器像一个操作员一样处理内存中的数据,它从内存读取指令和数据,然后将运算结果写回内存。

内核

Linux 系统的核心是 内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。

内核主要负责管理以下四种功能:

进程管理:内核决定哪个进程可以使用 CPU内存管理:内核管理所有的内存,为进程分配内存,管理进程间的共享内存以及空闲内存设备驱动程序和设备管理:作为硬件系统(如磁盘)和进程之间的接口,内核负责操控硬件设备系统调用和系统支持:进程通常使用系统调用和内核进行通信

系统调用和系统支持

内核还对用户进程提供其他功能。例如,系统调用(system call 或 syscall)为进程执行一些它们不擅长或无法完成的工作。打开、读取和写文件这些操作都涉及系统调用。

forkexec

系统内存管理

操作系统内核的主要功能之一就是内存管理。内核不仅管理服务器上的可用物理内存,还可以创建和管理虚拟内存(即实际并不存在的内存)。

内核通过硬盘上的存储空间来实现虚拟内存,这块区域称为 交换空间(swap space)。内核不断在交换空间和实际的物理内存之间反复交换虚拟内存中的内容。

软件程序管理

Linux 操作系统将运行中的程序称为进程。

内核创建了第一个进程(称为 init 进程)来启动系统上所有其他进程。当内核启动时,它会将 init 进程加载到虚拟内存中。内核在启动任何其他进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。

硬件设备管理

任何 Linux 系统需要与之通信的设备,都需要在内核代码中加入其驱动程序代码。驱动程序代码相当于应用程序和硬件设备的中间人,允许内核与设备之间交换数据。在 Linux 内核中有两种方法用于插入设备驱动代码:

编译进内核的设备驱动代码可插入内核的设备驱动模块
Linux 系统将硬件设备当成特殊的文件,称为设备文件。设备文件有三种分类:

字符型设备文件:指处理数据时每次只能处理一个字符的设备(大多数类型的调制解调器和终端都是作为字符型设备文件创建);块设备文件:指处理数据时每次能处理大块数据的设备,比如硬盘;网络设备文件:指采用数据包发送和接收数据的设备,包括各种网卡和一个特殊的回环设备。这个回环设备允许 Linux 系统使用常见的网络编程协议同自身通信。
Linux 为系统上的每个设备都创建一种称为 节点 的特殊文件。与设备的所有通信都通过设备节点完成。每个节点都有唯一的数值对供 Linux 内核标识它。数值对包括一个主设备号和一个次设备号。类似的设备被划分到同样的主设备号下。次设备号用于标识主设备组下的某个特定设备。

文件系统管理

Linux 内核支持通过不同类型的文件系统从硬盘中读写数据。

Linux 内核采用虚拟文件系统(Virtual File System,VFS)作为和每个文件系统交互的接口。这为 Linux 内核同任何类型文件系统通信提供了一个标准接口。当每个文件系统都被挂载和使用时,VFS 将信息都缓存在内存中。

分类:
标签:
版权属于Mr 焦
本文链接:https://www.mtsws.cn/post-11.html
评论
暂无评论数据
相关推荐
react native 语音转文字
在 React Native 中实现语音转文字(Speech-to-Text)功能,可以通过以下几种方式来实现。以下是详细的实现步骤和说明: 1. 使用 React Native 社区库 React Native 社区提供了许多开源库来处理语音识别功能,其中最常用的是 react-native-voice 和 @react-native-community/...
Mr 焦 1422025年5月30日 react native
浏览器架构
浏览器架构 计算机核心元素 为了了解浏览器运行的环境,我们需要了解几个计算机部件以及它们的作用。 CPU 第一个需要了解的计算机部件是 中央处理器(Central Processing Unit),或简称为 CPU。CPU 可以看作是计算机的大脑。一个 CPU 核心如图中的办公人员,可以逐一解决很多不同任务。它可以在解决从数学到艺术一切任务的同时还知道如何响...
Mr 焦 2432025年5月27日
Linux 系统-常见目录
常见目录 Linux 将整个文件系统看作一棵树,这棵树的树根叫做根文件系统,用 / 表示。 常用的系统文件目录 目录语义描述/rootRoot Directories系统管理员的主目录/home/usernameHome Directories普通用户的主目录/binUser Binaries供所有用户使用的完成 基本维护任务的命令/sbinSystem B...
Mr 焦 2752025年5月30日 Linux
Node.js中Joi的详细用法
Joi 在 Node.js 中的详细用法 Joi 是一个强大的 JavaScript 对象模式验证库,常用于 Node.js 应用中验证和转换数据。下面详细介绍 Joi 的用法。 安装 npm install joi 基本用法 1. 基本验证 const Joi = require( joi ); // 定义 schema const schema = Jo...
Mr 焦 2002025年6月8日
React概述
一、React概述 1.1、前端三大主流框架 Angular.js:出来较早的前端框架,学习曲线比较陡,NG1学起来比较麻烦,NG2 ~ NG5开始,进行了一系列的改革,也提供了组件化开发的概念;从NG2开始,也支持使用TS(TypeScript)进行编程; Vue.js:最火(关注的人比较多)的一门前端框架,它是中国人开发的,对我我们来说,文档要友好一些;...
Mr 焦 1502025年5月27日 react