Improving and practicing Linux kernel Education in China College

In last decades, it always uses Windows as Operating System course in China colleges, but recent years, more and more using Linux as the major operating system in the OS class. But the Linux kernel development remains extremely rapid, which very difficult for students to catch up. The kernel source size keeps growing rapidly, for example, Linux 4.x it is up to 22 million which too big for teaching and many students complaint it is very difficult to learn this course. In this presentation, we will introduce our experience and ideas on how to teach Linux kernel effectively in college such as new methods of teaching reform, optimizes the teaching content, problem-driven method.Those experience can extend to other colleges and let more and more students love Linux kernel.
展开查看详情

1.操作系统教育 与Linux产业教育 陈悦 南昌大学 笨叔叔 《奔跑吧Linux内核》作者

2. 操作系统理论教学现状 操作系统作为计算机之魂 对于操作系统的了解程度深浅 体现了计算机行业从业人员的专业水准 现如今的操作系统课程教学 存在着非常大的问题 填鸭式的应试了解操作系统 是对操作系统的轻视

3.“操作系统课程是计算机专业的核心课程,在计算机专业课中起到了承上启下的作用。掌握操作系统的原理和实现的方法,不仅可以帮助学 生理解计算机系统的工作原理,而且可以培养学生开发大中型软件的能力,能加深对于现如今市面上大多数的前沿技术的理解。在计算机行 业中,无论项目大小程度,复杂与否,都是基于操作系统实现。很多的架构以及软件,设计思想以及设计思路,都一定程度上参考了操作系 统基础原理。 但是现如今的操作系统教学存在极大问题,老师的填鸭,学生的不重视,都在破坏操作系统的生态圈.

4.操作系统教学知识图谱 从左图的知识图谱中可以看出,操作系统课程繁而 杂,其中的知识点过多,就算是很多的教师穷尽半 生,也只能了解大半。但是作为学生,作为计算行 业从业人员,对于操作系统必须掌握,并且更加深 入的进行了解,也只有对操作系统能够更深的了 解,才能提高自身,从而参与大型软件项目设计。 系统总观 文件管理 进程管理 内存管理 操作系统知识图谱占比

5.当前操作系统教学中的缺陷 《操作系统》侧重讲授计算 现有的教材在介绍计算机操 计算机操作系统负责管理计 除了对硬件进行管理,操作系 作系统的知识时都是分模块 算机中的硬件资源。由于这 机操作系统的基本原理和实 统还用向用户提供 使用计算 展开,各 个模块自成一章进行 些资源在 工作原理、使用方 现方法,常 借助于流程图或文 机的接口。 为了便于用户使 阐述,缺少将这些知识连成一 式等方面存在差异,必须以不 字进行阐述。由于很多原理 用,操作系统会对硬件进行抽 个整体的纽带。具体来讲,操 同的方式对它们进行管理以 比较复杂且是在抽象的 基础 象 以屏蔽其复杂性。 举例来 作系统的内容一般分成处理 保证其正确高效工作。 这些 上形成的,需要用专业术语进 讲,磁盘的存储空间正是经过 机管理、内存管理、进程管 因素导致操作系统设计比较 行描述,理论性较强,不易理 了抽象才变成 了文件系统。 理、 文件系统和用户接口五 复杂, 规模比较庞大大。 要 解。同时操作系统的教学环 而学生对计算机系统的认识 模块,每个模块都由独立的章 把操作系统的知识讲清楚,相 境很少采用Linux系统作为规 停留在硬件 层面,这些抽象增 节进行介绍。 这种布局有利 应课程包含的内容 势必比较 范进行,对于闭源的 加了知识点的理解难度。 于对各个模块进行深入细致 广泛,知识点和概念也会比较 Windows系统来说,很多实 验无法进行,导致课程教学 的阐述,但是却不易将各模块 多 停留于表面 之间的联系阐述清楚。 内容过于抽象 知识点过于繁杂 教学停留于表面 局部性强

6. Linux教学现状 Linux作为开发人员所选系统的最佳选择 能熟练学习使用Linux的 并不多 对于软件开发从业人员 Linux教学培训势在必行 现如今的Linux教学 却只停留表面.

