要如何写作业系统?

Home Home
引用 | 编辑 gtrowa2003
2006-05-07 22:24
楼主
推文 x0
作业 ..

访客只能看到部份内容,免费 加入会员



献花 x0
引用 | 编辑 korlxp
2006-05-07 22:56
1楼
  
基本上大部分程式码是用C写的! 有兴趣的话建议您去翻翻”作业系统概论”之类的书! 会更了解它的功能以及运作方式!

献花 x0
引用 | 编辑 ety
2006-05-08 08:20
2楼
  
在你决定要写出一个OS程式时,你决定好了你的平台了吗?
写 PDA/Palm 有 PDA/Palm 的硬体要求,写 X86 有 X86 的硬体要求,皆不相同呢。

作业系统简单的话,需要有资料库的概念,把电脑里的资料好好的管理。在复杂一点,就要对硬体很了解了,像是网路卡,键盘,萤幕等等的驱动程式,照理说作业程式都要有个简单功能的驱动,进阶功能则是由硬体产商来提供。所以,使用者程式可能得用C语言来写,至于驱动程式,可能要用到 Assembly。

总之,一个人做,可能太过于困难。你听过 Linux 吗? 那 OS 不知有多少人一起帮忙开发的,才有现今的规模。

献花 x0
引用 | 编辑 伴月‧孤影
2006-05-08 08:45
3楼
  
如果说核心的话,Linux是C、Windows记得好像是basic,不知有没有错。

献花 x0
引用 | 编辑 korlxp
2006-05-08 18:24
4楼
  
下面是引用伴月‧孤影于2006-05-8 08:45发表的 :
如果说核心的话,Linux是C、Windows记得好像是basic,不知有没有错。

说细一点的话...Linux 95%以上是c写的!小部分是用组合语言写的! windows 核心基本上也是c写的(我实在不敢想像核心用basic写 会有怎样的"笑"能) 至于楼上大大提到的驱动部份...就我所知,目前也几乎是c写出来的!   作业系统主要的诉求是使用者及硬体间帮助沟通的角色! 用资料库来形容作业系统的概念..小弟觉得不太适合,有错请指教!

献花 x1
引用 | 编辑 aa1145
2006-05-08 20:16
5楼
  
原来是用c写的喔 这个问题我也想过
现在终于知道了 不知道源码有多么的状观 表情

献花 x0
引用 | 编辑 korlxp
2006-05-08 22:00
6楼
  
下面是引用aa1145于2006-05-8 20:16发表的 :
原来是用c写的喔 这个问题我也想过
现在终于知道了 不知道源码有多么的状观 表情

有兴趣的话~去找linux的网站吧! 大部份都能下载到原始码! 百万行的程式码! 真的是粉壮观没错! ^^

献花 x0
引用 | 编辑 ety
2006-05-09 00:10
7楼
  
硬碟在 seeking 时, 该怎存资料, 这些低阶的硬体动作, 哪边离空位最近的取舍, 有点类似电梯演算法, 那不就是需要资料库的理论基础了? 记忆体的 Page table 是不是也是跟资料库的概念有点类似? 刚那是硬体上的管理, 至于资料上的管理, 我想, 若没有资料库的基础, 你的OS没有良好的档案管理机制, 我想, 也是很令User困扰的。

大至上, 通常跟内存资料有关的软体, 哪个不需要资料库的概念呢?
作业系统有资料库的概念, 设计出来的就像 Windows/FreeBSD/OS X 一样, 有良好的档案管理员供User用。再举个例子, 一般 Game 的纪录档, 也是用资料库的概念来管理, 好让你能轻松存取记录。大部份的软体, 只要跟纪录资料有关, 通常是需要一点资料库的概念, 不过也并非绝对啦, 像 BIOS, 就是一个好的例子, 它没有资料库的概念, 因为不需要, 它只要控制硬体就好了, 资料管理并不是它的主要目的。

至于你说"作业系统主要的诉求是使用者及硬体间帮助沟通的角色", 这是没错, 主要的目的就是要帮助User不用了解硬体实际是如何动作的而也能达到管理硬体的目标。若你是以目前的作业作统的标准来看, 只是管理硬体, 而没有管理资料的OS, 不太算及格 ...

当然啦, 这是我个人的看法, 因为我以前还是学生时, 我有一个同学实作了一台小小的电脑(计算机结构课), 用 CPLD 简单的完成小部份, 另一位用 Assembly 去帮那小电脑作 SIC 的实现(系统程式课), 到这时, 简单的 BIOS 也算小完成了。而我则是将两个同学的作品结合起来并加强到有OS地步, 多了滑鼠, 键盘, 还有萤幕输出, 简单的输入资料跟储存资料。我们三人最后都认为, 学过资料库, 的确可以解决一些困扰, 当然, 也可能还是有别的方法可以实现的, 所以, 你们也可以不用太在意我的发言。

给大家作个参考而己, 不是强迫大家接纳我的思想, 请多多包涵, 毕竟, 我也不是专家。

~.~

献花 x1
引用 | 编辑 ichunlai
2006-05-09 00:28
8楼
  
