Linux内核版本号及源代码目录树结构

合集下载

Linux Tutorial

Linux Tutorial
cdrom :光驱 fd? :软驱 sd?? :SCSI硬盘,如果U盘接入系统,则该 设备一般为sda, sdb tty?, pty?, pts/* :终端,伪终端设备 eth? :以太网设备
/usr bin :存放用户命令,普通用户可以执行。 sbin :存放用户命令,一般为root执行。 man, info, doc :存放各种文档及帮助信息。 include :存放C的头文件 lib :一般存放bin, sbin目录下程序执行需要的共享库, 也包括了很多软件提供的静态库。 local :主要存放root本地安装的软件,避免和系统的 程序放在一起。 src :内核存放目录,也包含RPM编译时需要的目录。
kmsg :内核输出的消息。同时,也被记录到syslog。 ksyms :内核的符号表。 loadavg :系统的负荷信息,进程数,运行的进程数,下次产 生进程的进程号。 meminfo :包含和内存使用相关的信息,其中既包括物理内 存,又有交换空间。 modules :表明此时正在装载哪些内核模块。 net :和网络协议相关的状态信息。 stat :关于系统的各种统计数据。 uptime :表明系统已运行的时间。 version :内核版本号。
目录、文件的查看
ls, dir :用于列出目录的文件。 cat :用于快速查看文件、创建文件、合并文件、给 文件加行号(-n)等操作。 more, less :按页、行浏览文件,more只能往后翻, less可以往前。 head :head用于浏览文件的开头部分。 tail :tail可以浏览文件的结尾部分,tail –f filename 可以跟踪文件的变化,并及时显示新加入的内容, 比如跟踪日志记录情况。
文件系统简介
ext2 :Linux文件系统类型中使用最多的格式,是GNU/Linux 系统中标准的文件系统。它存取文件的性能极好,对于中、 小型的文件更显示出优势。由于设计者主要考虑的是文件系 统性能方面的问题,因此写入文件内容的同时,并没有写入 文件的meta-data(和文件有关的信息,例如权限、所有者 及创建和访问时间)。换句话说,Linux先写入文件的内容, 然后等到有空的时候才写入文件的meta-data。如果出现写 入文件内容之后,但在写入文件的meta-data之前系统突然 断电,就可能造成文件系统就会处于不一致的状态。这时就 需要进行fsck。 ext3、Reiserfs、JFS、XFS :基于日志的文件系统,设计思 想基于数据库的事务,如果文件系统出现掉电等问题则根据 日志进行回滚,从而解决了ext2的问题。

linux操作系统的结构及详细说明

linux操作系统的结构及详细说明

linux操作系统的结构及详细说明linux的操作系统的结构你了解多少呢?下面由店铺为大家整理了linux操作系统的结构及详细说明的相关知识,希望对大家有帮助!linux操作系统的结构及详细说明:一、 linux内核内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。

系统调用接口:SCI 层提供了某些机制执行从用户空间到内核的函数调用。

这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。

SCI 实际上是一个非常有用的函数调用多路复用和多路分解服务。

在 ./linux/kernel 中您可以找到 SCI 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。

1. 内存管理对任何一台计算机而言,其内存以及其它资源都是有限的。

为了让有限的物理内存满足应用程序对内存的大需求量,Linux 采用了称为“虚拟内存”的内存管理方式。

Linux 将内存划分为容易处理的“内存页”(对于大部分体系结构来说都是 4KB)。

Linux 包括了管理可用内存的方式,以及物理和虚拟映射所使用的硬件机制。

不过内存管理要管理的可不止 4KB 缓冲区。

Linux 提供了对 4KB 缓冲区的抽象,例如 slab 分配器。

这种内存管理模式使用 4KB 缓冲区为基数,然后从中分配结构,并跟踪内存页使用情况,比如哪些内存页是满的,哪些页面没有完全使用,哪些页面为空。

这样就允许该模式根据系统需要来动态调整内存使用。

为了支持多个用户使用内存,有时会出现可用内存被消耗光的情况。

由于这个原因,页面可以移出内存并放入磁盘中。

这个过程称为交换,因为页面会被从内存交换到硬盘上。

内存管理的源代码可以在 ./linux/mm 中找到。

2 .进程管理进程实际是某特定应用程序的一个运行实体。

请简述 linux 中的文件系统层次结构

请简述 linux 中的文件系统层次结构

请简述 linux 中的文件系统层次结构
Linux系统的文件系统层次结构是非常复杂的,通常可以分成如下几个层次:
1. 根目录:根目录是 Linux 文件系统中最顶层的根目录,它可以看做是 Linux 系统整个文件系统的根,其它所有的子目录都在它之下,一般用 '/' 表示。

2. 二级目录:包括 '/etc'、'/usr'、'/bin'、'/sbin'、'/lib' 等,这些目录又可以看做是四级目录的父目录,下面可以放置用户自定义的文件和文件夹。

3. 四级目录:这里可以放置用户自定义的应用程序,一般都是以某个子目录名开头,比如 '/usr/local','/usr/bin'、'/usr/sbin'等。

4. 程序文件:可以放置各种程序文件,包括可执行文件、库文件、配置文件等。

5. 日志文件:记录系统的运行日志,以及用户行为日志,用于排查故障。

6. 数据文件:用户可以将各种数据文件存放在用户指定的目录下。

总之,Linux系统的文件系统层次结构比较复杂,它们可以根据用户需求和功能进行多层次的划分,以满足用户的不同需求。

LINUX的目录树结构

LINUX的目录树结构

LINUX的目录树目录树可以分为小的部分,每个部分可以在自己的磁盘或分区上。

主要部分是根、/usr 、/var 和 /home 文件系统。

每个部分有不同的目的。

每台机器都有根文件系统,它包含系统引导和使其他文件系统得以mount所必要的文件,根文件系统应该有单用户状态所必须的足够的内容。

还应该包括修复损坏系统、恢复备份等的工具。

/usr 文件系统包含所有命令、库、man页和其他一般操作中所需的不改变的文件。

/usr 不应该有一般使用中要修改的文件。

这样允许此文件系统中的文件通过网络共享,这样可以更有效,因为这样节省了磁盘空间(/usr 很容易是数百兆),且易于管理(当升级应用时,只有主/usr 需要改变,而无须改变每台机器) 即使此文件系统在本地盘上,也可以只读mount,以减少系统崩溃时文件系统的损坏。

/var 文件系统包含会改变的文件,比如spool目录(mail、news、打印机等用的), log文件、formatted manual pages和暂存文件。

传统上/var 的所有东西曾在 /usr 下的某个地方,但这样/usr 就不可能只读安装了。

/home 文件系统包含用户家目录,即系统上的所有实际数据。

一个大的/home 可能要分为若干文件系统,需要在/home 下加一级名字,如/home/students 、/home/staff 等。

虽然上面将不同的部分称为文件系统,但它们不必是真的分离的文件系统。

如果系统是小的单用户系统,而用户希望简单化,可以很容易地放在一个文件系统中。

根据磁盘容量和不同目的所需分配的空间,目录树也可以分到不同的文件系统中。

重要的是使用标准的名字,即使/var 和/usr 在同一分区上,名字/usr/lib/libc.a 和/var/adm/messages 必须能工作,例如将/var 下的文件移动到/usr/var ,并将/var 作为/usr/var 的符号连接。

Linux目录树

Linux目录树
1.1.3 文件类型 RedFlagServer4.1 系统支持以下文件类型:普通文件、目录文件、设备文件以及符号链接文件。 普通文件:包括文本文件、数据文件、可执行的二进制程序等。 目录文件:简称目录,Linux 中把目录看成是一种特殊的文件,利用它构成文件系统的分层树型结构。每个目录文件中至少包括两个文件, “..”表示上一级目录,“.”表示该目录本身。 设备文件:设备文件是一种特别文件,Linux 系统利用它们来标识各个设备驱动器,核心使用它们与硬件设备通信。有两类特别设备文件: 字符设备和块设备。 符号链接:一种特殊文件,它们存放的数据是文件系统中通向某个文件的路径。当使用符号链接文件时,系统自动地访问所保存的这个路 径。
1.2.2 改变工作目录 进入一个目录,或者说改变当前工作目录使用 cd 命令,其命令的语法格式为: cd 目录名 cd 命令带有唯一的一个参数,即表示目标目录的路径名(相对路径名或绝对路径名)。 利用点点(..)把工作目录向上移动一级目录:cd.. 为了从系统中的任何地方返回到用户主目录,可以使用不带任何参数的 cd 命令。
Linux 的目录树
第 1 章命令行操作 熟悉在命令行界面下工作对使用和管理 Linux 操作系统具有很大的意义,本章介绍在 RedFlagServer4.1 系统中进行 shell 操作的知识。
1.1 基础知识 以下关于 Linuxshell 及文件和目录的知识是学习本章的基础。
1.1.1 文件命名 Linux 下文件名的最大长度可以是 256 个字符,通常由字母、数字、“.”(点号)、“_”(下划线)和“-”(减号)组成。文件名中不能含有“/” 符号,因为“/”在 Linux 目录树中表示根目录或路径中的分隔符(如同 DOS 中的“\”)。 Linux 系统中支持文件名中的通配符,具体如下: 星号(*):匹配零个或多个字符; 问号(?):匹配任何一个字符; [ab1A-F]:匹配任何一个列举在集合中的字符。本例中,该集合是 a、b、1 或任何一个从 A 到 F 的大写字符;

linux内核(kernel)版本号的意义

linux内核(kernel)版本号的意义

linux内核(kernel)版本号的意义在linux下有⼀个⽬录,即/usr/src/kernels/⽬录,下⾯记载着⼀个linux系统的内核⽂件,例如:2.6.18-164.el5-x86_64、2.6.18-8.el5-x86_64和2.6.18-194.el5-x86_64等,这些⽂件编号意味着什么呢?例如2.6.18代表着什么?el5代表着什么?x86_64⼜代表着什么?linux内核版本的分类Linux内核版本有两种:稳定版和开发版,Linux内核版本号由3组数字组成:第⼀个组数字.第⼆组数字.第三组数字第⼀个组数字:⽬前发布的内核主版本。

第⼆个组数字:偶数表⽰稳定版本;奇数表⽰开发中版本。

第三个组数字:错误修补的次数。

例1: 2.6.18-128.ELsmp ,第⼀个组数字: 2 , 主版本号第⼆个组数字: 6 , 次版本号,表⽰稳定版本(因为有偶数)第三个组数字 18 , 修订版本号,表⽰修改的次数,头两个数字合在⼀齐可以描述内核系列。

如稳定版的2.6.0,它是2.6版内核系列。

128:表⽰这个当前版本的第5次微调patch ,⽽ELsmp指出了当前内核是为ELsmp特别调校的 EL : Enterprise Linux ; smp : 表⽰⽀持多处理器,表⽰该内核版本⽀持多处理器linux内核下⾥的ELsmp与EL与smp在linux下ELsmp指出了当前内核是为ELsmp特别调校的 EL : Enterprise Linux ; smp : 表⽰⽀持多处理器,表⽰该内核版本⽀持多处理器例2:Red Hat Linux开机的时候,GRUB的启动菜单会有两个选项,分别是 Red Hat Enterprise Linux ES (版本号.ELsmp) Red Hat Enterprise Linux ES-up (版本号.EL) 其实这个就是系统开机时由GRUB引导启动-单处理器与对称多处理器启动核⼼⽂件的区别。

Linux0.01内核源代码及注释

Linux0.01内核源代码及注释

Bootsect.s(1-9)!! SYS_SIZE is the number of clicks (16 bytes) to be loaded.! 0x3000 is 0x30000 bytes = 196kB, more than enough for current! versions of linux ! SYS_SIZE 是要加载的节数(16 字节为1 节)。

0x3000 共为1 2 3 4 5 60x7c000x00000x900000x100000xA0000system 模块代码执行位置线路0x90200! 0x30000 字节=192 kB(上面Linus 估算错了),对于当前的版本空间已足够了。

!SYSSIZE = 0x3000 ! 指编译连接后system 模块的大小。

参见列表1.2 中第92 的说明。

! 这里给出了一个最大默认值。

!! bootsect.s (C) 1991 Linus Torvalds!! bootsect.s is loaded at 0x7c00 by the bios-startup routines, and moves! iself out of the way to address 0x90000, and jumps there.!! It then loads 'setup' directly after itself (0x90200), and the system! at 0x10000, using BIOS interrupts.!! NOTE! currently system is at most 8*65536 bytes long. This should be no! problem, even in the future. I want to keep it simple. This 512 kB! kernel size should be enough, especially as this doesn't contain the! buffer cache as in minix!! The loader has been made as simple as possible, and continuos! read errors will result in a unbreakable loop. Reboot by hand. It! loads pretty fast by getting whole sectors at a time whenever possible.!! 以下是前面这些文字的翻译:! bootsect.s (C) 1991 Linus Torvalds 版权所有!! bootsect.s 被bios-启动子程序加载至0x7c00 (31k)处,并将自己! 移到了地址0x90000 (576k)处,并跳转至那里。

Linux中的文件和目录结构详解

Linux中的文件和目录结构详解

Linux中的⽂件和⽬录结构详解 对于每⼀个Linux学习者来说,了解Linux⽂件系统的⽬录结构,是学好Linux的⾄关重要的⼀步.,深⼊了解linux⽂件⽬录结构的标准和每个⽬录的详细功能,对于我们⽤好linux系统只管重要,下⾯我们就开始了解⼀下linux⽬录结构的相关知识。

当在使⽤Linux的时候,如果您通过ls –l / 就会发现,在/下包涵很多的⽬录,⽐如etc、usr、var、bin ... ... 等⽬录,⽽在这些⽬录中,我们进去看看,发现也有很多的⽬录或⽂件。

⽂件系统在Linux下看上去就象树形结构,所以我们可以把⽂件系统的结构形象的称为树形结构。

⽂件系统的是⽤来组织和排列⽂件存取的,所以它是可见的,在Linux中,我们可以通过ls等⼯具来查看其结构,在Linux系统中,我们见到的都是树形结构;⽐如操作系统安装在⼀个⽂件系统中,它表现为由/ 起始的树形结构。

linux⽂件系统的最顶端是/,我们称/为Linux的root,也就是 Linux操作系统的⽂件系统。

Linux的⽂件系统的⼊⼝就是/,所有的⽬录、⽂件、设备都在/之下,/就是Linux⽂件系统的组织者,也是最上级的领导者。

由于linux是开放源代码,各⼤公司和团体根据linux的核⼼代码做各⾃的操作,编程。

这样就造成在根下的⽬录的不同。

这样就造成个⼈不能使⽤他⼈的linux系统的PC。

因为你根本不知道⼀些基本的配置,⽂件在哪⾥。

这就造成了混乱。

这就是FHS(Filesystem Hierarchy Standard )机构诞⽣的原因。

该机构是linux爱好者⾃发的组成的⼀个团体,主要是是对linux做⼀些基本的要求,不⾄于是操作者换⼀台主机就成了linux的‘⽂盲’。

事实上,FHS是根据过去的经验⼀直再持续的改版的,FHS依据⽂件系统使⽤的频繁与否与是否允许使⽤者随意更动,⽽将⽬录定义成为四种交互作⽤的形态,⽤表格来说有点像底下这样:可分享的(shareable)不可分享的(unshareable)不变的(static)/usr (软件放置处)/etc (配置⽂件)/opt (第三⽅协⼒软件)/boot (开机与核⼼档)可变动的(variable)/var/mail (使⽤者邮件信箱)/var/run (程序相关) /var/spool/news (新闻组)/var/lock (程序相关)四中类型:1.可分享的: 可以分享给其他系统挂载使⽤的⽬录,所以包括执⾏⽂件与⽤户的邮件等数据,是能够分享给⽹络上其他主机挂载⽤的⽬录;2.不可分享的: ⾃⼰机器上⾯运作的装置⽂件或者是与程序有关的socket⽂件等,由于仅与⾃⾝机器有关,所以当然就不适合分享给其他主机了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux 内核版本号及源代码目录树结构
一、linux内核版本号的命名机制
Linux内核版本有两种:稳定版和开发版。

稳定的内核具有工业级的强度,可以广泛地应用和部署。

新的稳定内核相对于较旧的只是修正一些bug或加入一些新的驱动程序。

而开发版内核由于要试验各种解决方案,所以变化很快。

这两种版本是相互关联,相互循环的。

Linux内核的命名机制:
num.num.num
其中第一个数字是主版本号,第二个数字是次版本号,第三个数字是修订版本号。

如果次版本号是偶数,那么该内核就是稳定版的;若是奇数,则是开发版的。

头两个数字合在一齐可以描述内核系列。

如稳定版的2.6.0,它是2.6版内核系列。

最新的内核源代码可以在以tar包或者增量补丁的形式下载.。

Linux还有各种发行版本,除了最熟悉的Redhat,Debian,Bluepoint,红旗,还有 Slackware,Mandarke,Turbo。

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

在阅读源码之前,还应知道Linux内核源码的整体分布情况。

现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。

Linux内核源码的各个目录大致与此相对应,其组成如下:
arch目录包括了所有和体系结构相关的核心代码。

它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录。

PC机一般都基于此目录。

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

init目录包含核心的初始化代码(不是系统的引导代码),有main.c和version.c两个文件。

这是研究核心如何工作的好起点。

mm目录包含了所有的内存管理代码。

与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。

drivers目录中是系统中所有的设备驱动程序。

它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。

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

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

fs目录存放Linux支持的文件系统代码。

不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。

Kernel内核管理的核心代码放在这里。

同时与处理器结构相关代码都放在arch/*/kernel目录下。

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

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

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

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

