pc104 linux定制

pc104 linux定制
pc104 linux定制

基于PC/104平台嵌入式Linux系统核心定制方法

2007-10-26 嵌入式在线收藏| 打印

基于PC/104平台的嵌入式Linux技术在海洋自动观测系统中具有广泛的应用前景,Linux核心定制方法的研究是嵌入式Linux系统研制的关键工作。本文结合PC/104平台嵌入式Linux系统的研制,详细论述了Linux内核和文件系统的定制方法。

本文就如何对Linux系统的核心实现定制进行论述,主要内容包括Linux内核部分和文件系统,系统定制的硬件平台是PC/104单片机。之所以将Linux内核定制、文件系统定制单独讨论,是因为在基于任何平台的Linux系统定制过程中,其内核和文件系统的定制工作都具有相似的特征和相似的过程。

在基于PC/104平台的嵌入式Linux研制过程中,进行核心定制的主要目的是从需求出发使系统最大程度地满足应用的需要、最大程度地适应系统硬件平台、最优化地支持系统外围设备和应用程序,并且尽量减少对系统资源的占用、减少系统功耗,增强系统的安全性、稳定性、可靠性,另外使系统真正地实现产权自主化。

内核定制

一般操作系统的内核从体系结构角度可以划分为两种:微内核体系结构、单内核体系结构。微内核体系结构只在内核中包括了一些基本的内核功能,其它部分在用户内存空间运行,这种结构需要在各层之间进行调用,因此会有一定的消耗,使执行效率不如单内核体系结构。Linux采用单内核体系结构,内核的所有部分都集中在一起,这样能使系统的各部分直接沟通,有效地缩短任务之间的切换时间,提高了系统的响应速度,实时性好并提高了CPU的利用率,但在系统比较大的时候体积也比较大,与嵌入式系统容量小、资源有限的特点不符合,因此需要进行非常精细的定制以适应嵌入式系统的需要。

内核版本

Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。Linux的开发采用的是双树系统。一个树是稳定树(stable tree),另一个树是非稳定树(unstable tree)或称开发树(development tree)。一些新特性、实验性改进等都将首先在开发树中进行,如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。

一旦开发树经过了足够的发展,开发树就会成为新的稳定树。开发树就体现在源程序的版本号中;源程序版本号的形式为x.y.z,对于稳定树来说,y是偶数;对于开发树来说,y 比相应的稳定树大一(是奇数)。到目前为止,稳定树的最高版本是2.4.21,开发树的最新版

本是2.5.73。本项目采用的内核版本是2.2.20,选择2.2.20版本内核的主要原因有:

a.版本为2.0及以前内核中的设备驱动不如2.2版本的全面;

b.版本为2.2的内核增加了很多新特性;

c.新的版本为2.4的内核对PC/104的CPU块支持不好;

d.由于不明原因版本为214的内核对PC/104 ;

e.版本为2.4内核相对庞大,编译后的内核文件也相对较大;

f.版本为2.2的内核已完全能够满足本项目的需要。

目前,大多数面向数据采集的嵌入式Linux研制工作都是基于版本2.0/2.2内核进行的。实际上,内核版本的提升,其复杂度也随之升高,也会给嵌入式系统的定制工作带来很多的困难。

内核设置

内核设置工作可以通过直接修改内核源代码中的Make file文件、Config.in文件和内核源代码根目录下的.config文件来完成。内核源代码中的每个目录都有各自的用途,每个子目录下也都有相应的Make file文件。例如,在目录drivers/block/ Config.in文件中有如下语句:

if[“$CONFIG_BLK_DEV_HD_DE”=

“y”-o“$CONFIG_B LK_DEV_HD_ONL Y”=

“y”];then

define_boolCONFIG_BLK_DEV_HDy

else

define_boolCONFIG_BLK_DEV_HDn

fi

这段语句的作用是定义在块设备中DE块设备驱动可以被编译在内核中也可以被

编译成内核模块。采用修改配置文件的方式设置内核比较复杂,而且容易出现错误,但是对深入剖析和理解内核帮助很大。比较有效的方式还是直接利用Linux内核提供的工具进行内核设置。在Linux源代码目录下,Linux内核设置命令是:

# make menu config

命令执行后会显示一个字符型菜单配置环境,在该环境中有以下选项,通过这些选项设置可以定制Linux内核的各项功能,并对内核实现裁减。下面对主要设置选项进行介绍:

(1) Code maturity level options代码成熟等级。此处只有一项:prompt for development and/or incomplete code/drivers,如果要试验现在仍处于实验阶段的功能,就必须把该项选择为Y了;否则可以把它选择为N。在这部分,设定是否允许内核的一些试验选项被使用。

(2)Load able module support对可加载模块的支持。可加载模块码不是内核的一部分,但是当需要它的时候,可以被同内核一起加载并使用。如果将内核代码编译成可加载模块,可以使内核更小,而且更稳定。但是需要注意的是,如果将文件系统代码编译为可加载模块,将使内核无法读取文件系统,因此在启动的时候内核无法加载配置文件。

这里面有3项:

Enable loadable module support:提供内核支持;

Set version information on all module symbols:设置所有模块的版本信息;

Kernel module loader:让内核在启动时有自己装入必需模块的能力。

(3)Processor type and features

CPU类型选项。可以选择处理器的类型,通常“/dev/cpu”选项更高级。

Processor family:根据应用情况选择CPU类型。

High Memory Support:大容量内存的支持。可以支持到4G、64G,只有当计算机有超过1GB内存(不是磁盘空间)时才是必须的。

Mathe mulation:协处理器仿真。如果计算机是386或486SX的CPU,则须打开该选项,因为这些CPU没有Linux需要的浮点运算单元(Math Emulation,也称数学协处理器),所以必须选择该选项。

MTTR support: MTTR支持选项允许在PCI或者AGP总线众进行更快速的通讯。

Symmetric multi-processing support:对称多处理支持。

(4)Generalsetup

常规选项设置。在这里可以制定特定的内核常规选项,比如网络支持。网络支持是Linux内核的重要组成部分,这些选项通常是打开的。现在的Linux发行版以ELF格式作为它们的“内核核心格式”,这是不同系统库(system libraries)的标准格式。“ELF”是“a1out”格式的继承,几乎所有Linux程序都使用ELF库,有些老的程序仍然需要a1out格式支持。主要选项有:

Networking support:网络支持。

PCI support: PCI支持。

PCI accessmode: PCI存取模式。可供选择的有BIOS、Direct和Any。

Support fo rhot-pluggabel devices:热插拔设备支持。但Linux支持的不是太好,可不

选。

PCMCIA/CardBus support: PCMCIA CardBus支持。有PCMCIA就必选了。

System VIPC: 允许程序通信和同步。

BSD Process Accounting:保持诸如进程结束时产生的错误代码的。

Sysctl support:允许程序修改某些内核选项而不需要重新编译内核或者重新启动计算机。

