[机缘参悟-96] :软件中到处充满了人类社会的气息!
解读操作系统有感:
CPU
对于CPU内核而言,调度程序是程序,应用程序也是程序,在它眼里是一样的、公平看待的,因此某种愿意上讲,CPU内核本身就是“上天”,就是“道”,道德经中讲“天地不仁,以万物为刍”,就是这个意思,CPU中的算术单元并不区分什么是应用程序、什么是内核程序,什么是病毒程序,在它眼里,都是符合CPU指令系统的二进制代码而已。
进程
那么,如何在一个不区分对待任何软件程序的、公平的CPU硬件内核的基础之上,构建一个需要区别对待不同应用程序的机制呢?
一种思想,就是分布式、自由竞争、物竞天择、自然选择,这是大自然的规则;
另一种思想,就是人类社会的规则,需要构建一个分层的等级社会,不同的程序有不同的等级,于是操作系统就诞生了,操作系统的调度程序就是顶级的“天子”和“皇帝”,它拥有无上的权利,可以支配系统所有的硬件和软件资源,它可以调度所有所有的应用程序、中断程序、驱动程序,于是又有了父进程和子进程,他们还有一定继承关系。为了区别对待不同的程序,于是又有了进程间/线程的优先级,不同优先级的程序,拥有享有不同的使用CPU资源的权利。为了解决不同程序之间的社交和各种互动的需求,于是有了进程/线程间同步和线程间同步。为了解决不同个体之间,因为交流速度不对等造成的沟通障碍,为了帮助那些生产信息的程序与消费信息的应用程序之间的交流,于是构建一个生产者和消费者模型,于是有了充当“市场”作用和桥梁作用的队列、缓冲区、FIFO等机制。就这样,一个不平等的、又看似平等的、公平的、并发的、多任务环境就创建了,每个应用程序自我感觉是“公平的”,殊不知背后的等级制度,并非“上天(CPU)”公平的规则,每个应用程序自我感觉是独自计算机系统、自主地运行程序,殊不知一切都在操作系统调度程序的掌控之中,整个CPU资源被调度程序按照应用程看不见的某种规则集中分配。
内存
内存是计算机除了CPU之外,另一个最重要的资源,为了让应用程序共享有限的社会资源,于是搞了个MMU,还搞出一个逻辑地址和物理地址的映射,让每个应用程序都感觉自己完全拥有、完全自由度的、公平的、3G的地址活动空间,每个应用程序可以在自己的地址活动空间自由驰骋,殊不知,在MMU的控制下,所有的应用程序不过是分时、共享相同的物理内存,而实际的物理空间或许远远不足3G,或许只有几兆而已。不过,没关系,每个应用程序享受着这份虚幻就行,哪在乎背后是不是真实!
外设
外设是出CPU和内存之外的,三大最重要资源中的最后一个,为了让应用程序使用各种纷繁复杂的外设资源,操作系统搞出了一个“树”型结构的文件系统,每个设备被虚拟成了一个个文件系统中的文件,应用程序通过简单的“读”和“写”操作完成与各种外设资源的交互。殊不知,文件系统是一个典型的等级制度系统,从根节点到叶子节点,每个“外设或人”,都是挂接在整个等级系统中的一个环节。为了能够跨越阶层,操作搞出了一个软链接的东西。
网络协议栈
网络协议分层是另一个典型的等级森严社会,下层为上层提供服务,下层只需要实现上层期望的一个个单一的目标和任务,上层利用下层的服务,完成更加复杂的目标和任务,下层并不知道上层的业务目标,上层也不关心下层如何实现目标,上层只关心下层必须完成其职责范围内预定的目标,一旦下层由于某种因素无法达成上层的期望和性能指标,上层就可以无情地把下层替换掉,并美其名曰,上下层解耦。上下层之间不能越级,并美其名曰是接口清晰,层次分明。
谁说“程序”没有“感情”、没有“人文”?没有“思想”?软件中到处充满了人类社会的气息!
ChatGPT
ChatGPT使得“无情感、无思维、无人文、无生命的”的机器与“活生生的人”差距又缩小了一个等级。未来的通用人工智能,不仅仅会让机器拥有超过人类的智慧,还会让机器拥有类人类的情感,甚至拥有所谓的“硅基”生命。
补充:
操作系统的本质就是创建一个并发的应用程序执行的环境,使得各种应用程序可以动态、共享相同的计算机物理硬件资源,计算机的三大物理资源包括:
CPU
内存
外设
应用程序(管理应用程序):以进程和现成的方式组织,所有的应用程序被抽象成了一个个的进程与现成;然后,有了进程间同步、互斥与通信、进程的优先级调度等概念。
所有的外设(管理外设资源):以统一的文件来组织,所有的应用程序通过文件的方式访问所有的外设,操作系统通过把文件映射成设备的驱动程序访问外设硬件。并以中断的手段提供异步抢占的方式临时占用计算机的资源。
所有的内存(管理内存资源):一虚拟地址的方式来组织,每个应用程序拥有0G~3G的用户地址空间和3G~4G的内核专有空间,于是了内存管理、MMU和地址映射等等概念。
内核调度程序(管理CPU资源):如何管理上述资源呢?于是就有了操作系统的调度程序!
相关文章:
[机缘参悟-96] :软件中到处充满了人类社会的气息!
解读操作系统有感:CPU对于CPU内核而言,调度程序是程序,应用程序也是程序,在它眼里是一样的、公平看待的,因此某种愿意上讲,CPU内核本身就是“上天”,就是“道”,道德经中讲“天地不仁…...

