File tree Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change @@ -40,7 +40,7 @@ Remzi H. Arpaci-Dusseau 和 Andrea C. Arpaci-Dusseau 的《Operating Systems: Th
4040前期准备
4141~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4242
43- 学习操作系统需要有一些前期准备,主要包括计算机科学基础知识,比如计算机组成原理、数据结构与算法、编程语言、软件开发环境等。具体而言,需要了解计算机的基本原理,特别是RISC-V处理器的指令集和部分特权操作;还有就是需要掌握基本的数据结构和算法,毕竟操作系统也是一种软件,需要通过多种数据结构和算法了解决问题 ;在了解操作系统的设计并进行操作系统实验的过程中,需要掌握系统级的高级编程语言和汇编语言,比如C或Rust编程语言,RISC-V汇编语言,这样才能深入理解操作系统的实现细节和设计思想;最后还需掌握操作系统的开发与实验环境,本书的主要涉及的开发与实验环境是Linux,所以同学们需要能够通过Linux的命令行界面使用各种开发工具和辅助工具,而掌握基于图形界面或字符界面的IDE集成开发环境,如VSCode、Vim、Emacs等,可以提高分析操作系统源码,简化操作系统的开发与调试过程。
43+ 学习操作系统需要有一些前期准备,主要包括计算机科学基础知识,比如计算机组成原理、数据结构与算法、编程语言、软件开发环境等。具体而言,需要了解计算机的基本原理,特别是RISC-V处理器的指令集和部分特权操作;还有就是需要掌握基本的数据结构和算法,毕竟操作系统也是一种软件,需要通过多种数据结构和算法解决问题 ;在了解操作系统的设计并进行操作系统实验的过程中,需要掌握系统级的高级编程语言和汇编语言,比如C或Rust编程语言,RISC-V汇编语言,这样才能深入理解操作系统的实现细节和设计思想;最后还需掌握操作系统的开发与实验环境,本书的主要涉及的开发与实验环境是Linux,所以同学们需要能够通过Linux的命令行界面使用各种开发工具和辅助工具,而掌握基于图形界面或字符界面的IDE集成开发环境,如VSCode、Vim、Emacs等,可以提高分析操作系统源码,简化操作系统的开发与调试过程。
4444
4545
4646目标与步骤
@@ -134,4 +134,4 @@ Remzi H. Arpaci-Dusseau 和 Andrea C. Arpaci-Dusseau 的《Operating Systems: Th
134134
135135第9章主要讲解如何让应用便捷访问I/O设备并让应用有更多感知与交互能力的问题。计算机中的外设特征各异,如显卡、触摸屏、键盘、鼠标、网卡、声卡等。在第9章之前,同学们已经接触到了串口、时钟、和磁盘设备,使得应用程序能通过操作系统输入输出字符、访问时间、读写在磁盘上的数据,并通过时钟中断让操作系统具有了抢占式分时多任务调度的能力,但这仅仅覆盖了很小的一部分外设,而且在实践上对操作系统与外设的交互细节也涉及不多。操作系统需要对外设有更多的深入理解,才能有效地管理和访问外设,给应用提供丰富的感知与交互能力。在原理与概念方面,第9章简要分析了外设的发展历程,外设的数据传输方式。并进一步阐述操作系统如何对外设建立不同层次的抽象和不同I/O执行模型,以便于操作系统对外设的内部管理,应用程序对外设的高效便捷访问。在实践上,第9章分析了操作系统如何通过设备树(Device Tree)来解析出计算机中的外设信息,并重新设计了基于中断方式的串口驱动程序,涉及串口设备初始化和串口数据输入输出,以及改进进程/线程的调度机制,让等待串口输入或输出完成的进程/线程进入阻塞状态,从而提高系统整体执行效率。在第9章还进一步介绍了QEMU模拟的virtio设备架构,以及virtio设备驱动程序的主要功能;并对virtio-blk设备及其驱动程序,virtio-gpu设备及其驱动程序进行了比较深入的分析。这样最终形成支持图形游戏APP并具备高效外设中断响应的侏罗纪侏罗猎龙操作系统 -- Device 学生通过分析操作系统的设计与实现,可以深入了解不同外设的特征,外设的I/O传输方式,不同层次的外设抽象概念和I/O执行模型,从而对操作系统如何有效管理不同类型的外设有一个相关完整的理解。
136136
137- 百闻不如一见,如果同学们通过读书和阅读代码能逐步地明确每一章要解决的应用需求和问题,渐进地了解每章操作系统中内核模块的组成,并掌握内核模块的功能,以及不同内核模块之间的关系,能归纳总结出操作系统的设计思路、策略与机制、原理与概念,就能达到了解操作系统的层次。百见不如一干,仅仅看还是不够的,本书的重要目标是希望能推动同学们能够通过编程来掌握操作系统。如果同学们还能通过课后习题和编程实验来完成操作系统的新功能,发现编程中的bug并修复bug,通过测试用例,实现你自己编写的操作系统,那将达到掌握操作系统的更高层次。希望同学们能够完整走完整个操作系统的学习和练习的过程,当你完成整个过程后,再回首看,能够发现原来操作系统还可以这样有趣和有用。
137+ 百闻不如一见,如果同学们通过读书和阅读代码能逐步地明确每一章要解决的应用需求和问题,渐进地了解每章操作系统中内核模块的组成,并掌握内核模块的功能,以及不同内核模块之间的关系,能归纳总结出操作系统的设计思路、策略与机制、原理与概念,就能达到了解操作系统的层次。百见不如一干,仅仅看还是不够的,本书的重要目标是希望能推动同学们能够通过编程来掌握操作系统。如果同学们还能通过课后习题和编程实验来完成操作系统的新功能,发现编程中的bug并修复bug,通过测试用例,实现你自己编写的操作系统,那将达到掌握操作系统的更高层次。希望同学们能够完整走完整个操作系统的学习和练习的过程,当你完成整个过程后,再回首看,能够发现原来操作系统还可以这样有趣和有用。
You can’t perform that action at this time.
0 commit comments