以上3项是有关进程处理/IPC调用的,主要就是System V和BSD两种风格。如果不是使用BSD,可以按照缺省选择。Power Marcha gem ent support:电源管理支持。Advanced Power Management BIOS support: 高级电源管理BIOD支持。

(5)Memory Technology Device(MTD)

MTD设备支持。这个选项使Linux可以读取闪存卡(Flash Card)之类的存储器,2.4版本内核

开始支持DOC。

(6)Paralle lport support并口支持。

(7)Plug and Play configuration即插即用支持。

(8)Block devices块设备支持。

子选项如下:

Normal PC floppy disk support:普通PC软盘支持。

XT hard disks upport:XT硬盘支持

Mulex DAC960/DAC1100 PCI RAID

Controller support: RAID镜像选项。

Loopback device support: DOC要求有这个支持;

Network block device support:网络块设备支持。

Logical volume manager(LVM) support:逻辑卷管理支持。

Multiple devices driver support:多设备驱动支持。

RAM disk support: RAM盘支持。

(9)Networking options网络选项。

Packet socket:网络包套接口。

Kernel/User netlin ksocke:内核与用户进程双向通信。

Network firewalls:防火墙支持。

UNIX domain sockets:UNIX的socket。

TCP/IP networking:TCP/IP支持。

The IPX protocol:IPX协议支持。

(10)Telephony Support

电话支持。Linux下可以支持电话卡,这样就可以在IP上使用普通的电话提供语音服务了。电话卡和modem没有任何关系。

(11)ATA/DE/MFM/RLL support

有关各种接口的硬盘/光驱/磁带/软盘支持。DOC不需要该选项,CFC需要选择其中的部分选项。

(12)SCSI supportSCSI设备的支持。

(13)IEEE 1394(FireWire)support

要Fireware硬件来提高串行总线的性能。

(14)I2O devicesupport

需要I2O接口适配器才能支持,在智能Input/Output(I2O)体系接口中使用。

(15)Network device support

网络设备支持。列出常见网卡的驱动程序。

(16)Amateur Radio support

配置业余无线广播。

(17)IrDA(infrared) support

红外支持。

(18)ISDN subsystem

ISDN上网支持。

(19)OldCD-ROM drivers(notSCSI、notIDE)非SCSI/DE口的光驱。

(20)Character devices

字符设备。其中有:

I2C support: I2C是Philips极力推动的微控制应用中使用的低速串行总线协议。如果要选择下面的Video For Linux,该项必选。

Mice:鼠标。现在可以支持总线、串口、PS/2、C&T82C710 mouseport、PC110 digitizerpad。

Joysticks:手柄支持。Watchdog Cards:如果把这个选中,那么就会在/dev下创建一个名为watchdog的文件,它可以记录系统的运行情况,一直到系统重新启动的1min左右。有了这个文件,就可以恢复系统到重启前的状态了。

Video For Linux:支持有关的音频/视频卡。

Ftape,the floppy tape device driver:

PCMCIA character device support:上边介绍了。

(21)Filesy stems文件系统。介绍以下几项:

Quota support: Quota可以限制每个用户可以使用的硬盘空间的上限,在多用户共同

使用一台主机的情况中十分有效。

DOSFAT fssupport: DOSFAT文件格式的支持,可以支持FAT16、FAT32。

ISO 9660CD-ROM file system support:光盘使用的就是ISO9660的文件格式。

NTFS file system support:ntfs是NT使用的文件格式。

/ proc file system support:/proc文件系统是Lnux提供给用户和系统进行交互的通道,应该选上,否则有些功能没法正确执行。

还有另外3个大类是:Network File Systems(网络文件系统)、Partition Types(分区类型)、NativeLanguageSupport(本地语言支持)。值得一提的是NetworkFileSystems里面的两种:NFS 和SMB分别是Linux和Windows相互以网络邻居的形式访问对方所使用的文件系统。

(22)Console drivers控制台驱动。一般使用VGA text console就可以了,标准的80325的文本控制台。

(23)Sound声卡驱动。

(24)USB supprotUSB支持。很多USB设备,比如鼠标、调制解调器、打印机、扫描仪等,在Linux都可以得到支持。

(25)Kernel hacking配置此选项可以在系统崩溃时,也可以进行一定的工作了。但对于普通用户是用不着这个功能的。

内核编译

内核配置结束后就可以编译内核了,内核编译只有几个指令,但是内核编译的时间可能会很长。在执行内核配置之前可以先执行#make mrproper命令,检查内核源程序,以发现内核文件是否完备。

内核编译的命令如下:

#maked ep:使内核正确设置所有模块的依赖关系。

make clean:清除所有已存在的目标文件,已存在的目标文件主要由上次内核编译形成,如果忘记做这一步,生成的内核将会非常庞大。

#make zImage/zdisk/bzImage/zlilo:生成一个经过压缩的内核。如果要制作成启动盘就使用make zdisk,而make zlilo则把生成的内核加入LLO中,不过在最初几次编译内核时不要使用此项,以免系统因生成的内核有故障而不能启动。make bzImage用于生成超过1M文件大小的内核,makezImage生成小于1M的内核。内核文件是经过压缩处理的。如果内核中使用了可装卸的模块,则需要依次运行以下指令:

#make modules:编译内核模块。

#make modules_install:安装内核模块。

编译后的内核文件存放在arch/i386/boot/目录下。以下为一个内核编译配置脚本,采用该脚本编译的内核可运行于当前所有x86平台,不具备网络和串口支持,内核编译后的大小在200K以内。

#基于x86体系结构

CONFIG_X86=y

#是内核中最新功能(或处于实验中的功能) 可用

CONFIG_EXPERIMENTAL=y

#选择处理器类型和数学处理器仿真

CONFIG_M386=y

CONFIG_MATH_EMULATION=y

#设置进程间通信协议

CONFIG_SYSVIPC=y

CONFIG_SYSCTL=y

#设置可支持的二进制文件格式

CONFIG_BINFMT_ELF=y

#块设备支持,CFC和DOC在此设置不同

#设置内核支持DE驱动器

CONFIG_BLK_DEV_DE=y

CONFIG_BLK_DEV_DEDISK=y

CONFIG_BLK_DEV_CMD640=y

CONFIG_BLK_DEV_RZ1000=y

CONFIG_BLK_DEV_DEPCI=y

CONFIG_BLK_DEV_DEDMA=y

CONFIG_IDEDMA_AUTO=y

CONFIG_BLK_DEV_CS5530=y

CONFIG_BLK_DEV_LOOP=y

CONFIG_PARDE_PARPORT=y

#字符设备设置

CONFIG_VT=y

#文件系统设置

#支持/proc、ext2文件系统

CONFIG_PROC_FS=y

CONFIG_EXT2_FS=y

#支持字符型终端

CONFIG_VGA_CONSOLE=y

网络与串口通信功能

