文档库 最新最全的文档下载
当前位置:文档库 › 26个版本linux内核的性能对比测试

26个版本linux内核的性能对比测试

26个版本linux内核的性能对比测试
26个版本linux内核的性能对比测试

五年26个版本!Linux内核版本的“武林大会”

从2005年年中的2.6.12,到正在开发中的2.6.37,五年多来共有26个Linux内核版本,本文详细的对这26个内核版本进了性能测试,包括对于系统文件以及系统中各种应用的测试。本文带领大家回顾了Linux内核5年来的发展历程,希望大家在这些评测中更加了解Linux内核的相关知识。

https://www.wendangku.net/doc/f916924650.html,今天将他们对Linux系统的研究发挥到了极致:从2005年年中的2.6.12,到正在开发中的2.6.37,五年多来的26个Linux内核版本来了个“群英荟萃”!

完成如此庞大规模的横评并不容易,因为每个版本都要跑二十多个测试项目,每个项目又得跑至少三到五遍,总计超过2500次。好在一方面有自动测试套装Phoronix Test Suite,另一方面还有飞快的Intel Core i7-970六核心处理器。

Linux 2.6.12版本内核的时候,操作系统还是Ubuntu 5.10、SuSE 9.3、Fedora Core 4、Mandrake 2006这些老古董,而最终选择的基准系统是Fedora Core 4,并将其放在Ubuntu 10.10 64位系统下的虚拟机内。最新的2.6.37版本尚未发布正式版,本次测试使用的是2010-10-31 Git snapshot。至于2.6.12之前的更老版本,GCC4编译器和它们无法并存,故而没有加入此番测试。

测试平台的其他硬件配置还有:华擎X58 SuperComputer主板、3GB DDR3内存、OCZ Vertex 64GB固态硬盘、GeForce GTX 460显卡。

Linux系统内核这26个版本的具体发布时间依次如下:

1. 2.6.12-2005.6.17

2. 2.6.13-2005.8.29

3. 2.6.14-2005.10.17

4. 2.6.15-2006.1.3

5. 2.

6.16-2006.3.20

6. 2.6.17-2006.6.17

7. 2.6.18-2006.9.20

8. 2.6.19-2006.11.29

9. 2.6.20-2007.2.5

10.2.6.21-2007.4.25

11.2.6.22-2007.7.8

12.2.6.23-2007.10.9

13.2.6.24-2008.1.24

14.2.6.25-2008.4.17

15.2.6.26-2008.7.13

16.2.6.27-2008.10.9

17.2.6.28-2008.12.25

18.2.6.29-2009.3.23

19.2.6.30-2009.6.9

20.2.6.31-2009.9.9

21.2.6.32-2009.12.3

22.2.6.33-2010.2.24

23.2.6.34-2010.5.16

24.2.6.35-2010.8.1

25.2.6.36-2010.10.20

26.2.6.37-(开发中)

下面就是https://www.wendangku.net/doc/f916924650.html,对各个版本的Linux内核进行的评测。

GnuPG:1GB文件加密时间上,2.6.12-29版一直保持稳定,都是10秒钟完成,然后2.6.30突然减速,延长到17秒,并且此后再也没有恢复,应该是源于文件系统方面的变化。

Gcrypt Library:CAMELLIA256-ECB加解密性能维持了惊人的稳定性,所有26个版本都差不多。

OpenSSL:同样没什么明显变化。

NAS Parallel Benchmark(NPB) IS.C:也都差不多,但是最快的2.6.29要比最慢的2.6.12快大约10%。

TTSIOD 3D Renderer:基本都在20FPS上下徘徊,2.6.16/25/26三个版本稍慢一些。

C-Ray:2.6.18表现最好,平均只需87秒钟,2.6.30则是最慢的,耗时长达100秒钟,不过此后几个版本都在慢慢提速。

Crafty:随着内核的成熟,这个开源国际象棋引擎的速度也在加快,最新版比最旧版快了大约6%。

Timed MAFFT Alignment:五年来的性能基本都是那样。

Himeno Benchmark:五年下来速度提升了10%,2.6.30又一次发生突变。

John The Ripper:2.6.12/30出现了短暂的波谷,其他24个版本大同小异。

LAME MP3 Encoding:音频编码性能又一次几乎没变过。

7-Zip Compression:文件压缩方面首次出现了很明显的反复波动,最初的2.6.12 17844MIPS,最高的2.6.23 19376MPS,最低的2.6.30 16175MIPS,最新的2.6.37 17206MIPS。

