linux 内核 文件,linux软件安装包

大家好,感谢邀请,今天来为大家分享一下linux 内核 文件的问题,以及和linux软件安装包的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

linux内核文件存放在哪个目录中linux内核文件

linux操作系统中,加载和删除内核模块的命令是什么?

modprobe命令Linux命令:modprobe。功能说明:自动处理可载入模块。语法:modprobe。补充说明:modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。内容

1、modprobe命令是根据depmod-a的输出/lib/modules/version/modules.dep来加载全部的所需要模块。

2、删除模块的命令是:modprobe-rfilename。

3、系统启动后,正常工作的模块都在/proc/modules文件中列出。使用lsmod命令也可显示相同内容。

4、在内核中有一个“Automatickernelmoduleloading"功能被编译到了内核中。当用户尝试打开某类型的文件时,内核会根据需要尝试加载相应的模块。/etc/modules.conf或/etc/modprobe.conf文件是一个自动处理内核模块的控制文件。modprobe命令主要用于在Linux2.6内核中加载和删除Linux内核模块。通过此命令用户可以轻松地加载和删除Linux内核模块,同时使用此命令加载Linux内核模块时,Linux内核会自动解决内核模块之间的依赖关系,将相互依赖的模块自动加载,如下所示:1)加载RAID1阵列级别模块:#modproberaid12)显示已加载的RAID1阵列级别模块:#lsmod|grepraid1raid12515303)删除RAID1阵列级别模块:#modprobe-rraid14)显示RAID1阵列级别模块:#lsmod|grepraid1modprobe命令在加载模块时会自动解决依赖的模块。当加载的模块需依赖另一个模块时,系统会自动将此模块加载。而当用户使用insmod命令加载模块时,则不会自动解决相对应的依赖模块。modprobe命令中的"-r"参数表示删除指定模块,"-c"参数表示显示/etc/modprobe.conf配置文件的参数,"-C"参数表示指定内核配置文件,"-f"表示覆盖,"-l"表示显示模块的绝对路径。#modprobe-l|grepraid/lib/modules/2.6.18-8.el5/kernel/drivers/md/raid0.ko/lib/modules/2.6.18-8.el5/kernel/drivers/md/raid456.ko/lib/modules/2.6.18-8.el5/kernel/drivers/md/raid1.ko/lib/modules/2.6.18-8.el5/kernel/drivers/md/raid10.ko/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid.ko/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/aacraid/aacraid.ko/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mbox.ko/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mm.ko/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_sas.ko/lib/modules/2.6.18-8.el5/kernel/drivers/scsi/raid_class.ko以上命令表示显示系统中所有的编译模块,并过滤包含有raid字符串的模块。

linux中header是什么?

完全没看懂楼主要什么。

Linux-headers是Linux的开发头文件,应该位于/usr/include/linux里面。不过有的系统习惯放/usr/src里面一分(这种情况很少,因为正规的地方是/lib/modules/内核版本>/的某个目录,印象里是他的build里),因为有的软件去这里寻找当前内核的源代码来调用当前源代码的header进行编译。

/usr/include里面的Linux内核头文件,是专门编译libc用的。不能保证内核模块的编译要求。真正的Linux不可能给这个名字。

/usr/src里面习惯是放完整的Linux源代码。但具体名字,要看系统的定义了,有的叫linux-sources、kernel-source什么的。有的可能是改进版的名字。

LINUX怎么修改内核文件?

我理解的修改顺序如下

1,下载内核源码

2,修改源码文件

3,重新编译源码生成新的内核

如何查看linux内核源代码?

一般在Linux系统中的/usr/src/linux*.*.*(*.*.*代表的是内核版本,如2.4.23)目录下就是内核源代码(如果没有类似目录,是因为还没安装内核代码)。另外还可从互连网上免费下载。注意,不要总到去下载,最好使用它的镜像站点下载。请在里找一个合适的下载点,再到pub/linux/kernel/v2.6/目录下去下载2.4.23内核。

代码目录结构

在阅读源码之前,还应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的各个目录大致与此相对应,其组成如下(假设相对于Linux-2.4.23目录):

1.arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是IntelCPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。

2.include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。

3.init目录包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。这是研究核心如何工作的好起点。

4.mm目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。

5.drivers目录中是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。

6.ipc目录包含了核心进程间的通信代码。

7.modules目录存放了已建好的、可动态加载的模块。

8.fs目录存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。

Kernel内核管理的核心代码放在这里。同时与处理器结构相关代码都放在arch/*/kernel目录下。

9.net目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。

10.lib目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch/*/lib/目录下。

