“OSDev Wiki CN”的版本间差异
小 (→使用建议) |
小 |
||
第10行: | 第10行: | ||
* [[Boot Sequence|把自制的代码注入裸机引导起来]] | * [[Boot Sequence|把自制的代码注入裸机引导起来]] | ||
* 使用[[BIOS]]、[[UEFI]]、[[APIC]] | * 使用[[BIOS]]、[[UEFI]]、[[APIC]]等枚举各种总线上的新旧硬件,并驱动起来 | ||
** 检测内存 | ** [[Detecting_Memory_(x86)|检测内存]] | ||
** 对接鼠标键盘 | ** 内部总线控制器[[PCI]]等,外部总线[[USB]]、[[Serial Ports|串口]]等 | ||
** [[PS/2_Keyboard|对接鼠标键盘]] | |||
** 定时器 | |||
** 检测硬盘 | ** 检测硬盘 | ||
** 设置显示器 | ** 设置显示器 | ||
** 其它各种设备 | ** 其它各种设备,网卡、声卡等等 | ||
* | * 实现[[Memory_management|内存管理]],分页,虚拟内存 | ||
* | * 实现[[:Category:Processes_and_Threads|进程调度]] | ||
* | * 实现对[[Executable_Formats|可执行文件]]的载入重定位和引导执行 | ||
* | * 对遗留硬件和规范问题的兼容 | ||
* 将底层实现封装为对应用层的调用支持 | |||
* 实现对应用层隔离安全设计 | |||
* …… | * …… | ||
并且以上都是不可简化编写的,很多得使用队列、树等复杂数据结构的异步算法实现,因为别的程序都得依赖健壮高效的内核支持。就译者所知,真的不建议读者想要在Intel架构下尝试编写一个类Windows这样的PC操作系统(虽然这是最常见的计算机设备,对固定硬件嵌入式系统进行研究也许是个不错的选择),其中会牵涉很多兼容性和扩展性技术细节,人生苦短。译者的很多翻译也仅仅是出于怀旧。 | |||
OSdev比较实际的意义应该更主要在于:明白各专业的应用场景,知道各专业的边疆在哪里。所以本站在翻译的时候,是优先以译者感兴趣的理论原理(What、Why)为主,知识广度为主。对于教程和实现细节(How)放在了次级位置。其中[[Books|推荐书目]]等内容倒是特别推荐读者读一读。 | OSdev比较实际的意义应该更主要在于:明白各专业的应用场景,知道各专业的边疆在哪里。所以本站在翻译的时候,是优先以译者感兴趣的理论原理(What、Why)为主,知识广度为主。对于教程和实现细节(How)放在了次级位置。其中[[Books|推荐书目]]等内容倒是特别推荐读者读一读。 |
2022年3月31日 (四) 14:28的版本
使用建议
本站搬运的[osdev 英文原站]是一个关于操作系统开发的WIKI知识库,所以整体风格并不是一个导师编写的教材指南,而是由很多创作者觉得可能需要的词条组成的一个手册。
这个Wiki站是以实际的教读者如何游泳(实现一个真实可运行的自制操作系统)为目的,其索引编排是首先从入门谏言开始,然后搭建GCC交叉编译器,然后开始罗列教程(当你打开教程时它会特地提醒你多做一些准备,多看一些理论),再从不同知识点和硬件方向逐个说明操作系统开发方法的知识。如果你是第一次来可以选择随便看看,可以从介绍和基础理论、教程清单这几个地方随意看看。
一方面来说它并不是一个操作系统理论教材, 而可以说是扩充细化版的《30天开发操作系统》、《操作系统真象还原》一类的书籍类似。 你可以把以上这两本书买来看看,同时把这个WIKI当作一个资料字典来使用。随着你研究的越深入,越会理解各个词条的作用价值。
另一方面如原站不断强调的,这里文章绝对也不是可以复制粘贴直接运行的教程和示例代码,很多只是做了入门介绍和资料索引,真的去实现还是要求读者自己去读技术手册和自行实验。估计很少有人能真的完成一个自制操作系统。这不仅仅是精力不足,以及完整系统涉及技术面太多的问题,仅仅刚刚上手后很多人就会被汇编、C开发调试能力,GCC、模拟器调试技术细节等主客观两方面问题给困住。而就算跟着教程摸索完成,也才只是刚刚开始,后续还有无底的自制操作系统深渊在盯着你,我觉得读者应该迟早会放弃的……
- 把自制的代码注入裸机引导起来
- 使用BIOS、UEFI、APIC等枚举各种总线上的新旧硬件,并驱动起来
- 实现内存管理,分页,虚拟内存
- 实现进程调度
- 实现对可执行文件的载入重定位和引导执行
- 对遗留硬件和规范问题的兼容
- 将底层实现封装为对应用层的调用支持
- 实现对应用层隔离安全设计
- ……
并且以上都是不可简化编写的,很多得使用队列、树等复杂数据结构的异步算法实现,因为别的程序都得依赖健壮高效的内核支持。就译者所知,真的不建议读者想要在Intel架构下尝试编写一个类Windows这样的PC操作系统(虽然这是最常见的计算机设备,对固定硬件嵌入式系统进行研究也许是个不错的选择),其中会牵涉很多兼容性和扩展性技术细节,人生苦短。译者的很多翻译也仅仅是出于怀旧。
OSdev比较实际的意义应该更主要在于:明白各专业的应用场景,知道各专业的边疆在哪里。所以本站在翻译的时候,是优先以译者感兴趣的理论原理(What、Why)为主,知识广度为主。对于教程和实现细节(How)放在了次级位置。其中推荐书目等内容倒是特别推荐读者读一读。
关于本站
站长反思以前的计算机本科学习过程很多是处于“在沙漠中学游泳”,好像懂了其实只是会做题了。
难学一个东西往往是因为背景知识、底层和上层(参看:计算机科学的分层思想)的知识接触太少了。而我们手头所有的工作对象其实都是层层叠叠的技术接口的妥协协作而实现的。
用户享受便利,而创造者封装了细节。作为初学者往往被屏蔽在核心知识以外而不自知。
而操作系统开发承前启后了多项计算机专业:《数字电路》、《嵌入式系统》、《计算机组成原理》、《计算机网络》、《汇编》、《C、C++(高级计算机语言)》、 《数据结构算法》、《编译原理》、《软件工程》,甚至《图形学、多媒体》等等。
学习操作系统编程为掌握多门其它知识找到了绝佳的“泳池”,所以开始利用业余时间转译OS DEV这个站点。
关于翻译质量
确实这里的翻译质量还只是处在“绝大多数是机翻,极少数能勉强读懂”的情况,以后会不断陆续细化翻译质量。
越是仔细较对原文,越是能体会到原作者编写的良苦用心,感谢他们的无私奉献。用我的机翻来转译这些文章,真的感觉对不起原作者和读者,真的很不好意思……
英文的时态、词性比中文明显,同时平时用语中的词汇同样也是代码用词,所以变成中文以后有很多语句注意力重点上的改变,也许会导致一点的阅读障碍。主要希望能够帮助读者快速过滤掉文章中已理解或者不感兴趣的内容。
另外其实对每一份翻译,本站内部还保留有一份中英文对照版。如果你愿意帮忙,有什么想要分享或询问的也欢迎写邮件联系我:z3l4w5@sina.com。
祝你学习愉快!