ubuntu下30天自制os 的学习计划
30天自制os的学习也告一段落,由于有其他更重要的事情要集中精力去处理。书本从15天開始就是多任务了。可是不得不停下一阵子。
以下总结下学习中遇到的一些问题。
1:学习这前14天中。问题最大的是关于GDT。IDT的理解,还有段的訪问长段,属性的理解。
2:这当中遇到的一个现象就是从qemu能够正常启动,可是写到u盘后。从u盘启动时,会不停的重新启动。能够推測到是由于产生了一些异常导致电脑重新启动,可是由于水平有限一直不知道为什么, 后来放下30天这本书。去看了一下,关于GDT的訪问属性的问题,发现出现故障的原因例如以下:
- 段的分页位没有开,导致从段基址開始,能訪问的空间仅仅有1MB的范围,而博主写的代码与日本作者的有些不同。跳转到c语言写的代码指令已经超过了2MB。
- 日本作者的代码在初始化GDT,IDT的函数中,对代码段的长度进行了控制
3:在10几天的代码中。最难理解理解的还是关于图层刷新的那一块,尽管代码是參考书本上敲的。可是还是有非常多不太理解,当然仅仅知道是怎么用的,似乎是基础有点薄弱的原因。
4:之前写的512字节的代码是用Intel的汇编语言写的,第二次学习时,所实用GNU的AT&T语法进行了改写,通过对u盘启动的研究,发现了关于U盘的一些CHS的特点。当然这一点为以后学习Linux内核时。改动为从u盘启动是有帮助的。
5:学完书本上第14天的内容后,发现之前写的代码有非常多bug,当然这些bug在后面都给修复了。
不停的修复bug。也为后面的学习提供了一些方便。由于前面的学习过程中没有太注重代码的可读性,当然仅仅为了自己能看懂。写了非常多凝视。在13天中,对代码的函数进行了分模块的整理。对全局变量的存放位置也有更好的存放位置,代码的结构也更清楚了。
6:了解到github。在管理代码方面强大的功能,所以后面也把代码直接放到了github上,学习了一点github的基础知识,代码的同步,改动也方便了非常多。
7:在移植ucgui时。对于静态链接库的使用。也有更深入的理解,由于须要写makefile来编译ucgui,对于makefile文件的编写也有了更深入的了解,当然学习还是不够系统。后面应该找本makefile的书,系统的看一遍。
8:关于不同分辨率的显示问题。有些问题。难道不能在32位的模式下,用c语言来进行设置吗?不同的模式。不同的VRAM的地址也不同,所以32位的系统仅仅能用2.6GB 左右的内存,高址的内存有一部分给分配给显存了。关于高分辨率的第14天的关半部分。日本作者写的有点问题,直接给出了VRAM的地址是0xe0000000是不科学的,导致博主觉得自己的代码有问题。看了好几次。发现没有问题。于是直接往书的后面看。发现VRAM的地址是通过中断读到的,然后把读到的VRAM地址保存起来,以便后面在c语言的函数中使用。
项目github地址:https://github.com/cherishsir/ubuntu230os
QQ Group:159336168
以下就放一张从u盘启动的照片吧。实现功能到了第14天的高分辨率显示和简单的键盘输入。
至于15天和后面的学习。等到了放暑假时,在家学习吧。
ubuntu下30天自制os 的学习计划的更多相关文章
- ubuntu下30天自制操作系统还在继续学习中
操作系统还在学习中,进度不是非常确定,近期学习到了第13天的中部,由于把ucgui移植上去花了一点时间. 同一时候为了方便代码的兴许管理和分享,也为了学习github的代码管理使用思想, 所以建立了一 ...
- 30天自制OS(linux环境)-day1
30天自制OS(linux环境)--第一天 我是在CentOS的环境上面实现的,使用ubuntu的环境也是类似的 第一步:因为要对二进制文件进行编辑,所以安装二进制编辑器hexedit(当然其他的也可 ...
- 《30天自制操作系统》学习笔记--Mac下工具的使用
现在来介绍官网上下的工具怎么用首先是官网地址,书上有个注释上有:hrb.osask.jp 翻译成中文大概是这个样子滴. 上面有两个文件可以下载,一个是工具,一个是工具的源代码,很好的学习资料 下面把工 ...
- 《30天自制操作系统》学习笔记--番外篇之Mac环境下的工具介绍
这几天又有点不务正业了,书也没看,一直在搞这个破环境,尝试各种做法,网上各种垃圾信息,浪费了很多时间,说的基本都是废话,不过还是找到了一些,赶紧写下来,不然这个过几天又忘了 首先是环境,我用的是Max ...
- 《30天自制操作系统》学习笔记--Mac环境搭建
弄了三天了,终于弄好了,先说结果,就是作者在网站上放了os x的工具(hrb.osask.jp,也有linux下的工具,可以自己去下载),也就是说我白忙活了三天... 再说一下这几天都干啥了,主要是想 ...
- LAMP开发之环境搭建(2014.12.7在ubuntu下)
Ubuntu下搭建LAMP环境 前言:学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP.WAMP.MAMP等.这里我搭建的是LAMP环境,即Linux.Apache ...
- 从你的u盘启动:30天自制操作系统第四天u盘启动学习笔记
暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078 ,更多学习中的问题.资料,群里分享 developing environment:ubuntu 关于u盘启动自己做的操 ...
- 30天自制操作系统第八天学习笔记(u盘软盘双启动版本)
暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078 ,更多学习中的问题.资料,群里分享 environment:开发环境:ubuntu 第八天的学习思考: 关于鼠标是怎么 ...
- 30天自制操作系统第九天学习笔记(u盘软盘双启动版本)
暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078 ,更多学习中的问题.资料,群里分享 environment:开发环境:ubuntu 第九天的课程已学完,确实有点不想写 ...
随机推荐
- H2 Database 支持数据类型
整数(INT) -2147483648 到 2147483647 java.lang.Integer 布尔型(BOOLEAN) TRUE 和 FALSE java.lang.Boolean 微整数(T ...
- 小贝_redis 高级应用-事务
redis高级应用-事务 一.redis的事务 二.redis实现事务 三.redis事务问题 一.redis的事务 事务提供了一种"将多个命令打包,然后一次性.按顺序地运行"的机 ...
- Android 绘制圆环
使用画圆弧的方式绘制圆环和进度条,使用sweepGradient进行渐变. 参考链接 http://blog.csdn.net/u011494050/article/details/39251239 ...
- TMS320C64x DSP L1 L2 Cache架构(1)——C64x Cache Architecture
[前沿]研究生阶段从事于DSP和FPGA技术的相关研究工作,学习并整理了大量的技术资料,包括TI公司的官方文档和网络上的详细笔记,花费了大量的时间和精力总结了前人的工作成果.无奈工作却从事于嵌入式技术 ...
- npoi导出excel_asp.net MVC
下载路径: http://files.cnblogs.com/files/gaocong/npoi_for_mysql_mvc.rar
- c#后台List转为js对象(在前台操作)
<!-- 用html标签防止html转义 (html.raw方法转双引号中的双引号时不会转义) --><input id="json" type="hi ...
- 自己开发iOS版按键精灵--TTouch
利用闲余时间,把之前的按键录制和播放整理了一些,开发了一个iOS版按键录制.播放的越狱APP,类似按键精灵.触动精灵等按键类的基本功能.脚本采用lua语法格式,可直接执行lua脚本,通过lua和obj ...
- hdu 2059:龟兔赛跑(动态规划 DP)
龟兔赛跑 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissi ...
- ActiveMQ搭建
下载 到ActiveMQ官网,找到下载点. 目前, 官网为http://activemq.apache.org/ Linux版本下载点之一为:http://apache.fayea.com/activ ...
- 如何用ChemFinder制作子表单
通过使用ChemFinder这一插件,用户可以建立自己的ChemFinder数据库,数据库是由表单集合而成,所以建立数据库的前提是要制作表单.在之前的教程中已经介绍了制作表单的方法,本节ChemDra ...