操作系统及Linux内核
分享
课程详情
课程评价
spContent=操作系统(OS,Operating System)课程是计算机专业的一门专业核心课。课程内容庞杂,概念多、抽象,难以理解。教学团队凭借20多年Linux技术的深厚积累,本着“以学生为中心”的目标,借助于在线教学平台,对本课程的教学内容、实验和教学方式,进行大幅度调整和重构。 首先,课程的教学内容在讲解原理的基础上,结合Linux内核的设计,让原理落地有声。其次,设计出与教学内容配套的相关实验,放在在线实验楼https://www.lanqiao.cn/courses/2610,这些实验可能是Linux的命令的使用,也可能是系统调用的应用,最后深入到Linux内核,从而激发学生学习操作系统的积极性和能动性。最后,教学团队开发了与慕课配套的云教材,提供丰富的多媒体素材,让学生全方位的了解和学习操作系统。通过慕课+实验+云教材课程模式,为学生在操作系统设计,系统性能优化,系统软件开发,系统运维等方面的理论和实战能力提升打下良好的基础。
—— 课程团队
课程概述

1.为什么要学习这门课?

       我们处于并发处理的时代,进程,线程,协程等编程,逐渐成为基本技能,其中涉及资源的竞争和共享,死锁等问题,都是OS课程所要讲述的;OS对软硬件的资源管理是它的主要功能,通过对资源管理的学习,可以使大家能够在许多其他场合重用这一模式;当系统或者程序出现性能问题,或者当系统出现冲突时,要深入到系统看看如何进行处理,这样,对操作系统原理的掌握就显得弥足珍贵。

       设计任何的工程系统,包括软件系统,都是一个权衡的过程。是要侧重于可靠性?性能?消耗还是维护性?因为操作系统是很庞大的、性能至关重要的程序,一般都要维护几十年,所以操作系统是大家学习这类权衡的很好的地方。拥有一双发现合适设计点的锐利眼睛的学生在工业上是很需要的。这些人更像一个艺术家而不是一个科学家,你需要看大量的代码,理解这些问题,和学会自己独立考虑这些问题。

2.这门课的主题是关于什么?

      本课程以操作系统的资源管理为主题,涉及进程管理,内存管理,文件管理,设备管理,操作系统接口五大子系统,贯彻机制与策略分离的设计理念,这一理念是计算机科学的基本设计理念,那么什么是机制,什么是策略,机制就是提供什么样的功能,策略就是如何使用或者实现这个功能,比如高考就是一种机制,而你去按高考的规则,参加考试就是一种策略,比如文件系统提供的read()就是一种机制,而你调用read()函数从磁盘读取数据就是一种策略,如此等等。那么,操作系统课程讲授的是机制还是策略呢?以讲机制为主,大家能把这些机制应用起来,就会有较大的收获,如果你能设计出一种机制,那就是较大的创新了。

3.学习这门课可以获得什么?特别是对自己有什么帮助和应用。

1)有助于编写并发程序

       不管你在学习Java,Python,还是C++,尤其是go语言,线程的并发控制是难点,而语言本身对并发的讲解限于具体函数的介绍,而并不能深入到原理,其根本的一些概念,比如临界区,临界资源,同步和互斥等实际上是在操作系统这里要学通透的,但求本,不愁末。

 2)有助于培养系统性思维

       操作系统从资源管理的角度来对计算机的软硬件资源进行管理,软硬件协同和管理是操作系统的设计的主战场,因此必须有系统性的思维,对软硬件都有较为深入的认识,比如CPU管理(也就是进程管理),内存管理都是要在对相关硬件深入了解的基础上,应用系统软件的整体性思维进行设计,使得软硬件真正的协同起来,这是一个非常复杂的系统工程。

3)有助于培养系统性能分析的能力

       目前计算机的应用领域非常广泛,人工智能,区块链,云计算以及大数据,底层都是操作系统的支持,尤其大都是开源的操作系统Linux。在实际应用中,会发现有很多性能问题有待解决,而且这些问题的解决,最终都会追溯到操作系统层面,因此,操作系统知识和技能的掌握是系统性能优化的基石。

4.这门课有什么特色和亮点?

1)打破操作系统应试教学的死记硬背局面,激发学生学习操作系统的主动性和热情。

       本课程从一开始就强调要打破应试教育,并从每一次作业的创新性设计着手,作业的完成是一环套一环,没有现成的答案,通过大作业的训练,让概念落地有声。

