系统构成与 Shell 核心:从零认识操作系统的心脏与外壳

很多人用电脑、用手机,但很少去想:
操作系统到底是怎么构成的?
为什么我们敲一个命令,系统就能乖乖执行?
这背后的关键,就在于系统的构成Shell 核心这两个概念。


一、系统构成:操作系统的四大组成部分

一个完整的计算机系统,大致由 硬件 + 操作系统 + 应用程序 + 用户 组成。
而操作系统(OS)本身,又有几个核心模块:

1. 内核(Kernel)

  • 操作系统的“心脏”,直接控制硬件。
  • 负责进程管理、内存管理、设备驱动、文件系统、网络通信等。
  • 运行在最高权限(内核态),用户程序不能直接操作它。

类比:

如果计算机是一家工厂,内核就是厂长,负责调度所有机器、分配资源、维持秩序。


2. Shell

  • 用户与操作系统之间的接口。
  • 可以是命令行界面(CLI),比如 Bash、Zsh;
    也可以是图形界面(GUI),比如 Windows 桌面、macOS Finder。
  • 接受用户输入 → 翻译成内核能理解的指令 → 内核执行 → 返回结果。

类比:

Shell 就像“前台接待”,你(用户)对前台说需求,前台转达给厂长(内核)。


3. 文件系统

  • 负责管理数据的存储和读取。
  • 常见格式:ext4(Linux)、NTFS(Windows)、APFS(macOS)。

4. 系统工具与库

  • 工具:cp、ls、ping 等命令
  • 库:C 标准库(glibc)、系统 API
  • 它们是开发者和用户与系统交互的基础设施。

二、Shell 核心:不仅是“命令解释器”

很多人只知道 Shell 是“命令行”,其实它有更深的角色。

1. 命令解释器

Shell 接收你输入的命令(如 ls),解析语法,并调用相应的程序。

2. 脚本执行环境

Shell 不止能交互执行命令,还能运行脚本(Shell Script)。

  • 自动化部署
  • 批量文件处理
  • 系统监控

3. 多种实现

  • Bash(Linux 常用)
  • Zsh(macOS 默认)
  • PowerShell(Windows 高级版)
  • Fish(用户体验友好)

三、内核 vs Shell 的关系

对比项内核(Kernel)Shell
角色系统核心系统外壳
权限内核态(最高)用户态
功能控制硬件、管理资源接收用户指令并传给内核
类比厂长前台接待

四、简单示例:从命令到执行

你在终端输入:

cat hello.txt