Linux内核内置对网络和串口的支持,具体到内核编译,只要设置部分内核参数即可。以下是网络设备的支持,需要注意的是其中PCI设备支持选项和以太网设备支持选项,如果选择网卡,这两类设备都必须被支持。网卡的驱动程序如果未包含到内核,则可以模块形式加载。

CONFIG_NET=y

CONFIG_PCI=y

CONFIG_PCI_GOANY=y

CONFIG_PCI_BIOS=y

CONFIG_PCI_DIRECT=y

CONFIG_PCI_QUIRKS=y

CONFIG_PCI_OLD_PROC=y

CONFIG_NETLINK=y

CONFIG_INET=y

CONFIG_NET_ETHERNET=y

以下是串口设置参数,如果单纯支持两个串口,则设置CONFIG_SERIAL项即可。在系统需要4个以上串口支持,或需要基于串口的终端控制时,需要设置余下3个参数。CONFIG_SERIAL=y

#CONFIG_SERIAL_CONSOLE

#CONFIG_SERIAL_EXTENDED

#CONFIG_SERIAL_NONSTANDARD

本项目中仅设置两个串口支持。

文件系统定制

Linux操作系统为方便管理把外存抽象成一个可随时访问的块,为方便管理和使用又在块设备层上再作抽象,把块设备抽象成为文件系统,由文件系统管理块设备上的数据等,文件系统有很多种,不同文件系统有不同的管理方式,造成系统不兼容,为解决这个问题,在文件系统上又作一次抽象,提出了虚拟文件系统的概念。Linux虚拟文件系统为用户提供了一个公共的接口,而不需要了解物理设备或逻辑系统的细节,系统允许系统管理员将在任何物理设备上的逻辑文件系统挂接在文件目录中。

目录结构

Linux文件系统符合FHS(Filesystem Hierarchy Standard)标准,由一些目录和文件组成。根据安装的方式不同,这些目录可能是不同的文件系统。通常,一个系统可以有多个文件系统组成:根分区文件系统(/),和安装在/usr下的文件系统,还有其他安装在/home、/var

文件系统。

Linux目录结构起始与根目录,其中包含以下目录:

/vmlinuz

内核文件,内核文件的位置可由系统引导程序指定。

/bin

包含系统可执行程序,可以在这个目录下找到linux常用的命令。

/boot

存放系统启动时所需的各项文件。

/dev

包含所有的设备文件,这些设备是和系统的硬件有一定相互对应关系的特殊文件,分为块设备、字符设备和特殊设备,dev是设备(device)的英文缩写。目录中包含了所有Linux 系统中使用的外部设备,但是这里并不是放的外部设备的驱动程序,它实际上是一个访问这些外部设备的标识。在Linux系统中,对外部设备的访问和访问一个文件、一个目录没有任何区别。

/cdrom

用于将光驱文件系统加载到这个目录下。

/etc

Linux系统的绝大部分配置文件都存放在这里。比如网络配置文件,文件系统,XWindow配置文件,设备配置信息,设置用户信息等都在这个目录下。

/sbin

存放系统程序。和/bin目录类似,但这些文件往往是用来进行系统管理或提供系统服务的,一般只有root才有运行的权限。

/home

存放一般用户个人目录的主目录,如果建立一个用户,用户名是“xx”,那么在/home 目录下就有一个对应的/home/xx路径。

/lib

存放系统的各种库文件,lib是库(library)英文缩写。这个目录用来存放系统动态连接共享库,采用动态链接编译的应用程序都会用到这个目录下的共享库。

/lost+found

用于放置垃圾文件,这个目录在大多数情况下都是空的。但是如果正在工作的计算机突然停电,或是没有用正常方式关机,重新启动机器的时候,有些文件就会找不到应该存放的地方,对于这些文件,系统将他们放在这个目录下。

/mnt

为其他的文件系统提供安装点,这个目录在一般情况下也是空的。

/proc

一个虚拟的文件系统,系统启动后从内存中建立,用于内存读取数据。可以在这个目录下获取系统信息,这些信息是在内存中,由系统自己产生的。

/root

超级用户的个人目录,普通用户没有权限访问。如果以超级用户的身份登录,这个就是超级用户的主目录。

/tmp

用来存放不同程序执行时产生的临时文件,这些文件大都是程序运行时产生的,程序结束时自动删除。

/usr

一般用户程序安装所在的目录,用户的很多应用程序和文件都存放在这个目录下。/var

保存大小和内容随时改变的文件,通常各种系统日志文件放在这里。

在定制文件系统的过程中,目录结构必须手工定制,以上描述的仅仅是根目录下的目录,在这些目录下还有一些子目录,而且不同的子目录其设置也不同。以下程序可以建立一个完备的目录结构,这个目录结构完全符合FHS标准。

ROOT=目标系统路径

cd$ROOT

mkdir-pbin boot dev/ptsetc/opt home lib

mntprocrootsbintmpvaropt&&

for dirname in$ROOT/usr$ROOT/usr/

local

do

mkdir$dirname

cd$dirname

mkdir binetc include lib sbin share src

ln-sshare/man

ln-sshare/doc

ln-sshare/info

cd$dirname/share

mkdir dict doc info locale mannls miscterm info zoneinfo

cd$dirname/share/man

mkdirman{1,2,3,4,5,6,7,8}

done&&

cd$ROOT/var&&

mkdir-plock log mail run spool tmp opt

cachelib/misclocal&&

cd$ROOT/opt&&

mkdir bin doc include info lib man &&

cd$ROOT/usr&&

ln-s11/var/tmp

cd$ROOT&&

chmod0750root&&

chmod1777tmpvar/tmp

文件系统

Linux采用虚拟文件系统(VFS)作为实际文件系统和操作系统之间的接口,将实际的文件系统和操作系统隔离开来。通过虚拟文件系统技术,Linux可以支持除EXT之外的许多文件系统类型。各文件系统为虚拟文件系统提供一致的接口,从而将不同文件系统的细节隐藏了起来。对操作系统的其他部分,以及运行在操作系统之上的程序而言,所有的文件系统都是一样的。

本系统采用ext2磁盘文件系统格式,这是一种比较新的磁盘文件系统格式,在具体应用中也可以根据存储空间的大小选择FAT或minix等文件格式。

本系统定制后的目录有:bin,boot,dev,etc,proc,root,sbin,usr。

/bin,/sbin目录下是系统初始化与运行过程中必须用到的指令集合。

/boot目录下是系统引导时用到的文件和内核文件,这些文件是通过内核定制得到的,包括:boot1b,bzImage,map。

/dev目录下是设备文件。

/etc目录下是系统配置文件,系统引导后执行的第一个配置文件inittab就在这个目录下,了解和掌握这个配置文件是分析和掌握Linux系统的关键。

/proc目录在系统启动后被内核使用,系统启动后该目录是一个单独的文件系统。

/root目录是系统管理员的用户根目录.

/usr目录中存放用户安装的应用系统。

总结