下面是引用ety于2006-05-9 00:10发表的 :
硬碟在 seeking 时, 该怎存资料, 这些低阶的硬体动作, 哪边离空位最近的取舍, 有点类似电梯演算法, 那不就是需要资料库的理论基础了? 记忆体的 Page table 是不是也是跟资料库的概念有点类似? 刚那是硬体上的管理, 至于资料上的管理, 我想, 若没有资料库的基础, 你的OS没有良好的档案管理机制, 我想, 也是很令User困扰的。

大至上, 通常跟内存资料有关的软体, 哪个不需要资料库的概念呢?
作业系统有资料库的概念, 设计出来的就像 Windows/FreeBSD/OS X 一样, 有良好的档案管理员供User用。再举个例子, 一般 Game 的纪录档, 也是用资料库的概念来管理, 好让你能轻松存取记录。大部份的软体, 只要跟纪录资料有关, 通常是需要一点资料库的概念, 不过也并非绝对啦, 像 BIOS, 就是一个好的例子, 它没有资料库的概念, 因为不需要, 它只要控制硬体就好了, 资料管理并不是它的主要目的。

.......
处理以及管理资料,不一定得用到资料库的概念...
不是所有和管理资料有关的都得牵扯到资料库...
简单的资料结构就可以处理相当多的问题了...
要写一套作业系统,建议可以先去找uCOS的书...
uCOS是一个RTOS...至少程式码比较少比较容易trace...
或是去看Operating system:design and implementation有介绍linux前身minix的写法
博硕也有一本书是写linux核心研究...

献花 x0
引用 | 编辑 ety
2006-05-09 09:33
9楼
  
是的, 资料结构是必须的。
对资料结构有基本的认识才能进一步去设计演算法。
资料库的的技巧就是演算法, 里面用到的 Sort 啦, Search 啦, 都必需要有资料结构的认识。如果不知道资料的结构, 那要设计管理用的演算法, 谈何容易!? 都不知道是要 Sort 什么资料跟 Search 什么资料呢! ~"~ 另外, 我之前所说的记忆体的 Page table 不就是资料结构里的一种?

至于你所说的, "简单的资料结构就可以处理相当多的问题了", 这应该算是在管理资料方面。
整体而言, 我还是认为, 硬体上的了解比软体上的了解来得重要。就像我之前问的, "在你决定要写出一个OS程式时,你决定好了你的平台了吗?", 不了解平台, 资料结构的实现也很难。

老实说, 真的要这样比下去的话, 那... 我会说, 连计算机概论都很重要... 资讯科系的每一科都很重要... 都有可能在设计 OS 时应用得到 ~.~ 如果还不够, 那就再比下去, 数学最重要, 不用学资料结构, 因为全都是零跟一, 然后再来就有人说, 那些都不重要, 英文最重要, 因为程式是用英文写的 ~ my god ~ 没完没了了 ~ 总之, 请不要针对我, 毕竟我真的不是专家, 而且每个人的逻辑也不太一样, 就提出"您"自个儿的看法就好了, 不需要提到我啦。 >"<

不过呢, 这都不是楼主问的, 都是突然大家开始对我说的看法不认同所衍生下来的讨论, 我有说啦 ~ 我没强迫大家认同我的看法, 毕竟我不是专家 ~.~ 楼主真正想问的是, OS 是用哪种程式语言实作出来的, 那, 就那些答案啰, 有 C, 有 Assembly, 也有人提到 Basic ... 这我不确定... = =" 总之, 答案有了, 此一话题就此打住了吧, 再讨论下去, 就变很复杂了。

想看看别人是如何设计OS的, 那么, 只要对 C 语言的程式码以及电脑的硬体架构有了基础, ichunlai 的建议是真的很好的, 他所说的书虽然我没看过, 但我可以确定, 先看看别人是如何设计核心的, 真的是一个很好的建议。   不过我敢跟你保证, 那也不是一般人看得下去的, 大学生都不见得有那能耐, 难度也不是说很低, 如果有不懂的, 可以找 ichunlai 讨论, 他应该算是高手。 千万别来问我, 我只是曾经有做过主机板的 BIOS 相关设计的助理, 从我的工作环境中发表我的所知, 我没有看过 Linux 的原始码, 所以别问我那类的问题。 ^^"

至于想自己开发一个OS的, 那么, 我想, 你可以挑一部份你的专长来作, 其它部份找些同好来完成。说实在的, 那不是一件小 project, 一个人完成, 是很累的。而人多, idea 也多, 或许也比你一个人设计的来得好也说不定。

共勉之 ~ ^^

献花 x0
引用 | 编辑 codeboy
2006-05-09 12:36
10楼
  
下面是引用ichunlai于2006-05-9 00:28发表的 :

处理以及管理资料,不一定得用到资料库的概念...
不是所有和管理资料有关的都得牵扯到资料库...
简单的资料结构就可以处理相当多的问题了...
要写一套作业系统,建议可以先去找uCOS的书...
.......

您指的应该是这本吧.. 表情

http://tlsj.tenlong.com.tw/WebModule/BookSearch/bookSearchViewAction.do?isbn=9575278615&sid=28316

献花 x0
引用 | 编辑 upside
2006-06-05 12:41
11楼
  
我有一套作业系统 是使用 ASM 来设计的 档案非常小
画面很类似 WINDOWS 但是一直没机会来安装测试

献花 x0