7. Why Linux? Linux开源免费 丰富的软硬件支持 Linux 的内核大部分是用C 语言编写的,并采用了可移植的Unix标准应用程序接口,可 Linux开源化的结果就是每年有上万人针对系统的漏洞进行更新,对系统进行维护。同时 支持多个主机平台,工作站服务器,包括多种嵌入式设备。同时对于程序开发人员来 系统的稳定性可以支持系统长期运行而不宕机,此外Linux自带防火墙、入侵检测和安全 说,Linux更是一个很好的操作平台,在Linux 的软件包中,包含了多种程序语言与开 认证等工具,它是一个具有先天病毒免疫能力的操作系统,很少受到病毒攻击 发工具 多用户多任务 完善的网络功能 Linux系统是一个真正的多用户多任务的操作系统。多个用户可以各自拥有和使用系统资源,即每 Linux 内置了很丰富的免费网络服务器软件、数据库和网页的开发工具,如 个用户对自己的资源有特定的权限,互不影响,同时多个用户可以在同一时间以网络联机的方式 Apache、Sendmail、VSFtp、SSH、MySQL、PHP和JSP 等。近年来,越来越多 使用计算机系统。多任务是现代计算机的最主要的一个特点,由于Linux系统调度每一个进程是平 的企业看到了Linux 的这些强大的功能,利用Linux 担任全方位的网络服务器 等地访问处理器的,所以它能同时执行多个程序,而且各个程序的运行是互相独立的。

8. Linux的普及程度 在世界上,最兴盛Linux地区大都在欧洲地区,而世界上计算机基础最强的群体也在欧洲 在中国的大部分地区仍旧采用Windows系统主要的操作系统载体 Search index : high low

9.Linux教学现状 Linux系统教学流于表面 Linux的教学仍旧处于茹毛饮血的蛮荒时代 极大多数高校的Linux课程,大都只告诉学生如何使用命 令行,脚本。却不会深度告知系统为何如此运行,以及 深层次的系统架构进程调度等知识,却不会告知。 对于Linux重视度远远不足 除却互联网行业,以及基础大型服务器运营商之外, 其余群体对于Linux的关心程度远远不足,导致了 Linux的流行程度远远落后于Windows,因此,大部 分群体对于Linux的学习没有兴趣/利益驱动 新技术过热 大数据,人工智能技术过于火热,大部分的培训机构 紧跟时代步伐。但是却忽略了作为技术主要载体的 Linux系统,大都针对技术本身,不关注系统架构。 导致针对Linux底层了解较少,对于技术的培训也就 流于表面。 Linux学习成本较高,难度大 Linux可定制程度较高,相较Windows系统,更加复 杂。同时学习难度较高,培训成本较大,时间周期较 长。

10. 操作系统理论与Linux结合 操作系统理论教学 应当与Linux进行结合学习 只有这样才能深入了解掌握操作系统本质 操作系统教学的缺陷,在Linux中得到完美解决 只有操作系统理论教学和Linux实践结合 相辅相成,才能促进二者的同时进步

11.理论与实践结合 操作系统的基本原理部分是这门课程的重 点,包括操作系统的形成 、特征、进程、线 程 、同步、通讯、调度 、死锁 、文件系统 以及存储器管理等,这些内容是必须掌握的 , 也很枯燥, 教学时可以根据实际情况做一些调 整, 结合 Linux系统讲一些流行且实用的技术 特点 ,使学生不仅理解了操作系统的基本思 想 ,而且学有所用。 Linux 作为一个日益为大众所接受的新型 操作系统, 不仅因为它具有现代操作系统所应 具备的一切特征和一些独有的先进思想, 而且 它是一个开放式系统, 可以在网上找到许多现 成的程序和工具, 所以比较适合操作系统课程 各个方面的研究, 打破了以往操作系统内核保 密的束缚。 唯有理论与实践相互结合,才能促进两者 之间的共同进步

12.“操作系统课程设计应该与Linux系统内核结合起来.只有这样才能使操作系统课程改革落到实处。这 其中不仅是Linux 所具有的特殊属性,更主要的是学生可以从中领悟到先进的东西 , 哪怕只分析一个 模块 . 也可以让学生有一种实战操练的感觉为以后走上社会奠定良好基础 。Linux是很好的研究对 象 . 因为它开放源代码,所以学生可以借助于网络来享受Linux的免费服务 。 操作系统课程教学和Linux的结合相得益彰,两者融合,才能更好地促进两者的发展

13.操作系统教学与Linux结合要点 理论学习 类比推理 1 2 操作系统课程的理论学习极为重要,结合Linux源 操作系统中,很多模块设计方式设计理念相同,通 码进行理论学习可加深对理论知识的理解和学习 过Linux源码,以及Linux进程管理等多个概念实现 类比推理,从而进一步深入了解操作系统 夯实基础 动手实践 3 4 操作系统的具体基础理论设计离不开亲手时间,配 万千理论,离不开动手时间,基于Linux内核源 合Linux进行操作系统基础教学,加强学生操作系 码,亲自动手对Linux系统进行操作,重编译,只 统基础能力,对系统基础构成和基础架构,是促进 有在实践中学习,在学习中实践,才是两者结合的 两者融合的重中之重 最终目的

