30天自制os的学习也告一段落,由于有其他更重要的事情要集中精力去处理。书本从15天開始就是多任务了。可是不得不停下一阵子。

以下总结下学习中遇到的一些问题。

1:学习这前14天中。问题最大的是关于GDT。IDT的理解,还有段的訪问长段,属性的理解。

2:这当中遇到的一个现象就是从qemu能够正常启动,可是写到u盘后。从u盘启动时,会不停的重新启动。能够推測到是由于产生了一些异常导致电脑重新启动,可是由于水平有限一直不知道为什么, 后来放下30天这本书。去看了一下,关于GDT的訪问属性的问题,发现出现故障的原因例如以下:

  1. 段的分页位没有开,导致从段基址開始,能訪问的空间仅仅有1MB的范围,而博主写的代码与日本作者的有些不同。跳转到c语言写的代码指令已经超过了2MB。
  2. 日本作者的代码在初始化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 的学习计划的更多相关文章

  1. ubuntu下30天自制操作系统还在继续学习中

    操作系统还在学习中,进度不是非常确定,近期学习到了第13天的中部,由于把ucgui移植上去花了一点时间. 同一时候为了方便代码的兴许管理和分享,也为了学习github的代码管理使用思想, 所以建立了一 ...

  2. 30天自制OS(linux环境)-day1

    30天自制OS(linux环境)--第一天 我是在CentOS的环境上面实现的,使用ubuntu的环境也是类似的 第一步:因为要对二进制文件进行编辑,所以安装二进制编辑器hexedit(当然其他的也可 ...

  3. 《30天自制操作系统》学习笔记--Mac下工具的使用

    现在来介绍官网上下的工具怎么用首先是官网地址,书上有个注释上有:hrb.osask.jp 翻译成中文大概是这个样子滴. 上面有两个文件可以下载,一个是工具,一个是工具的源代码,很好的学习资料 下面把工 ...

  4. 《30天自制操作系统》学习笔记--番外篇之Mac环境下的工具介绍

    这几天又有点不务正业了,书也没看,一直在搞这个破环境,尝试各种做法,网上各种垃圾信息,浪费了很多时间,说的基本都是废话,不过还是找到了一些,赶紧写下来,不然这个过几天又忘了 首先是环境,我用的是Max ...

  5. 《30天自制操作系统》学习笔记--Mac环境搭建

    弄了三天了,终于弄好了,先说结果,就是作者在网站上放了os x的工具(hrb.osask.jp,也有linux下的工具,可以自己去下载),也就是说我白忙活了三天... 再说一下这几天都干啥了,主要是想 ...

  6. LAMP开发之环境搭建(2014.12.7在ubuntu下)

    Ubuntu下搭建LAMP环境 前言:学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP.WAMP.MAMP等.这里我搭建的是LAMP环境,即Linux.Apache ...

  7. 从你的u盘启动:30天自制操作系统第四天u盘启动学习笔记

    暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078    ,更多学习中的问题.资料,群里分享 developing environment:ubuntu 关于u盘启动自己做的操 ...

  8. 30天自制操作系统第八天学习笔记(u盘软盘双启动版本)

    暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078    ,更多学习中的问题.资料,群里分享 environment:开发环境:ubuntu 第八天的学习思考: 关于鼠标是怎么 ...

  9. 30天自制操作系统第九天学习笔记(u盘软盘双启动版本)

    暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078    ,更多学习中的问题.资料,群里分享 environment:开发环境:ubuntu 第九天的课程已学完,确实有点不想写 ...

随机推荐

  1. shell中日期操作

    1. date -d操作 date +"%Y%m%d" -d "+n days" #今天的后n天日期 date +"%Y%m%d" -d & ...

  2. 多个 label checkbox 组合 显示在同一个水平线上[前提Bootstrap框架]

    <th align="left" valign="middle"> <label class="checkbox inline fo ...

  3. SSIS 自测题-文件操作类

    说明:以下是自己的理解答案,不是标准的答案,如有不妥烦请指出.         有些题目暂时没有答案,有知道的请留言,互相学习,一起进步. 1.什么是控制流,什么是数据流,控制流和数据流之间的关系是什 ...

  4. JQueryEasyUI-DataGrid显示数据,条件查询,排序及分页

    <html><head>    <title></title>    <script src="/jquery-easyui-1.3.4 ...

  5. Swing与AWT在事件模型处理上是一致的

    Swing与AWT在事件模型处理上是一致的. Jframe实际上是一堆窗体的叠加. Swing比AWT更加复杂且灵活. 在JDK1.4中,给JFRAME添加Button不可用jf.add(b).而是使 ...

  6. sublime text 2安装Emment插件

    写个自己看的 1. 命令行模式 ctrl+` 可以调出命令行模式(view->show console),主要支持python语法等,没试用过只知 quit()可以退出 ..不过sublime的 ...

  7. Red Hat系统安装Redis

    环境 RHLinux-6.4-64-EN, 红帽6.4 64位,英文正式公布版 安装 安装非常easy,先下载redis的压缩包,下载地址见这里.然后复制到你的linux机器.接着运行以下的命令. 1 ...

  8. 数据库已有时间索引,想再添加ID索引

    将时间索引的代码复制进去后,将编辑框的变量改为m_QueryID. 准备先以时间索引查找出大概数据,再直接使用ID索引精确查找. 于是想直接精确查ID为105的数据信息. 出现错误: 发现错误原因是忘 ...

  9. v8随心记

    因为node原因,研究v8已经有段时间了,但是一直也没有抽空写点什么,现在想想有好多当时清晰的东西又模糊了.哎,伤心的很啊.但是一时又想不起什么章法,所以只能随手胡乱写了. 下载.编译: https: ...

  10. Axure 8 注册码,市面上很多注册码都不行用,但是这个可以。

    找了很久了,感谢@Quan-Sunny的转载 Licensee: University of Science and Technology of China (CLASSROOM) Key: DTXR ...