做linux 应用开发的不少的程序员,后都无奈的走上了linux内核之路,为何?
因为很多问题的答案在应用层已经找不到答案了,比如:
1. 一个系统调用是如何进入到内核的,到内核里之后又做了什么事情?
2. 为什么调用不同的文件的write函数可以完成不同的事情?
3. 不同的应用程序可以共用一个动态链接库、而无需有多个拷贝,这是怎么实现的?
4. 不同进程之间是如何做到内存空间的既隔离又共享的?
5. 为什么应用层需要内存管理机构,如果没有会有什么问题吗?
6. linux进程和线程的本质区别是什么?
7. nginx优化的时候配置的net.core.netdev_max_backlog,为什么这个配置可以做到优化性能,底层原理是什么?
8. 串口编程的是时候设置的这些参数都是干什么的? options.c_cc[VTIME] = 1; options.c_cc[VMIN] = 1;
9. linux iptables防火墙的实现机理是什么样的?
太多太多了!
很多时候,我们要的并不是一个简单的答案,而是探索的过程和通过探索得到答案的满足感。
这或许是不少的linux开发者都转向研究linux内核的根本原因吧。
或许,还有另类?
关注我@技术简说 ,带大家一起阅读linux内核源码。
#程序员# #Linux# #c语言# #C语言# #linux# #嵌入式#