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⽂件等,由于仅与⾃⾝机器有关,所以当然就不适合分享给其他主机了。

Linux 内核版本

Linux  内核版本

Linux 内核版本Linux继承了UNIX版本定制的规则,将Linux的版本分为内核版本和发行版本2种类型。

其中,内核版本是指Linux系统内核自身的版本号;发行版本是指由不同的公司或组织将Linux内核与应用程序、文档组织在一起,构成的一个发行套装。

通常,各个公司或组织会使用CD-ROM发布它们的Linux发行套装。

内核是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。

一个内核不是一套完整的操作系统,还需要配置Shell和相关实用工具,才能构成一套完整的操作系统。

一套基于Linux内核的完整操作系统才被称为Linux操作系统。

Linux内核的开发和规范一直是由Linus Torvalds领导下的开发小组所控制。

开发小组每隔一段时间就会公布新的内核版本或者修订版本,如表1-1列出了Linux 内核从1991年开始到现在所经历过的各主要版本。

内核具有实验版本和产品化版本中不同的版本号。

表1-1 Linux内核发展Linux的内核版本号由3个数字组成。

其中,第1个数字代表目前发布的内核主版本号;第2个数字可以是偶数或奇数(偶数表示稳定版本,奇数表示开发中版本),属于次版本号;第3个数字表示错误修补的次数,即修订版本号。

随着计算机硬件的发展,Linux内核的功能也在不断发展,以支持这些新硬件特性。

同时,内核的代码量也在不断增加。

内核是Linux操作系统的基础,在操作系统中完成最基本的任务。

当前的Linux内核主要功能包括以下几个方面:1.进程调度(SCHED)进程调度负责控制进程对CPU的访问,如当需要选择下一个进程运行时,由进程调度子系统根据某种算法选择最值得运行的进程。

可运行进程实际上是仅等待CPU资源的进程。

如果某个进程还在等待其它资源,则该进程将不会被选择。

Linux操作系统使用了比较简单的基于优先级的进程调度算法选择新的进程。

2.内存管理(Memory Management,MM)内存管理子系统用来管理多个进程对内存的使用。

linux中tree的源码

linux中tree的源码

Linux中tree的源码tree 是一个在Linux 系统中常用的命令行工具,用于显示目录结构的树形图。

它的源码是用C 语言编写的。

以下是一个简单的 tree 命令的源码示例。

这个示例版本非常简单,不包含所有 tree 命令的功能,但它演示了如何使用递归函数来显示目录树。

c复制代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<dirent.h>#include<sys/stat.h>#include<unistd.h>#define MAX_PATH 1024void print_directory(const char *path, int depth) {DIR *dir;struct dirent *entry;char full_path[MAX_PATH];if (!(dir = opendir(path))) {perror("opendir");return;}while ((entry = readdir(dir))) {if (strcmp(entry->d_name, ".") == 0 ||strcmp(entry->d_name, "..") == 0) {continue;}snprintf(full_path, sizeof(full_path), "%s/%s", path, entry->d_name);for (int i = 0; i < depth; i++) {printf(" ");}printf("%s\n", entry->d_name);if (entry->d_type == DT_DIR) {print_directory(full_path, depth + 1);}}closedir(dir);}int main(int argc, char *argv[]) {if (argc != 2) {fprintf(stderr, "Usage: %s <directory>\n", argv[0]);return1;}print_directory(argv[1], 0);return0;}这个示例中的 print_directory 函数使用递归方式遍历指定目录下的所有文件和子目录,并根据目录的深度打印出相应的缩进。

第二章-Linux内核及内核编程分析课件