14.操作系统教学与Linux结合难点 具体事务抽象 算法的具象化 1 2 编程能力 工程能力 3 4

15. 业界认证方案 在工业界,业界认证一般作为工程师能力的证明 LPI,RHC,GNU认证体系皆属国外 国内未有合适的Linux认证方案 实现国内自有,高效可靠的Linux认证体系 是促进Linux发展的第一步 也是最重要的一步

16. 通用业界认证方案 当前全世界通用Linux认证方案概述. Linux Professional Institute(LPI) 就Linux团体所关注的程度来看,LPI认证计划受到了最为广泛的支持。LPI已 经先期推出了Linux Profession Institute Certified-Level 1(简称为LPIC-1)认 证计划,不久的将来还会按预定计划推出第2和第3级认证。为了获得LPIC-1证 书,你必须通过两门各自长达90分钟的考试—--101 (LPI General Linux,Part1)和102 (LPI General Linux,Part2)。 Sair Linux 和 GNU 同LPI一样,Sair提供了三种级别的认证计划; Level 1——Sair Linux & GNU Certified Administrator(LCA) Level 2 —-- Sair Linux & GNU Certified Engineer(LCE) Level 3 ---- Master Sair Linux & GNU Certified Engineer(MLCE) 第1级才是得到完全开发的Sair认证项目,这一点也和LPI一样。 Red Hat Certified Engineer 高级的Linux认证长期以来则几乎完全是Red Hat CertifiedEngineer (RHCE)认证计划的天下。RHCE是该领域最具挑战性的认证考试,所以它也是 最有价值的Linux认证。但也是最贵的,全套课程费用为2,498美金,也可单独 做认证测验,费用为749 美金。

17.国内工业界认证方案思路设计 Business is the human activity related to material things. It is necessary for civilization. 贴近现实 符合业界需求 与学界紧密结合 结合高校进行推广 Linux工业界认证的标准应当与现实 结合工业界当前最前沿技术,结合 结合操作系统理论,了解Linux系统 高校学生应当作为认证系统最重要 紧密结合,满足实际生产中所面临 操作系统理论,进行认证方案设 本身,同时与学术界进行同步,将 的一环作为培养,将高校学生的认 的需求,了解认证方案中的细则, 计,从基础开始了解并设计具体相 学界最新操作系统方向研究成果, 证和工程师认证进行一定程度的区 同时与时俱进,贴近系统本身 应的认证等级 实现案例,多种框架加入到认证体 分,实现从高校学生到工程师认证 系,丰富认证体系的含金量。 的一体化贯通认证方案

18.Linux基础知识 操作系统理论知识 Linux源码理解与操作系统理论的紧密结合 业界流行的框架与Linux系统的类比推理 认证方案架构设计

19. 《奔跑吧Linux内核》在高校Linux内核课程的应用  多所高校的研究生Linux内核课程 采用《奔跑吧》作为参考教材  南昌大学  大连理工大学  西安电子科技大学  台湾中正大学  …

20. 国内研究生Linux内核课程授课形式  2~3个人分成一个小组  每个小组每周选择一个linux内核的小问题(topic)进行研究  每周进行1个小时的总结汇报,导师打分  好处:  每个小组形成相互学习相互讨论  多个小组可以进行PK,相互切磋  缺点:  缺乏实际项目经验

21.《奔跑吧Linux内核》作为教材的优缺点 优点:  问题导向式学习方法  反映Linux内核社区最新科技成果  创新性Linux内核奔跑卷  图形化单步调试内核  解决工程实际问题 缺点:  起点难度有点高,不适合本科生  分析内核源代码不适合本科生  理论阐述较少  缺乏动手实践

22. 内核学习方法建议  从实际问题出发,深入研究  归纳总结关键数据结构之间的关系,分析机制的关键算法  结合应用案例总结  内核调试能力

23. 适合大学生的Linux内核教材  从简单的安装Linux系统开始  从简单的动手实验开始,比如开发工具vim,git,gcc,gdb等使用  从简单的设备驱动程序开始  理论结合动手实验,激发学生探索知识的欲望

24. 《奔跑吧Linux内核》入门篇  降低Linux内核学习难度,从熟悉Linux系统安装,常 用开发工具等方面入手  不分析Linux内核源代码,强调理论和整体架构的理解  每章有动手实验,实验+案例  提供课件  提供高清配套视频

25.谢谢各位