摘要: 这一节,我们来真正的读取文件中的内容到内存中,首先来看一下内存布局是什么样的,如下所示: Boot占用了512字节,Fat Table占用了4KB,而真正的文件中的内容,我们把它存在0x9000开始的内存地址处。 加载文件内容的过程如下: 实验步骤如下: 1、在虚拟软盘中创建体积较大的文本文件,使之 阅读全文
posted @ 2018-06-30 08:55 周伯通789 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 上一节我们进行了文件的查找实验,文件查找成功了,这一节,我们将文件的内容加载进内存,再一次将整体的流程给出如下: 读取文件的内容时,我们需要根据FAT表找到存储文件内容的每一个扇区,然后进行内容的读取,在上一节中,我们将整个目录区的内容加载到了内存并根据文件名找到了所在的目录项,为了节省内存,我们将 阅读全文
posted @ 2018-06-29 19:32 周伯通789 阅读(767) 评论(0) 推荐(0) 编辑
摘要: 上一节我们写了字符串打印的函数和软盘读取函数,在软盘读取函数中,我们是直接给定了要读的逻辑扇区号,这一节我们来实现一个查找文件的功能,也就是根据给定的文件名,在根目录区中查找指定的文件是否存在,涉及到文件名的查找,就会涉及到内存的比较,因此,我们需要实现两个函数,分别为内存比较函数和根目录区查找函数 阅读全文
posted @ 2018-06-27 19:42 周伯通789 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 前几节我们介绍了FAT12文件系统,制作了虚拟软盘文件a.img,并在Qt Creater中进行了文件内容的读取实验。那些读取都是使用外部的程序实现的,实际应用中,我们需要用主引导程序来实现文件的读写,主引导程序存在于主引导扇区MBR中,也就是说程序和文件是存在一张盘上的,而且这些主引导程序需要使用 阅读全文
posted @ 2018-06-25 22:15 周伯通789 阅读(758) 评论(0) 推荐(0) 编辑
摘要: 在上一节中,我们成功的将虚拟软盘进行了格式化,而且将文件存入其中,那么如何在根目录区中查找文件呢?为了方便起见,再次给出FAT12文件系统的格式,如下所示: 在FAT12文件系统中,一簇包含一个扇区。从上图可见,目录文件项的偏移为19个扇区,其本身大小占用了14个扇区。根目录区中是一个一个的目录项, 阅读全文
posted @ 2018-06-24 20:25 周伯通789 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 1.malloc,free, printf均是不可重入函数(意味不能在中断函数或信号处理函数同时调用),但是线程安全函数(意味它可以被多个线程调用) 2.函数有static变量或者全局变量,则该函数是不可重入函数 满足下面条件之一的多数是不可重入函数: (1)使用了静态数据结构或者全局变量; (2) 阅读全文
posted @ 2018-06-22 23:33 周伯通789 阅读(1421) 评论(0) 推荐(0) 编辑
摘要: 算法工程师(CTR,推荐相关)。 记录一些面试过程中遇到的题目,希望对有需要的人有所帮助。 1.介绍一下:logistic regression,svm,gbdt,randomforest,xgboost,lightgbm(一般根据简历有针对性的问) 2.为什么用线性回归做分类效果不好 3.比较一下 阅读全文
posted @ 2018-06-22 23:33 周伯通789 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 先存着,更多内容待续。。。 阅读全文
posted @ 2018-06-22 23:31 周伯通789 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 我们知道主引导程序只能存在第一扇区中,而BIOS只会将第一扇区拷贝到内存执行,第一扇区之后的程序是不会被BIOS加载到内存中的,而这512字节的程序不可能完成整个操作系统的功能,因此,我们要突破这种限制。 这512字节只能完成最基本的功能,我们这样来规划它的功能: 1、首先完成最基本的初始化; 2、 阅读全文
posted @ 2018-06-22 23:30 周伯通789 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 前面我们讲解了主引导程序的加载过程,并且制作了虚拟软盘a.img,最终这个主引导程序也在机器中成功运行了,但是实际开发的时候,并不会如此简单,免不了调试过程,如果还像上一节中直接将软盘放到机器中去加载的话是没有办法进行调试的,因此,我们需要一款调试工具bochs,bochs是一款x86模拟器,支持断 阅读全文
posted @ 2018-06-21 21:13 周伯通789 阅读(723) 评论(0) 推荐(0) 编辑