1.写驱动时,在linux系统的内核之下,有很多模块,进程管理模块,内存管理模块,驱动管理模块,C语言的库函数调用等,这时候会不停地从用户空间切换到内存空间,来回切换。比如做网络协议栈,肯定是做驱动,做驱动只接触一小块,和驱动相关的,和内核协议栈相关的API函数,会发现一堆的api函数。如何看懂这些api函数呢?
这些api函数是被操作系统的源码的TCP/IP协议栈给调用的,言外之意是说,这些API函数是被操作系统的TCP/IP协议栈提前给分配好内存的,传到这个API函数里面。
我们做驱动开发时都是在别人写好的模型之下做开发,不是那么复杂。
无论做什么开发,都应该知道是在哪个模型之下做的开发。
MFC框架以及QT框架开发亦是如此。
是在linux内核的TCP/IP协议栈之下做的开发还是在用户空间的环境下进行地开发。



