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. Unity3D 5.0版本+注册工具分享

    Unity3D引擎5.0正式版本发布也有一段时间了.笔者今天下载了新版本顺便分享一下资源. 主要有两个资源,一个是5.0f4的官方客户端,另外一个是vs的调试插件.有需要的盆友就拿去.都在下面的连接地 ...

  2. 数论 + 容斥 - HDU 1695 GCD

    problem's Link mean 给定五个数a,b,c,d,k,从1~a中选一个数x,1~b中选一个数y,使得gcd(x,y)=k. 求满足条件的pair(x,y)数. analyse 由于b, ...

  3. 求逆元 - HNU 13412 Cookie Counter

    Cookie Counter Problem's Link: http://acm.hnu.cn/online/?action=problem&type=show&id=13412&a ...

  4. Thymeleaf 3.0.9.RELEASE is the current stable version. It requires Java SE 6 or newer.

    Thymeleaf 3.0.9.RELEASE is the current stable version. It requires Java SE 6 or newer. Release date: ...

  5. 在MVC设计模式中,JavaBean的作用是。(选择1项)

    A.Controller B.Model C.业务数据的封装 D.View 解答:B

  6. (转)内核container_of(ptr,type,member) 解析

     container_of(ptr,type,member) 用于在已知结构体里面成员member和该成员指针ptr(就是地址)和结构体类型type, 返回该成员所在的结构体的指针(就是地址), 例如 ...

  7. mysql查询各种类型的前N条记录

    mysql查询各种类型的前N条记录,将3改为N(需查询条数)即可  (select * from event_info where event_type = 1  limit 3)union all( ...

  8. C++之函数模板

    C++之函数模板与模版函数 直接上代码:  C++ Code  12345678910111213141516171819202122232425262728293031323334353637383 ...

  9. jboss6.4 域模式自动部署

    1.通过jenkins传递部署包到服务器,调用自动部署shell完成jboss6.4的域模式部署: 2.自动部署shell如下: 完成部署包重命名(从jenkins过来的包可能没有改名:). 调用jb ...

  10. 20 个常用的 CSS 技巧

    1. 黑白图像 这段代码会让你的彩色照片显示为黑白照片,是不是很酷? img.desaturate {    filter: grayscale(100%);    -webkit-filter: g ...