ety
|
分享:
▲
▼
硬碟在 seeking 时, 该怎存资料, 这些低阶的硬体动作, 哪边离空位最近的取舍, 有点类似电梯演算法, 那不就是需要资料库的理论基础了? 记忆体的 Page table 是不是也是跟资料库的概念有点类似? 刚那是硬体上的管理, 至于资料上的管理, 我想, 若没有资料库的基础, 你的OS没有良好的档案管理机制, 我想, 也是很令User困扰的。
大至上, 通常跟内存资料有关的软体, 哪个不需要资料库的概念呢? 作业系统有资料库的概念, 设计出来的就像 Windows/FreeBSD/OS X 一样, 有良好的档案管理员供User用。再举个例子, 一般 Game 的纪录档, 也是用资料库的概念来管理, 好让你能轻松存取记录。大部份的软体, 只要跟纪录资料有关, 通常是需要一点资料库的概念, 不过也并非绝对啦, 像 BIOS, 就是一个好的例子, 它没有资料库的概念, 因为不需要, 它只要控制硬体就好了, 资料管理并不是它的主要目的。
至于你说"作业系统主要的诉求是使用者及硬体间帮助沟通的角色", 这是没错, 主要的目的就是要帮助User不用了解硬体实际是如何动作的而也能达到管理硬体的目标。若你是以目前的作业作统的标准来看, 只是管理硬体, 而没有管理资料的OS, 不太算及格 ...
当然啦, 这是我个人的看法, 因为我以前还是学生时, 我有一个同学实作了一台小小的电脑(计算机结构课), 用 CPLD 简单的完成小部份, 另一位用 Assembly 去帮那小电脑作 SIC 的实现(系统程式课), 到这时, 简单的 BIOS 也算小完成了。而我则是将两个同学的作品结合起来并加强到有OS地步, 多了滑鼠, 键盘, 还有萤幕输出, 简单的输入资料跟储存资料。我们三人最后都认为, 学过资料库, 的确可以解决一些困扰, 当然, 也可能还是有别的方法可以实现的, 所以, 你们也可以不用太在意我的发言。
给大家作个参考而己, 不是强迫大家接纳我的思想, 请多多包涵, 毕竟, 我也不是专家。
~.~
[ 此文章被ety在2006-05-09 11:11重新编辑 ]
此文章被评分,最近评分记录财富:30 (by codeboy) | 理由: 说的不错喔~^^ | |
|
|
|
|
x1
[7 楼]
From:台湾和信超媒体
| Posted:2006-05-09 00:10 |
|
|
ichunlai
|
分享:
▲
▼
下面是引用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核心研究...
此文章被评分,最近评分记录财富:30 (by codeboy) | 理由: 您说的也很有道理..^^ | |
|
|
|
|
x0
[8 楼]
From:台湾中华电信
| Posted:2006-05-09 00:28 |
|
|
ety
|
分享:
▲
是的, 资料结构是必须的。 对资料结构有基本的认识才能进一步去设计演算法。 资料库的的技巧就是演算法, 里面用到的 Sort 啦, Search 啦, 都必需要有资料结构的认识。如果不知道资料的结构, 那要设计管理用的演算法, 谈何容易!? 都不知道是要 Sort 什么资料跟 Search 什么资料呢! ~"~ 另外, 我之前所说的记忆体的 Page table 不就是资料结构里的一种?
至于你所说的, "简单的资料结构就可以处理相当多的问题了", 这应该算是在管理资料方面。 整体而言, 我还是认为, 硬体上的了解比软体上的了解来得重要。就像我之前问的, "在你决定要写出一个OS程式时,你决定好了你的平台了吗?", 不了解平台, 资料结构的实现也很难。
老实说, 真的要这样比下去的话, 那... 我会说, 连计算机概论都很重要... 资讯科系的每一科都很重要... 都有可能在设计 OS 时应用得到 ~.~ 如果还不够, 那就再比下去, 数学最重要, 不用学资料结构, 因为全都是零跟一, 然后再来就有人说, 那些都不重要, 英文最重要, 因为程式是用英文写的 ~ my god ~ 没完没了了 ~ 总之, 请不要针对我, 毕竟我真的不是专家, 而且每个人的逻辑也不太一样, 就提出"您"自个儿的看法就好了, 不需要提到我啦。 >"<
不过呢, 这都不是楼主问的, 都是突然大家开始对我说的看法不认同所衍生下来的讨论, 我有说啦 ~ 我没强迫大家认同我的看法, 毕竟我不是专家 ~.~ 楼主真正想问的是, OS 是用哪种程式语言实作出来的, 那, 就那些答案啰, 有 C, 有 Assembly, 也有人提到 Basic ... 这我不确定... = =" 总之, 答案有了, 此一话题就此打住了吧, 再讨论下去, 就变很复杂了。
想看看别人是如何设计OS的, 那么, 只要对 C 语言的程式码以及电脑的硬体架构有了基础, ichunlai 的建议是真的很好的, 他所说的书虽然我没看过, 但我可以确定, 先看看别人是如何设计核心的, 真的是一个很好的建议。 不过我敢跟你保证, 那也不是一般人看得下去的, 大学生都不见得有那能耐, 难度也不是说很低, 如果有不懂的, 可以找 ichunlai 讨论, 他应该算是高手。 千万别来问我, 我只是曾经有做过主机板的 BIOS 相关设计的助理, 从我的工作环境中发表我的所知, 我没有看过 Linux 的原始码, 所以别问我那类的问题。 ^^"
至于想自己开发一个OS的, 那么, 我想, 你可以挑一部份你的专长来作, 其它部份找些同好来完成。说实在的, 那不是一件小 project, 一个人完成, 是很累的。而人多, idea 也多, 或许也比你一个人设计的来得好也说不定。
共勉之 ~ ^^
[ 此文章被ety在2006-05-09 11:06重新编辑 ]
|
|
x0
[9 楼]
From:台湾和信超媒体
| Posted:2006-05-09 09:33 |
|
|
|