BYTE Unix Benchmark Dhrystone 2:2.6.30版开始略有提升,但幅度很小。

Loopbakc TCP Network:通过TCP网络回环界面传输10GB的速度变化很有意思。2.6.30版本之前虽然也有大幅度的反复,总体还是比较快的,2.6.20更是仅需13.7秒钟,最近一年来就明显慢多了,2.6.32一度长达55.8秒钟,而最新的2.6.36/37缩短到了44秒钟,算是略有改善。

Timed Apache Compilation:2.6.30开始骤然提速,从17-18秒缩短到9-10秒,并且之后基本保持稳定。

Apache Benchmark:文件系统相关项目开始就碰到了又一个反复无常。2.6.12作为起点不够快,之后很长时间内明显加速,但到了2.6.25/26跌至低谷,随后2.6.27爆发了一下,又开始慢慢花落,如今2.6.37和五年前基本相当——转了一圈又回去了。

PostMark:2.6.2x系列的磁盘传输性能成绩惨不忍睹,特别是2.6.29降至冰点几乎为零,但是2.6.30就来了个咸鱼大翻身,此后虽略有退步但已经不同往日。

FS-Mark:对付一千个1MB文件的波动也比较明显,2.6.29/33-36都比较惨,但是最新的2.6.37基本恢复了往日风采。

IOzone:最初几个版本的写入性能还是比较快的,但之后一蟹不如一蟹,2.6.29也再次倒数第一。

IOzone:读取性能相对稳定多了,基本都在200MB/s上下徘徊,2.6.37 204MB/s的速度已经基本是最快的了。

Threaded I/O Tester:2.6.29又一次不堪入目,将之前的努力全部抹杀,之后经过2.6.30-32的恢复、2.6.33-36的倒退,2.6.37算是回归正常,8.15MB/s的速度已经高于平均值。

Parallel BZIP 2 Compression:再次压缩256MB文件,整体非常平稳,彼此差距不到1秒钟。

小结:

这是我们第一次看到如此庞大规模的Linux系统内核测试,结果也让我们开了眼。单凭印象,很多用户和开发人员可能会认为随着Linux系统内核的功能特性越来越丰富、体积越来越庞大,性能应该会逐步倒退,但事实上在大部分情况下这五年来的性能都维持了惊人的稳定,也有不少地方虽然反复升降但是总体来看是呈进步趋势的。

根据测试,整体性能有所改进的项目包括John The Ripper、Himeno、PostMark、FS-Mark、Threaded I/O Tester和代码编译相关等等,明显倒退的则有只有GnuPG、Loopback TCP Network Performance、Ozone,其他都是波澜不惊。

2.6.29、2.6.30无疑是最有趣的两个版本。前者是2.6.2x系列的终结之作,也是2009年的第一个正式版,带来了Intel内核模式设定、Btrfs文件系统试验性支持、SquashFS集成、WiMAX初步支持、eCryptfs文件名加密等众多新特性,但不少项目中却是最差劲的,而且落后的不是一星半点。随后的2.6.30又带来了NILFS2和EXOFS文件系统、IEEE 802.11w 支持、Tomoyo、LZMA/BZIP2内核镜像压缩、完整管理架构等等,性能上不但一雪前耻,还有了很大的飞跃。接下来的几个版本经常出现倒退,但整体趋势还是好的,特别是还要几个月才会面世的2.6.37版又有所提速。

如何安装Linux内核源代码

如何获取Linux内核源代码 下载Linux内核当然要去官方网站了,网站提供了两种文件下载,一种是完整的Linux 内核,另一种是内核增量补丁,它们都是tar归档压缩包。除非你有特别的原因需要使用旧版本的Linux内核,否则你应该总是升级到最新版本。 使用Git 由Linus领头的内核开发队伍从几年前就开始使用Git版本控制系统管理Linux内核了(参考阅读:什么是Git?),而Git项目本身也是由Linus创建的,它和传统的CVS不一样,Git是分布式的,因此它的用法和工作流程很多开发人员可能会感到很陌生,但我强烈建议使用Git下载和管理Linux内核源代码。 你可以使用下面的Git命令获取Linus内核代码树的最新“推送”版本: $ git clone git://https://www.wendangku.net/doc/f916924650.html,/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 然后使用下面的命令将你的代码树与Linus的代码树最新状态同步: $ git pull 安装内核源代码 内核包有GNU zip(gzip)和bzip2格式。Bzip2是默认和首选格式,因为它的压缩比通常比gzip更好,bzip2格式的Linux内核包一般采用linux-x.y.z.tar.bz2形式的文件名,这里的x.y.z是内核源代码的具体版本号,下载到源代码包后,解压和抽取就很简单了,如果你下载的是bzip2包,运行: $ tar xvjf linux-x.y.z.tar.bz2 如果你下载的是gzip包,则运行: $ tar xvzf linux-x.y.z.tar.gz 无论执行上面哪一个命令,最后都会将源代码解压和抽取到linux-x.y.z目录下,如果你使用Git下载和管理内核源代码,你不需要下载tar包,只需要运行git clone命令,它就会自动下载和解压。 内核源代码通常都会安装到/usr/src/linux下,但在开发的时候最好不要使用这个源代码树,因为针对你的C库编译的内核版本通常也链接到这里的。 应用补丁

