linux内核 目录?linux内核源码
linux根目录下5个主要的目录及目录的功能各是什么
(1)/:根目录
(2)/bin:存放启动时所需要的普通程序
(3)/boot:存放内核及启动所需要的文件
(4)/dev:存放设备相关的文件
(5)/etc:存放系统的配置文件
(6)/home:存放用户文件的主目录,用户数据( cd~可进入自己的主目录)
(7)/lib:存放启动时所需要的库文件
(8)/mnt:存放临时的映射文件,通常是一些用来安装其他设备的子目录(如/mnt/cdrom/mnt/floppy)
(9)/proc:这是一个虚拟的文件系统,存放当前系统的状态(有关进程和系统信息)
(10)/root:超级用户主目录
(11)/sbin:存放启动时所需要的系统管理程序
(12)/tmp:存放启动时产生的临时文件
(13)/usr:包含一般不需要修改的应用程序,命令程序文件,程序库,手册
(14)/var:存放系统产生的经常变化的文件
(15)/var/tmp:存放用户的临时文件
(16)/usr/lib:存放非启动用的库文件
(17)/lib/modules/:存放内核模块
(18)/var/log:存放大多数日志文件
(19)/var/run:存放运行时的信息
(20)/var/lib:存放一些系统运行时需要的文件
(21)/var/spool:存放邮件,新闻及打印序列
(22)/etc/X11:存放X窗口系统所需要的配置文件
(23)/etc/init.d:存放启动描述文件,包括各种模块和服务的加载描述
(24)/etc/rcS.d:存放一些连接到/etc/init.d的文件,根据runlevel的不同而执行不同的描述
(25)/etc/rc0.d---/etc/rc6.d:存放一些连接文件,只在指定的runlevel下执行相应的描述
(26)/usr/X11R6,/usr/X11,/usr/Xfree86:存放X窗口系统所需要的文件
(27)/usr/bin:存放应用程序二进制可执行文件
(28)/usr/sbin:存放大部分系统程序
(29)/usr/games:存放游戏程序及相应的数据
(30)/usr/include:存放c和c++的头文件
(31)/usr/info:存放GNU Info程序所需要的数据
(32)/usr/man:存放man程序所需要的数据
(33)/usr/src:存放源代码文件
(34)/usr/doc:存放文档文件
(35)/usr/local:存放本地计算机所需要的文件
(36)/usr/shared:存放各种共享文件
怎样进入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内核文件存放在哪个目录中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的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解。