随笔分类 -  从0-1写个操作系统

如何划分与组织内存(上)?
摘要:1)本节我们要接触内存了,那我们用最通俗的语言来类比操作系统和内存的关系应该是怎样的? 操作系统是政府,内存是土地。政府必须合理规划好土地,人民才能安居乐业。 2)既然要规划内存,那我们规划的基本单位有哪两种? 分段和分页 3)分段和分页有什么区别呢?我们设计操作系统的时候应该怎样选择? 表示方式和 阅读全文

posted @ 2022-04-07 19:33 Love&Share 阅读(86) 评论(0) 推荐(0) 编辑

设置工作模式与环境(中):建造二级引导器
摘要:1)上节课安装的GRUB不是已经 把我们的操作 系统加载到内存中了吗?为什么还要二级引导器? 二级引导器是操作系统的排头兵,他先去收集计算机的信息,看看计算机硬件支持不支持运行我们的操作系统。GRUB负责的是操作系统加载进内存,而二级引导器负责的是检验计算机 能不能运行我们的操作系统,并且初始化好一 阅读全文

posted @ 2022-03-30 17:08 Love&Share 阅读(236) 评论(0) 推荐(0) 编辑

设置工作模式与环境(上):建立计算机
摘要:1)一个内核工程需要多个文件,如果让GRUB大兄弟一个一个文件去加载,那他得累死,那我们应该怎么办? 把多个文件合起来,这个合起来的文件叫内核映像文件,GRUB加载它就行了。 2)这个内核映像文件有了,那么怎样让GRUB找到他呢?你得告诉我一些提示吧,这就是映像文件的格式,那映像文件的格式是怎样的呢 阅读全文

posted @ 2022-03-25 17:24 Love&Share 阅读(224) 评论(0) 推荐(0) 编辑

Cache与内存:程序放在哪儿?
摘要:1)什么是局部性原理? ​ #include <stdio.h> int main(){ int i,j; for(i=1;i<=9;i++){ for(j=1;j<=i;j++){ printf("%d*%d=%2d ",i,j,i*j); } printf("\n"); } return 0;  阅读全文

posted @ 2022-03-15 17:31 Love&Share 阅读(449) 评论(0) 推荐(0) 编辑

虚幻与真实:程序中的地址如何转换?
摘要:1)读取指令、读写数据的时候需要和内存进行怎样的交互? 告诉内存芯片:hi,内存老哥请你把 0x10000 地址处的数据交给我……hi,内存老哥,我已经计算完成,请让我把结果写回 0x200000 地址的空间。这些地址存在于代码指令字段后的常数,或者存在于某个寄存器中。 设想一下,如果一台计算机的内 阅读全文

posted @ 2022-03-15 17:27 Love&Share 阅读(431) 评论(0) 推荐(0) 编辑

CPU工作模式:执行程序的三种模式
摘要:1)CPU 的工作模式有哪三种? 实模式、保护模式、长模式 2)如果下面这段应用程序代码能够成功运行,会有什么后果? ​ int main() { int* addr = (int*)0; cli(); //关中断,什么信号来都不能终止CPU while(1) { *addr = 0; addr++ 阅读全文

posted @ 2022-03-15 17:25 Love&Share 阅读(537) 评论(0) 推荐(0) 编辑

震撼的Linux全景图:业界成熟的内核架构长什么样?
摘要:1)Linux怎么来的? Linus 为了方便访问大学服务器中的资源 ,在自己的机器上写了一个文件系统和硬盘驱动,这样就可以把自己需要的资源下载到自己的机器中。随后linus把这款操作系统雏形开源,成千上万的程序员敲出了linux操作系统。 2)为什么很多公司企业网络把linux当作服务器来使用? 阅读全文

posted @ 2022-03-10 23:03 Love&Share 阅读(1372) 评论(0) 推荐(2) 编辑

几行汇编几行C:实现一个最简单的内核
摘要:1)现有的操作系统都是用什么语言开发出来的? 汇编和 C 语言 2)GRUB是什么? 叫操作系统起床的。允许我们的计算机上有多个操作系统。要用哪个的时候就把哪个的内核叫醒。 帮我来管理操作系统的管家。 3)GRUB哪里能获得呢? Ubuntu Linux 操作系统自带 4)我们要实现一个Hello 阅读全文

posted @ 2022-03-05 23:16 Love&Share 阅读(300) 评论(0) 推荐(0) 编辑

程序的运行过程:从代码到机器运行
摘要:1)你知道程序是如何运行的吗? 1.1)Unix是怎么来的? Ken Thompson 的妻子回娘家一个月,他在贝尔实验室无聊,就搞出了UNICS操作系统(unix的前身)。 当时可没有c语言,大佬是用B语言和汇编语言写出来的。 1.2)那UNIX是怎么来的呢? 牛人的朋友也是牛人,Thompson 阅读全文

posted @ 2022-03-04 23:26 Love&Share 阅读(480) 评论(0) 推荐(0) 编辑