执行流程:

  1. Shell 接收 cat hello.txt
  2. Shell 查找 cat 程序的位置(通常在 /bin/cat
  3. Shell 调用内核 API 打开 hello.txt
  4. 内核控制硬件(磁盘)读取文件内容
  5. 结果返回给 Shell → 显示在屏幕

五、总结

  • 系统构成:硬件 + 内核 + Shell + 文件系统 + 工具
  • 内核:系统的心脏,直接掌控硬件
  • Shell:外壳,是人与内核的翻译官
  • 两者密不可分:内核没有 Shell,用户无法操作系统;Shell 没有内核,就成了空壳。

掌握了这两个概念,不仅能看懂命令行背后的逻辑,还能更好地理解操作系统的运行原理。


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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wordpress的wp-config.php文件的详解

wp-config.php 是 WordPress 网站的核心配置文件,它存储了网站运行所需的基本配置信息,如数据库连接信息、安全密钥、调试模式等。以下是关于 wp-config.php 文件的详细解析: 1. 数据库连接信息 这是 wp-config.php 文件中最关键的部分&…

GPT-5 将在周五凌晨1点正式发布,王炸模型将免费使用??

就在今晚凌晨1点,OpenAI 又要搞大新闻了。 是的,就是大家期待已久的 GPT-5 发布会。 虽然官方还没明说,但各种“预热”已经安排得明明白白,Sam Altman 这波营销属实拉满了,发布会都还没开始,相关的代码和页…

MySQL UNION 操作符详细说明

目录 MySQL UNION 操作符详细说明 1. UNION 操作符简介 2. 基本语法 3. 使用规则和限制 4. UNION vs UNION ALL 5. 示例演示 6. 注意事项 MySQL UNION 操作符详细说明 MySQL 中的 UNION 操作符用于合并两个或多个 SELECT 语句的结果集,生成一个单一的结果集。…

Dify 从入门到精通(第 20/100 篇):Dify 的自动化测试与 CI/CD

Dify 从入门到精通(第 20/100 篇):Dify 的自动化测试与 CI/CD Dify 入门到精通系列文章目录 第一篇《Dify 究竟是什么?真能开启低代码 AI 应用开发的未来?》介绍了 Dify 的定位与优势第二篇《Dify 的核心组件&#x…

VSCode ssh一直在Setting up SSH Host xxx: Copying VS Code Server to host with scp等待

原因 大概率是远程服务器的下载有问题 原因1 远程服务器的网络不好 原因2 远程服务器的磁盘满了 我遇到的就是第二种,解决方法也很简单 VSCode ——> Help ——> About 会出现一些信息,例如下面的 Version: 1.97.2 (user setup) Commit: e54c774e0…

Spring Cloud 项目注册 Nacos 时设置真实 IP 的多种方式【多网卡/虚拟机实用指南】

🚀 Spring Cloud 项目注册 Nacos 时设置真实 IP 的多种方式【多网卡/虚拟机实用指南】 前言 在使用 Spring Cloud Alibaba Nacos 注册服务时,常常会遇到 注册 IP 异常 的问题: 本机有多个网卡(如 Docker、VM 虚拟机、VPN&#xf…

单片机裸机程序设计架构

文章目录一、前后台系统(Foreground-Background System)二、时间片轮询架构(Time-Slicing Polling)三、状态机架构(State Machine)四、事件驱动架构(Event-Driven)五、架构设计原则总…

odoo-061 PostgreSQL 中处理 NULL 值的 SQL 条件写法

文章目录1. 检查是否为 NULL2. NULL 值与比较运算符3. 在聚合函数中处理 NULL4. 在 WHERE 子句中的复杂条件注意事项在 PostgreSQL 中处理 NULL 值需要特别注意,因为 NULL 表示"未知"或"不存在"的值,与普通值的行为不同。以下是几种…

Flink CDC 介绍

一、什么是 CDCCDC 是 Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务…

暑期第三周(7.28-8.3)

其实 web [SWPUCTF 2021 新生赛]easy_sql 开启环境后看到一个提示“球球你输入点东西吧!”没有其他信息,就看看源码 直接试试get传参 有所显示 看看是字符型还是数字型 可以判定是字符型 接下来判断闭合类型 根据显示,可以得知是单引…

【物联网】基于树莓派的物联网开发【21】——MQTT获取树莓派传感器数据广播实战

场景介绍 今天程序猫带领大家如何获取树莓派传感器温湿度数据,并用MQTT进行广播。 实现过程 启动MQTT服务 1、终端启动Mosquitto服务 sudo systemctl start mosquitto 2、设置服务开机自动启动 sudo systemctl enable mosquitto硬件连接 树莓派4b连接GPIO引脚与DHT1…

Mysql自定义顺序查询

1、使用函数MySQL 的 ORDER BY FIELD() 函数可以按照指定的自定义顺序对查询结果进行排序,而不是默认的升序(ASC)或降序(DESC)。2、适用场景后端/运营人员经常需要临时把某几条记录‘拽’到最前(或最后&…

回归预测 | MATLAB实现RBF径向基神经网络多输入单输出回归预测+SHAP可解释分析

目录 基于RBF径向基神经网络多输入单输出回归预测及SHAP可解释分析的研究 摘要 1. 引言 1.1 研究背景 1.2 研究意义 1.3 研究目标与内容 2. 文献综述 2.1 RBF径向基神经网络研究现状 2.2 SHAP可解释分析研究进展 3. RBF径向基神经网络原理 4. SHAP可解释分析理论基础 4.1 Shapl…

--- Eureka 服务注册发现 ---

Euraka 是netfix开发的基于REST服务基于AP框架的注册中心,主要是用于服务的注册,管理,负载均衡,服务故障转移 Eureka主要分俩部分Eureka Server:服务中心Server端,提供服务注册 发现 健康检查等服务Eureka …

vue3 el-select 加载内容后 触发事件

在 Vue 3 中使用 Element UI 的 el-select 组件实现加载内容后触发事件,主要有以下两种常见需求及实现方式:加载数据后触发事件若需在数据加载完成后触发特定事件(如页面渲染完成),可通过自定义指令监听滚动容器状态&a…

c# winform 调用 海康威视工业相机(又全又细又简洁)

1.准备一个海康相机 从垃圾桶里翻出来一个USB口相机。 2.下载MVS 和SDK 海康机器人-机器视觉-下载中心 mvs: sdk: 用MVS 调试一下,能连接就行。 海康威视相机,MVS连接成功,但无图像怎么办?-CSDN博客 3.打…

前端页面直接生成PDF下载文件

前言 因为要实现业务需求如下图,业务逻辑,该凭证为前端代码实现,为了简单方便实现下载为pdf的需求。 一、怎么在前端直接生成PDF? 需求描述:浏览器打开的这个页面,点击下载,把当前弹框页面的…

性能优化——GPU的影响

关闭MSAA 之前在查一个渲染问题,一开始是定位到了CPU在waitforFrame所以知道是GPU的问题但如何定义GPU的问题在哪里,就很麻烦。我一开始以为是drawcall的问题,因为我发现drawcall有350个但降低到30个后,依然情况没有好转。毕竟dra…

软件需求关闭前的质量评估标准是什么

在 需求关闭前,进行 质量评估 是确保需求被完整实现、测试充分且满足业务目标的关键步骤。以下是需求关闭前的质量评估标准,涵盖了功能、非功能、测试覆盖率和用户满意度等方面:一、功能实现的质量评估标准需求完整性:所有功能需求…

vscode中创建python虚拟环境的方法

文章目录框架不同python解释器vscode运行python需要的插件vscode可以改变执行python脚本的默认终端虚拟环境解释创建虚拟环境的方法python的settings.json的一些好用配置框架 python解释器->虚拟环境->vscode 不同python解释器 在一台电脑中我们可以安装多个版本的pyt…