专注于操作系统内核的实现
发布时间:2014-10-04 16:34:23
从去年的10月到今年的10月一直在码书。现在书也写完了,是该重新拿出lmos的代码,码起了。在此之前,lmos虽然功能机制在一点点的实现,但一直都是黑乎乎的界面,看上去好像不怎么美,所以我决定写一个简单的图形系统玩玩,不能只精于内,还要美其外。 但是要.........
发布时间:2014-04-12 13:04:31
其实现在x86平台上成熟的引导程序很多,例如grub、grub2、grub4dos,grub4dos是基于grub,不过它可以直接被windows引导(ntldr、bootmgr)加载,然后它再去加载其它别的os。早期的的linux都用的grub,现代的linux用的都是grub2。
grub有个多引导协议,任何只要遵循这个协议的os都能被grub加载。然而lmos内核有点特别,它需要引导程序传递内存布局信息和初始化64位运行环境,还权加载一个简单的lmos应用——lmosinitshell,这些都让grub来做就有点困难了。于是我只是让grub加载一个文件,其它的自己来做。
由此诞生了lmos内核映像工具,lmos内核映像工具是一种类似文件打包工具,能将多个文件打包成一个文件,不同的是它有自动解包的功能,并且这个解包代码可以随时更换。lmos内核映像格式如下图所示。......
发布时间:2014-01-19 12:36:33
首先lmos没有死,只是我最近忙于写书,暂停了lmos的开发,然而在这过程中,又诞生了另一个操作系统——lmosem。从名字就能想到这是个嵌入式系统。当然写书之余,没有忘记lmos。不断的思考、寻找更为先进的算法、机制和模型。
lmos-00.07将有如下改进:
1. 更先进的内存管理,特别是大块连续内存的分配与释放,可以轻松获取、释放上gb的连续大块内存,我不会像xxxx公司牛吹的大,最后牛都吹炸了,还是什么都不是,到时大家亲自验证。
2. 更先进的驱动模型,我的驱动模型很简单、很奇怪,我采用了“一切皆为内存”的机制。这种机制可能世界上所有的os都没有用过。
3. 我在原有的代码基础上,重新设计一个全新的架构,这个架构主要加入了“子内核”的概念。
最后,还是那句话,我会以自由、实干、开放、平等的精神,和大家一起把lmos玩下去,记住我们不是为了商业利益,我们不需要和别人比性能、比安全、比实用、比用户,我们只是出于学习,出于过过瘾的目的,只要不放弃,把一个过过瘾的产物,做好,做强,也是一件伟大的事情。......
发布时间:2013-10-18 17:06:20
我最近在写一本关于操作系统的书,下面的章节原本是放在本书的开始, 后我感觉不好就扔了,今天把它帖到这里吧 你或许已经卷起了衣袖,或许在摩拳擦掌,正准备大干一场,打一场硬仗。年轻.........
发布时间:2013-07-31 15:14:11
自从我启动lmosem内核开发以来,已有两个多月了,lmosem内核是面向嵌入式平台的、开源的操作系统内核,其设计的标准和架构和lmos(面向x86-64通用平台的)完全不同。相比之下更为简单,同时也更为高效。 今天我就在此说说lmosem的设计.........
发布时间:2013-07-02 11:02:15
很多天没有写博客,一是因为没有时间,二还是因为没有时间,所以呢想写篇博文证明我还活着,lmos还活着…… 那么这些天我都干了些什么呢,第一我修证了lmos的一些问题,第二我又开始一个全新os旅程——lmosem,这个名字看起来和lmos差不多,但是.........
发布时间:2013-05-22 12:57:44
/*一个完整的lmos驱动框架,当然对于不同的设备,不必写出所有的分发函数,我这里
*是为了展示一个完整的驱动框架。每个驱动分发函数都是4个参数,后面两个不用管
*这个是为了以后扩展升级用的。当然对于x86上的主桥驱动来说,最最重要的只有两个
*分发函数,设备枚举函数,电源管理函数。对于分发函数用到的参数全部在ioinfo_t
*结构体中。当然我这个驱动什么也不能做。
*注意的是,lmos的驱动程序,一旦被装载,就是内核的一部分,和内核代码一起运行
*在cpu的最高特权级,可以访问所有的系统资源。就是说,你驱动程序的一点点错误都
*能导致机器崩溃,内核没有任何挽救措施。当然你的代码写不好但没有错误,这也许只
*会影响内核的执行性能。所以要明白的是,开发驱动就是开发内核,你的每行代码都至
*关重要。
*当然也不必紧张,lmos内核会提供一系列接口,比如同步原语,内存分配与释放,进程
*间数据的传输,设备的注册与撤销等……以最大可能保证驱动编写的正确性。让其只专注
*于设备部分。
*/
发布时间:2013-05-12 19:11:26
我不知道有多少人和我一样,写的第一个程序,就是那经典的:hello world。当时因为不知道为什么我一调用那个程序里的printf函数,计算机屏幕上就会出现hello world,所以就有了lmos,我想我现在大概知道是为什么了……drvstus_t hello(void* vp) //大家大可认为这是c 里的构造函数,只是这名字可以随便写.........
发布时间:2013-02-21 15:53:24
首先大家过年好,我也好久没有写博客了,几个月了吧,今天就来说说lmos的最新情况。春节期间也没什么进展。 这个最新特性要从我遇到的麻烦开始说起,什么麻烦呢?其实lmos00.04最主要是我写了个全新的内存管理器,包括虚拟内存。lmos的内核和进程.........
发布时间:2013-01-01 10:43:02
首先祝大家元旦快乐! 这个版本原本定于12月初发布的,但是由于“设备模型”工作量巨大,我一个人不可能这么快完成,就是今天也才完成了一小部分。我常常这样安慰自己,不要急,慢慢来,急也急不成啊,我可能是懒散惯了。但是一个人搞os真不那么容易的。虽然这次加入的新特性对于整个操作系统“进程”来说,只是一小步,但是对于我,对于我的lmos,却是一大步…… 我以前就说过操作系统一个重要的职责,那就是要以对计算机内的那些个杂七杂八的设备,进......
lmnos2016-03-24 13:33
jasonhegq:你的lmosem 系统在哪里下载? 然后我想借助你的系统学习一下源代码,我怎么能把你的系统在一个板子上运行起来呢?
谢谢!
在osc上?lmosem
|