进程的状态与控制
摘要:程序(进程)要运行=PCB+内存+CPU 首先从磁盘copy到内存,再建立PCB,通过PCB知道入口位置,再跳到入口这个位置执行程序。 通过上面的图,回味一下: 1.每种状态拥有了哪些资源?(PCB 内存 CPU) 2.什么时候需要状态转变? 3.状态转变时要做什么事情?(分配,申请,归还,修改PC 阅读全文

posted @ 2021-10-26 23:00 Love&Share 阅读(36) 评论(0) 推荐(0) 编辑

进程的组织(结构)
摘要:当程序从磁盘复制到内存之后,PCB就建立 起来了。PCB是装在内存里面的。准确的来说是在OS在内存中的一块地址里面。 代码运行入口地址:你程序复制到内存之后,我得知道他在哪吧。 程序运行的时候,要到什么地方去取代码和数据,那就通过代码段指针和数据段指针得知。 堆栈指针:之前我们说过,程序运行的话,是 阅读全文

posted @ 2021-10-26 22:59 Love&Share 阅读(111) 评论(0) 推荐(0) 编辑

进程的特征
摘要:OS的并发和异步正是由于进程的并发性和异步性才有的。 动态性的话是因为进程=程序+PCB。PCB里面进程的状态是变化的,是动的。 独立性:360和LOL的内存空间井水不犯河水 结构性:进程是由程序+PCB组成的,是有结构的。而程序又可以细分为程序段和数据段。比如a+b a和b就是数据,+就是指令。 阅读全文

posted @ 2021-10-26 22:58 Love&Share 阅读(111) 评论(0) 推荐(0) 编辑

进程,程序的区别
摘要:进程是程序加上pcb这个档案袋里面存储的状态变化的信息 怎样理解进程和程序不是一一对应的这一点呢? 首先来看一个程序对应多个进程:比如我们的qq,可以登录多人的。登录张三的就为张三的建立一个进程,登录李四的就为 李四的建立一个进程。word可以打开多个文档,每打开一个文档就是一个进程。 那一个进程对 阅读全文

posted @ 2021-10-26 22:57 Love&Share 阅读(223) 评论(0) 推荐(0) 编辑

进程的由来
摘要:单道程序进化为多道程序? 单道程序:一个程序去取数据的时候,CPU都会先为它一个服务,这段取数据的时间cpu是需要等待的,直到这个程序运行结束。 多道程序:一个程序去取数据的时候,CPU不会傻等了,它会先不鸟它,看看其他程序需不需要服务。 那么多道程序如何进化为进程呢? 如果qq拜托IO子系统去帮他 阅读全文

posted @ 2021-10-26 22:56 Love&Share 阅读(96) 评论(0) 推荐(0) 编辑

进程管理逻辑图
摘要:出现多进程之后他们要去获得筷子cpu,那获取的规则是怎样的呢? 进程调度,在总多候选人当中选择一个来获取cpu 要调度的话就要有依据,依据就是进程的运行状态。了解了状态才能调度他。比如老板在公司中找人干活,不能选休假的,有业务正在干的。应该选闲着的。对状态记录需要有一个记录表,记录谁请假了,谁没请假 阅读全文

posted @ 2021-10-26 22:52 Love&Share 阅读(90) 评论(0) 推荐(0) 编辑

OS体系
摘要: 阅读全文

posted @ 2021-10-26 22:50 Love&Share 阅读(34) 评论(0) 推荐(0) 编辑

OS的特征
摘要:一定要去理解真正的并发和异步是什么感觉,之后学习信号量解决同步问题才行。 假并发: 一个cpu在10点运行QQ,10点过1毫秒后运行LOL,10点过2毫秒后运行IDEA(以时间来定义) 真并发: 3个cpu在10点这一刻同时运行QQ LOL IDEA(以时刻来定义) 异步: 异步是基于并发的,只有有 阅读全文

posted @ 2021-10-26 22:49 Love&Share 阅读(87) 评论(0) 推荐(0) 编辑

OS的四大特征
摘要:一 并发 假(伪)并发:是以时间作为单位来衡量的。多出现在同核(单核)操作系统中。cpu在10点第一微秒为qq服务,在10点第二微秒为360服务,在10点第三微秒为微信服务。那么我们就说在10点的第一微秒到第三微秒之间叫做假并发。 真并发:是以时刻作为单位来衡量的。多核操作系统。无需等待。cpu1在 阅读全文

posted @ 2021-02-21 15:40 Love&Share 阅读(951) 评论(0) 推荐(0) 编辑

OS的运行机制
摘要:一 导读 先看看人类的运行机制:皮肤如果被针扎了,人类会感觉到疼痛。如果人体得了肺炎,也就是内部器官坏了,人体会感觉到呼吸困难。人要思考,采取一些有利于自身发展的行为去发展自身,比如说我大脑思考我 要健身,我要学习,于是大脑支配身体去跑步,打篮球,学习。 二 OS的运行机制 中断(相当于人被针扎了) 阅读全文

posted @ 2021-02-20 22:31 Love&Share 阅读(125) 评论(0) 推荐(0) 编辑

OS的目的和功能
摘要:OS是软件和硬件资源的管理者(即是目的也是功能),操作系统是一种软件,是跑在硬件之上的。管理CPU如何分配,内存如何分配,磁盘如何分配,外设如何分配。OS是程序员和硬件之间的一个管家,我们只需要 把命令(命令行接口,GUI,程序接口API)传达给管家os,他会去支配硬件进行相应的响应。比如cout 阅读全文

posted @ 2021-02-08 20:32 Love&Share 阅读(597) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示