谈操作系统(linux内核)学习的重要性

.   内核学习概述

1.1 再谈操作系统(linux内核)学习的重要性

现阶段国内大学的计算机教学情况不容乐观,教材过时或者实用性不够成为我们大学生学业就业或者研究生进行项目研究实践的难题,当前大学课程对于理论的灌输过多,对于计算机编程语言的应试教学让国内学生并没有真正理解计算机的原理和机制,我们要知道会使用辅助开发环境进行web或者ui开发,能够掌握算法进行程序设计,这些是远远不够的,我们并没有真正理解操作系统的工作原理,只是在做二次性的开发工作,如果对内部的机制和原理没有深入的理解,我们并不能真正设计和写好程序,对于就业来说,当下企业互联网公司中运用的计算机技能和知识远远要比学校授予学生的知识要专业,前沿,更佳商业化,对计算机的理解能力提出了更高的要求,如何能够在有限的学生阶段时间里,真正学到必备的技能和有含金量的知识是很重要的,具备了这样的技能无疑会为我们学业和就业增加了重要的砝码和就业优势,经过TaLK工作室同事多年在企业公司中从事操作系统内核工作经验的积累和实践应用,调研书籍以及请教知名培训机构甚至与国外的同行或者学生交流,逐渐总结了一套学习计算机技能,学习操作系统的成熟方法- 以开源的linux操作系统为平台,通过渐进式的应用学习,进而掌握内核编译技能,再通过块设备过滤驱动入手实战,在短时间内即可提升个人技术能力和对操作系统的理解能力,更重要的是为后续继续深入学习和修炼操作系统内核掌握了学习方法。

 

操作系统Linux内核代码太过庞大,很多都能独自成章,甚至是很庞大的一门学科,如tcp/ip,那么面对如此庞大的linux,我们如何切入,如何入手,如何成为内核人,从块设备入手是很方便的,这也是工作室经历多年实战总结出的一套方法。Linux块设备设计的非常灵活,大家都可以根据块设备标准的API接口快速写出驱动模块,然后可以迅速的在里面运用内核各种接口,提高内核编程技能,提高内核理解力。块设备过滤驱动,可以让你立刻与内核交互联系在一起你可以看到你的模块处于系统io路径的关键位置上,对上有文件系统,对下有scsi和网络,由此你开启了学习内核各个模块的关键之路,学好块设备,对上可以继续切入文件系统,对下可以是网络或者scsi,,甚至你可以去逐渐分析内核里面大名鼎鼎的devicemapper,同时我们通过熟悉块设备的开发API, 也能更体会到linux内核的开放性和代码的高质量性,它允许开发人员通过它提供的API给内核继续补充更多的模块进来,这一特点你会在后续阅读文件系统代码或者tcp/ip协议栈的代码时更能体会到。

 

大家都写过read读文件的代码,你想知道或者探秘read到底是如何把数据读上来的吗,操作系统是如何处理的,linux是如何处理的,从现在开始让我们逐渐养成寻根究底的学习方法,能够主动思考或者探秘操作系统行为,这样才能逐渐理解操作系统的工作原理,逐渐理解linux内核的设计艺术和实现原理,也才能够逐渐往高手的水平上迈进。我们通过向大家展示如何用150行内核代码构建一个真实的过滤块设备驱动,并通过实际的trace跟踪设备驱动与操作系统的交互细节,生动形象的将大家快速带入内核开发的世界,然后在150行代码基础上,迅速进行内核机制API的实战,把许多内核书上介绍的进程,并发,锁机制,定时器迅速实践起来,充分的在实际代码中进行操作系统技术的理解和使用,为后续大家能够逐渐主动并能够阅读内核代码打下实战基础,逐步提高内核的理解,内核代码毕竟不象main.c,它的函数啥时候被调用到,依赖于整个内核的运行机理和工作语义规则和流程,通过块设备,我们就会很形象的知道读写请求是如何处理的,读写请求就是我们提到的io概念,这也是linux最主要的功能,至于内存管理,进程调度,中断都是内核的一些基础设施,一般我们需要的是充分理解他们的工作原理,能够熟练的运用,当然也鼓励大家往深里面跟进具体的实现原理,这样更能把握操作系统设计的精髓。后续我们也专门开设了内核修养课程,就是去分析内存管理,探秘进程管理,中断及系统调用的,这样我们不仅可以写内核代码,还能清楚的知道和理解内核原理。最后我们会接着拿出TaLK工作室实际开发的一款稳定性质量代码架构较高的pvkmod过滤驱动,让大家实际体验企业内核开发代码过程,进行分析和了解好的架构,同时我们也想借此机会将pvkmod开源化,并做成一个开源项目,成为大学的内核学习试验教学模块。

 

1.2 TaLK工作室的使命

TaLK 工作室 TaLK - TrAce the Linux Kernel Studio, 提供专业OS解决方案, 提供专业和实际项目并全程跟踪KernelCodeReview 的OS培训课程, 我们的核心理念就是要把大家聚合在一起形成一个专业讨论(talk)社区,普及中国大学生深入学习并实战计算机操作系统,以linux内核为主要切入点,进行内核技术的持续学习,从学业就业两方面持续提高。我们希望通过持续的努力,逐渐实现下面的三个目标:

 

1. 专业linuxOS研究团队;

2. 高效linux内核培训,实际内核项目和持续的kernel 代码Review训练;

3. 专业OS及存储技术及解决方案;

 

只有持续的研发和研究内核技术才能打造持续的有含金量的课程分享给广大同仁,作培训一样要懂得搞研发,否则我们就是个跟市面培训学校没啥区别了,初期我们要尽量聚焦,让用户感觉到我们的精品,求精,求细,求专业。


你可能感兴趣的:(谈操作系统(linux内核)学习的重要性)