11.scripts目录包含用于配置核心的脚本文件。

12.documentation目录下是一些文档,是对每个目录作用的具体说明。

一般在每个目录下都有一个.depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。

在阅读方法或顺序上,有纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。它们经常结合在一起进行。对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解。

怎样进入linux内核文件目录

1、先是输入账号密码进入centos7。

2、进入系统后,先用pwd命令查看一下当前所在的目录。

3、切换文件目录使用的命令是cd,如图命令cd/就是切换到根目录。

4、在根目录下用ls命令查看该目录下有哪些文件,查看后,用绝对路径的方式进入usr目录中,命令为cd/usr。

5、进入usr目录后,用ls查看一下usr下有什么文件。

6、想用绝对路径进入usr下的local目录,使用cd/usr/local,如果使用cd/local是会报错说找不到该目录的。

linux module命令

linux系统下module命令是什么呢?下面是具体介绍:

1、module命令简介:

modules的字面意思是模块,模块化有两个方法解决:设计者可以把各项功能分离到单独的叫做线程的处理中去,或者是将内核以包含/排除一些功能的方式重新编译。如果把功能分离到线程中去,那么内核就叫做“微内核”(micro-kernel),这种解决方法增加了线程间协调工作的通信开销,这种解决方案的优点在于内核的大小。

Linux的解决方案是包含内核模块,这些模块是可以按需要随时装入和卸下的。这样做可以使得内核的大小和通信量都达到最小。将模块从内核中独立出来,不必预先『绑』在 kernel codes中。

这样做有三种优点:一,将来修改 kernel时,不必全部重新compile,可节省不少时间;二,若需要安装新的 modules,不必重新 compile kernel,只要插入(通过insmode指令)对应的 modules即可;三,减少内核对系统资源的占用,内核可以集中精力做最基本的事情,把一些扩展功能都交由modules实现。

模块也可以用来尝试新的内核代码而不需要每次都创建和重激活内核。但是,这样做带来的问题是:使用内核模块通常会轻微的增加性能和内存开支。一个可加载模块肯定会产生更多的代码,这种代码和额外的数据结构会占用更多一点的内存。另外因为间接访问内核资源也让模块的效率轻微降低。

2、加载模块方法:

加载内核模块的方法有两种。

一是使用insmod命令手工把它插入到内核。

二是在需要的时候加载这个模块,叫做按需加载(demand loading)。当内核发现需要一个模块的时候,例如当用户安装一个不在内核的文件系统的时候,内核会请求内核守护进程(kerneld)试图加载合适的模块。

3、与modules有关的命令:

lsmode:列出已经被内核调入的模块

insmode:将某个module插入到内核中

rmmod:将某个module从内核中卸载

depmod:生成依赖文件,告诉将来的 insmod要从哪儿调入 modules。这个依赖文件就在/lib/modules/[您的kernel版本]/modules.dep。

Kerneld:负责自动的将模块调入内核和把模块从内核中卸载。

举例:

编译一个最小的Linux内核

必须要编译到内核中的内容:

1、root所在的硬盘配置。哪果您的硬盘是IDE接口,就把 ide的选项标记下来。如果是SCSI接口,请把您的接口参数及 SCSI id记标下来。

2、选择使用哪一个文件系统。Linux的默认文件系统是是 ext2,那么就一定要把它标记下来。如果机器中还其它的操作系统,如win98或windows NT,您还会可能选择FAT32或NTFS的支持,不过后面你可以通过手工加载的方式来加入新的模块支持。

3、选择Linux所支持的可执行文件格式。这里有两种格式可供选择:elf:这是当前Linux普遍支持的可执行文件格式,必须编译到内核中。

a.out:这是旧版的Linux的可执行文件各函数库的格式,如果你确认肯定用不到这种格式的可执行文件,那么就可以不把它编译到内核当中。

其它内容凡是所有选项中m提示的,都选择m,这样可以通过手工的方式添加该模块。

** Loadable module support*Enable loadable module support(CONFIG_MODULES) [Y/n/?]Set version

information on all symbols for modules(CONFIG_MODVERSIONS) [N/y/?]Kernel daemon support(e.g.

autoload of modules)(CONFIG_KERNELD) [Y/n/?]

分别回答 Y,N,Y。其中 CONFIG_KERNELD的 default值是 N,所以要注意选择Y。

make config完后,仍旧是 make dep; make clean。接下来要 make zlilo或 make zImage。然后 make modules; make modules_install。完成之后,就编译出一个没有调入多余模块的一个“干净的”内核映像文件了。

阅读剩余
THE END