史上最全linux内核配置详解

对于每一个配置选项,用户可以回答"y"、"m"或"n"。其中"y"表示将相应特性的支持或设备驱动程序编译进内核;"m"表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;"n"表示内核不提供相应特性或驱动程序的支持。只有<>才能选择M 1. General setup(通用选项) [*]Prompt for development and/or incomplete code/drivers,设置界面中显示还在开发或者还没有完成的代码与驱动,最好选上,许多设备都需要它才能配置。 [ ]Cross-compiler tool prefix,交叉编译工具前缀,如果你要使用交叉编译工具的话输入相关前缀。默认不使用。嵌入式linux更不需要。 [ ]Local version - append to kernel release,自定义版本,也就是uname -r可以看到的版本,可以自行修改,没多大意义。 [ ]Automatically append version information to the version string,自动生成版本信息。这个选项会自动探测你的内核并且生成相应的版本,使之不会和原先的重复。这需要Perl的支持。由于在编译的命令make-kpkg 中我们会加入- –append-to-version 选项来生成自定义版本,所以这里选N。 Kernel compression mode (LZMA),选择压缩方式。 [ ]Support for paging of anonymous memory (swap),交换分区支持,也就是虚拟内存支持,嵌入式不需要。 [*]System V IPC,为进程提供通信机制,这将使系统中各进程间有交换信息与保持同步的能力。有些程序只有在选Y的情况下才能运行,所以不用考虑,这里一定要选。 [*]POSIX Message Queues,这是POSIX的消息队列,它同样是一种IPC(进程间通讯)。建议你最好将它选上。 [*]BSD Process Accounting,允许进程访问内核,将账户信息写入文件中,主要包括进程的创建时间/创建者/内存占用等信息。可以选上,无所谓。 [*]BSD Process Accounting version 3 file format,选用的话统计信息将会以新的格式(V3)写入,注意这个格式和以前的v0/v1/v2 格式不兼容,选不选无所谓。 [ ]Export task/process statistics through netlink (EXPERIMENTAL),通过通用的网络输出工作/进程的相应数据,和BSD不同的是,这些数据在进程运行的时候就可以通过相关命令访问。和BSD类似,数据将在进程结束时送入用户空间。如果不清楚,选N(实验阶段功能,下同)。 [ ]Auditing support,审计功能,某些内核模块需要它(SELINUX),如果不知道,不用选。 [ ]RCU Subsystem,一个高性能的锁机制RCU 子系统,不懂不了解,按默认就行。 [ ]Kernel .config support,将.config配置信息保存在内核中,选上它及它的子项使得其它用户能从/proc/ config.gz中得到内核的配置,选上,重新配置内核时可以利用已有配置Enable access to .config through /proc/config.gz,上一项的子项,可以通过/proc/ config.gz访问.config配置,上一个选的话,建议选上。 (16)Kernel log buffer size (16 => 64KB, 17 => 128KB) ,内核日志缓存的大小,使用默认值即可。12 => 4 KB,13 => 8 KB,14 => 16 KB单处理器,15 => 32 KB多处理器,16 => 64 KB,17 => 128 KB。 [ ]Control Group support(有子项),使用默认即可,不清楚可以不选。 Example debug cgroup subsystem,cgroup子系统调试例子 Namespace cgroup subsystem,cgroup子系统命名空间 Device controller for cgroups,cgroups设备控制器

Linux 操作系统查看服务器系统信息命令(linux系统)