第二章-Linux内核及内核编程分析课件
快,更稳定,并一般会修复老版本中的bug 。 • 经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。 • 编译适合自己的内核,将不需要的功能不要编译进内核,以免增加被
系统攻击者利用的漏洞。
Linux内核及编程
Linux内核编译
Linux内核的获取和更新
• linux内核版本发布的官方网站http:// 。 • 发布形式:一种是full/Source 版本,另外一种是patch文件,即补丁。 • 完整内核版本较大,一般是tar.gz或者是.bz2文件,二者分别是使用
Linux内核源代码目录结构
• arch:和硬件体系结构相关的代码,每种平台占一个相应目录。 • drivers:设备驱动程序,每个不同驱动占用一个子目录。 • fs:支持的各种文件系统,如EXT、FAT、NTFS、JFFS2。 • block:块设备驱动程序I/O调度。 • include:与系统相关的头文件放在include/linux下。 • init:内核初始化代码。 • kernel:内核最核心部分,和平台相关的一部分放在arch/*/kernel • mm:内存管理代码,和平台相关的一部分放在arch/*/mm • scripts:用于配置内核的脚本文件。 • usr:实现了用于打包和压缩的cpio等。
FORLINX_linux-2.6.36.2.tar.gz 。 • 文件解压到/usr/src/linux目录,然后稍作修改。 mv linux linux-2.6.5;
ln -s linux-2.6.5 linux。(可选)
Linux内核及编程
Linux内核编译步骤
• 通常要运行的第一个命令是: cd /usr/src/linux 。 • make mrproper :该命令确保源代码目录下没有不正确的.ko文件以及

Linux系统下各文件目录的含义

Linux系统下各文件目录的含义

随着Linux的不断发展,越来越多的人开始使用Linux,对于那些刚刚接触的人来说,恐怕最先感到困惑的就是那些“不明不白”的目录了。

如果想熟练使用Linux,让Linux听命于自己,就必须掌握这些目录,下面就以Xteam公司的最新产品——XteamLinux 4.0为例,介绍一下在该系统下的目录。

/bin bin是Binary的缩写。

这个目录存放着最经常使用的命令。

/boot这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。

/dev dev是Device(设备)的缩写。

该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc这个目录用来存放所有的系统管理所需要的配置文件和子目录。

/home用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lib这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。

几乎所有的应用程序都需要用到这些共享库。

/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/mnt在这里面中有四个目录,系统提供这些目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/cdrom上,然后进入该目录就可以查看光驱里的内容了。

/proc这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 >; /proc/sys/net/ipv4/icmp_echo_ignore_all。

/root该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

linux的根目录下各个目录的基本含义

linux的根目录下各个目录的基本含义

rc.d的内容如下:init.d/ :各种服务器和程序的二进制文件存放目录。

rcx.d/: 各个启动级别的执行程序连接目录。

里头的东西都是指向init.d/的一些软连接。

具体的后边叙述。

还有三个脚本:rc.sysinit, rc, rc.localredhat的启动方式和执行次序是:加载内核执行init程序/etc/rc.d/rc.sysinit # 由init执行的第一个脚本/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式/etc/rc.d/rc.local/sbin/mingetty # 等待用户登录在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:调入keymap以及系统字体启动swapping设置主机名设置NIS域名检查(fsck)并mount文件系统打开quota装载声卡模块设置系统时钟等等。

/etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。

凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。

调用的顺序按xx 从小到大来执行。

例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用/etc/rc.d/rc3.d/下的脚本。

值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。

init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。

至此,LINUX的启动结束。

Linux操作系统中的文件目录结构“/”根目录部分有以下子目录:/usr 目录包含所有的命令、程序库、文档和其它文件。

linux2.6.32内核源码树解析与整理

linux2.6.32内核源码树解析与整理

linux2.6.32内核源码树解析与整理⼀系统最核⼼组件⽬录:1 arch⽬录该⽬录中的每个⼦⽬录中都与某种体系结构相对应,⽤于存放体系结构相关代码,向平台⽆关的系统核⼼模块提供所需的功能接⼝。

每个体系结构对应的⼦⽬录下通常⾄少包含以下⼏个⼦⽬录:boot⼦⽬录、kernel⼦⽬录、lib⼦⽬录、mm⼦⽬录。

2 include⽬录这个⽬录包含了Linux源代码⽬录树中绝⼤部分头⽂件,每个体系架构都在该⽬录下对应⼀个⼦⽬录,该⼦⽬录中包含了给定体系结构所必需的宏定义和内联函数。