知识点滴 - 自行车分类
旅行车 旅行自行车(Touring bicycle)由公路自行车发展而来,适合超远程自给自足的旅行,有较舒适放松的车架几何设计,能够负重,有很低的最低档位,配件选择方面追求可靠耐用。 专业的长途旅行车均以…...

【建议收藏】Jenkins+postman+newman之API全自动化测试
1 背景 本文要介绍的环境在我司已经投入使用,举个简单的真实使用场景,开发提供了300多个API,每个API都有各种参数,所以我们会先在postman中为这300多个API编写300*n个testcase,然后在jenkins上跑;到此有人…...

MySQL数据库————MVCC
MySQL的脏读、幻读、不可重复读 脏读 现在有两个事务在操作table表,事务B修改了id2的name字段为李老四,但是没有提交,事务A查询id2的数据,得到name为李老四;事务B发生回滚,id2的数据的name又变回李四&…...
为啥Python多线程爬虫跑的慢?
单线程和多线程进行数据抓取结果还是大有不同的,但是要值得注意的事,如果多线程没调配好可能连单线程的效率都比不上。本次就和大家一起聊一聊单线程多线程的一些需要注意的事项。 知识点 线程(Thread)也叫轻量级进程࿰…...

万字长文解析!复现和使用GPT-3/ChatGPT,你所应该知道的
关于作者 英文原版作者:杨靖锋,现任亚马逊科学家,本科毕业于北大,硕士毕业于佐治亚理工学院,师从 Stanford 杨笛一教授。 杨昊桐 译,王骁 修订 感谢靳弘业对第一版稿件的建议,感谢陈三星&am…...