Linux 操作系统查看服务器系统信息命令(linux 系统系统: # uname -a # 查看内核 /操作系统 /CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看 CPU 信息 # hostname # 查看计算机名 # lspci -tv # 列出所有 PCI 设备 # lsusb -tv # 列出所有 USB 设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量 资源 : # free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh <目录名 > # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 # uptime # 查看系统运行时间、用户数、负载 # cat /proc/loadavg # 查看系统负载 磁盘和分区 :

# mount | column -t # 查看挂接的分区状态 # fdisk -l # 查看所有分区 # swapon -s # 查看所有交换分区 # hdparm -i /dev/hda # 查看磁盘参数 (仅适用于 IDE 设备 # dmesg | grep IDE # 查看启动时 IDE 设备检测状况 网络 : # ifconfig # 查看所有网络接口的属性 # iptables -L # 查看防火墙设置 # route -n # 查看路由表 # netstat -lntp # 查看所有监听端口 # netstat -antp # 查看所有已经建立的连接 # netstat -s # 查看网络统计信息 用户 : # w # 查看活动用户 # id <用户名 > # 查看指定用户信息 # last # 查看用户登录日志 # cut -d: -f1 /etc/passwd # 查看系统所有用户 # cut -d: -f1 /etc/group # 查看系统所有组 # crontab -l # 查看当前用户的计划任务

Linux kernel内核升级全过程,教你一次成功

序言 由于开发环境需要在linux-2.6内核上进行,于是准备对我的虚拟机上的Linux系统升级。没想到这一弄就花了两天时间( 反复装系统,辛苦啊~~),总算把Linux系统从2.4.20-8内核成功升级到了2.6.18内核。 网上虽然有很多介绍Linux内核升级的文章,不过要么过时,下载链接失效;要么表达不清,不知所云;更可气的是很多 文章在转载过程中命令行都有错误。刚开始我就是在这些“攻略”的指点下来升级的,以致于浪费了很多时间。 现在,费尽周折,升级成功,心情很爽,趁性也来写个“升级攻略”吧!于是特意又在虚拟机上重新安装一个Linux系统 ,再来一次完美的升级,边升级边记录这些步骤,写成一篇Linux内核升级记实录(可不是回忆录啊!),和大家一起分享 ~~! 一、准备工作 首先说明,下面带#号的行都是要输入的命令行,且本文提到的所有命令行都在终端里输入。 启动Linux系统,并用根用户登录,进入终端模式下。 1、查看Linux内核版本 # uname -a 如果屏幕显示的是2.6.x,说明你的已经是2.6的内核,也用不着看下文了,该干什么干什么去吧!~~~如果显示的是 2.4.x,那恭喜你,闯关通过,赶快进行下一步。 2、下载2.6内核源码 下载地址:https://www.wendangku.net/doc/f916924650.html,/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2 3、下载内核升级工具 (1)下载module-init-tools-3.2.tar.bz2 https://www.wendangku.net/doc/f916924650.html,/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2 (2)下载mkinitrd-4.1.18-2.i386.rpm https://www.wendangku.net/doc/f916924650.html,/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm (3)下载lvm2-2.00.25-1.01.i386.rpm https://www.wendangku.net/doc/f916924650.html,/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm (4)下载device-mapper-1.00.19-2.i386.rpm https://www.wendangku.net/doc/f916924650.html,/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm (2.6.18内核和这4个升级工具我都有备份,如果以上下载地址失效,请到https://www.wendangku.net/doc/f916924650.html,/guestbook留下你的邮箱,我给你发过去)

如何查询centos查看系统内核版本,系统版本,32位还是64位

【转】如何查询centos查看系统内核版本,系统版本,32位还是64位 查看centos内核的版本: 1)[root@localhost ~]# cat /proc/version Linux version 2.6.18-194.el5 (mockbuild@https://www.wendangku.net/doc/f916924650.html,) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr 2 14:58:14 EDT 2010 2) [root@localhost ~]# uname -a Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux 3) [root@localhost ~]# uname -r 2.6.18-194.el5 2. 查看linux版本: 1) 列出所有版本信息, [root@localhost ~]# lsb_release -a LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics -3.1-ia32:graphics-3.1-noarch Distributor ID: CentOS Description: CentOS release 5.5 (Final) Release: 5.5 Codename: Final 注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。 2) 执行cat /etc/issue,例如如下: [root@localhost ~]# cat /etc/issue CentOS release 5.5 (Final) Kernel r on an m 3) 执行cat /etc/redhat-release ,例如如下: [root@localhost ~]# cat /etc/redhat-release CentOS release 5.5 (Final) 查看系统是64位还是32位: 1、getconf LONG_BIT or getconf WORD_BIT [root@localhost ~]# getconf LONG_BIT 64 2、file /bin/ls [root@localhost ~]# file /bin/ls /bin/ls: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped 3、lsb_release -a [root@localhost ~]# lsb_release -a

