Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1151757
  • 博文数量: 53
  • 博客积分: 1165
  • 博客等级: 下士
  • 技术积分: 1811
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-19 14:56
个人简介

专注于操作系统内核的实现

文章分类
文章存档

2015年(2)

2014年(16)

2013年(18)

2012年(17)

分类: LINUX

2012-09-30 23:57:39

        从2007年开始接触计算机的我,一转眼5年过去了,光阴似箭,但一心要究其计算机之原委,研其之本质。由于本人天资愚钝,数年过去,一无所成。然,本性固执,终于在2011年10月下旬开始了自主操作系统的旅程,一路走来,此中艰辛,自是不必提及。那固执的坚持终究还是让我的OS内核成一雏形。风风火火的赶了差不多一年的路,是该停下了来歇歇脚了。于是有了这第一版的发布,这第一版极其简陋,所以心有顾及,怕贻笑大方,但大凡世间万事,不能一蹴而就。每种设计、每种算法、每个数据结构、每一行代码,都亲自编码,亲自优化,亲自测试,点点滴滴都了然于心。想到这里也就心无顾及了。
      由于从设计到实现都是从“0”到“1”的过程,并以现存任何操作系统无近亲关系。所以我用了
liberty的第一个字母L,代表自主、自由,加上一个人写操作系统内核实属疯狂之举。所以我用了
madness的第一个字母M,合起来就叫LMOS。
      LMOS是一个多任务的全32位的操作系统内核,不是完整的操作系统。在次重申。LMOS是运行在x86架构的多进程、多线程的操作系统内核。包含现代意义操作系统内核的所有特性,只是它还很简单,很年轻。

关于LMOS特性
      多进程,多线程:
      在LMOS中进程是线程运行资源的容器。在这个容器中LMOS维护6种不同状态的线程队列,还包含了这这些线程运行时所需的资源,比如所有线程共同的虚拟内存空间,打开的文件数等等……而每个线程,LMOS则为其维护其自身的内核栈、机器上下文等……LMOS内核调度的基本单元是线程。每个进程又可能在8个CPU核之间迁移。LMOS是支持多CPU的系统。LMOS原生支持内核级抢占,但这个版本不会包含此特性,由于代码稳定程度不够,所以内核运行时不会启用此特性。
      物理内存管理特性:
      32位系统物理内存最多可管理4GB,LMOS物理内存管理器综合了储存节点、内存区间、伙伴系统、内存物理页面,每个储存节点支持多个内存区间,每个内存区间上建立了伙伴系统,用伙伴系统管理一个内存区间的若干个物理内存页面。对于小于一个页面大小的内核对象则采用先进的内存池技术对其管理。LMOS的内存池管理器还综合了CPU高速缓存的特性。储存节点的引入是为了对付非一致性内存。要说明一点的是,LMOS暂时是基于x86CPU标准分页系统,暂时没有启用x86MMU扩展分页特性,比如36根物理地址线这样的特性,以后会支持的。这样的物理内存管理器非常健壮、高效。
      IO管理特性:
      IO管理器是一层次化的子系统,细分为接口层、通用层、文件系统层,高速缓存层、驱动程序层、物理硬件层。接口层:祥细定义上层标准一致接口,和应用程序进行通信。通用层:定义了文件系统层的编写规范,只要符合些规范的文件系统模块,都可以加载进通用层管理器中,通用层的上层和接口层通信,下层和各种文件系统通信。 文件系统层:文件系统层可以实现各种各样的文件系统。它们从高速缓存中得到数据并加于处理。高速缓存层:高速缓存管理器在内存中分配一大块内存空间,用于缓存各种设备的数据。高速缓存层的上层和文件系统层通信,下层和各种设备驱动程序通信。驱动层提供各种物理设备的操作机制。物理硬件层用于管理物理设备对象,和驱动层交互。
      由于LMOS内核很年轻,大家不要期望有太多的特性。但我承诺一定会不断更新维护。直到她可以实际应用。
      由于LMOS尚未开源,所以大家不要以任何手段及逆向工程,研究其实现细节。因此而产生的法律问题及一切后果,大家自己负责。我向大家保证,开源一事,我一定会认真考虑的。

安装测试
      安装测试有两种方式,大家可以任选其一:
      (1)虚拟机中安装。
      (2)物理机中安装。
      虚拟机中安装,我推荐大家使用这种方式,这样既不需要另的一块空硬盘,也不需要大家的宿主操作系统是LINUX。大家首先确保你的宿主操作系统中安装有Oracle VM VirtualBox 虚拟机软件。如果没有请大家自行下载相关操作系统版本的Oracle VM VirtualBox并安好。安装好后,先新建个虚拟机,然后下载()本人提供的虚拟机硬盘镜像。并挂载在虚拟机上,启动虚拟机即可运行LMOS。由于本人提供的是VDI格式的硬盘镜像,所以大家必须安装Oracle VM VirtualBox虚拟机。
      物理机中安装,非专业人士不推荐使用。首先大家找一块空白硬盘,我用的一块160GB的希捷硬盘。本人严重提醒,请大家确保,请大家在次确保,这块硬盘中没任何重要数据,LMOS会清除这块硬盘上的分区表和所有数据。请大家务必注意!!!!大家把这块硬盘连接在计算机主板上的SATA接口(一搬主板最少有两个SATA接口)。接好之后,这时你的计算机上一定了两块硬盘,并且是这样的,一块空白硬盘用于测试,一块硬盘中安装有linux操作系统并且能启动运行你的计算机。这一切准备好之后,就启动你的另一块硬盘上的linux操作系统。linux系统启动之后在 /dev/sd(x) 这个“x”代表a、b,例如你的计算机中有两硬盘的化,你一定能发现 /dev/sda ,/dev/sdb,这两个分别代表两块硬盘的设备文件。到这里一切正常的化,大家就可以下载()本人提供的内核文件包,解压后会得到4个文件:lmhdboot.bin、lmosldr.bin、lmoskrnl.bin、Makefile。然后打开Makefile文件,按照文件中的注释说明,根据自己的计算机硬件环境,修改相关的参数宏。然后保存Makefile文件。确保这连串的操作没有任何差错之后,执行make命令。执行成功之后,请重启计算机进入BIOS设置从先前连接的那块空白硬盘最先启动就OK了。
      最后说句大话,大家不要见笑:弘扬民族基础软件产业,从大家开始,也从我开始!!

LMOS下载地址:
      。
      。
阅读(15892) | 评论(40) | 转发(3) |
给主人留下些什么吧!~~

lmnos2012-11-01 00:55:48

blacksapper: 没。你的文章中说5年写出操作系统。向你学习啊。我弄安全的。
本科的时候学OS疯狂的背。挺喜欢这个。.....
其实真正写代码是去年十月中旬开始的

blacksapper2012-10-31 22:48:03

没。你的文章中说5年写出操作系统。向你学习啊。我弄安全的。
本科的时候学OS疯狂的背。挺喜欢这个。

lmnos2012-10-31 08:58:35

blacksapper: 加油。说来惭愧。06年大一。我的还遥遥无期呢。希望多共享思想。.....
谢谢。你也写OS内核?,其实操作系统并没有那么吓人……明天我会发布LMOS-00.02版

blacksapper2012-10-30 23:54:26

加油。说来惭愧。06年大一。我的还遥遥无期呢。希望多共享思想。

lmnos2012-10-22 15:07:32

dqd7411: 专程来顶博主,希望博主能发挥该OS的靓点和特性,并希望开设开源社区.....
谢谢,您的关注和建立