li26598296 发表于 2018-5-23 07:00:05

Linux复习(六)

一、内核
  操作系统是一系列程序的集合,其中最重要的部分构成了内核
  单内核/微内核
   单内核是一个很大的进程,内部可以分为若干模块,运行时是一个独立的二进制文件,模块间通讯通过直接调用函数实现
   微内核中大部分内核作为独立的进程在特权下运行,通过消息传递进行通讯
Linux内核的能力
    内存管理,文件系统,进程管理,多线程支持,抢占式,多处理支持
Linux内核区别于其他UNIX商业内核的优点
   单内核,模块支持
   免费/开源
   支持多种CPU,硬件支持能力非常强大
   Linux开发者都是非常出色的程序员
   通过学习Linux内核的源码可以了解现代操作系统的实现原理

  

  层次结构
  

  
二、模块&驱动

许多常见驱动的源代码集成在内核源码里
也有第三方开发的驱动,可以单独编译成模块.ko

驱动的编译需要内核头文件的支持 #include <linux/kernel.h>            


1.加载模块的命令:
1)底层命令
   insmod
   rmmod
2)高层命令
   modprobe
   modprobe -r



2.内核编程和外围程序的差别。(主观题,要能写出一段)   重点!







3.内核编程的注意点


不能使用C库来开发驱动程序
没有内存保护机制
小内核栈
   并发上的考虑








4.
内核模块的一个简单例子(要能看懂)






#include <linux/kernel.h>            
#include <linux/module.h>
#include <linux/init.h>
static int __init hello_init(void)
{
printk(KERN_INFO &quot;Hello world\n&quot;);
return 0;
}
static void __exit hello_exit(void)
{
printk(KERN_INFO &quot;Goodbye world\n&quot;);
}
module_init(hello_init);
module_exit(hello_exit);
页: [1]
查看完整版本: Linux复习(六)