3 init⽬录该⽬录中存放的是系统核⼼初始化代码,内核初始化⼊⼝函数start_kernel就是在该⽬录中的⽂件main.c内实现的。

4 kernel⽬录该⽬录中存放的是Linux内核的最核⼼的代码,⽤于实现系统的核⼼模块,这些模块包括:进程管理、进程调度器、中断处理、系统时钟管理、同步机制等。

5 lib⽬录:该⽬录主要包含两部分内容:gnuzip解压缩算法,⽤于在系统启动过程中将压缩的内核镜像解压缩;剩余的⽂件⽤于实现⼀个C库的⼦集,主要包括字符串和内存操作等相关函数。

6 mm⽬录该⽬录包含了体系结构⽆关的内存管理代码,包括通⽤的分页模型的框架、伙伴算法的实现和对象缓冲器slab的实现代码。

7 scripts⽬录:该⽬录中不包含任何核⼼代码,该⽬录下存放了⽤来配置内核的脚本和应⽤程序源码。

⼆系统次核⼼组件包括:1 block⽬录:⽤于实现块设备的基本框架和块设备的I/O调度算法。

2 crypto⽬录:该⽬录中存放了相关的加密算法的代码。

3 driver⽬录:⽤于存放各类设备的驱动程序。

4 Documentation⽬录:存放了与内核相关的⽂档。

5 fs⽬录:包含linux内核⽀持的众多⽂件系统。

6 ipc⽬录:该⽬录中的⽂件⽤于实现System V的进程间通信模块。

7 net⽬录:包含各种⽹络协议。

8 sound⽬录:存放了声⾳系统架构,如Open Sound System(OSS)、Advanced Linux Sound Architecture(ALSA)的相关代码和具体声卡的设备驱动程序。

linux系统的目录结构

linux系统的目录结构

linux系统的目录结构Linux是一种多用户和多任务操作系统,它既能提供稳定高效的性能,又能满足用户对安全性的需求,在网络和数据中心非常受欢迎。

在Linux系统中,目录结构是管理文件和数据最常用的方法之一,其中包括根目录、bin目录、etc目录和home目录等。

本文将详细介绍Linux系统的目录结构,以帮助更多的用户更好的了解该系统。

首先,Linux系统的根目录标识为了这个根目录外,它们还拥有一个用户根目录(/home/user)。

根目录是用来存放所有的文件和目录的,它拥有特殊的权限,只有特定的用户才可以修改和操作。

在根目录中,有一些子目录,每个子目录下都有自己的特定权限,比如/bin、/etc和/usr。

/bin是一个特殊的目录,它被称为“用户存放可执行二进制文件的地方”。

它包含系统核心命令和应用程序,如cp、mv、rm等。

除此之外,它还拥有一些特殊文件,如/bin/sh或/bin/bash,它们用于执行特定的任务或执行特定的脚本语言。

/etc是一个重要的目录,它存放的是系统的配置文件,比如ssh 的配置等,它还拥有一些用户访问控制文件,我们可以通过它来更改用户的权限和访问控制。

/usr是一个用来存放用户可执行程序、文档和共享数据的目录。

它还拥有一些子目录,比如/usr/bin,用户可以在其中存放应用程序;/usr/lib,用于存放应用程序的库;还有/usr/share,用户可以在其中存放图标、壁纸等文件。

最后,Linux系统还有一个重要的目录,那就是/home目录。

它是用户的主目录,用户可以在其中保存文件、自制程序、图片等数据,它也是用户自定义环境的重要部分。

总之,在Linux系统中,目录结构是管理文件和数据的重要组成部分,它可以帮助用户更好的了解系统,并能够更好地管理和操作文件和数据。

只有充分理解Linux系统的目录结构,才能更好的使用它。

linux文件系统的组织结构

linux文件系统的组织结构

linux文件系统的组织结构Linux文件系统的组织结构采用树型结构,类似于Windows文件系统。

