OS:初识操作系统——邂逅与启航

Blog’s 主页: 白乐天_ξ( ✿>◡❛)

🌈 个人Motto:实践是检验真理的唯一标准!!!

💫 欢迎来到我的学习笔记!

前言

各位uu好,现在我们要开始一个新的篇章——操作系统(Operating System)。

操作系统这门课程据我了解,他主要是理论与实践相互结合。因此,我们要想学好操作系统,就不进要学习它的理论知识,还要学会动手实操。

【操作系统】这一系列博客也是我的学习笔记,源自于中国大学慕课哈工大李志军老师的操作系统课程。

操作系统就像一个潘多拉魔盒。这是一个全新的领域,之所以这样称呼它,是因为李志军老师曾用钢琴盒来描述它。更加容易激起我们学习探索操作系统的兴趣。那么接下来,让我们一起踏上征途,扬帆,启航!

一、初识操作系统——邂逅

我们主要的内容就从附图1.1开始引出。

图1.1 小型抽象操作系统——计算机副图

根据上图1.1可知,我们可以将这个小型的抽象的操作系统看作是一个小型计算机。

那么,计算机又是做什么的呢?答案很简单——解决人类的实际问题。比如说:在显示屏幕上输出字符串Hello!。大致过程就是:CPU向内存发出指令要求输出字符串。字符对应的ASCII码值被存入内存转换成二进制。

下图1.2是一种最简易的计算机,一般被戏称为“裸机”。

图1.2 计算机硬件(裸机)

计算机管理的硬件主要有:CPU管理、内存管理、终端管理、磁盘管理、文件管理、网络管理、电源管理、多核管理。

二、操作系统应该学习什么?

  1. 应用软件探索到操作系统,中间的叫做接口;使用显示器:printf;使用CPUfork;使用文件:openread
  2. 应用软件进入操作系统;设计并实现操作系统。(如何将文字配一个板子,配一个操作系统)
  3. 硬件到设计并实现操作系统。
  4. 要求:能自主实现操作系统中改动CPU管理、改变屏幕输出、改变系统接口、改变内存管理等操作,学会自主实现一个真实的操作系统。

三、如何学好操作系统?

操作系统就像一个神秘的潘多拉魔盒,在它的背后总会有很多我们不知道的什么的宝藏!

操作系统这门课注重实践,一定要学会动手操作!就像我们不能只停留于潘多拉魔盒的表面一样,而是要深入去探索、去实践、勇于发现!

除此之外,我们还可以借助书籍《Linux内核设计与实现》、《30天自制操作系统》、《自己动手写操作系统》等书籍。

四、冯·诺依曼存储思想——引路人

当我们打开电源、开启电脑时,屏幕上就会出现神秘的黑色开机背景,计算机开始工作。那么在这黑色背景的后面到底有什么秘密或者故事?此时计算机执行的第一条指令又是什么?

图4.1 华硕电脑开机画面

从第一步——打开电源开始,计算机就开始工作了。那么计算机是怎么工作的呢?

4.1 从白纸到图灵机

计算机其实就是一种计算模型。1936年英国数学家A.C.图灵从小孩的计算过程中得到启发:小孩在计算“3 + 2”的结果的过程中,首先是在纸上看见“3 + 2”这个算式,然后眼睛将获取的信息传入大脑,大脑开始工作,将结果反馈给手,手再拿着笔在纸上写下结果“5”。A.C.图灵讲这一过程模拟抽象成一种计算模型,如下图:

4.2 从图灵机到通用图灵机

下面是图灵机的简化模型,但是它只有一种计算逻辑,就像是一位只会做一种菜的厨师。

而我们需要的是一位可以看懂菜谱、做出几种菜来的厨师。因此图灵机做了改进,可以实现多逻辑:

上面就是冯·诺依曼存储程序思想的提出过程(1946年)。**存储程序的主要思想:将程序和数据存放到计算机内部的存储器中,计算机在程序的控制下一步一步进行处理。**其中,控制器的工作过程如下图4.6。

画板

所以,计算机工作的方式就是——取址执行(PC/IP指针指向的内容)。打开电源时,计算机执行的第一条指令就是IP指向的内容

4.3 0x7c00处存放的代码

刚上电时,对于X86英特尔结构计算机来说,它有一部分内存是固化的,固话地址为CS = 0xFFFF0IP = 0x0000,CPU处于实模式。CS和IP相结合(CS<<4+IP),会产生一个地址:0xFFFF0(ROM BIOS映射区)。有了代码开始取址执行,接着检查RAM(内存)、键盘、显示器、软硬磁盘(这里出错,说明计算机硬件损坏)。然后将磁盘0磁道0扇区(操作系统的引导扇区)的内容(512字节)读入0x7c00处,记录CS = 0x07c0IP = 0x0000