Kaldi语音识别技术(八) ----- 整合HCLG
Kaldi语音识别技术(八) ----- 整合HCLG 文章目录Kaldi语音识别技术(八) ----- 整合HCLGHCLG 概述组合LG.fst可视化 LG.fst组合CLG.fst可视化CLG.fst生成H.fst组合HCLG.fst生成HaCLG.fst生成HCLG.fstHCLG 概述 HCLG min(det(H o min(det(C o min(det(L o G))))) 将…...

day17_异常
今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、异常 三、自定义异常 零、 复习昨日 见晨考 一、作业 package com.qf.homework;import java.text.ParseException; import java.text.Simpl…...
vue中把node-sass换成dart-sass方式(解决办法)
目录 一、替换原因 二、art-sass和node-sass的区别 三、替换方法 一、替换原因 因为node-sass和node.js版本关联太紧了,如果这两个版本不匹配,就会起冲突,导致项目无法运行。 ps:值得一提的是node版本和要运行的项目使用的依…...

深入浅出深度学习Pytroch
本文将以通俗易懂的方式,深入浅出地为您揭开深度学习模型构建与训练的面纱: 深度学习数据data模型model损失函数loss优化optimizer可视化visualizer深度学习 数据data 模型model 损失函数loss 优化optimizer 可视化visualizer深度学习数据data模型m…...

CCNP350-401学习笔记(451-500题)
451、what is the function of the LISP map resolver? A. to send traffic to non-LISP sites when connected to a service provider that does not accept nonroutable EIDs as packet sources B. to connect a site to the LISP-capabie part of a core network, publish …...

3年功能测试经验,面试想拿到15k很难吗?
一直觉得经验多,无论在哪都能找到满意的工作,但是现实却是给我打了一个大巴掌!事后也不会给糖的那种... 个人情况 大概介绍一下个人情况,男,本科,三年多测试工作经验,一毕业因为不成熟的经验以…...

【7/101】101次面试之测试技术面试题
01、什么是兼容性测试?兼容性测试侧重哪些方面?答:兼容性测试是一种软件测试类型,它的主要目的是确保一个应用程序在不同的操作系统、不同的浏览器、不同的设备、不同的网络环境等各种环境下能够正常运行,并且不会产生…...

【蓝桥杯每日一题】前缀和算法
🍎 博客主页:🌙披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 蓝桥杯 🌙我与杀戮之中绽放,亦如黎明的花…...
【C#基础】C# 常用数据结构
序号系列文章4【C#基础】C# 变量和常量的使用5【C#基础】C# 运算符总结6【C#基础】C# 常用语句讲解文章目录前言数据结构的概念1,数组 (Array)1.1,声明并初始化赋值1.2,访问数组元素1.3,Array 类的使用2&am…...
MySql 及MyBatis数据的批量操作
1、Mybatis操作 1、批量更新 <update id"updateCtcc" parameterType"java.util.List">update ctcc set scan1 where id in<foreach collection"list" item"item" index"index" open"(" close")&qu…...
无代码表格数据库——一个企业数字化新物种
商业活动的“非标”地带在现实商业活动中存在大量未被明确界定、规范和标准化的灰色地带,它们不像电信、金融、财会、证券经纪、保险、建筑设计、工程造价等具有高度专业性的业务板块一样有强制的行业标准、规范甚至从业资格证书加持,下文统称其为非标业…...
第十三届蓝桥杯国赛 C++ C组 F 题、Python B组 E 题——近似GCD(AC)
目录1.近似GCD1.题目描述2.输入格式3.输出格式4.样例输入5.样例输出6.数据范围7.原题链接2.解题思路3.Ac_code1.C2.Python1.近似GCD 1.题目描述 小蓝有一个长度为 nnn 的数组 A(a1,a2,⋯,an)A\left(a_{1}, a_{2}, \cdots, a_{n}\right)A(a1,a2,⋯,an), 数组的子数组被定…...

分享5款小众良心软件,好用到让人惊艳
目前win7渐渐退出视野,大部分人都开始使用win10了,笔者在日常的工作和使用中,为了能够让效率的大提升,下载了不少软件,以下的软件都是个人认为装机必备,而且都是可以免费下载,且没有插件的。 1…...
WAF是什么?一篇文章带你全面了解WAF
WAF是什么?一篇文章带你全面了解WAF 文章目录WAF是什么?一篇文章带你全面了解WAFWAF是什么?一、WAF的工作原理二、WAF的分类三、WAF的特点四、如何选择和部署WAFWAF是什么? Web应用程序防火墙(Web Application Firewa…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...