嵌入式Linux技术在海洋自动观测系统中的应用,可以进一步推进我国海洋自动观测系统产权自主化的建设,增强系统安全性、大幅度提高系统性能,为应用软件系统提供一个自主、安全、可靠、高效的运行平台,提高系统间兼容、提高开发效率、缩短开发周期、增强可移植性,这一工作对完成当前国家海洋工作任务及未来我国海洋事业的发展意义深远。基于PC/104平台的Linux内核与文件系统定制,是进行面向海洋自动观测系统嵌入式Linux系统研制工作的关键技术,是系统研制过程中的核心步骤。

Linux内核崩溃原因分析及错误跟踪技术

Linux内核崩溃原因分析及错误跟踪技术 随着嵌入式Linux系统的广泛应用,对系统的可靠性提出了更高的要求,尤其是涉及到生命财产等重要领域,要求系统达到安全完整性等级3级以上[1],故障率(每小时出现危险故障的可能性)为10-7以下,相当于系统的平均故障间隔时间(MTBF)至少要达到1141年以上,因此提高系统可靠性已成为一项艰巨的任务。对某公司在工业领域14 878个控制器系统的应用调查表明,从2004年初到2007年9月底,随着硬软件的不断改进,根据错误报告统计的故障率已降低到2004年的五分之一以下,但查找错误的时间却增加到原来的3倍以上。 这种解决问题所需时间呈上升的趋势固然有软件问题,但缺乏必要的手段以辅助解决问题才是主要的原因。通过对故障的统计跟踪发现,难以解决的软件错误和从发现到解决耗时较长的软件错误都集中在操作系统的核心部分,这其中又有很大比例集中在驱动程序部分[2]。因此,错误跟踪技术被看成是提高系统安全完整性等级的一个重要措施[1],大多数现代操作系统均为发展提供了操作系统内核“崩溃转储”机制,即在软件系统宕机时,将内存内容保存到磁盘[3],或者通过网络发送到故障服务器[3],或者直接启动内核调试器[4]等,以供事后分析改进。 基于Linux操作系统内核的崩溃转储机制近年来有以下几种: (1) LKCD(Linux Kernel Crash Dump)机制[3]; (2) KDUMP(Linux Kernel Dump)机制[4]; (3) KDB机制[5]; (4) KGDB机制[6]。 综合上述几种机制可以发现,这四种机制之间有以下三个共同点: (1) 适用于为运算资源丰富、存储空间充足的应用场合; (2) 发生系统崩溃后恢复时间无严格要求; (3) 主要针对较通用的硬件平台,如X86平台。 在嵌入式应用场合想要直接使用上列机制中的某一种,却遇到以下三个难点无法解决: (1) 存储空间不足 嵌入式系统一般采用Flash作为存储器,而Flash容量有限,且可能远远小于嵌入式系统中的内存容量。因此将全部内存内容保存到Flash不可行。

Linux运维工程师工作手册

Linux运维工程师工作手册 释放内存: sync echo3>/proc/sys/vm/drop_caches Linux查看Dell服务器型号 命令: dmidecode|grep"ProductName" 查看系统负载: cat/proc/loadavg 1/28310904 意思是:前三个是系统负载,1/283中,1代表此时运行队伍中的进程个数,而283是代表此时的进程总数 10904到此为止,最后创建的一个进程ID。 系统装好后,要做的事如下: 关闭防火墙Selinux: vim/etc/selinux/config 把SELINUX=enforcing改成SELINUX=disabled 更改主机名: vim/etc/sysconfig/network 修改主机名,不要用localhost 添加hosts主机记录 vim/etc/hosts中,在后面,添加自己的主机名 创建0-9a-z目录 foriin`seq09`{a..z};domkdir-p$i;done: 测试硬盘性能工具:iozone 监视服务器每少上下文切换数次工具:Nmon(很不错的性能监视工具)

#占用内存大小前10的进程 ps-eocomm,size--sort-size|head-10 #占用cp u使用前10的进程 ps-eocomm,pcpu--sort-pcpu|head-10 一、Apache服务优化:2 1.配置cronolog进行日志轮询2 2.错误页面优雅显示2 文件压缩功能3 缓存功能4 5.更改apache的默认用户5 模式,提升并发数(可以达到2000-5000)5 7.屏蔽apache版本等敏感信息6 目录文件权限设置(root,目录755,文件644)6 9.开启增加连接数6 10.apache防盗链功能8 11.禁止目录Index8 12.禁止用户覆盖(重载)8 13.关闭CGI9 14.避免使用.htaccess文件(分布式配置文件)9 15.apache的安全模块9 16.正确途径取得源代码,勤打apache补丁10 日志授予root700权限10 18.系统内核参数优化10 19.禁止PHP解析指定站点的目录10 20.使用tmpfs文件系统替代频繁访问的目录11 21尽可能减少HTTP请求数11 22使用CDN做网站加速12

关于Linux 内核中五个主要子系统的介绍

关于Linux 内核中五个主要子系统的介绍 发布时间:2008.01.02 06:23来源:赛迪网作者:sixth 1.进程调度(SCHED):控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。 2.内存管理(MM)允许多个进程安全的共享主内存区域。Linux的内存管理支持虚拟内存,即在计算机中运行的程序,其代码,数据,堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。必要时,操作系统负责在磁盘和内存间交换程序块。内存管理从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。 3.虚拟文件系统(VirtualFileSystem,VFS)隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如ext2,fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。 4.网络接口(NET)提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。 5.进程间通讯(IPC) 支持进程间各种通信机制。处于中心位置的进程调度,所有其它的子系统都依赖它,因为每个子系统都需要挂起或恢复进程。一般情况下,当一个进程等待硬件操作完成时,它被挂起;当操作真正完成时,进程被恢复执行。例如,当一个进程通过网络发送一条消息时,网络接口需要挂起发送进程,直到硬件成功地完成消息的发送,当消息被成功的发送出去以后,网络接口给进程返回一个代码,表示操作的成功或失败。其他子系统以相似的理由依赖于进程调度。

Linux内核结构详解教程

Linux内核结构详解教程 ─────Linux内核教程 linux内核就像人的心脏,灵魂,指挥中心。 内核是一个操作系统的核心,它负责管理系统的进程,内存,设备驱动程序,文件和网络系统,决定着系统的性能和稳定性。内核以独占的方式执行最底层任务,保证系统正常运行。协调多个并发进程,管理进程使用的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等等. 严格说Linux并不能称做一个完整的操作系统.我们安装时通常所说的Linux,是有很多集合组成的.应称为GNU/Linux. 一个Linux内核很少1.2M左右,一张软盘就能放下. 内容基础,语言简短简洁 红联Linux论坛是致力于Linux技术讨论的站点,目前网站收录的文章及教程基本能满足不同水平的朋友学习。 红联Linux门户: https://www.360docs.net/doc/2510620017.html, 红联Linux论坛: https://www.360docs.net/doc/2510620017.html,/bbs 红联Linux 论坛大全,所有致力点都体现在这 https://www.360docs.net/doc/2510620017.html,/bbs/rf/linux/07.htm