其主要的目录如下:1. 根目录(/): Linux文件系统的根目录,所有目录都是从根目录开始的。

2. bin目录(/bin): 存放系统的核心程序,包括各种系统命令和工具。

3. boot目录(/boot): 存放系统启动需要的文件,包括引导程序和内核。

4. dev目录(/dev): 存放设备文件,在Linux中一切设备都是文件,包括硬件设备、外部设备等。

5. etc目录(/etc): 存放系统的配置文件,包括密码文件、主机名等。

6. home目录(/home): 存放所有用户的home目录,包括个人设置、数据等。

7. lib目录(/lib): 存放系统的共享库文件,包括各种动态链接库。

8. media目录(/media): 用于挂载外部设备的目录,如U盘、CD/DVD等。

9. mnt目录(/mnt): 用于挂载文件系统的目录。

10. opt目录(/opt): 存放可选软件的安装目录。

11. proc目录(/proc): 存放系统内核信息和运行信息,如进程和内存使用情况。

12. root目录(/root): 默认的root用户的home目录。

13. sbin目录(/sbin): 存放系统管理员使用的系统命令。

14. srv目录(/srv): 存放服务器的数据文件。

15. sys目录(/sys): 存放设备驱动相关的信息。

16. tmp目录(/tmp): 存放各种临时文件,如进程间通信使用的文件、临时下载文件等。

17. usr目录(/usr): 存放系统软件和用户共享的文件。

18. var目录(/var): 存放系统的可变文件,如日志文件、邮件等。

以上是Linux文件系统的主要目录,其中一些目录又包含了更多子目录。

了解Linux文件系统的组织结构有助于用户更好地管理文件和文件夹。

Linux下各个文件夹的结构说明及用途介绍(超详细)

Linux下各个文件夹的结构说明及用途介绍(超详细)

Linux下各个⽂件夹的结构说明及⽤途介绍(超详细)linux下各⽂件夹的结构说明及⽤途介绍:下⾯给⼤家分享下 ——电⼦版/bin:⼆进制可执⾏命令。

/dev:设备特殊⽂件。

/etc:系统管理和配置⽂件。

/etc/rc.d:启动的配置⽂件和脚本。

/home:⽤户主⽬录的基点,⽐如⽤户user的主⽬录就是/home/user,可以⽤~user表⽰。

/lib:标准程序设计库,⼜叫动态链接共享库,作⽤类似windows⾥的.dll⽂件。

/sbin:系统管理命令,这⾥存放的是系统管理员使⽤的管理程序。

/tmp:公⽤的临时⽂件存储点。

/root:系统管理员的主⽬录。

/mnt:系统提供这个⽬录是让⽤户临时挂载其他的⽂件系统。

/lost+found:这个⽬录平时是空的,系统⾮正常关机⽽留下“⽆家可归”的⽂件就在这⾥。

/proc:虚拟的⽬录,是系统内存的映射。

可直接访问这个⽬录来获取系统信息。

/var:某些⼤⽂件的溢出区,⽐⽅说各种服务的⽇志⽂件。

/usr:最庞⼤的⽬录,要⽤到的应⽤程序和⽂件⼏乎都在这个⽬录。

其中包含:/usr/x11r6:存放x window的⽬录。

/usr/bin:众多的应⽤程序。

/usr/sbin:超级⽤户的⼀些管理程序。

/usr/doc:linux⽂档。

/usr/include:linux下开发和编译应⽤程序所需要的头⽂件。

/usr/lib:常⽤的动态链接库和软件包的配置⽂件。

/usr/man:帮助⽂档。

/usr/src:源代码,linux内核的源代码就放在/usr/src/linux ⾥。

/usr/local/bin:本地增加的命令。

/usr/local/lib:本地增加的库根⽂件系统。

通常情况下,根⽂件系统所占空间⼀般应该⽐较⼩,因为其中的绝⼤部分⽂件都不需要经常改动,⽽且包括严格的⽂件和⼀个⼩的不经常改变的⽂件系统不容易损坏。

除了可能的⼀个叫/vmlinuz标准的系统引导映像之外,根⽬录⼀般不含任何⽂件。

