Bran的内核开发指南_中文版】的更多相关文章

http://www.cnblogs.com/liloke/archive/2011/12/21/2296004.html 最近在看<orange’s>一书,有点想自己写一个轻量级OS的想法,设计和架构上会参照orang’s和Linux 0.11 kernel. 这个网站,上面的资料对于我这样的新手无疑是一份宝贵的财富啊.它详细介绍了内核程序必不可少的几大模块,并且对于每一个模块都有一些代码示例.看着文章代码,边做边学,真是一件愉快的事情 本来还想翻译成中文献给大家,不过google了一下,已…
准备工作   内核开发是编写代码以及调试各种系统组件的漫长过程.一开始这似乎是一个让人畏惧的任务,但是并不需要大量的工具集来编写自己的内核.这个内核开发教程主要涉及使用GRUB将内核加载到内存中.GRUB需要被定向到受保护的二进制镜像中,这个镜像就是我们将要构建的内核.   使用本教程,你至少需要具备C语言基础,并且强烈推荐了解x86汇编知识,它允许你操作处理器中特定的寄存器.所以你至少需要一个可以生成32位编码的编译器,一个32位的链接器和一个能生成32位x86的汇编器.   对于硬件,你必须…
介绍   内核开发不是件容易的事,这是对一个程序员编程能力的考验.开发内核其实就是开发一个能够与硬件交互和管理硬件的软件.内核也是一个操作系统的核心,是管理硬件资源的逻辑.   处理器或是CPU是内核需要管理的最重要的系统资源之一.内核对其的管理体现在:给特定操作分配时间,并允许在另一个调度事件发生时中断任务或进程.也就是多任务处理(multitasking).多任务处理的实现方式有: 协作式多任务处理(cooperative multitasking):当程序自身想要放弃处理下一个可执行进程或…
目录 创建main函数和链接C文件 PS: 下面是我自己写的 Win10安装gcc编译器 本节教程对应的Linux下的编译脚本 _main的问题 创建main函数和链接C文件   一般C语言使用main()函数作为程序的入口点, 为了符合我们平时的编程习惯, 这里我们也使用main()函数作为C代码的入口点, 并在"start.asm"文件中添加中断服务程序来调用C函数.   在这一节教程,我们将尝试创建一个"main.c"文件和一个包含常用函数原型的头文件&quo…
文章出自:http://sakyone.iteye.com/blog/524292 8.Application Attributes Application Attributes (应用程序属性)是和VelocityEngine 的运行时实例(Runtimeinstance)相关联的,名-值对(name-value pairs)格式的参数,可用来存运RuntimeInstance时的信息. 设计这个功能的目标是Velocity程序需要与应用层或用户定制部分(如日志,资源,装载器等)通信. The…
文章引自:http://sakyone.iteye.com/blog/524289 1.开始入门 Velocity是一基于java语言的模板引擎,使用这个简单.功能强大的开发工具,可以很容易的将数据对象灵活的与格式化文档组装到一起:希望本文能指引使用velocity在开发基于servlet或一般java应用程序的应用上快速起步. 1.Getting Started 取得Velocity并在你的机器上开始运行很容易,以下是全部详细的说明: 取得Velocity发布版本,go here. 目录及文件…
转载自cocoachina 本文由CocoaChina翻译组成员iBenjamin_Go和浅夏@旧时光翻译自苹果开发文档:HomeKit Developer Guide,敬请勘误. 本文档内容包括 第一部分:简介 第二部分:启用HomeKit 第三部分:创建Home布局 第四部分:创建Homes和添加Accessories 第五部分:观察HomeKit数据库的变化 第六部分:访问服务和特性 第七部分:测试HomeKitApp 第八部分:创建动作集(Action Sets)和触发器(Trigger…
全局描述符表(GDT)   在386平台各种保护措施中最重要的就是全局描述符表(GDT).GDT为内存的某些部分定义了基本的访问权限.我们可以使用GDT中的一个索引来生成段冲突异常, 让内核终止执行异常的进程.现代操作系统大多使用"分页"的内存模式来实现该功能, 它更具通用性和灵活性.GDT还定义了内存中的的某个部分是可执行程序还是实际的数据.GDT还可定义任务状态段(TSS).TSS一般在基于硬件的多任务处理中使用, 所以我们在此并不做讨论.需要注意的是TSS并不是启用多任务的唯一方…
打印到屏幕   现在, 我们需要尝试打印到屏幕上.为此, 我们需要管理屏幕滚动, 如果能允许使用不同的颜色就更好了.好在VGA视频卡为我们提供了一片内存空间, 允许同时写入属性字节和字符字节对, 可以更简单地在屏幕上显示信息.VGA控制器负责自动绘制屏幕上的更新.屏幕滚动由内核软件来管理.从技术上讲, 这将是我们写的第一个驱动程序.   如上所述, 文本空间只是我们地址空间的一块存储区域, 这片缓冲区位于物理内存的0xB800地址, 缓冲区的数据类型为"short"类型, 这意味着这片…
目录 内核初步 内核入口 链接脚本 汇编和链接 PS: 下面是我自己写的 64位Linux下的编译脚本 内核初步   在这节教程, 我们将深入研究一些汇编程序, 学习创建链接脚本的基础知识以及使用它的原因.最后, 我们将学习如何使用batch(批处理)文件自动汇编.编译和链接这个最基本的受保护模式下的内核.本教程假定你已经安装了NASM和GCC, 并且了解一点点x86汇编语言. 内核入口   内核的入口点是当引导程序(bootloader)调用内核时最先执行的代码段.这段代码一直以来几乎都是使用…