计算机硬件基础之重学8086

好久不发学习笔记了,一部分是因为中秋后这周感冒了,过得实在怠惰,另一部分是因为之前领到老板布置的任务后,实在是很懵逼。

上周一再次和导师沟通了一波,还是很懵逼,没有揣度出来老板究竟想让我们干什么,好像是要做一个实时进程调度的实验方案?

直到上周四晚上,队友徐老板一语点醒梦中人:“老板可能会想‘让你们看点书就这么难吗?’要不然为什么我们都问了他两次了,他都在给我们介绍基础?”

哦哦哦哦,好有道理——

于是上周基本一周都在看书,还真的意识到了不少知识,尤其是操作系统底层。

这周的学习很大程度上填上了我知识拼图中黑色的一块——操作系统。作为硬件和软件的中间者,此前它一直都披着神秘的面纱,直到上周我才顿悟到“操作系统是软件,系统软件是软件,是由人类编写的代码!”,尽管我早就知道操作系内核不是像朱雀的那台白色战机那个粉色的内核*。

参考资料:

《x86汇编语言:从实模式到保护模式》(李忠等,2013)

知乎:如何编写一个操作系统?

《计算机硬件技术基础》(万晓东等,2010)

《自己动手写操作系统》(于渊,2005)

《30天自制操作系统》

李忠那本书讲得非常透彻,文风幽默不晦涩,4年前出版,在同类书中算比较新的,力荐!

正如徐老板所言:“我们现在应该看看基础,可能看着看着就知道老板让我们做什么了。”下面就开始讲一些最近顿悟到的东西,虽然可能有的东西是错误或者有纰漏的,以后再慢慢抿回来好了。

Intel处理器发展史

8086/8088

1978/1979

16位

80x86

1980s

32位(兼容16位)

Pentium奔腾系列

1990s/2000s

32位

Core酷睿系列

现在

64位(兼容32位)

原来它们都是一家的!我每天用的core i5的爷爷就是那个out了很久的8086!它们家每个处理器的指令写法虽有所不同,但是有继承性,理想情况我们照着硬件书写的程序是可以跑在我们笔记本的裸机上的!

2.程序段的“段”就是内存中的“段”,就是段址+偏移地址中的“段”。

3.什么是BIOS?什么是引导程序?

BIOS全称是“基本输入输出系统”。它由计算机厂家提供,是硬件自带的,作用是开机自检(判断各块硬件是不是都没坏)和自举(找到操作系统引导程序所在的位置并执行)。

引导程序放在引导扇区内,是几行指向操作系统入口的代码,规定引导扇区大小为512B,以0x55AA结尾,下面是一段最简单的引导扇区代码(来自《从实模式到保护模式》):

所以引导扇区并不神秘,相反,它的实现相当的“傻瓜式”。

4.如何从硬盘中读取用户程序到内存中?

详见《从实模式到保护模式》一书,大概步骤为:事先已知用户程序位置——>写数据总线——>读取。

而看这一点给我最大的触动就是领悟到:

所有的代码最终都将变成机器码,对于计算机而言,无论原来的程序是用C,还是Java还是汇编语言写成,最终存储在存储器中的,只是数字,二进制的0101太抽象了,那么可以想象成是十六进制的数字,这样起码对于汇编来说,数据段的存储器数据是可以预期的。

5.软中断INT3就是程序调试时用到的中断

比如我们用VS或者VC6.0或者其他IDE调试程序的时候,在某一步,估计是编译的那一步,在断点位置,用一种复杂的手法在代码处添加上了INT3(至于到底是怎么加的,我现在还没看懂┑( ̄Д ̄)┍)

6.在裸机上实现实时进程间调度的方案初步构想

①引导程序跳转到从硬盘中加载程序的程序A的入口(指令寄存器CS改成那行代码的地址);

②程序A从硬盘中读出程序C,程序C的功能是显示键盘输入的小写字符,或者按一下键盘任意键输出一个字符“c”,再设置好中断向量表,设置键盘中断处理程序,定位到程序C的入口。

②程序A从硬盘中读程序B1,B1的功能是不断在屏幕上输出字符“a”,放在内存的某段中;

③读程序B2,B2的功能是不断在显示器上输出字符“b”,放在内存的另一段中;

④利用时钟中断,在B1、B2两段程序中跳来跳去,比如每隔500ms跳转一次吧,模拟同优先级的两个进程时间片轮转调度(RR调度);

⑤开始实验。

太晚了今天就先写到这儿吧。

* 兰斯洛特是出自《反叛的鲁路修》,为向导兵器,由不列颠洛伊德·阿斯普林德所研制的最新型的第7代Knightmare Frame,是枢木朱雀的专用机体。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容