Linux内核十个版本性能对比

【IT168 评论】从2008年1月底至今,Linux Kernel系统内核已经先后升级了十次,版本号也从2.6.24上升到2.6.33,并且下个版本2.6.34也已进入开发阶段。今天我们就看看过去两年内这十个版本在性能上有何差异。 测试平台是一套工作站系统,硬件配置包括AMD Opteron 2384 2.7GHz四核心处理器(“上海”)、泰安Thunder n3600B S2927主板(NVIDIA nForce 3600PRO 芯片组)、4GB DDR2 ECC Reg内存、希捷ST3300622AS 300GB硬盘、ATI FirePro V8700显卡,软件上采用Ubuntu 8.04.4 LTS 64位操作系统,组件有GNOME 2.22.3、https://www.wendangku.net/doc/f916924650.html, Server 1.4.0.90、GCC 4.2.4、EXT3。 Linux Kernel 2.6.24-2.6.33的每个版本都从Ubuntu PPA源上获取,而且均为64位版本。除了替换内核之外,系统其他设置均保持默认。 Apache Benchmark(静态网页服务):2.6.33成绩大幅提升,但事实最早的2.6.24版反而才是好的,之后八个版本都差得很多,最新版终于基本正常了。

PostgreSQL pgbench(每秒钟TPC-B交易数):2.6.30的成绩比上个版本骤然提升了多达770%,但之后2.6.32迅速下滑,最新的2.6.33却又完全不如2.6.30之前的六个版本了。

7-Zip Compression(文件压缩速度):不同版本有所波动,最新的2.6.33成了赢家,这才是我们最希望看到的。 LZMA Compression(256MB文件压缩):十个版本几乎没什么区别。

查看linux系统版本,内核,CPU,MEM,位数的相关命令