一般在每个目录下都有一个.depend文件和一个Makefile文件。

这两个文件都是编译时使用的辅助文件。

仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。

另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。

源代码目录图解:
ini
ker
mm
arc
i3
ke
mm
ma
li
bo
co
to
alpha 康柏的Alpha体系结构
s3
sp
spa
mi
ppc Motorola-IBM的基于PowerPC的体系结构 m6
ar
fs
pr
devpts /dev/pts虚拟文件系统
ex
is
nf
nf
fat 基于FAT的文件系统的通用代码
ms
vf
nl
nt
sm
um
minix MINIX文件系统
hp
sy
nc
uf
affs Amiga的快速文件系统(FFS) co
hf
ad
ef
qnx4 QNX4 OS使用不的文件系统
ro
au
lo
Net
Ipc System V的进程间通信
Dri
bl
pa
sc
ch
jo
ftape 磁带流设备
hf
ip
ne
so
video 视频卡设备
cd
is
ap
ma
sgi SGI的设备
fc
ac
mi
pn
usb 通用串行总线(USB)的支持 pc
sb
nu
zo
di
tc
Lib 通用内核函数
Inc
li
lo
nf
sunrpc Sun的远程过程调用
by
mo
as
as
asm-alpha 康柏的Alpha体系结构 as
as
as
as
asm-sparc Sun的SPARC体系结构 as
as
ne
sc
vi
co
scripts 生成内核映像的外部程序 Doc。

相关文档
最新文档