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

news2024/12/27 13:48:31

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.coloradmin.cn/o/2138633.html

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

相关文章

信息安全:守护数字世界的坚固堡垒

信息安全&#xff1a;守护数字世界的坚固堡垒 一、信息安全的重要性与意义 信息安全在个人、企业和社会层面都具有至关重要的意义。 在个人层面&#xff0c;信息安全保护隐私至关重要。在数字化时代&#xff0c;我们的个人信息如银行账户、社交媒体账户等容易受到威胁。一旦…

【代码随想录训练营第42期 续Day58打卡 - 图论Part8 - Dijkstra算法

目录 一、Dijkstra算法 实现方式 1、使用优先队列&#xff08;最小堆&#xff09; 2、朴素法&#xff08;简单数组&#xff09; 二、经典例题 题目&#xff1a;卡码网 47. 参加科学大会 题目链接 题解&#xff1a;朴素Dijkstra 三、小结 一、Dijkstra算法 刚入门Dijks…

【Git】常见命令(仅笔记)

文章目录 创建/初始化本地仓库添加本地仓库配置项提交文件查看仓库状态回退仓库查看日志分支删除文件暂存工作区代码远程仓库使用 .gitigore 文件让 git 不追踪一些文件标签 创建/初始化本地仓库 git init添加本地仓库配置项 git config -l #以列表形式显示配置项git config …

【免费】CISSP官方习题集第4版

伴随2004年4月CISSP新大纲发布&#xff0c;CISSP官方习题集第4版(OPT v4)已于2024年5月出版&#xff1a; 本人维护的中英对照8个知识域分章节练习已同步更新完成&#xff0c;在保持v3版内容基础上&#xff0c;增补了所有v4新内容&#xff0c;免费供考友们使用&#xff0c;访问方…

Requests-HTML模块怎样安装和使用?

要安装和使用Requests-HTML模块&#xff0c;您可以按照以下步骤进行操作&#xff1a; 打开命令行界面&#xff08;如Windows的命令提示符或Mac的终端&#xff09;。 使用pip命令安装Requests-HTML模块。在命令行中输入以下命令并按回车键执行&#xff1a; pip install request…

mp4文件解析

mp4格式与Annexb格式不同 实际送到GPU中解码数据是 00 00 01 + 编码数据,三个字节标识加解码数据 解析开始: for (uint32_t sampleIndex = 0; sampleIndex < track.sample_count; ++sampleIndex) {//----------------------------------------------------------…

28 线性表 · 栈

目录 一、概念与结构 &#xff08;一&#xff09;概念 1、栈 2、压栈 3、出栈 4、底层实现 二、栈的实现 三、栈的算法题 一、概念与结构 &#xff08;一&#xff09;概念 1、栈 一种特殊的线性表&#xff0c;只允许在固定的一端进行插入和删除操作。进行数据插…

idea连接数据库大避雷!!!

再跟着黑马学习的时候&#xff0c;用黑马的资料安装的数据库&#xff0c;命令行能正常启动&#xff0c;SQLyog也能正常连接&#xff0c;就是tmd idea连接不了。不论是原始的jdbc,还是其它方式都不行&#xff0c;一直报错&#xff1a; 然后就各种搜&#xff0c;有的说数据库驱动…

【JavaEE初阶】多线程(4)

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 线程安全的 第四个原因 代码举例: 分析原因 解决方法 方法1 方法2 wait(等待)和notify(通知) wait和sleep区别 线程安全的 第四个原因 内存可见性,引起的线程安全问…

AI辅助癌症诊断取得了进展

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

服务发现和代理实例的自动更新

1.服务发现的两种方式 StartFindService 方法 这是一个在后台启动的连续 “FindService” 活动&#xff0c;当服务实例的可用性发生变化时&#xff0c;会通过回调通知调用者。 它返回一个FindServiceHandle&#xff0c;可通过调用StopFindService来停止正在进行的监视服务实例…

pwn题目搭建过程中glibc出现问题的解决方案

前言&#xff1a; 在做pwn的堆题时&#xff0c;会遇到不同版本的glibc。为了更好地与远程环境对应&#xff0c;我们可以通过patchelf和glibc-all-in-one来更换程序动态加载时的glibc。简单介绍一下&#xff0c;glibc-all-in-one用来下载需要的glibc包&#xff0c;然后用petche…

【Git】初识Git

本篇文章的环境是在 Ubuntu/Linux 环境下编写的 文章目录 版本控制器Git 基本操作安装 Git创建 Git 本地仓库配置 Git认识工作区、暂存区、版本库添加文件修改文件版本回退撤销修改删除文件 版本控制器 在日常工作和学习中&#xff0c;老板/老师要求我们修改文档&#xff0c;…

Live800:客户服务新纪元,从响应到主动关怀的转型之路

在当今这个快速变化的商业环境中&#xff0c;客户服务已不再是简单的售后响应或问题解决的环节&#xff0c;而是企业赢得市场、构建品牌忠诚度、实现可持续增长的核心驱动力。随着技术的飞速发展和消费者需求的日益多样化&#xff0c;客户服务正步入一个新的纪元——从传统的被…

电脑上如何多开微信软件(多个微信同时使用)

想登录几个就下面这种文件里&#xff0c;复制几行即可&#xff1a; 创建的是以 .bat 文件结尾的txt文件&#xff08;先创建一个txt文本文档&#xff0c;等写好了命令保存后&#xff0c;再把文件的后缀名改为: .bat &#xff09;再保存即可。然后&#xff0c;右键以管理员运行&a…

电子废物检测回收系统源码分享

电子废物检测回收检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

mysql 8.0 日期维度表生成(可运行)

mysql 8.0 日期维度表生成&#xff08;可运行&#xff09; 文章目录 mysql 8.0 日期维度表生成&#xff08;可运行&#xff09;日期维度表左右日期维度表生成技术点 日期维度表左右 在数据仓库&#xff08;Data Warehouse&#xff09;中&#xff0c;日期维度表&#xff08;Dat…

离谱碾压!奇安信中标:高出第二名近70分!

2024年08月09日&#xff0c;广东省政务服务和数据管理局&#xff0c;近日发布了网络安全第三方服务&#xff08;2024年&#xff09;项目之关基检查及重要政务应用安全检查服务招标公告&#xff01; 预算金额&#xff1a;2,896,200.00元&#xff0c;其中安全检查服务包&#xf…

Pytorch+Anaconda+Pycharm+Python

0 python知识 0.1 os库常见用法 os 库提供了许多用于操作操作系统功能的函数。常见用法包括&#xff1a; 文件和目录操作&#xff1a; os.listdir(path)&#xff1a;列出指定路径下的所有文件和目录。os.mkdir(path)&#xff1a;创建新目录。os.remove(path)&#xff1a;删除…

清理C盘缓存,删除电脑缓存指令是什么

在处理计算机系统的C盘缓存清理任务时&#xff0c;需要谨慎操作以确保系统的稳定性和数据的安全性。通常&#xff0c;Windows操作系统中并没有直接的“一键清理C盘缓存”的单一命令&#xff0c;因为缓存文件分散存储于多个位置&#xff0c;并且有些缓存对于系统性能至关重要&am…