视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001 知道1 知道21 知道41 知道61 知道81 知道101 知道121 知道141 知道161 知道181 知道201 知道221 知道241 知道261 知道281
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
如何建立一个电脑操作系统
2022-08-30 12:33:29 责编:小OO
文档
操作系统就是让人与电脑硬件进行互动。操作系统是由成百上千条代码构成的,通常由C、C++和集成程序语言编写而成。

1开始之前学会编程。集成语言是必须的。另一种补充的低级语言,如C语言也是强力推荐的。

2选择你想把你的操作系统搭载到什么媒体。可以是CD驱动、DVD驱动、闪盘驱动、硬盘驱动,或是另一台电脑驱动。

3决定你想让你的操作系统干什么。是否整个操作系统都配有图形用户界面(GUI)或是更加动漫式的。开始之前你需要了解你做的是哪个方向。

4选择你的操作系统支持哪种处理器平台。 AI-32 和x86_64 是最常用的个人电脑平台,你最好选择它们。

5选择是否由自己从头做起,还是按照现有的核心自己往上建立。比如,Linux核心就是设计给那些想要在其之上建立他们自己的Linux版本的人的。

6选择是否要使用自己的引导装载程序或做一个预创建的程序,比如统一引导装载程序 (GRUB)。由于编写你的引导装载程序需要扩展对硬件和BIOS的知识,因此要把它推到实际的核心编程之后。

7决定用哪种程序语言。尽管用如Pascal或BASIC语言也可以创建操作系统,但你最好还是用C语言或集成语言。集成语言绝对是必须的,操作系统至关重要的部分需要它。另一方面,C++语言也是关键的,但它需要完整的操作系统来运行。要用C或C++代码编写操作系统,当然,你需要使用一个编译程序。因此,不论这些指南是软件附带的,还是可以从经销商的网上下载,你都应该阅读用户指南/手册/文档,来选择你的C/C++编译程序。你也需要了解关于编译程序的很多复杂问题,对于C++,你应该了解编译程序的识别编码模式和它的ABI。你需要懂多种可执行的格式(ELF、PE、COFF、纯二进制等等,并且要懂得Windows专有的格式,PE (.exe)是受版权保护的。

8选择你的应用程序界面(API)。一个好的API选择就是POSIX,因为它已经编译好了。所有的Unix系统都部分支持POSIX,因此,把Unix程序植入你的操作系统并不重要。

9决定你的设计。有单片核心和微核心可供选择。单片核心可执行核心上的一切服务,而微核心是一个小的核心,其结合了用户后台进程,进程可以执行服务。通常而言,单片核心更快,但是微核心故障隔离和可靠性更好。

10考虑用团队发展和工作。这种方式可以花更少的时间解决更多的问题,而且可以更快造出更好的操作系统。br>

11不要完全擦除你的硬盘。记住,擦除你的硬盘会永久清除你的所有数据!用GRUB或其他启动管理器来用另一个操作系统做双启动系统,直到你自己的操作系统完全可以用了。

12从小地方开始。在进行内存管理和多进程任务之前,从小地方开始,如现实文本和中断。

13保存最新工作源的备份。这样可以预防你当前的操作系统版本或是你当前的工作出问题。如果你的电脑死机且无法启动了,用副本进行工作是个好主意,这样就可以排除故障了。

14考虑用虚拟机测试你的新操作系统。不要每次做出修改后就重启电脑,而是要把文件从你的电脑传输到虚拟机上,你可以用虚拟机应用来运行你的操作系统,同时当前的操作系统也是运行的。VM应用包括VMWare (它也有一个免费使用的服务器产品),另一个开源的选择就是Bochs,微软虚拟PC(不能与Linux兼容),还有xVM VirtualBox。

15发布一个"候补版本",这样可以让用户报告给你操作系统的潜在问题。

16一个操作系统可以是用户友好型的,因此增添一点用户友好特点,把这些整合进你的设计。

小提示

如果你想让你的系统可实行,确保把安全特征作为你最优先的选择。

所有的建构都完成后,选择你是否需要发布代码为开源代码,还是保留专利。

不要为了学习编程而开始做一个操作系统。如果你还不了解C、C++、Pascal或某些其他适合的语言,包括指示器处理,低级字节处理,字节转换,内联集成语言等,那么你还没有准备好建立操作系统。

使用网页,比如OSDev 和OSDever可以帮助你建立自己的操作系统。请记住,OSDev.org社区更倾向于让你使用他们的wiki,而不是加入其论坛。如果你决定加入论坛,这有一些预 备知识:你需要精通C或C++,还有x86集成语言。你也要了解一般的和复杂的程序概念,如Linked Lists、Queues等等。 OSDev社区按照其规则明确表示,此论坛不适合那些临时程序员。如果你想构建一个操作系统,也并不是非得要求你是个编程大神。但你也需要阅读你所选的处理器体系结构的处理器手册。不论是x86(因特尔)、ARM、MIPS还是PPC等等。处理器体系手册很容易用谷歌搜索引擎找到(“因特尔手册”,“ARM手册”等等)。不要加入OSDev.org论坛问一些很简单的问题。通常的回答就是“去阅读他妈的手册”。你应该去阅读维基百科,里面还有你想使用的多种工具手册。

如果你想做得简单,考虑下Linux 版本,比如Fedora Revisor、Custom Nimble X、Puppy Remaster、PCLinuxOS mklivecd或SUSE Studio 和SUSE KIWI。然而,你创建的操作系统属于提供服务器的公司(尽管你有权力免费发布,并按照你想的在GPL下修改、运行系统)。

检查潜在的问题和其他漏洞。这些都会影响你的操作系统设计。

建立一个新的分区用于编写操作系统是个好选择。

警告

你在两周内就会有一个完整的系统。做一个可以启动的操作系统,这就是一个很酷的东西。

粗心大意地把操作系统写入硬盘可能导致硬盘完全崩溃。小心。

不要期待一个合适的操作系统很容易建立。有很多相互依赖的复杂问题。比如说,要做一个操作系统,需要处理多种处理器,你的内存管理器必须要“锁定”机器,防止多进程处理器从同样资源同时进入。用于此的“锁定”需要在进程表中出现,从而确保在任何一个时刻都只有一个进程进入关键资源,而其他进程则在等待。但是进程表取决于一个内存管理器。这就是死机的一种情况。没有什么标准方法来解决这类问题;每一个操作系统程序都需要足够的技术来解决它的问题。

如果你做了一些没头脑的事情,比如把随机字节写入了随机I/O接口,你就会使得系统死机,而且可能(理论上)烧掉你的硬盘。

额外的资源

手册: Linux From Scratch

引导装载程序: GRUB

虚拟机应用: Bochs、VM Ware、XM Virtual Box

处理器手册: Intel manuals

操作系统建立网站: OSDev、OSDever

你需要准备

一台电脑

一个用来建构结构体系的CPU

对于虚拟机器的足够的内存(RAM)

一个“主”操作系统(在汇编源代码的最初阶段,用来建构源代码并打包程序,最终你自己的操作系统将成为主系统)

句法润饰代码编辑器(如果你没有集成发展环境,就用它)

一个编译程序

一个CD/DVD 驱动

下载本文
显示全文
专题