摘要: Lab 1 Part 2 The Boot Loader Loading the Kernel 我们现在可以进一步的讨论一下boot loader中的C语言的部分,即boot/main.c。但是在我们分析之前,我们应该先回顾一些关于C语言的基础知识。 Exercise 4: 阅读关于C语言的指针部分 阅读全文
posted @ 2016-02-26 12:58 fatsheep9146 阅读(4015) 评论(1) 推荐(1) 编辑
摘要: Lab 1 Exercise 4 阅读关于C语言的指针部分的知识。最好的参考书自然是"The C Programming Language"。 阅读5.1到5.5节。然后下载pointers.c的代码,并且编译运行它,确保你理解在屏幕上打印出来的所有的值是怎么来的。尤其要重点理解第1行,第6行的指针 阅读全文
posted @ 2016-02-26 12:58 fatsheep9146 阅读(2539) 评论(1) 推荐(3) 编辑
摘要: Lab 1 Exercise 5 再一次追踪一下boot loader的一开始的几句指令,找到第一条满足如下条件的指令处: 当我修改了boot loader的链接地址,这个指令就会出现错误。 找到这样的指令后,把boot loader的链接地址修改一下,我们要在boot/Makefrag文件中修改它 阅读全文
posted @ 2016-02-26 12:58 fatsheep9146 阅读(3832) 评论(1) 推荐(5) 编辑
摘要: Lab 1 Exercise 3 设置一个断点在地址0x7c00处,这是boot sector被加载的位置。然后让程序继续运行直到这个断点。跟踪/boot/boot.S文件的每一条指令,同时使用boot.S文件和系统为你反汇编出来的文件obj/boot/boot.asm。你也可以使用GDB的x/i指 阅读全文
posted @ 2016-02-25 13:00 fatsheep9146 阅读(11326) 评论(7) 推荐(4) 编辑
摘要: Part 2: The Boot Loader 对于PC来说,软盘,硬盘都可以被划分为一个个大小为512字节的区域,叫做扇区。一个扇区是一次磁盘操作的最小粒度。每一次读取或者写入操作都必须是一个或多个扇区。如果一个磁盘是可以被用来启动操作系统的,就把这个磁盘的第一个扇区叫做启动扇区。这一部分介绍的b 阅读全文
posted @ 2016-02-25 12:59 fatsheep9146 阅读(5208) 评论(0) 推荐(0) 编辑
摘要: 集合类是Java编程中经常会用到的一类常用类库,在这里将会对整个集合类进行介绍: Collection接口: Collection接口是所有集合类的根接口,代表了所有含有多个元素的集合,无论这个集合中是否有重复元素,元素是否有序。所有我们经常使用的一些集合类,比如ArrayList,LinkedLi 阅读全文
posted @ 2016-02-18 20:23 fatsheep9146 阅读(447) 评论(0) 推荐(0) 编辑
摘要: hashCode()方法基本实现 hashCode方法是Java的Object类所定义的几个基本方法之一。我们可以深入到Object类的源码中去查看: public native int hashCode(); 其中native关键字表明这个函数是由非java语言来实现的,这个函数的功能就是返... 阅读全文
posted @ 2016-01-26 12:55 fatsheep9146 阅读(1062) 评论(0) 推荐(0) 编辑
摘要: 基本类型的包装类简介 通常来说我们在程序中经常会使用元类型,比如 int data = 1; float data = 2.1F; 但是在有些场景中不能直接使用元类型,比如如果我们想要建立一个int类型的ArrayList,你就不可以直接写做: ArrayList 因为Arr... 阅读全文
posted @ 2016-01-20 08:57 fatsheep9146 阅读(2005) 评论(0) 推荐(0) 编辑
摘要: 在我们阅读boot loader代码时,遇到了两个非常重要的概念,实模式(real mode)和保护模式(protected mode)。 首先我们要知道这两种模式都是CPU的工作模式,实模式是早期CPU运行的工作模式,而保护模式则是现代CPU运行的模式。 但是为什么现代CPU在运行boot... 阅读全文
posted @ 2016-01-09 14:49 fatsheep9146 阅读(7650) 评论(1) 推荐(6) 编辑
摘要: 这篇博文是对Lab 1中的Exercise 2的解答~ Lab 1 Exercise 2: 使用GDB的'si'命令,去追踪ROM BIOS几条指令,并且试图去猜测,它是在做什么。但是不需要把每个细节都弄清楚。 答: 在这里我们将尽可能的去分析每一条指令,由于题目中说我们只需要知道BIOS的几条指令 阅读全文
posted @ 2015-12-26 16:10 fatsheep9146 阅读(10773) 评论(10) 推荐(5) 编辑