目录 Linux内核结构详解 Linux内核主要五个子系统详解 各个子系统之间的依赖关系 系统数据结构 Linux的具体结构 Linux内核源代码 Linux 内核源代码的结构 从何处开始阅读源代码 海量Linux技术文章

Linux内核结构详解 发布时间:2006-11-16 19:05:29 Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。

Linux内核主要五个子系统详解 发布时间:2006-11-16 19:05:54 1.进程调度(SCHED):控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。 2.内存管理(MM)允许多个进程安全的共享主内存区域。Linux的内存管理支持虚拟内存,即在计算机中运行的程序,其代码,数据,堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。必要时,操作系统负责在磁盘和内存间交换程序块。内存管理从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。 3.虚拟文件系统(VirtualFileSystem,VFS)隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如ext2,fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。 4.网络接口(NET)提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。 5.进程间通讯(IPC) 支持进程间各种通信机制。 处于中心位置的进程调度,所有其它的子系统都依赖它,因为每个子系统都需要挂起或恢复进程。一般情况下,当一个进程等待硬件操作完成时,它被挂起;当操作真正完成时,进程被恢复执行。例如,当一个进程通过网络发送一条消息时,网络接口需要挂起发送进程,直到硬件成功地完成消息的发送,当消息被成功的发送出去以后,网络接口给进程返回一个代码,表示操作的成功或失败。其他子系统以相似的理由依赖于进程调度。

如何安装Linux内核源代码

如何获取Linux内核源代码 下载Linux内核当然要去官方网站了,网站提供了两种文件下载,一种是完整的Linux 内核,另一种是内核增量补丁,它们都是tar归档压缩包。除非你有特别的原因需要使用旧版本的Linux内核,否则你应该总是升级到最新版本。 使用Git 由Linus领头的内核开发队伍从几年前就开始使用Git版本控制系统管理Linux内核了(参考阅读:什么是Git?),而Git项目本身也是由Linus创建的,它和传统的CVS不一样,Git是分布式的,因此它的用法和工作流程很多开发人员可能会感到很陌生,但我强烈建议使用Git下载和管理Linux内核源代码。 你可以使用下面的Git命令获取Linus内核代码树的最新“推送”版本: $ git clone git://https://www.360docs.net/doc/2510620017.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入门

1Linux基础+常见命令 今日大纲 了解Linux系统 安装Linux虚拟机 学习Linux的常用命令 多用户以及权限学习 Linux实战 技术亮点: Linux的使用 它作为服务器有什么优势?为什么最终部署不选择windows,而选择Linux? 1.1Linux介绍 1.1.1Unix Unix是一个强大的多用户、多任务操作系统。 于1969年在AT&T的贝尔实验室开发。 Unix的商标权由国际开放标准组织(The Open Group)所拥有。 Unix操作系统是商业版,需要收费,价格比windows正版要贵一些。 1.1.2Linux Linux是基于Unix的。 诞生于1991年10月5日。 Linux是一个自由的,免费的,源码开放的操作系统。 Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。

Linux的历史 Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds由于自己不满意教学中使用的MINIX操作系统,所以在1990年底由于个人爱好设计出了Linux系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以他的周边的程序越来越多,Linux 本身也逐渐发展壮大起来,之后Linux在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统。 1.1.3应用领域 *服务器系统 Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等; 嵌入式系统 路由器、防火墙、手机、PDA、IP分享器、交换器、家电用品的微电脑 控制器等等; 高性能运算、计算密集型应用 Linux有强大的运算能力 桌面应用系统 移动手持系统 1.1.4Linux版本 Linux的版本分为两种:内核版本和发行版本; 内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号; 发行版本是一些组织和公司根据自己发行版的不同而自定的;

2013年最新Linux系统运维面试题(附答案)

一、有文件file1 1、查询file1 里面空行的所在行号 awk ?{if($0~/^$/)print NR}‘ file or grep -n ^$ file |awk ?BEGIN{FS=‖:‖}{print $1}‘ 2、查询file1 以abc 结尾的行 grep abc$ file1 3、打印出file1 文件第1 到第3 行 sed -n ‘1,3p‘ file1 head -3 file1 二、如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1 Iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp –dport 80 -j DNAT –to-destination 192.168.2.1:8080 三、crontab 在11 月份内,每天的早上6 点到12 点中,每隔2 小时执行一次/usr/bin/httpd.sh 怎么实现 0 6-12/2 * 11 * /usr/bin/httpd.sh 四、编写个shell 脚本将/usr/local/test 目录下大于100K 的文件转移到/tmp 目录下 #!/bin/bash for file in `ls /root` do if [ -f $file ]; then if [ `ls -l $file|awk '{print $5}'` -gt 10000 ]; then mv $file /tmp/ fi fi done 五、简述raid0 raid1 raid5 三种工作模式的工作原理及特点。 RAID 0:连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID 结构。RAID 0 只是单纯地提高 性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0 不能应用于数据安全性要求高的场合。 RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1 可以提高读取性能。RAID 1 是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时, 系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。简单来说就是:镜象结构,类似于备份模式,一个数据被复制到两块硬盘上。 RAID10:高可靠性与高效磁盘结构 一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充。 主要用于容量不大,但要求速度和差错控制的数据库中。 RAID5:分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。支持一块盘掉线后仍然正常

pc104 linux定制

基于PC/104平台嵌入式Linux系统核心定制方法 2007-10-26 嵌入式在线收藏| 打印 基于PC/104平台的嵌入式Linux技术在海洋自动观测系统中具有广泛的应用前景,Linux核心定制方法的研究是嵌入式Linux系统研制的关键工作。本文结合PC/104平台嵌入式Linux系统的研制,详细论述了Linux内核和文件系统的定制方法。 本文就如何对Linux系统的核心实现定制进行论述,主要内容包括Linux内核部分和文件系统,系统定制的硬件平台是PC/104单片机。之所以将Linux内核定制、文件系统定制单独讨论,是因为在基于任何平台的Linux系统定制过程中,其内核和文件系统的定制工作都具有相似的特征和相似的过程。 在基于PC/104平台的嵌入式Linux研制过程中,进行核心定制的主要目的是从需求出发使系统最大程度地满足应用的需要、最大程度地适应系统硬件平台、最优化地支持系统外围设备和应用程序,并且尽量减少对系统资源的占用、减少系统功耗,增强系统的安全性、稳定性、可靠性,另外使系统真正地实现产权自主化。 内核定制 一般操作系统的内核从体系结构角度可以划分为两种:微内核体系结构、单内核体系结构。微内核体系结构只在内核中包括了一些基本的内核功能,其它部分在用户内存空间运行,这种结构需要在各层之间进行调用,因此会有一定的消耗,使执行效率不如单内核体系结构。Linux采用单内核体系结构,内核的所有部分都集中在一起,这样能使系统的各部分直接沟通,有效地缩短任务之间的切换时间,提高了系统的响应速度,实时性好并提高了CPU的利用率,但在系统比较大的时候体积也比较大,与嵌入式系统容量小、资源有限的特点不符合,因此需要进行非常精细的定制以适应嵌入式系统的需要。 内核版本 Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。Linux的开发采用的是双树系统。一个树是稳定树(stable tree),另一个树是非稳定树(unstable tree)或称开发树(development tree)。一些新特性、实验性改进等都将首先在开发树中进行,如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。 一旦开发树经过了足够的发展,开发树就会成为新的稳定树。开发树就体现在源程序的版本号中;源程序版本号的形式为x.y.z,对于稳定树来说,y是偶数;对于开发树来说,y 比相应的稳定树大一(是奇数)。到目前为止,稳定树的最高版本是2.4.21,开发树的最新版

