我想写这样一个操作系统,请各位多给些建议或批评

 
  很多人都想写一个所谓“自己的”、“简单的”操作系统,当通过学习、钻研完成了引导与启动、进程管理、文件系统、操作界面等几个最基本的组成部分之后,下一步该怎么走呢?可以说要重现Linux的神话几乎是不可能的,重走linux的路开发一个与之相似的系统的确没有什么意义,而凭一已之力面对当前浩繁的硬件开发出支持当前众多硬件的驱动也是完全不可能的。此时的境况是:可用性比不上linux,易用性比不上windows等商用系统,性能比不上UNIX类系统,可以说此时你的OS将是一个鸡肋,唯一的作用就是在整个过程中将学到很多有用的东西,或者说是一种技术积累,仅此而以。(当然,这些纯属个人观点,并无诋毁当前从多了mini OS之意,呵呵)。
  基于以上考虑,引出了我的以下思考:
  1 操作系统DIY的目的性问题。如果仅是为了好玩或者学东西而开发这样一个系统,无可非议,否则,其它目标将难以实现。
  2 很多问题如果在项目启动之初就定位准确,比到后来遇到问题时再解决要省事得多,代价要小得多(这也是一条事物发展的基本规律)
  因此,我想这样定位我的操作系统:
  1 目的与用途:除个人学习、技术积累外,系统将定位于嵌入式系统,并跨多平台。由于嵌入式系统的硬件条件、功耗、可靠性等等限制,其操作系统必然是一个小巧的mini OS,像uCOS ulinux等等代码都不多,完全可以凭少量的人力完成。虽然这个领域也有众多的竞争者,甚至比桌面系统竞争更激烈,但因其应用十分广泛,并且日后将更加广泛,其中很多优秀者像vxWorks等还是收费的,因此市场还是足够大的。
  2 核心技术手段:操作系统的作用无非就是进程管理(处理机管理)、文件管理、设备管理、用户接口等。我想做的是把能抽象出来的部分(特别是能用C语言实现的部分)抽出来,做成一个框架,一个万能的盒子,可以非常方便的在各种平台间移植,使移植的代价最小化。比如进程管理与调度,核心调度算法肯定是能单独抽出来用C语言实现,而涉及硬件定时器、中断等必须由相应硬件平台汇编程序实现的部分都留出接口,并尽可能作为可选项(因为有些功能不同的硬件平台不一定都支持),这样增加对一个新平台的支持只要增加相应的必须用汇编实现的部分就可以了。事实上现在的linux就是如此,但我要做得更好,因为从整个系统设计之初就充分考虑好,而不像linux那样到2.0以后才开始修改,因此应该做得更好些。
  3 终级目标:一切32位平台(64位?16位?)都可以运行,从手机mp3到PC、服务器都可以。(像有名的Arm公司,虽然arm处理器是使用最广泛的嵌入式硬件平台,但arm公司自己却并没有做过一个arm芯片,而是只出卖技术核并获得许许多多大硬件厂商的支持,几乎成为行业里事实上的标准。)当然,这是一个极限,虽然无法完全达到,但可以尽量趋近于这个终极目标。

  这就是我一点基本的想法,希望能得到大家一些好的建议或者批评,多多益善,来者不惧,欢迎拍砖!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值