Fork me on GitHub

内核及内核模块

linux内核源代码一般在/usr/src/下面

linux概念之进程分析这篇文章最后部分,才进而分析内核源码

 

http://www.it165.net/os/html/201402/7185.html    内核参数优化

 

cd /usr/src/
yum install wget
wget https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.gz
tar zxvf linux-2.6.32.tar.gz
cd linux-2.6.32
yum install ncurses-devel
make menuconfig

Linux用来支持各种体系结构的源代码包含大约4500个C语言程序,存放在270个左右的子目录下,总共大约包含200万行代码,大概占用58MB磁盘空间。

源代码所在目录:/usr/src/linux (大部分linux发行版本中)

init 内核初始化代码
kernel 内核核心部分:进程、定时、程序执行、信号、模块。。。
mm 内存处理
arch 平台相关代码
    i386 IBM的PC体系结构
       kernel 内核核心部分
       mm 内存管理
       math-emu 浮点单元软件仿真
       lib 硬件相关工具函数
       boot 引导程序
          compressed 压缩内核处理
          tools 生成压缩内核映像的程序
    alpha 康柏的Alpha体系结构
    s390 IBM的System/390体系结构
    sparc Sun的SPARC体系结构
   sparc64 Sun的Ultra-SPARC体系结构
    mips SGI的MIPS体系结构
    ppc Motorola-IBM的基于PowerPC的体系结构
    m68k Motorola的基于MC680x0的体系结构
    arm 基于ARM处理器的体系结构
fs 文件系统
    proc /proc虚拟文件系统
    devpts /dev/pts虚拟文件系统
    ext2 Linux本地的Ext2文件系统
    isofs ISO9660文件系统(CD-ROM)
    nfs 网络文件系统(NFS)
    nfsd 集成的网络文件系统服务器
    fat 基于FAT的文件系统的通用代码
    msdos 微软的MS-DOS文件系统
    vfat 微软的Windows文件系统(VFAT)
    nls 本地语言支持
    ntfs 微软的Windows NT文件系统
    smbfs 微软的Windows服务器消息块(SMB)文件系统
    umsdos UMSDOS文件系统
    minix MINIX文件系统
    hpfs IBM的OS/2文件系统
    sysv SystemV、SCO、Xenix、Coherent和Version7文件系统
    ncpfs Novell的Netware核心协议(NCP0
    ufs UnixBSD、SunOs、FreeBSD、NetBSD、OpenBSD和NeXTStep文件系统
    affs Amiga的快速文件系统(FFS)
    coda Coda网络文件系统
    hfs 苹果的Macintosh文件系统
    adfs Acorn磁盘填充文件系统
    efs SGI IRIX的EFS文件系统
    qnx4 QNX4 OS使用不的文件系统
    romfs 只读小文件系统
    autofs 目录自动装载程序的支持
    lockd 远程文件锁定的支持
Net 网络代码
Ipc System V的进程间通信
Drivers 设备驱动程序
    block 块设备驱动程序
       paride 从并口访问IDE设备的支持
    scsi SCSI设备驱动程序
    char 字符设备驱动程序
       joystick 游戏杆
       ftape 磁带流设备
       hfmodem 无线电设备
       ip2 IntelliPort的多端口串行控制器
    net 网卡设备
    sound 音频卡设备
    video 视频卡设备
    cdrom 专用CD-ROM设备(除ATAPI和SCSI之外)
    isd0n ISDN设备
    apl000 富士的AP1000设备
    macintosh 苹果的Macintosh设备
    sgi SGI的设备
    fc4 光纤设备
    acorn Acorn的设备
    misc 杂项设备
    pnp 即插即用的支持
    usb 通用串行总线(USB)的支持
    pci PCI总线的支持
    sbus Sun的SPARC SBus的支持
    nubus 苹果的Macintosh Nubus的支持
    zorro Amiga的Zorro总线的支持
    dio 惠普的HP300 DIO总线的支持
    tc Sun的TurboChannel支持(尚未完成)
Lib 通用内核函数
Include 头文件(.h)
    linux 内核核心部分
       lockd 远程文件加锁
       nfsd 集成的网络文件服务器
       sunrpc Sun的远程过程调用
       byteorder 字节交换函数
       modules 模块支持
    asm-generic 平台无关低级头文件
    asm-i386 IBM的PC体系结构
    asm-alpha 康柏的Alpha体系结构
    asm-mips SGI的MIPS体系结构
    asm-m68k Motorola-IBM的基于PowerPC的体系结构
    asm-ppc Motorola-IBM的PowerPC体系结构
    asm-s390 IBM的System/390体系结构
    asm-sparc Sun的SPARC体系结构
    asm-sparc64 Sun的Ultra-SPARC体系结构
    asm-arm 基于ARM处理器的体系结构
    net 网络
    scsi SCSI支持
    video 视频卡支持
    config 定义内核配置的宏所在的头文件
scripts 生成内核映像的外部程序
Documentation有关内核各个部分的通用解释和注释的文本文件

 

 

 

这是内核配置参数
cat /boot/config-2.6.32-431.el6.x86_64



modprobe
program to add and remove modules from the Linux kernel
/lib/modules/`uname -r`/kernel/

modinfo
program to show information about a Linux kernel module

lsmod
program to show the status of modules in the Linux kernel
lsmod is a trivial program
trivial    adj. 不重要的,琐碎的;琐细的
/proc/modules


有哪个内核模块,就有相应的功能,否则就打内核补丁来得到内核模块即.ko文件
modinfo nfs,kvm,ip_vs,openvswitch,bridge,netconsole

[root@localhost ~]# lsmod |grep netconsole
[root@localhost ~]# modprobe netconsole netconsole=@/eth0,12345@10.0.0.1/00:E0:81:2B:0C:C1
[root@localhost ~]# lsmod |grep brid
[root@localhost ~]# modprobe bridge
[root@localhost ~]# lsmod |grep brid
bridge                 83177  0
stp                     2218  1 bridge
llc                     5546  2 bridge,stp
[root@localhost ~]# lsmod |grep kvm
[root@localhost ~]# modprobe kvm
[root@localhost ~]# lsmod |grep kvm
kvm                   333172  0

 

 

nf_nat

iptable_nat

ip_tables

cs66
The OpenvSwitch module is now available as a kernel module. 

nf_nat模块的查看,加载,移除,再查看
[root@localhost ~]# lsmod |grep nat
[root@localhost ~]# modprobe nf_nat
[root@localhost ~]# lsmod |grep nat
nf_nat                 22759  0
nf_conntrack_ipv4       9506  4 nf_nat
nf_conntrack           79758  4 nf_nat,nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state
[root@localhost ~]# modprobe -r nf_nat
[root@localhost ~]# lsmod |grep nat
[root@localhost ~]# modprobe iptable_nat
[root@localhost ~]# lsmod |grep nat
iptable_nat             6158  0
nf_nat                 22759  1 iptable_nat
nf_conntrack_ipv4       9506  5 iptable_nat,nf_nat
ip_tables              17831  2 iptable_nat,iptable_filter
nf_conntrack           79758  5 iptable_nat,nf_nat,nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state

 

 


service --status-all
得到net-console这个模块未load,所以查一下这个模块是干吗的

 

posted on 2014-09-22 14:52  阳光-源泉  阅读(570)  评论(0编辑  收藏  举报

导航