查看linux系统版本,内核,CPU,MEM,位数的相关命令 1.查看版本,内核 [oracle@svr15 ~]$ cat /etc/issue Red Hat Enterprise Linux AS release 4 (Nahant) Kernel \r on an \m [oracle@svr15 ~]$ cat /proc/version Linux version 2.6.9-5.ELsmp (bhcompile@https://www.wendangku.net/doc/f916924650.html,) (gcc version 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)) #1 SMP Wed Jan 5 19:30:39 EST 2005 [oracle@svr15 ~]$ uname -r 2.6.9-5.ELsmp 2.查看cpu,mem [oracle@svr15 ~]$ grep "model name" /proc/cpuinfo model name : Intel(R) Xeon(R) CPU 5130 @ 2.00GHz model name : Intel(R) Xeon(R) CPU 5130 @ 2.00GHz model name : Intel(R) Xeon(R) CPU 5130 @ 2.00GHz model name : Intel(R) Xeon(R) CPU 5130 @ 2.00GHz [oracle@svr15 ~]$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Xeon(R) CPU 5130 @ 2.00GHz stepping : 6 cpu MHz : 1995.006 cache size : 64 KB physical id : 0 siblings : 2 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes

Linux的版本与内核

Linux的版本与内核 Linux有两种版本,一个是核心(kernel)版,一个是发行(distribution)版。核心版的序号由三部分数字构成,其形式为:major.minor.patchlevel,其中,majoro为主版本号,minor为次版本号,二者共同构成了当前核心版本号。patchlevel表示对当前版本的修订次数。例如,2.2.11表示对核心作用2.2 版本的第11次修订。根据约定,次版本号为奇数时,表示该版本加入新内容,但不一定稳定,相当于测试版;次版本号为偶数时,表示这是一个可以使用的稳定版本。鉴于Linux内核开发工作的连续性,内核的稳定版本与在此基础上进一步开发的不稳定版本总是同时存在的。建议采用稳定的核心版本。 Linux的内核具有两种不同的版本号,实验版本和产品化版本。要确定LINUX版本的类型,只要查看一下版本号:每一个版本号由三位数字组成,第二位数字说明版本类型。如果第二位数字是偶数则说明这种版本是产品化版本,如果是奇数说明是实验版本。如2.6.20是产品化版本,2.6.16是实验版本。LINUX的两种版本是相互关联的。实验版本最初是产品化产品的拷贝,然后产品化版本只修改错误,实验版本继续增加新功能,到实验版本测试证明稳定后拷贝成新的产品化版本,不断循环,这样一方面可以方便广大软件人员加入到LINUX的开发和测试工作中来,另一方面又可以让一些用户使用上稳定的LINUX版本。真是做到开发和实用两不误。现在LINUX的内核的最新版本是2.6.20。 Linux内核 Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,这里有一份Linus Torvalds 当时在Usenet新闻组comp.os.minix所登载的贴子,这份著名的贴子标志着Linux计划的正式开始。在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux架构。今天Linux是一个一体化内核(monolithic kernel)系统。设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。Linux不是微内核(microkernel)架构的事实曾经引起了Linus Torvalds与Andy Tanenbaum之间一场著名的争论。 Linux内核简史 操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux 的术语中被称为“内核”,也可以称为“核心”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。

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

Linux 内核版本号及源代码目录树结构 一、linux内核版本号的命名机制 Linux内核版本有两种:稳定版和开发版。稳定的内核具有工业级的强度,可以广泛地应用和部署。新的稳定内核相对于较旧的只是修正一些bug或加入一些新的驱动程序。而开发版内核由于要试验各种解决方案,所以变化很快。这两种版本是相互关联,相互循环的。 Linux内核的命名机制: num.num.num 其中第一个数字是主版本号,第二个数字是次版本号,第三个数字是修订版本号。如果次版本号是偶数,那么该内核就是稳定版的;若是奇数,则是开发版的。头两个数字合在一齐可以描述内核系列。如稳定版的2.6.0,它是2.6版内核系列。最新的内核源代码可以在https://www.wendangku.net/doc/f916924650.html,以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子目录下。

Linux查看系统命令

系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量 资源 # free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh <目录名> # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 # uptime # 查看系统运行时间、用户数、负载# cat /proc/loadavg # 查看系统负载 磁盘和分区 # mount | column -t # 查看挂接的分区状态 # fdisk -l # 查看所有分区 # swapon -s # 查看所有交换分区 # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) # dmesg | grep IDE # 查看启动时IDE设备检测状况 网络 # ifconfig # 查看所有网络接口的属性 # iptables -L # 查看防火墙设置 # route -n # 查看路由表 # netstat -lntp # 查看所有监听端口 # netstat -antp # 查看所有已经建立的连接 # netstat -s # 查看网络统计信息 进程 # ps -ef # 查看所有进程 # top # 实时显示进程状态 用户

linux查看驱动版本

Linux下查看驱动版本以及硬件信息 2009-05-13 09:58 lsmod 看看你要查看的驱动模块名字,例如100M网卡e100 modinfo e100 则会出现相关的版本信息 常用命令整理如下: 用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart) 查看CPU信息:cat /proc/cpuinfo 查看板卡信息:cat /proc/pci 查看PCI信息:lspci (相比cat /proc/pci更直观) 查看内存信息:cat /proc/meminfo 查看USB设备:cat /proc/bus/usb/devices 查看键盘和鼠标:cat /proc/bus/input/devices 查看系统硬盘信息和使用情况:fdisk & disk - l & df 查看各设备的中断请求(IRQ):cat /proc/interrupts 查看系统体系结构:uname -a dmidecode查看硬件信息,包括bios、cpu、内存等信息 dmesg | more 查看硬件信息 对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:Cpuinfo 主机CPU信息 Dma 主机DMA通道信息 Filesystems 文件系统信息 Interrupts 主机中断信息 Ioprots 主机I/O端口号信息 Meninfo 主机内存信息 Version Linux内存版本信息 另外我们还可以使用hardinfo 这个软件来查看硬件信息。

通常,linux系统启动的时候当加载网卡的时候,会产生一条日志信息写道/var/log/messages或者dmesg里面,这里面就有比较详细的网卡信息,包括版本号码等。 对于网卡: 用ethtool -i ethX可以查询该网络设备的版本信息 包括driver版本信息和firmware版本信息 用此命令也能看到总线信息和该设备所用的driver模块名称 假定该网卡使用的驱动模块是intel的e1000 再用modinfo e1000就可看到该driver模块的详细信息 查看网卡属性:ethtool -g eth0;查看网卡信息:dmesg

如何查看LINUX操作系统是多少位的