在计算机中,0x7c00这个地址将会发生很多的故事。

引导扇区存放的代码叫做bootsect.s.s汇编代码)。设置汇编代码的原因:不用C语言程序写该处代码是因为C语言程序需要编译,而且有一些不可控因素,例如int x = 10;代码中无法指定内存开辟的位置。我们在这里需要对它进行完全的控制,不能使用C语言程序编写而使用汇编代码。


结语

本文到这里就结束了,我们目前对操作系统有了初步的认识,后面的文章将会继续更新,感谢各位uu的支持!

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Geneformer AI 模型,有限数据也能解锁基因网络

目录 类似于 BERT 的单单元数据参考模型 NVIDIA Clara 工具组合用于药物研发 用于疾病建模的基础 AI 模型 Geneformer 是最近推出的 和功能强大的 AI 模型&#xff0c;可以通过从大量单细胞转录组数据中进行迁移学习来学习基因网络动力学和相互作用。借助此工具&#xff0c;…

misc合集(1)

[Week3] 这是一个压缩包 有密码&#xff0c;提示QmFzZUNURj8/Pz8/P0ZUQ2VzYUI base64解密是BaseCTF??????FTCesaB 猜测这应该是⼀个轴对称的密码 python ⽣成了密码字典&#xff0c;再通过 ARCHPR 进⾏字典爆破 lowercase abcdefghijklmnopqrstuvwxyz uppercase l…

java写s7和plc通讯

pom.xml <dependency><groupId>com.github.s7connector</groupId><artifactId>s7connector</artifactId><version>2.1</version></dependency>maven下载不了的&#xff0c;下载包&#xff0c;评论或者私自内免费给 DB212 类&a…

5.1 溪降技术:个人装备

Content 5.1 个人装备概览设备概览视频电子书&#xff1a;个人装备安全装备非安全装备 峡谷探险个人安全装备个人安全装备视频*安全扣结构*峡谷探险个人非安全装备 湿峡谷湿峡谷装备视频个人安全装备个人非安全装备 干峡谷干峡谷装备视频个人安全装备个人非安全装备 团队装备&a…

安全区域边界等保测评

1.边界防护 应保证跨越边界的访问和数据流通过边界设备提供的受控接口进行通信。 [测评方法] 1)应核查在网络边界处是否部署访问控制设备;网闸和防火墙2)应核查设备配置信息是否指定端口进行跨越边界的网络通信,指定端口是否配置并启用了安全策略acl 3)应采用其他技术手…

【网盘外快】百度网盘SVIP充值使用说明,如何通过软件自动充值获取新用户优惠?这篇文章给你正确答案。

资源地址&#xff1a; 此软件需要 网盘ck 才可以使用。 雷电模拟器下载地址&#xff1a;https://www.ldmnq.com/ 软件下载地址&#xff1a;https://wwi.lanzoup.com/b01qdiavzg 密码:666 模拟器使用说明&#xff1a; 1、调整模拟器分辨率调整为&#xff1a;540 X 960。 2、…

每天练打字1:今日状况——击键5第1遍

前言 首先说明一点&#xff0c;这个每天练打打字系列不会每天更新。因为本来练打字就不是一件太大的事&#xff0c;没必要为了更新而更新&#xff0c;但还是会做到每周一更新。以便于跟踪进度&#xff0c;监控目标是否达成。 今日练习情况 一、跟打情况 常用字中五百&#…

RockyLinux-软件实现RAID5

一、背景 RAID&#xff08;Redundant Array of Independent Disks&#xff0c;独立磁盘冗余阵列&#xff09;是一种将多个物理硬盘驱动器组合成单一逻辑单元的技术&#xff0c;目的是提高存储性能、可靠性和/或数据冗余度。虽然早期的名字中包含“独立”&#xff08;Independen…

【资料分析】常见的坑

in 比较或计数类问题 差别大的基期比较&#xff0c;可以直接用现期进行比较 注意单位可能不同&#xff01; 注意顺序是从小到大还是从大到小 以及老问题&#xff0c;名字本身就叫XX增量&#xff0c;XX增加值&#xff0c;而非还要另外去算的东东 给出的图表可能是不完整的 2…

通过SQL语句判断奇偶数的几种方法

