30天自制操作系统 笔记
非主流科学家
爱好:图像处理,机器学习
展开
-
《30天自制操作系统》学习笔记--第11天
今天的主要内容是屏幕刷时的闪烁问题,和定时器的小部分内容。 首先说明定时器应该是系统重要部分,所以明天会好好记录一下计时器的心得。 关于屏幕刷新时闪烁,这个之前也遇到过(之前做单片机数据绘图时,因为单位时间数据量很大,一直刷新画面就会导致波形图闪烁,而解决这个问题的方法是使用双缓存技术),而这次不同的是如果系统桌面都闪烁,就没人会使用我们的系统了。。所以问题很严重,原创 2013-12-03 14:06:53 · 1339 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第12天
昨天一直在搭建环境,想在mac下实现书上制作镜像和编译连接相关文件的功能,无奈,弄了一天还是不太好用,看到另外一个微博上的童鞋用Linux完成了相关操作,想试一下,但os x上没有objcopy等命令,而且gcc好像也是改版的,而且现在被我折腾的连命令行下使用command line tools 都有问题,所以,我还是回来把笔记补上。一会儿再去弄,争取放假之前能把环境搞定,这样寒假就可以专心研制自原创 2013-12-05 19:00:41 · 1708 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--Mac下工具的使用
现在来介绍官网上下的工具怎么用首先是官网地址,书上有个注释上有:hrb.osask.jp翻译成中文大概是这个样子滴。上面有两个文件可以下载,一个是工具,一个是工具的源代码,很好的学习资料下面把工具复制出来看到很多可执行文件。。感觉好舒服。。然后把我们随便一个project复制到z_tools的同级目录下project的内容可以修改,因为批处理可以下岗了:原创 2013-12-13 14:42:56 · 4135 阅读 · 3 评论 -
《30天自制操作系统》学习笔记--Mac环境搭建
弄了三天了,终于弄好了,先说结果,就是作者在网站上放了os x的工具(hrb.osask.jp,也有linux下的工具,可以自己去下载),也就是说我白忙活了三天。。。 再说一下这几天都干啥了,主要是想把c语言和nasm汇编连在一起。这个很多人都做过,但在网上现有的资料很少有在os X上做的的,也或者做了大家都没人说。。。。先贴代码:extern void swap(int原创 2013-12-13 14:20:34 · 4607 阅读 · 3 评论 -
《30天自制操作系统》学习笔记--第14天
高分辨率,这个是个必须要说的话题,因为好像没有啥电脑显示器用320*200的分辨率了,所以提高分辨率势在必行。。哈哈 一个重要的操作就是查询VBE 中断编号 0x10 参数ES:DI指向的地址将会被VBE的内容覆盖 参数AX存储一个返回值,如果是0x004f就是有VBE不是这个值,就意味着VBE不可用 画面原创 2013-12-16 15:21:38 · 1324 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第13天
感觉这两天的内容差不过。 首先是FIFO缓冲区的一个通用化,这样就相当于在一个队列里面加入了很多中断处理收到的数据,CPU可以根据自己的节奏一个一个来处理,包括鼠标,键盘,定时器,以后还有可能是其他的设备,这样做的好处就是先后顺序很明确,谁先来就先处理谁,如果有多个缓冲区就无法确定哪个应该先处理,哪个应该暂时等待,而且这样设计更有利于编写程序,一举多得。 接着就是比原创 2013-12-16 14:57:22 · 1393 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第15天
今天的内容是多任务,所谓多任务就是“同时”执行多个任务,作者写的是在单核cpu上轮流执行多个任务,在短时间进行各种切换,但是实际上还是串联的,虽然表面上看的是同时执行,不知道现在的多核处理器是如何完成多任务的,我一会儿google一下,写出来,应该有很些不同。 先说今天的内容,对于任务切换,处理器是有代价的,也就是说,切来切去是要消耗时钟周期的,例如如果切换一次需要消耗额外的1s原创 2013-12-17 15:20:32 · 1563 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第16天
今天是多任务第二讲,比昨天的层次更高,更加接近实际使用的设计。 首先是任务的自动化,所谓任务就是正在执行的程序,程序成千上万,可以自己随意安装,所以,管理就不能靠人工修改代码,而要自动管理,自动分配空间,自动注册相关设置,所以就要建立一个结构体来管理众多任务,记录当前任务的信息。 任务的休眠,有些任务需要等待数据,或者等待中断程序,等待的时候CPU等就会跟着闲着原创 2013-12-19 14:51:00 · 1535 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--番外篇之Mac环境下的工具介绍
这几天又有点不务正业了,书也没看,一直在搞这个破环境,尝试各种做法,网上各种垃圾信息,浪费了很多时间,说的基本都是废话,不过还是找到了一些,赶紧写下来,不然这个过几天又忘了 首先是环境,我用的是Max os Maverick 64,就是10.9,硬件(有点低0.0,对于小菜的我已经完全够用啦): 10.9刚发布,新出来的东西总问题一大堆,然后解决办法没几原创 2013-12-09 20:20:29 · 3266 阅读 · 3 评论 -
《30天自制操作系统》学习笔记--第10天
内存管理和叠加处理 今天的代码比较多,对于写过程序的人来说应该还是比较容易看懂的。 首先说的内存管理,昨天说道把很多内存分成0x1000字节大小的块,然后分配给程序使用,但是不一定所有的程序用到的都是0x1000的整数倍字节,所以就要设计一个取整的方法,就有了书中提到的聪明做法(size+0xfff)&0xfffff000;这个做法或者称为算法的正确性证明很简单,带原创 2013-12-02 13:42:06 · 1582 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第9天
今天的内容是内存管理。 对于一个系统来说,资源是最重要的,管理资源应该说就像计划你口袋里面的钱怎么花一样(不太准确。。但是重要性是相似的)。 首先是检查内存大小,BIOS应该是提供内存大小检查功能的,但是不同的BIOS查找内存大小的方式不同,所以我们应该以一种更为通用的方法进行,以获得更好的系统兼容性,而且现在的CPU都配有各种告诉缓存,一级,二级,三级。。。原创 2013-12-01 13:47:13 · 1469 阅读 · 2 评论 -
《30天自制操作系统》学习笔记--第0天
好吧,我承认我我还没有拿到书,之前看于渊的书只看到第三章,没做下去,原因是好多软件用到的和目前的软件版本都差很多,书上的操作都不适用,还有比如,要用软盘,说实话,现在的小孩都不知道软盘是什么,所以要解决一下,看看能不能用u盘或者虚拟软件代替一下。要不去淘宝一个软驱。。。感觉带着出去太不方便。 至于环境选择,现在手中有三个可用电脑,一台Y460,系统win7_64,一台IBM x6原创 2013-11-22 23:20:18 · 1739 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第3天
其实还是前五天的,现在继续说,原创 2013-11-27 18:20:31 · 1677 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第5天
GDT和IDT 全局描述表(GDT ,Global Descriptor Table):首先看到全局说明这货很重要,应该是掌握了一些,其次这个表是个数组,所以,这是一个重要的数据结构。 GDT数组中装的是段描述符[段地址,段的最大长度,访问权限]。因为这个描述符太大了,没有这么大的寄存器(64位),所以就把这个描述符放在内存里,成为了重要的GDT,intel的大叔们原创 2013-11-27 20:12:02 · 1516 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第4天
第四天,写一下c语言调用汇编写的函数。其实我们可以把这些在完成操作系统编写时写的函数称为库函数(注意:不是标准库函数),但是c在调用库函数(普通函数),压栈的顺序是从右向左的,这个是肯定,所以,参数出栈的时候先出来的是后面的参数,明白了这个问题,就很好理解io_out()函数出栈和参数的使用原创 2013-11-27 19:07:10 · 1598 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第6天
中断处理 我感觉中断处理应该是系统底层设计的关键,因为这是在控制硬件,和给c提供接口,如果接口搞不好,一路兵败如山倒。。。 分割编译其实就是c语言初等知识,就是别写的太乱,每个文件放不同的东西,头文件加以说明和声明,以及一些宏定义或者什么的,可以去查查相关c语言的资料。 今天让我纠结了一下午的东西在p113,也就是调整栈,来组合出GDTR的48位数原创 2013-11-28 16:20:13 · 1485 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第1天
书还没到,先装了个虚拟机用来跑代码,最后装到ThinkPad x60上,在mac上安装了virtualbox 感觉挺好用的,装了个windows 2000,这个系统比较早,是windows nt系列的一个版本镜像下载时发现了一个不错的网站:msdn.itellyou.cn上面有各种版本的系统和工具,一会儿去取书。学习其中的内容,完成大学的最后一个梦想。原创 2013-11-25 14:13:47 · 1957 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第2天
昨天一天看了5天内容,把觉得有些可能不好理解的写下来,内容不分先后,感觉作者写的通俗易懂,而且代码以及工具在xp下运行流畅,根本不需要软盘,直接在工具提供的虚拟机上跑就可以,下面来描述下昨天的学习心得和问题0.0。 首先是内存,对内存的管理是至关重要的,所以我们应该先了解一下内存的具体分布: 这个图是我找的,如果有打错的地方或者有什么变动,请留言,不胜感激。原创 2013-11-27 16:55:56 · 2468 阅读 · 2 评论 -
《30天自制操作系统》学习笔记--第7天
今天看的还是比较顺利,很快一天的就看完了,总结一下今天的主要知识。 首先是中断处理程序,中断处理程序尽量高效,短小精悍,所以像显示啊什么的操作尽量不再中断处理程序中出现,因为一旦进入中断处理程序,其他中断将会被屏蔽,因为如果不屏蔽就会出现乱套的现象,一个中断还没完另一个已经来了,你说你干不干,干哪个,所以,尽量减少中断处理时间,这样就可以减小中断同时发生而后发生的没办法处理的现象,原创 2013-11-29 13:23:31 · 1569 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第8天
今天看的有点纠结,因为竟然看困了很少有这种情况,主要是有好多东西作者并没有做深入介绍,只是说这样是对的,至于为啥这样以后再说,这让我感觉很不爽。具体来说说。 首先,先解决了鼠标运动的问题,我感觉这个不是什么大问题,只是读取书去那需要点小技巧,就是验证数据的有效性,以前用单片机发送串口数据时也用到过类似的做法,作者提出的是检查第一个字的低八位以及高两位,如果高两位是0,而低八位是8,原创 2013-11-30 15:44:51 · 1950 阅读 · 0 评论 -
《30天自制操作系统》学习笔记--第好多天
之前看《30天自制操作系统》,参考而成,和书中系统并不完全一致,是在原有基础上按照自己的习惯而成,由于水平和工作原因,未完成内存管理和文件系统,有兴趣者可以通过以下网址https://github.com/TonyTan1991/Jupiter,欢迎留言,欢迎参与项目并改进。 因想寻求图像处理的工作,接下来将开始写作图像处理类博客,内容包括算法原理,实现,OpenCV实现等,欢迎关原创 2014-09-14 22:56:15 · 1837 阅读 · 1 评论