LINUX内核源文件介绍以及头文件介绍

LINUX 内核源文件介绍以及头文件介绍 LINUX 内核源文件介绍以及头文件介绍.txt两人之间的感情就像织毛衣,建立的时候一针一线,小心而漫长,拆除的时候只要轻轻一拉。。。。*******************LINUX 内核(0.11)源文件介绍****************** 1、内核源文件放置目录: | |————boot 系统引导汇编程序目录 | |————fs 文件系统目录 | |————include 头文件目录 | |————init 内核初始化程序目录 | |————kernel 内存进程调度、信号处理、系统调用等程序的目录 | |————lib 内核库函数目录 | |————mm 内存管理程序目录 | |————tools 生成内核Image文件的工具程序目录 | |————Makefile文件 | 2、引导启动程序目录boot 包含3个汇编语言文件,是内核源文件中最先被编译的程序。 功能:当计算机家电时引导内核启动,将内核代码加载到内存中,并完成系统初始化工作。 boot | |————bootsect.s 磁盘引导块程序,编译后会驻留在磁盘的第一个扇区中| |————setup.s 读取机器的硬件配置参数,并把内核模式system移动到适当的内存位置处 |

|————head.s 会被编译连接在system模块的最前部分,主要进行硬件设备的探测配置和内存管理页面的配置工作 | 3、文件系统目录fs 包含17个C语言程序 fs | |——buffer.c 管理高速缓冲区 | |——file_table.c 在0.11仅定义了一个文件句柄(描述符)结构数组 | |——ioctl.c 将引用kernel/chr_dev/tty.c中的函数,实现字符设备的IO 控制功能 | |——exec.c 主要包含一个执行程序函数do_execve() | |——fcntl.c 实现文件I/O控制的系统调用函数 | |——read_write.c 实现文件读/写和定位的三个系统调用函数 | |——stat.c 实现了两个获取文件状态的系统调用函数 | |——open.c 主要包含实现修改文件属性和创建与关闭文件的系统调用函数 | |——char_dev.c 主要包含字符设备读写函数rw_char() | |——pipe.c 包含管道读写函数和创建管道的系统调用函数 | |——file_dev.c 包含基于i节点和描述符结构的文件读写函数。 | |——namei.c 主要包括文件系统中目录名和文件名的操作函数和系统调用函数 | |——block_dev.c 包含块数据读和写函数 | |——inode.c 包含针对文件系统i节点操作的函数 | |——truncate.c 用于在删除文件时释放文件所占用的设备数据空间 | |——bitmap.c 用于处理文件系统中i节点和逻辑数据块的位图 |

(完整版)linux内核技术

一、教学目的 SMP、多核系统、高性能浮点处理器和新型总线等创新技术,带动操作系统不断发展。本课程使硕士生了解linux的基本原理和结构特征,提高应用现代操作系统的水平、能开发特定的内核功能、设备驱动程序和复杂应用软件的能力。 二、教学内容与要求 1掌握处理器在进程地址空间上的三种运行位置,了解内核编程不能使用C库函数和FPU,以及可能产生内存故障、核心栈溢出和四种内核竞争情形的原因。(2学时)2熟悉进程描述符的组织,进程上下文和进程状态转换,和fork,exec,wait,exit,clone,linux线程和内核线程的实现原理和应用。了解COW和避免出现孤儿进程技术。 (4小时) 3介绍支持SMP的O(1)调度,用户和内核抢占和进程上下文切换,了解优先级复算,睡眠和唤醒机制,SMP的负载均衡。(4小时) 4掌握在x86体系结构上系统调用的具体实现原理,接口参数传递,用户地址空间和核心地址空间之间的数据传输,和增加新的系统功能的方法。(2小时)5熟悉在x86体系结构上Linux中断和异常的处理原理,中断注册、共享、控制,和中断上下文的意义,中断和设备驱动程序的关系,以及设备驱动程序结构和用户接口。 (4小时) 6中断处理程序被分解为top half和bottom half的原因,介绍linux的softirq,tasklet,ksoftirqd和work queue,分析进程与top half,bottom half的竞争情形和同步。(4小时)7掌握内核同步原理和方法:原子操作,自旋锁,(读—写)信号量,完成变量,bkl,seqlock和延迟内核抢占。了解指令“路障”。(4小时) 8介绍系统时钟和硬件定时器,单处理器和多处理器上的linux计时体系结构,定时的时间插补原理,单处理器和多处理器上的时钟中断处理,动态定时器的数据结构和算法原理,定时器竞争情形,延迟函数。Time,gettimeofday,adjtimex,setitimer,alarm 的实现原理和应用。(4小时) 9熟悉进程地址空间的区和页,分配和释放物理页,物理地址与逻辑地址、虚地址之间的映射,slub分配原理和方法,高端物理内存的映射。(4小时) 10介绍VFS原理,超级块,inode结构和方法,dentry结构和方法,file结构和方法,以及进程打开文件表,linux中的文件系统。(2小时) 11讲解块设备缓冲,bio结构,I/O请求队列,和有最终期限的块I/O调度算法。(2小时) 12熟悉进程地址空间的分区,mm_struct结构,vm_area_struct结构和操作,,进程的页表文件映射接口mmap原理和方法。(2小时) 13熟悉页cache和radix_tree,缓冲区cache,和pdflush内核线程原理。(2小时) 三、教学方式 教学方式:课堂讲授 考试方式:堂上考试、考查都采用笔试。

linux系统及编程基础课后答案

第1章习题答案 1. 什么是Linux? 答:Linux是一款优秀的操作系统,支持多用户、多进程、多线程,实时性好,功能强大且稳定。同时,它又具有良好的兼容性和可移植性,被广泛应用于各种计算机平台上。作为Internet的产物,Linux操作系统由全世界的许多计算机爱好者共同合作开发,是一个自由的操作系统。 2. Linux的主要特点是什么? 答:Linux具有UNIX的所有特性并且具有自己独特的魅力,主要表现在以下几个方面: 开放性 多用户 多任务 出色的稳定性能 良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用界面。 设备独立性:设备独立性是指操作系统把所有外部设备统一当作文件来看,只要安装它们的驱动程序,任何用户都可以像使用文件那样操作并使用这些设备,而不必知道它们的具体存在形式。 丰富的网络功能:完善的内置网络是Linux的一大特点,Linux在通信和网络 功能方面优于其他操作系统。其他操作系统不包含如此紧密的内核结合在一起的联接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。