文章目录 1. 准备数据2. 使用 % 判断奇偶数3. 使用 MOD 判断奇偶数4. 使用按位与运算符 & 1. 准备数据 假设我们有一张测试表test_numbers -- 创建测试表 CREATE TABLE test_numbers (number_value INT );-- 插入测试数据 INSERT INTO test_numbers (number_value) VALUE…

Qt:饿汉单例(附带单例使用和内存管理)

前言 本文主要写饿汉单例以及单例的释放&#xff0c;网上很多教程只有单例的创建&#xff0c;但是并没有告诉我们单例的内存管理&#xff0c;这就很头疼。 正文 饿汉式单例 // SingletonClass.h #ifndef SINGLETONCLASS_H #define SINGLETONCLASS_H #include <QObject&g…

PCIe进阶之TL:First/Last DW Byte Enables Rules Traffic Class Field

1 First/Last DW Byte Enables Rules & Attributes Field 1.1 First/Last DW Byte Enables Rules Byte Enable 包含在 Memory、I/O 和 Configuration Request 中。本文定义了相应的规则。Byte Enable 位于 header 的 byte 7 。对于 TH 字段值为 1 的 Memory Read Request…

【stm32笔记】使用rtt-studio与stm32CubeMx联合创建项目

使用rtt-studio与stm32CubeMx联合创建项目 创建rt-thread项目 设置项目信息 在项目资源管理器中“右击“&#xff0c;创建RRT studio 项目 双击“RT-Thread 项目“。 选择MCU&#xff0c;设置UART&#xff0c;以及调试方式。添加项目名称&#xff0c;点击“完成“按钮。 …

长春自闭症寄宿学校:开启创造力与艺术之旅

长春自闭症寄宿学校的启示&#xff1a;在广州星贝育园&#xff0c;自闭症儿童开启创造力与艺术之旅 当我们谈及自闭症儿童的教育与成长时&#xff0c;总有一股力量在推动着我们不断探索与创新。虽然题目中提及了“长春自闭症寄宿学校”&#xff0c;但本文将聚焦于广州的星贝育…

使用jmeter做性能测试实践过程中需要注意什么

前言 在驾驭Apache JMeter进行性能测试之旅中&#xff0c;深刻理解其特性和限制是至关重要的。以下是提升JMeter效能的关键策略&#xff0c;旨在挖掘其潜力&#xff0c;克服局限&#xff0c;实现精准测试。 1.精确调控线程数 推荐阈值&#xff1a;将线程数控制在300以内&…

SSH公私钥后门从入门到应急响应

目录 1. SSH公私钥与SSH公私钥后门介绍 1.1 SSH公私钥介绍 1.1.1 公钥和私钥的基本概念 1.1.2 SSH公私钥认证的工作原理(很重要) 1.2 SSH公私钥后门介绍 2. 如何在已拿下控制权限的主机创建后门 2.1 使用 Xshell 生成公钥与私钥 2.2 将公钥上传到被需要被植入后门的服务…

AIGC技术下的动画新纪元:效率与创意的双重飞跃

文章目录 一、技术革新&#xff1a;从辅助到引领二、创作效率与质量的双重飞跃三、创新与艺术的深度融合四、挑战与展望《Procreate Dreams动画设计与制作完全解析》亮点内容简介作者简介目录 《猎头高情商沟通实务》亮点内容简介作者简介 在科技日新月异的今天&#xff0c;人工…

初始Python篇(1)——输入输出函数、数据类型、运算符

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a; Python 以B站up主&#xff1a;Python_子木的视频 &#xff1a;花了2万多买的Python教程全套&#xff0c;现在分享给大家&#xff0c;入门到精…

C++进阶 二叉搜索树的讲解

二叉搜索树的概念 二叉搜索树又称为二叉排序树。 二叉搜索树的性质 若它的左子树不为空&#xff0c;则左子树上所有结点的值都小于等于根结点的值若它的右子树不为空&#xff0c;则右子树上所有结点的值都大于等于根结点的值它的左右子树也分别为二叉搜索树二叉搜索树中可以支持…

vscode搭建ros开发环境问题记录(更新...)

文章目录 vscode 不能自动补全 开发环境&#xff1a; vmware 15.7 ubuntu 20.04 ros noetic vscode 不能自动补全 这里将头文件已经正确包含到c_cpp_properties.json中代码中仍然不能自动补全&#xff0c; 将C_CPP插件设置中的Intelli Sense Engine 设置为TagParser,然后重新加…