Linux内核有哪些版本号?linux学习心得分享

Linux内核有哪些版本号?linux学习心得分享

Linux内核有哪些版本号?linux学习⼼得分享Linux内核是Linux操作系统的核⼼,除此以外,很多其它系统都基于构建,⽐如Android系统。

为增进⼤家对Linux内核的认识,本⽂将对Linux内核的版本号予以介绍,并给出⼀些学习的建议。

如果你对Linux内核具有兴趣,不妨继续往下阅读哦。

⼀、Linux内核版本号Linux内核使⽤三种不同的版本编号⽅式。

第⼀种⽅式⽤于1.0版本之前(包括1.0)。

第⼀个版本是0.01,紧接着是0.02、0.03、0.10、0.11、0.12、0.95、0.96、0.97、0.98、0.99和之后的1.0。

第⼆种⽅式⽤于1.0之后到2.6,数字由三部分“A.B.C”,A代表主版本号,B代表次版本号,C代表较⼩的末版本号。

只有在内核发⽣很⼤变化时(历史上只发⽣过两次,1994年的1.0,1996年的2.0),A才变化。

可以通过数字B来判断Linux是否稳定,偶数的B代表稳定版,奇数的B代表开发版。

C代表⼀些bug修复,安全更新,新特性和驱动的次数。

以版本2.4.0为例,2代表主版本号,4代表次版本号,0代表改动较⼩的末版本号。

在版本号中,序号的第⼆位为偶数的版本表明这是⼀个可以使⽤的稳定版本,如2.2.5,⽽序号的第⼆位为奇数的版本⼀般有⼀些新的东西加⼊,是个不⼀定很稳定的测试版本,如2.3.1。

这样稳定版本来源于上⼀个测试版升级版本号,⽽⼀个稳定版本发展到完全成熟后就不再发展。

第三种⽅式从2004年2.6.0版本开始,使⽤⼀种“time-based”的⽅式。

3.0版本之前,是⼀种“A.B.C.D”的格式。

七年⾥,前两个数字A.B即“2.6”保持不变,C随着新版本的发布⽽增加,D代表⼀些bug修复,安全更新,添加新特性和驱动的次数。

3.0版本之后是“A.B.C”格式,B随着新版本的发布⽽增加,C代表⼀些bug修复,安全更新,新特性和驱动的次数。

第三种⽅式中不再使⽤偶数代表稳定版,奇数代表开发版这样的命名⽅式。

linux 内核版本规则

linux 内核版本规则

Linux 内核版本的规则是由四个部分组成的,分别是主版本号、次版本号、修订版本号和其他标识符。

1. 主版本号(Major Version Number):主版本号表示Linux 内核的主要版本,通常用于表示新功能的引入或旧功能的重大改进。

主版本号的变化是相对较小的,通常每两年左右才会进行一次变化。

例如,主版本号为2 表示Linux 内核的第二个主要版本。

2. 次版本号(Minor Version Number):次版本号表示Linux 内核的次要版本,通常用于表示新功能的引入或旧功能的小幅度改进。

次版本号的变化也是相对较小的,通常每年左右才会进行一次变化。

例如,次版本号为6 表示Linux 内核的第六个次要版本。

3. 修订版本号(Revision Number):修订版本号表示Linux 内核的修订版本,通常用于表示一些bug 修复、安全漏洞修补或其他小幅度的改进。

修订版本号的变化是相对较频繁的,通常每周或每月都会进行一次变化。

例如,修订版本号为9 表示Linux 内核的第九个修订版本。

4. 其他标识符(Other Identifier):其他标识符是用来标识Linux 内核的其他信息,如编译器版本、构建日期等等。

这些标识符通常是由开发者自行添加的,并不是固定的。

Linux 内核的版本号规则是由Linus Torvalds 在1994 年首次提出的,至今已经经历了多次变化和演进。

这些变化包括主版本号、次版本号和修订版本号的增加,以及其他标识符的添加等等。

  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。

相关文档
最新文档