提问 | Linux内核工程师是怎么步入内核殿堂的?

1、了解Linux内核由哪些组成?

image.png

2、须知Linux内核源码组织结构?

源码下载:https://www.kernel.org/
图片说明

3、重点需要学习地知识点有哪些?

image.png

内存原理
SMP/NUMA模型组织
页表/页表缓存
CPU缓存
内存映射
虚拟内存
伙伴分配器
块分配器
巨型页
页回收
页错误异常处理与反碎片技术
连续内存分配器技术原理
不连续页分配器原理与实现
内存系统调用
kmalloc/vmalloc
内存池原理与实现
内存优化与实现
文件系统
虚拟文件系统VFS
通用文件模型
数据结构
文件系统调用
挂载文件系统
无存储文件系统
磁盘文件系统
Ext2/Ext3/Ext4文件系统
日志JBD2
用户空间系统
FUSE原理机制/接口与实现
进程管理
进程基础
进程原理及状态
生命周期及系统调用
task_struct数据结构
进程调度
调度策略
进程优先级
调度类分析
SMP调度
网络协议栈网络基础架构
SKB/net_device
网络层分析
Linux邻近子系统
netlink套接字
iptables套接字
netfilter框架
内核NIC接口分析
mac80211无线子系统
网络协议栈
internet控制消息协议(ICMP)
用户数据报协议(UDP)
传输控制协议(TCP)
流控制传输协议(SCTP)
数据报拥塞控制协议(DCCP)
IPv4路由选择子系统*
组播/策略/多路径路由选择
接收/发送(IPv4/IPv6)数据报
infiniBand栈的架构
系统API调用
POSIX网络API调用
epoll内核原理与实现
网络系统参数配置
设备驱动
设备子系统
I/O机制原理
设备模型
字符设备子系统
网络接口卡驱动
Linux设备模型
LDM
设备模型和sysfs
字符设备驱动
主设备与次设备
设备文件操作
分配与注册字符设备
写文件操作实现
网卡设备驱动
数据结构
设备方法
驱动程序
块设备驱动
资源管理
I/O调度
BIO结构原理
PCI总线原理
蓝牙子系统
HCI层/连接
L2CAP
BNEP
蓝牙数据包接收架构

4、大佬视频

1、Linux Kernel Network Drivers - Classification(Linux内核网络驱动程序)百度网盘:qdt5

2、Linux Kernel Development(Linux内核开发)百度网盘:vg1u

3、The mind behind Linux(Linux背后的思想)百度网盘:zgnu

4、Linux Systems Performance(Linux系统性能)百度网盘:9qom

5、Network Driver Interfaces(网络驱动程序接口)百度网盘:xpke

6、Selective module compilation in mainline kernel(在主线内核中编译可选模块):百度网盘:l56j

7、Linux System Programming 6 Hours Course(Linux系统编程6小时课程)百度网盘:hc2d

8、Threads and Thread Handing(线程和线程处理)百度网盘:erxm

9、Learning the Linux Kernel with tracing(通过跟踪学习Linux内核)百度网盘:066g

10、How to Apply a Patch to the Linux Kernel Stable Tree(如何将补丁应用到Linux内核稳定树)百度网盘:955e

11、Linux Kernel Programming(Linux内核编程- atomic_t数据类型-原子变量和api)百度网盘:njt0

12、Kernel Recipes 2017 - 性能优化大牛Brendan Gregg 百度网盘:lrex

5、电子书籍推荐:

《Linux内核完全注释V3.0书签版》

《Linux命令行大全 - 绍茨 (william E.shotts)》

《Linux命令速查手册》

《Linux就该这么学》

《Linux性能优化大师》

《Linux环境编程:从应用到内核》

《Linux集群和自动化运维 余洪春》

《Linux驱动程序开发实例(第2版)》

《Linux高级程序设计(第3版)》

《构建高可用Linux服务器(第4版)》

《深入了解Linux内核》

6、论文阅读

image.png

7、面试题

1、什么是Linux?

2、Unix和Linux有什么区别?

3、什么是 Linux 内核?

4、Linux的基本组件是什么?

5、Linux 的体系结构

6、BASH和DOS之间的基本区别是什么?

7、Linux 开机启动过程?

8、Linux系统缺省的运行级别?

9、Linux 使用的进程间通信方式?

10、Linux 有哪些系统日志文件?

从N个维度学习,Linux内核的知识,但是又需要有规划,有计划的学习,不要乱学,最好有个大纲,确定好方向,这样学习起来才会更有思路,更好的效果。
以上内容参考来自Github项目,感兴趣的小伙伴,可以去看看。

#互联网求职##学习路径#
全部评论

相关推荐

1 25 评论
分享
牛客网
牛客企业服务