开学有3周了,还没写过博客,一方面是项目上的事,另一方面是阿里、腾讯都开始内推实习了,准备简历,复习一下。在准备找工作实习, 以及在面试中,能慢慢发现自己的短处和长处,有些面试的很惨,但是这不能说明你很low,只是你投的职位不是你所擅长的领域,职位选择失误。
“人在江湖,身不由己”,有时候你没时间没条件去做自己感兴趣的东西,领着RA,就要给老板干活!既然无法选择环境,那么就去适应它!
兴趣
分两种,一种是天生的兴趣,一见钟情是也;一种是后天培养的兴趣,感觉生活中大多数人都不知道自己的兴趣,或者无法从事自感兴趣的工作,只能培养兴趣。
有点跑偏了,进入正题,现在我对Linux内核开发培养出来了兴趣,本文就是对Linux内核开发入门的一个综述性文章。
综述文章是一类对某主题研究现状进行归纳、总结的文章。 博士在确定研究方向之后一般会先写个综述文章,以便对当前现状有个清楚的认识。
这大概是想学习kernel的人最关心的一个问题
一般是
一般底层研发岗位的招聘要求都会附加一条 有内核开发经验者优先
去的公司肯定小不了,
红帽就不必说了,另外两家不是做虚拟机和芯片的嘛,怎么也要内核开发人员,这两家我都面过,都问过kernel编程经历
除了外企,再看看BAT对内核开发工程师的需求
百度_云平台部_Linux内核方向工程师
工作职责: 1. Linux内核安全方案开发定制与移植(grsecurity, SELinux) 2. 轻量级虚拟化方案开发(LXC, CGroup)
职位要求:
阿里 - 资深分布式存储系统开发工程师
工作职责
职位要求
腾讯 - 架构平台部 - linux内核开发工程师
职责描述
职位要求
至于工资嘛,在招聘网站上查了一下,好多都是工资面议,应该就是根据水平差别比较大,另外就是需求相对少。
个人觉得学习内核开发分三步走:
我打算从下面两个点入手
电子版可在这里下载
书名 | 简介 | 豆瓣评分 | 大牛评价 |
---|---|---|---|
Linux内核设计与实现( Linux Kernel Development) | 本书详细描述了Linux内核的设计与实现。内核代码的编写者、开发者以及程序开发人员都可以通过阅读本书受益,他们可以更好理解操作系统原理,并将其应用在自己的编码中以提高效率和生产率。本书的主题包括进程管理、进程调度、时间管理和定时器、系统调用接口、内存寻址、内存管理和页缓存、VFS、内核同步、移植性相关的问题以及调试技术。 | 8.6 | 可惜结果稍微有点点不那么完美,但是给我入门的教导,足矣。 整本书非常薄,但是内容非常丰富,基本上是在内核的各大部分都走了一遍,而且第二版对2.6增加的若干改进有着非常好的描述。一遍看来下,的确能对内核有个整体的把握,而不至于陷于细节难以翻身。从这个意义上来讲,这本书的目的达到了。更多 |
Linux内核编程(The Linux Kernel Primer) | 本书主要内容包括:Linux基础知识、内核探索工具集、进程的整个生命周期、内存区、页面、Slab分配器、用于输入/输出的各种设备、文件系统、抢占、自旋锁、信号量、内核引导、构建Linux内核,以及向内核添加代码等。同时还简单介绍了一些应用工具和实用程序,从而可以获取理解内核内幕所需的信息。 | 7.1 | 什么叫primer?primer的内涵不在于初等或者低级,而是打底,也就是打基础。本书介绍了从头开始学习Linux内核的所有细节,甚至包括大量的代码分析。虽然没有《情景分析》那么透彻,但其循序渐进的风格很值得借鉴。更多 |
深入理解Linux内核( Understanding The Linux Kernel ) | 本书指导你对内核中使用的最重要的数据结构、算法和程序设计诀窍进行一次遍历。通过对表面特性的探究,作者给那些想知道自己机器工作原理的人提供了颇有价值的见解。 | 9.1 | 看起来非常耗时,非常基础的底层技术:汇编知识(主要是X86体系的硬件接口知识)、C/C++功底、数据结构,因为没有提到网络方面的内核代码,所以对TCP/IP协议没有要求,如果对这三方面缺少认识甚至没有听说过的话,建议看之前还是充充这方面的电,不然会自信心会遭受严重挫折。更多 |
欢迎补充