首页 物流新闻 一个文科妹子的视角看我的操作系统源码系列

一个文科妹子的视角看我的操作系统源码系列

今日原本应该更新 操作系统源码系列 的文章了,但是考虑到我们很多人还没开工,仍然在假期中,所以今日暂时发个跟系列相关的文章。 下面的文字并不是我写的,而是一位文科身世的小编,对我的…

今日原本应该更新 操作系统源码系列 的文章了,但是考虑到我们很多人还没开工,仍然在假期中,所以今日暂时发个跟系列相关的文章。



下面的文字并不是我写的,而是一位文科身世的小编,对我的系列十分感兴趣,在火车上一口气读完了前十回内容,还提出了不少在我看来是技能人才干提出的问题。



我其时十分意外,又很快乐自己这样一个讲源码的系列,竟然还有非技能人员如此认真地阅览,并简直了解了宗旨要义。



所以我约请她,对前十回的内容做个总结,以自己的视角来解读,我觉得十分有意思,下面的时刻交给她。





------ 视角切换中 ------





------ 切换至小新 ------





很侥幸收到闪客的约请,为操作系统源码系列写个非技能视角的“流水账”。

 



搬砖荣耀,我们第一个镜头给到打包东西人,由他打包 512 字节,放到 1 扇区,然后电脑开机,BIOS 将其转移到内存仓库。

然后便是寻址的故事,公然,破除路痴的最佳计划便是找一个固定的参阅物。这个参阅物,便是第一个门牌,门牌是 0x7c00,只需两行代码就搞定了 ax 到 dx 的“传话”使命。



接着便是一通赋值大法和代码操作,不得不说在编程原初国际里转移 512 个字节真折腾,辛苦辛苦。从硬盘到内存 0x7c00 处,再到 0x90000 处,然后再偏移。数字段和代码段都具有一个“号码牌”,这样的规划只要机敏“快递员”才干想像出来,大致便是先把确认要写的昂首“某某省某某市某某区”都写好。后边再派件就只需要写最终具体地址,这波操作真闲适: )



再之后就到了栈顶地址,前文代码住长江头,栈顶地址住长江尾,特意跟 0x90000 坚持间隔。至此,数据段、代码段、栈顶指针的内存分队社会分工已初具雏形。

 

为啥费这劲头做偏移呢?
看完后文之后估测一下:



接着第四回的转移作业,最生疏的便是 int 指令,意图便是让 CPU 小哥对号查进口,寻觅到对应方位接单作业。



到这儿,作者大大给我们梳理了操作系统从硬盘搬迁到内存的全过程,其实和冰箱放大象相同:统共分三步,别离安顿 bootsect.s 到 1 扇区、setup.s 到 2~5 扇区 和其他代码到后边 249 个扇区(概况看第四回)。



看到最终一段操作系统内存规划高度耦合的点评,直观感触是操作系统界面里一切规划都是逼迫症上线、锱铢必较,随时抱着拆炸弹般的精细微操和谨慎情绪才干作业。



接着第四回说的 “setup.s”,看代码晕头转向,我只捡相对好了解的部分说吧:为做好汇编言语和C言语的交代作业,两边约好“同享区域”,存取都在这儿进行。首要作业组织感觉便是进入保护模式之前,又搞了次拾掇收拾作业,操作系统实属收拾“狂魔”。

 











一阵头晕眼花的代码品读今后,动了 idt 和 gdt,精确说是覆盖了。idt 挺眼熟啊,第六回“趁便画出来”(本来是伏笔),听说原理跟 gdt 相同,但分担中止的事。





gdt 明显就没那么热闹了,本来的老家 setup 程序还有他用,搬到 head 这儿重置来了。







这儿分页的最终一个动作是 ret,为了带 CPU 回栈顶,栈顶那此刻是 main.c 等候,接站环节足骨丝滑。这些操作有必要得有晚期的收拾逼迫症才做得出来:把代码,数据和栈这三类货品组织得明明白白,又设了各种寄存器,引导 CPU 快速寻觅存取货品的方位。

操作系统有言:逼迫我一个,美好千万家,把“存取有序,头头是道”的精力发扬光大,坚持N年不动摇。

至此,十回结束,内存布局预备结束,就等进入main.c啦!撒花撒花~



------- 视角切换中 -------

------- 切换至闪客 -------

本文我原汁原文保留了小新的文字,未做任何删减,连我发现的错别字我也没去修正。

一开始我认为她仅仅大约说说全体了解,没想到竟然写成了一篇很好的串讲文章,连细节部分都体现出来了,我仍是十分意外的。




我们假如觉得本文作为一个文科妹子的解读很棒,能够支持下咯~









补白
写明你从事的职业即可




,记住哦,必定对错 IT 技能的同学哟,我倒要看看有多少,嘿嘿



本文来自网络,不代表快递资讯网立场。转载请注明出处: http://www.llaiot.com/logistics-news/1881.html
上一篇
下一篇

为您推荐

返回顶部