方法一 Linux系统查看当前安装的系统是32位还是64位方法如下: [root@localhost mysql-5.1.57]# getconf LONG_BIT 64 通过上面命令,可以很方便看到是64位,如果结果是32就是32位系统。 查看Linux版本信息命令如下: [root@localhost mysql-5.1.57]# lsb_release -a LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics- 4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing- 4.0-ia32:printing-4.0-noarch Distributor ID: CentOS Description: CentOS release 5.8 (Final) Release: 5.8 Codename: Final 方法二 (1) 终端输入: file /sbin/init 如显示: /sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped 即是32位的linux, 如是64位的, 显示的是64-bit (2) 终端输入: uname -a 如显示: Linux redhat-tj 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i386 GNU/Linux 则是32位 (3)(?) 终端输入: getconf WORD_BIT 如显示: 32 则是32位的linux

Linux查看系统状态命令

inux 查看系统信息命令是linux初学者必备的基础知识, 这些命令也非常有用, 因为进入linux第一件事就可能是首先查看系统信息, 因此必要的系统的学习一下这些linux系统信息命令还是非常有必要的! 下面给除了各linux发行版比较常用的系统信息查询的命令, 大家可以参考, 同时也可以测试学习, 必要的时候man, 一定要学学使用man命令, 呵呵 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量资源 # free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh <目录名> # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 # uptime # 查看系统运行时间、用户数、负载 # cat /proc/loadavg # 查看系统负载磁盘和分区 # mount | column -t # 查看挂接的分区状态 # fdisk -l # 查看所有分区 # swapon -s # 查看所有交换分区 # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) # dmesg | grep IDE # 查看启动时IDE设备检测状况网络 # ifconfig # 查看所有网络接口的属性 # iptables -L # 查看防火墙设置 # route -n # 查看路由表 # netstat -lntp # 查看所有监听端口 # netstat -antp # 查看所有已经建立的连接 # netstat -s # 查看网络统计信息进程

Linux查看系统各项配置信息

Linux大部分操作是通过命令实现的,并不像windows那么直观。linux查看硬件信息也是需要通过linux查看硬件 信息命令查询的 系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量 资源 # free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh<目录名> # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 # uptime # 查看系统运行时间、用户数、负载 # cat /proc/loadavg # 查看系统负载 磁盘和分区 # mount | column -t # 查看挂接的分区状态 # fdisk -l # 查看所有分区 # swapon -s # 查看所有交换分区 # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) # dmesg | grep IDE # 查看启动时IDE设备检测状况 网络 # ifconfig # 查看所有网络接口的属性 # iptables -L # 查看防火墙设置 # route -n # 查看路由表 # netstat -lntp # 查看所有监听端口 # netstat -antp # 查看所有已经建立的连接 # netstat -s # 查看网络统计信息 进程 # ps -ef # 查看所有进程 # top # 实时显示进程状态 用户 # w # 查看活动用户 # id <用户名> # 查看指定用户信息 # last # 查看用户登录日志

Linux内核详细介绍

Linux内核详细介绍 现如今,电脑的使用越来越普遍,几乎每家每户都有电脑,而电脑的操作离不开操作系统,在这里,小编就向大家介绍Linux 内核。 很多Linux 爱好者对内核很感兴趣却无从下手,本文旨在介绍一种解读Linux内核源码的入门方法,而不是讲解Linux复杂的内核机制。 1.核心源程序的文件组织 (1)Linux核心源程序通常都安装在/usr/src/Linux下,而且它有一个非常简单的编号约定:任何偶数的核心(中间数字)如:2.0.30都是一个稳定的发行的核心,而任何奇数的核心如:2.1.42都是一个开发中的核心。 本文基于稳定的2.2.5源代码,第二部分的实现平台为Redhat Linux 6.0。 (2)核心源程序的文件按树形结构进行组织,在源程序树的