2)通过以点带面,提升学生综合应用知识分析和解决问题的能力。

        操作系统的知识点比较零散,如何把这些知识点穿起来,课程在各个实验环节进行了缜密的设计,具体实验参考实验楼操作系统实验,后续实验都是对前一次的迭代,在不断加强中,把前面的知识综合应用起来,使得学生逐渐具备了解决复杂问题的能力。 

3) 提高了学生积极主动解决问题的能力,创新意识增强。

        在作业和实验的设计上,都给学生留有一定的空间,比如,每次作业每个人必须自己提2个问题,挑战性实验有一定的陡度,必须查阅大量资料才能完成。学生的创新意识得到加强。

4)提升了团队合作和沟通能力。

       很多作业和实验都是以小组为单位完成并互相批改作业,每个组都起有自己的名字和口号,组名和口号将伴随本组一学期。每个人在组中都有明确的角色和责任,这使得学生在学习过程中感受企业文化和担当。


授课目标

目标1:从设计操作系统的角度,掌握计算机操作系统的主要功能原理,包括处理机管理、存储器管理、设备管理、文件管理和操作系统与用户之间的接口,理解各主要功能的基本原理、关键数据结构设计、算法、经典模型。

目标2:要求学生有动手实践能力,熟悉Linux操作系统常用的shell命令,熟悉Linux平台下的C语言编程,熟悉进程和线程的基本系统调用,实现进程和线程的控制,进程通信,多线程同步控制,结合实验,对结果分析和解释,理解处理机管理基本核心概念。

目标3:“以学生为中心”,打破应试教学方式,通过若干个教学活动和实验样例的设计,帮助学生完成知识内化,培养学生自主、合作和探究的学习习惯,并具有分析和解决实际问题的能力。


课程大纲
预备知识

本课程的学习要与Linux操作系统相结合,要求:

1)Linux基础入门,可参考实验楼的Linux基础入门

2)Linux  C 编程

3)数据结构

4)微机原理



证书要求

为积极响应国家低碳环保政策, 2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。

 

电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问 https://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。

 

完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。

 

认证证书申请注意事项:

1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。

2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。


参考资料

[1]汤小丹,梁红兵,哲凤屏等.计算机操作系统(第四版).西安:西安电子科技大学出版社,2014.

[2]Tanenbaum A S,Woodhull A S.Operating Systems:Design and Implementation(Second Edition,影印版).北京:清华大学出版社,1997.(中文书名:操作系统设计及实现)

[3]Remzi Arpaci-Dusseau Andrea Arpaci-Dusseau.Operating Systems:Three easy pieces[M].Arpaci-Dusseau Books,2018. 

[4]AbrahamSilberschatz.操作系统概念[M].高等教育出版社:北京,2007.

[5]Tanenbaum A S.Modern Operating System(Second Edition,影印版).北京:机械工业出版社,2005.(中文书名:现代操作系统)

[6]陈莉君等.Linux操作系统原理与应用[M].清华大学出版社:北京,2012.

[7]Robert Love.Linux内核设计与实现[M].陈莉君等译机械工业出版社:北京,2011.

[8]Daniel P.Bovet等.深入理解Linux内核[M].陈莉君等译.中国电力出版社:北京,2007.

[9] 赵炯.Linux内核完全剖析(第一版).北京:机械工业出版社,2006.

网络资源,点击链接直达:

[1] 操作系统在线实验  西邮操作系统课程团队

[2] 操作系统原理与实践  哈工大 李志军

[3] Linux内核分析与应用 慕课  西邮操作系统课程团队

[4]  Linux编程技术 慕课   西邮操作系统课程团队

[5] Linux内核之旅www.kerneltravel.net/)网站  西邮操作系统课程团队

[6] Linux内核之旅  B站  西邮操作系统课程团队

常见问题

Q :  学习操作系统课程需要什么前期知识基础?

A :  本课程是面向计算机专业本科的学生,学习操作系统课程之前需要有一定的C语言,数据结构课程基础,如果缺乏这些基础知识的话,很多算法思想不好理解。另外,还需要补充一些基础的汇编语言的知识,这样更容易理解底层逻辑。

Q :  视频中的课间提问如何计分?

A :  目前只用来测试学生对课程内容的掌握程度,暂时不计入总成绩中。

Q :  没有Linux基础,是否影响课程学习?

A :  课程中会涉及一些Linux系统实例,并且实验是在Linux环境下完成,因此,建议提前熟悉Linux的使用。

Q:课程中的实验在哪里做?

A:每章的实验可以在实验楼云平台进行实践,地址为:https://www.lanqiao.cn/courses/2610。不需要安装Linux环境,随时随地实践起来。因技术原因,关于Linux内核的实验请个人安装Linux环境进行实践。