可靠的安全性 良好的可移植性:可移植性是指将操作系统从一个平台转移到另一个平台,使它仍然能按其自身的方式运行的能力。 3. Linux的主要组成包括什么? 答:Linux主要组成为: Linux内核(Kernel):内核(Kernel)是系统的心脏,是运行程序和管理硬件设备的内核程序,决定着系统的性能和稳定性,实现操作系统的基本功能。 Linux的Shell:Shell是系统的用户界面,提供用户与内核进行交互操作的一种接口。Shell是一个命令解释器,它解释由用户输入的命令并且把他们送到内核执行。Shell编程语言具有普通编程语言的很多特点,用这种编程语言编写shell程序与其他应用程序具有同样的效果。 Linux 文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法。通常是按照目录层次的方式进行组织,用户能够从一个目录切换到另一个目录,而且可以设置目录和文件的权限、文件的共享程度。 Linux 实用程序(utilities)和应用程序(Applications):标准的Linux系统都有一套成为应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。 4. Linux与Windows的主要区别是什么? 答:主要区别: (1)Linux的应用目标是网络 Linux的设计定位于网络操作系统。虽然现在已经实现Linux操作系统的图形界面,但仍然没有舍弃文本命令行。由于纯文本可以非常好地跨越网络进行工作,所以Linux

上海Linux运维工程师-面习题-练习-个人总结)

这下面的是一个企业发的面试题 1你常上的相关技术站有哪些? 2简述你所理解运维工程师的主要职责? 3你管理过的服务器数量级? 1台 2台 2-5台 5-10台 10台以上 4描述一次你印象深刻的服务器运维经历。 5有一台服务器出现安全问题,你会采取什么样的方法处理?说出你的诊断处理思路。 6有多台服务器需部署相同应用文件,文件会持续更新,你用什么方式实现不同服务器间的文件同步。 7某一台服务器部署多个Web站点,其中有一个w3wp的CPU占用达到100%,如何找出有问题的Web站点? 8你眼中的沪江是怎样的?谈谈你对沪江的理解。 9是否有以下相关经验?如有请简要说明掌握情况。 a、Squid相关经验 b、Nginx、Lighttpd等 c、Memcached d、负载均衡 e、分布式文件处理 f、Email Server 上午-10点雷傲普文化传播有限公司 1.DNS使用的端口号和协议,简单描述一下DNS正向解析和反向解析的工作原理和作用还 有应用场景? 2.编写IPTABLES使用内网某台机器的80端口可以在公网访问,假设公网IP为10.10.1.1 ,实现192.168.1.0/32段的NAT. 3.举出三个以上的主流WEB服务器,并简述他们的特性和优缺点不限操作系统? Apache 源代码开放可以欲行在unix,windowns,linux平台上,可移植性,而且模块很是丰富缺点:性能,速度上不及其他轻量级的web服务器,但是也是重量级产品,所消耗的内存,cpu也比其他的要高 Nginx 源代码开放发高性能的http和反向代理服务器,在高并发的情况下,nginx 是apache不错的替代品,他能够支持高达50000个并发连接响应,内存,cpu等系统资源消耗也是很低的。缺点,支持模块比较少吧,相对没有apache稳定,支持动态页面

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.360docs.net/doc/2510620017.html,/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2 3、下载内核升级工具 (1)下载module-init-tools-3.2.tar.bz2 https://www.360docs.net/doc/2510620017.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.360docs.net/doc/2510620017.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.360docs.net/doc/2510620017.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.360docs.net/doc/2510620017.html,/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm (2.6.18内核和这4个升级工具我都有备份,如果以上下载地址失效,请到https://www.360docs.net/doc/2510620017.html,/guestbook留下你的邮箱,我给你发过去)

-Linux操作系统基础教学大纲

Linux操作系统基础 Foundation of Linux Operation System 适用范围:2013本科人才培养方案 课程编号: 学分:2 学时:32(其中:讲课学时:20 实验学时:12) 先修课程:计算机文化概论 适用专业:网络工程 建议教材:《Linux实用教程》陈博等人民邮电出版社2008年10月 开课单位:软件学院 一、课程的性质与任务 课程性质:本课程是网络工程专业网络安全与攻防方向的一门专业方向任选课,Linux及应用是计算机科学专业的一门专业课程。 课程任务:本课程的目的和任务是使学生全面地了解和掌握Linux系统的基本概念、原理及应用技术、以及适应社会对Linux操作与管理人员的需求。通过本门课程的学习,能够为以后从事软件编程、分布式处理及系统服务部署等不同应用领域的研究打下深厚的理论基础。 二、课程的基本内容及要求 (一)认识Linux系统 1. 课程教学内容: (1)Linux系统简介 (2)Linux系统的特点和组成 (3)Linux版本介绍 (4)Fedora Core系统概述 2. 课程重点、难点 重点:了解Linux操作系统的发展历程,改系统的特点和组成。 难点:Linux操作系统与Window操作系统的异同。 3. 课程教学要求: (1)了解计算机计算机操作系统的发展过程; (2)理解Linux操作系统与UNIX系统的区别,理解GUN计划的内容; (3)掌握Linux各个系统的版本及其优劣等。

(二)Fedora 系统的安装和删除 1. 课程教学内容: (1)准备安装Linux操作系统 (2)分区的概念和分区的类型。 (3)硬盘的类型。 (4)安装Linux的步骤及安装后的初始化工作。 (5)删除MBR中GRUB引导程序。 (6)删除Linux分区。 2. 课程重点、难点 重点:如何对硬盘分区,如何命名分区,分区的格式化等。 难点:如何理解分区的编号及文件系统的建立等。 3. 课程教学要求: (1)本章的学习目的是使学生能够自己安装一个操作系统,合理分区,并了解Linux下分区的概念。了解如何建立交换分区。 (2)理解分区文件的命名描述; (3)掌握安装Linux的步骤及安装后的初始化工作,掌握如何删除MBR中的GRUB分区程序。 (三)Linux图形化界面 1. 课程教学内容: (1)登录、注销和关闭系统 (2)GNOME基本使用 (3)系统设置 (4)Fedora系统的应用软件使用 2. 课程重点、难点: 重点:掌握如何正常登录、注销和关闭系统的几个命令。 难点:了解在如何在GNOME图形界面中如何复制、黏贴、删除文件等。 3. 课程教学要求: (1)了解GNOME的初步使用,系统的各种基本设置; (2)理解硬盘分析器、系统日志等内容。 (3)掌握在GNOME的操作使用。 (四)Linux字符界面操作 1. 课程教学内容:

Linux内核目录文件简介