最上层你会看到这样一些目录: arch:arch子目录包括了所有和体系结构相关的核心代码。它的每一个子目录都代表一种支持的体系结构,例如i386就是关于Intel CPU及与之相兼容体系结构的子目录。PC机一般都基于此目录; include:include子目录包括编译核心所需要的大部分头文件。与平台无关的头文件在include/linux子目录下,与Intel CPU 相关的头文件在include/asm-i386子目录下,而include/scsi目录则是有关SCSI设备的头文件目录; init:这个目录包含核心的初始化代码(注:不是系统的引导代码),包含两个文件main.c和Version.c,这是研究核心如何工作的一个非常好的起点; Mm:这个目录包括所有独立于CPU 体系结构的内存管理代码,如页式存储管理内存的分配和释放等,而和体系结构相关的内存管理代码则位于arch/*/mm/,例如arch/i386/mm/Fault.c; Kernel:主要的核心代码,此目录下的文件实现了大多数Linux系统的内核函数,其中最重要的文件当属sched.c,同样,和

Linux 操作系统查看服务器系统信息命令(linux系统)

Linux 操作系统查看服务器系统信息命令(linux系统) linux软件开发 系统: # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量 资源: # free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh <目录名> # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 # uptime # 查看系统运行时间、用户数、负载 # cat /proc/loadavg # 查看系统负载 磁盘和分区:

# mount | column -t # 查看挂接的分区状态 # fdisk -l # 查看所有分区 # swapon -s # 查看所有交换分区 # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) # dmesg | grep IDE # 查看启动时IDE设备检测状况 网络: # ifconfig # 查看所有网络接口的属性 # iptables -L # 查看防火墙设置 # route -n # 查看路由表 # netstat -lntp # 查看所有监听端口 # netstat -antp # 查看所有已经建立的连接 # netstat -s # 查看网络统计信息 用户: # w # 查看活动用户 # id <用户名> # 查看指定用户信息 # last # 查看用户登录日志 # cut -d: -f1 /etc/passwd # 查看系统所有用户 # cut -d: -f1 /etc/group # 查看系统所有组 # crontab -l # 查看当前用户的计划任务

linux系统下查看系统信息命令

Linux的文件系统中,有一个特殊目录“/proc”,该目录下列出的文件并非保存在磁盘上,而是内存中的一个映像。在该目录下可以找到许多有意思的东西,例如: /proc/cpuinfo 本机CPU的相关信息; /proc/meminfo 本机内存及交换分区的使用信息; /proc/modules 本机已安装的硬件模块信息; /proc/mounts 本机已挂载mount 上的设备信息; 此外,该目录下有一些以数字为名称的子目录,每个子目录用于维护一个正在运行的进程,而目录名即为相应的进程ID。例如进入名称为“1” 的子目录:cd /proc/1 该目录下文件“cmdline” 中的内容为该进程运行时执行的命令行;“environ”文件中的内容为该进程运行时的环境变量信息;“stat” 文件中存放的时该进程运行的状态信息等。 通过查看“ /proc” 目录下的文件,可以获取几乎所有的系统信息及系统的运行状态信息。事实上,Linux下的诸多查询系统状态信息的命令,也是通过读取该目录下的文件而获取的。 以下是一些用于查看系统状态信息的命令: df 命令 用于查看Linux 文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息。如: df -k 以千字节(KB)为单位显示各分区的信息; df -a 显示所有分区,包括大小为0 的分区; df -T 显示分区类型(EXT2 或EXT3等)。 du 命令 用于查看文件或文件夹的大小。如: du -b /home 以字节为单位显示“ /home ”文件夹下各个子文件夹的大小; du -ks home 以千字节(KB)为单位显示“/home” 文件夹的总大小; top 命令(第三页有详细的图形介绍top命令) 用于实时查看系统状态信息。运行该命令后,屏幕上会显示如下信息: CPU状态(CPU states):包括用户进程占用比率、系统进程占用比率、用户的nice 优先级进程占用比率及空闲CPU资源比率等;

Linux查看内核(Kernel)版本的方法

Linux查看内核(Kernel)版本的方法 目前尝试过三种方法: 源自“Debian”的“Linux ”发行版推荐使用如下命令: dpkg --get-selections|grep linux 会显示所有内核版本信息(不论安装与否) 通用的方式为: uname -r 可以在终端使用uname --help查看用法。注释为显示内核版本发行号。 'uname'是Linux/unix系统中用来查看系统信息的命令,适用于所有Linux发行版,诸如:CentOS, Ubuntu, Debian, Fedora, FreeBSD 等。配合使用'uname'参数可以查看当前服务器内核运行的各个状态。 # uname -a Linux server.domain.tld 2.6.18-164.11.1.el5 #1 SMP Wed Jan 20 07:39:04 EST 2010 i686 i686 i386 GNU/Linux 只打印内核版本,以及主要和次要版本:

# uname -r 2.6.18-164.11.1.el5 要打印系统的体系架构类型,即的机器是32位还是64位,使用: # uname -p i686
来源:系统运维网(https://www.wendangku.net/doc/f916924650.html,)[详细地址]: https://www.wendangku.net/doc/f916924650.html,/linux/kernel/201109163047.html 也可以到/proc目录下显示version文件信息(不推荐): c /proc/version 文件也包含系统内核信息: # cat /proc/version Linux version 2.6.18-164.11.1.el5 (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Wed Jan 20 07:39:04 EST 2010

相关文档
相关文档 最新文档