文档章节

Linux insides笔记(三)

yyliu
 yyliu
发布于 2015/08/30 09:32
字数 465
阅读 128
收藏 4

头不疼鼻子哗哗的

感冒了竟然,宿舍里众人皆感冒一周有余我自岿然不动的神话破灭

伤心

以下正文

程序终于运行到main.c。接着继续配置内核启动环境和参数。

首先把启动参数,就是之前bootloader填入的kernel setup hdr中信息,拷贝到c程序中定义可用的启动参数结构体中,所谓的zero page

这里虽然进入c程序,实际上调用bios还是依靠中断实现,程序还处在实模式。

首先初始化控制台,从命令行参数中读取端口波特率啥的,调用bios的api初始化串口,这时打印字符啥应该就行了。

接着是设置堆,之后设置video mode要用

验证cpu,把合适cpu信息存到某些可用位置

内存探测,把内存信息读出存到可用位置

初始化键盘,获取键盘状态和设置参数,这些io相关的东西和硬件关系较大,有各种硬编码的规定。反正按规矩写没问题,我已经忘了具体哪些数字什么设计,反正记得io这里设计了一个主从层来满足不同外设需求,不管它。

获取mca,ist,apm,edd啥的,存到启动参数合适位置 。这些操作全依靠bios

万事俱备,准备进入保护模式。

这里复习了下保护模式是啥,分段的重新设计,全局描述符表的结构等。这种东西网上到处都是。

保护模式相比实模式,我的理解,是权限机制的设计,分页设计与支持,总线位数的扩展。

Cheers

© 著作权归作者所有

共有 人打赏支持
yyliu
粉丝 31
博文 14
码字总数 20045
作品 0
无锡
私信 提问
Linux insides笔记(一)

作为一个web前端工程师,我准备写写linux insides的笔记,看着一些操作系统的东西,总是想起那些年翻看osdev wiki的日子,三十天没能自制的操作系统,还有半途而废的halfdogOS╯﹏╰ 开始正文...

yyliu
2015/08/27
270
0
《Linux内核设计与实现》读书笔记 - 目录 (完结)

《Linux内核设计与实现》读书笔记 - 目录 (完结) 读完这本书回过头才发现, 第一篇笔记居然是 2012年8月发的, 将近一年半的时间才看完这本书(汗!!!). 为了方便以后查看, 做个《Linux内核设计...

你的猫大哥
2018/01/14
0
0
Linux insides笔记(二)

感谢上帝,今天头不怎么疼。 昨天重温了今敏老师的 红辣椒。剧中千叶对时田不顾dcmini丢失后种种可怕事故,痴心于最终完成dcmini的行为勃然大怒,大意说: 你和冰室都是这样,只做你们愿意做...

yyliu
2015/08/28
43
0
Linux 内核展示--Linux-Insides

Linux-Insides 是一系列 Linux 内核的展示。它通过分享 Linux 内核的内部知识来增加人们对 Linux 内核或者其他低级别主题的兴趣。

孔小菜
2015/08/03
1K
0
KVM虚拟化学习笔记系列文章列表

kvm虚拟化学习笔记(一)之kvm虚拟化环境安装 http://koumm.blog.51cto.com/703525/1288795 kvm虚拟化学习笔记(二)之linux kvm虚拟机安装 http://koumm.blog.51cto.com/703525/1289627 kvm虚拟...

蓝狐乐队
2015/03/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL中update修改数据与原数据相同会再次执行吗

背景 本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗? 测试环境 MySQL5.7.25 Centos 7.4 binlog_format为ROW 参数 root@localhost...

阿里云官方博客
6分钟前
0
0
ZStack部署实战之VDI异构部署

作者:ZStack社区 蒋克勤 前言 大家都知道ZStack是一个自主开发、功能齐全、轻量级的私有云和混合云平台,同时,ZStack作为一个开放的云平台,也能够支持各种云桌面终端的接入!大家可以结合...

ZStack社区版
8分钟前
0
0
我的漂泊一生......

突然想起来,给自己的这辈子旅程画个线路图。 懵懂期 青春期 转变期 转变期(二) 现在 感谢 感谢生命里出现的 好的差的,那都是一段旅程 特别感谢几个人对我的帮助: 英泰老叶、工贸老陈、天...

o0无忧亦无怖
9分钟前
5
2
难越高并发这座火焰山?试一试Iron Cloud这朵筋斗云

强如银行巨头,也有难翻的火焰山? 伴随互联网+ 趋势的推进,越来越多金融公司业务渠道从线下转移到线上,业务场景发生质的转变与提升。 支付场景多样化和人们消费水平升级,随之而来的是各大...

heishaovvv
20分钟前
0
0
在线官网Spring Initializr 或 IntelliJ IDEA 快速搭建springboot项目

Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程。它主要推崇的是'消灭配置’,实现零配置。 那么,如何快速新建一个一个springboot项目脚...

Mr_ET
21分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部