Linux V0.11目录文件简介 ●Makefile文件:该文件是编译辅助工具软件make的参数配置文件。 ●boot目录:功能是当计算机加电时引导内核启动,将内核代码加载到内存中,并做一些进入入32位保护运行方式前的系统初始化工作。 ①Bootsect.s:磁盘引导块程序,驻留磁盘第一个扇区。0x7C00 ②Setup.s:读取机器的硬件配置参数,并把内核模块system移动到适当的内存位置处。 ③Head.s:被编译连接在system模块的最前部分,主要进行硬件设备的探测设置和内存管理页面的初始设置工作。 ●fs目录:文件系统实现程序的目录。 1、file_table.c文件中,目前仅定义了一个文件句柄(描述符)结构数组。 2、ioctl.c文件将引用kernel/chr_dev/tty.c中的函数,实现字符设备的io控制功能。 3、exec.c程序主要包含一个执行程序函数do_execve(),它是所有exec()函数簇中的主要函数。 4、fcntl.c程序用于实现文件i/o控制的系统调用函数。 5、read_write.c程序用于实现文件读/写和定位三个系统调用函数。 6、stat.c程序中实现了两个获取文件状态的系统调用函数。 7、open.c程序主要包含实现修改文件属性和创建与关闭文件的系统调用函数。 8、char_dev.c主要包含字符设备读写函数rw_char()。 9、pipe.c程序中包含管道读写函数和创建管道的系统调用。 10、file_dev.c程序中包含基于i节点和描述符结构的文件读写函数。 11、namei.c程序主要包括文件系统中目录名和文件名的操作函数和系统调用函数。 12、block_dev.c程序包含块数据读和写函数。 13、inode.c程序中包含针对文件系统i节点操作的函数。 14、truncate.c程序用于在删除文件时释放文件所占用的设备数据空间。 15、bitmap.c程序用于处理文件系统中i节点和逻辑数据块的位图。 16、super.c程序中包含对文件系统超级块的处理函数。 17、buffer.c程序主要用于对内存高速缓冲区进行处理。 ·虚框中的ll_rw_block是块设备的底层读函数,它并不在fs目录中,而是 kernel/blk_dev/ll_rw_block.c中的块设备读写驱动函数。放在这里只是让我们清楚的看到,文件系统对于块设备中数据的读写,都需要通过高速缓冲区与块设备的驱动程序 (ll_rw_block())来操作来进行,文件系统程序集本身并不直接与块设备的驱动程序打交道。

实验一Linux操作系统基础

实验一 1 实验名称:Linux操作系统基础 2 实验目标 2.1 掌握安装Linux操作系统的方法。 2.2 掌握Linux操作系统的基本配置。 2.3 了解GNOME桌面环境。 2.4灵活掌握基本shell命令的使用。 3 实验准备 3.1 下载VMware Workstation虚拟机软件(版本不限)。 3.2 准备Linux操作系统的安装源(核版本和发行版本均不限)。 注:实验准备、实验容4.1和4.2作为回家作业布置,同学们利用课余时间完成。 4 实验要求、步骤及结果 4.1 安装虚拟机软件。 【操作要求】安装VMware Workstation虚拟机软件,版本不限,并填写以下容。 4.1.1安装VMware Workstation虚拟机软件的环境(操作系统)

4.1.2VMware Workstation虚拟机版本号

4.2 安装Linux操作系统。 【操作要求】在VMware虚拟机下安装Linux操作系统,版本不限,并填写以下容。 4.2.1 Linux发行版本: 4.2.2 Linux核版本: 4.2.3 Linux操作系统的主要配置参数 4.3 了解Linux操作系统的桌 面环境之一GNOME。 【操作要求1】打开图形化用 户界面、查看桌面图标,查看 主菜单,查看个人用户主目录 等使用环境。

【操作要求2】启动字符终端2,了解命令提示行含义。 Alt+F2+Ctrl [用户名主机名目录名] 提示符 【操作要求3】注销字符终端2 【操作要求4】关闭图形化用户界面,关闭Linux操作系统。 4.4 掌握基本shell命令的使用。 注:以下需要截取shell命令与结果,没有结果截到下一命令提示行。 【操作要求1】用超级用户登陆;将主机名改为具有个人学号后3位特征的名称,退出虚拟终端后重新登录;查看当前目录的绝对路径。 【操作步骤-登陆】 【操作步骤-修改主机名】

linux内核是什么意思

千锋教育https://www.360docs.net/doc/2510620017.html, 精品课程 全程面授 千锋教育-中国IT 职业教育领先品牌 linux 培训学院哪家好 Linux 是常常用来形容整个基于Linux 内核,并且使用工程各种工具和数据库的操作系统。 很受欢迎,使用非常广泛。到了云时代,Linux 炙手可热,掌握。 知识和技能,能找到非常有前景的工作。 既然要学习,最重要的是找到一家好的培训机构。师资,费用,教学质量,这些都要考虑。 2017年5月26日上午,“千锋Linux 云计算运维及开发课程2017版”新品发布会在千锋互联科技有限公司总部北京隆重举行 届时,千锋教育总部的各位领导、千锋教育分校区的校长及网络咨询部、网络运营部代表等各界人士一起出席了“千锋Linux 云计算运维及开发课程2017版”新品发布会。 千锋Linux 云计算课程总监(中国第29位红帽认证架构师,以下简称:杨老师)向各位出席此次发布会的代表详细介绍了“千锋Linux 云计算运维及开发课程2017版”的课程设置体系内容及本年度首期开班招生计划要求。 职业教育领先品牌 千锋教育 linux 培训学院哪家好 ?千锋Linux 云计算培训课程,全方位培养运维工程师 Linux 与微软的“战争”持续已久,谁也不能抢占各自的用户。不过,全球200万名Linux 工程师终于等到了这一天,是时候对微软说“不”了,因为“云计算”时代即将来临,以及廉价的、超小型笔记本电脑正在快速普及。Linux 工程师等待已久了的“云计算”时代。 日前,百资信息科技公司创办人及执行人林政道和香港Linux 商会会长简锦源在广州信息产业周上指出,由于手机、超小型笔记本等移动互联网终端的出现,这种移动终端设备采用Linux 平台作为操作系统已经成为IT 业界的一种发展趋势。因为中国是全球的PC 制造基地和最大的消费市场,其已成为全球推动Linux 发展的最重要的力量之一。 在云计算的初级阶段,我们一定要把握先机,好好学习云计算的相关知识。为此,千锋推出Linux 云计算培训。千锋Linux 云计算培训课程实行免费试学两周,不花一分钱,满意后再报名的政策,全心全意为学员提供服务。讲师方面,千锋Linux 讲师均是拥有多年经验的老师,并特聘一线名企作为技术顾问;课程体系方面,千锋Linux 课程体系是最贴合企业需求的面授课程,并有名企技术顾问定期进行调整;学员福利方面,千锋Linux 为首期报名学员减免1000元学费,并赠送5个月阿里云ECS 云主机。2017年7月17日,千锋Linux 云计算培训等你来战

相关文档
最新文档