版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux 系统裁减指南 (LiPS)目 录目 录11 引言41.1 编写目的41.2 背景41.3 定义41.4 参考资料42 总体描述52.1 硬件环境52.2 软件环境52.3 需求规定和约束53 总体设计63.1 基本设计概念63.2 软件结构64 内核64.1 创建内核的方法64.2 内核配置74.2.1 概述74.2.2 Loadable module support84.2.3 Processor type and features84.2.4 General setup84.2.5 Plug and Play configuration94.2.6 Block devices9
2、4.2.7 Multi-device support (RAID and LVM)104.2.8 Networking options104.2.9 ATA/IDE/MFM/RLL support114.2.10 SCSI support124.2.11 Network device support124.2.12 Character devices134.2.13 File systems144.2.14 Console drivers154.2.15 USB support154.3 提示164.3.1 EXTRAVERSION164.3.2 .config175 根文件系统175.1 根
3、文件系统175.2 文件系统的内容175.2.1 应用程序(applications)175.2.2 设备文件(device files)185.2.3 脚本和配置文件(scripts and configuration files)195.2.4 库文件(libraries)205.2.5 必要的目录205.3 初始化RAM盘(initrd)215.3.1 操作步骤215.3.2 引导选项215.3.3 安装225.3.4 改变根目录设备235.3.5 使用场合245.3.6 淘汰的根转换机制(change_root)245.4 系统初始化(init)245.4.1 init的任务245.4
4、.2 SysVinit255.4.3 两种风格:Slackware vs. Debian255.5 PAM265.5.1 什么是PAM265.5.2 PAM的结构265.5.3 配置文件265.5.4 other275.6 再论initrd275.6.1 根到底在哪里285.6.2 linuxrc285.6.3 根转换机制:新的?旧的?305.7 提示315.7.1 文件系统目录层次结构315.7.2 mklips.sh(制作LiPS的脚本)325.7.3 lips.conf(LiPS配置文件)325.7.4 cp dpR325.7.5 如何判断一个程序依赖哪些文件325.7.6 带库文件复制
5、lcp()335.7.7 库文件的命名346 引导356.1 引导过程概述356.2 几种引导方式356.3 grub引导器356.4 USB引导356.4.1 制作步骤3 创建文件系统3 复制文件3 安装grub366.5 提示376.5.1 版本问题?377 远程串口控制台377.1 概述377.2 配置方法377.3 提示377.4 Linux 远程串口控制台指南378 系统安装光盘408.1 概述408.2 boot.iso光盘的文件结构分析401 引言1.1 编写目的说明Linux系统裁减的过程及解决的主要技术问题。本文档的编写是为了说
6、明LiPS的详细设计过程,也可以作为构造一个小型化Linux系统的指南。本文档内容的组织如下所述:这一部分是引言,第2部分是对项目软、硬件环境和需求的总体描述,第3部分说明了裁减LINUX的相关基本概念。后面几个部分是具体实现方法的详细说明,46分别详细描述了创建内核、创建根文件系统和引导系统的方法。最后的内容可以看作附录,其中7说明了一般Linux系统安装光盘的创建方法,8列出了相关的配置文件和源代码。1.2 背景华中科技大学计算机存储系统国家专业实验室,NAS项目(2003.32003.8)。1.3 定义O boot loader: 引导器O kernel: 内核O root filesy
7、stem: 根文件系统O USB: 通用串行总线1.4 参考资料1 DIY:自己动手做一个迷你 Linux 系统. IBM developerWorks 中国网站. /developerWorks/cn/linux/embed/diy/index.shtml2 Linux From Scratch. http:/clfsbook.mylab.idv.tw/index.html3 Linux启动过程综述. /forum/showdoc.jsp?l=1&i=157504 The Linux Bootdisk
8、 HOWTO (中译版). .tw/CLDP/gb/Bootdisk-HOWTO.html5 Using the initial RAM disk (initrd). /usr/src/linux-2.4/Documentation/initrd.txt. (译文:/Project/3ybaby/discuss-area/cd-boot/cdboot_refer/initrd.htm)6 Quickmouse于2003.1发表于白云黄鹤BBS (/ Linux讨论区的帖子“裁
9、减Linux”。7 Filesystem Hierarchy Standard. /fhs/pub/fhs-2.2.pdf8 LINUX ALLOCATED DEVICES. /usr/src/linux-2.4/Documentation/device.txt. 或者最新的列表在/pub/linux/docs/device-list/9 Karim Yaghmour. Building Embedded Linux Systems. OReilly, April 2003.10 Alessandro Rubi
10、ni. Take Command: Init. http:/www.linux.it/kerneldocs/init/ , November 1998. 11 深入 Linux PAM 体系结构. IBM developerWorks 中国网站. http:/www-90/0./developerWorks/cn/linux/l-pam/index.shtml . 2003.7.12 2 总体描述2.1 硬件环境开发主机:Intel 845芯片组主板,P4赛扬1.8GHz CPU,256M内存,60G IDE硬盘,RTL8139网卡。目标机:与主机同构。2.2 软件环境开发主机:
11、Redhat Linux 7.3 (kernel 2.4.18-3),或者Redhat Linux 9 (kernel 2.4.20-8)。可以根据需要使用其他版本的内核,比如Redhat 7.3kernel 2.4.20。目标机:LiPS,以及应用程序。2.3 需求规定和约束我们目标系统LiPS,即Linux Powered Storage是一个嵌入式Linux操作系统,主要着眼于提供各种文件服务,不包括X GUI;并且足够小,可以装入32M USB盘或者DOC/DOM等常用设备引导。3 总体设计3.1 基本设计概念提起“裁减Linux”,最容易想到的方法是以一个已经安装好的系统为基础,删除
12、掉不需要的文件,以减小整个系统的尺寸。而事实上这个方法几乎是行不通的,因为通过光盘安装的一个Redhat 9 Linux系统,即便是只选择了比较少的软件包,其所占空间也可以轻松达到300500MB,想在这个基础上裁减到30MB左右是比较困难的。更困难的是确定哪些东西是可以删除的?如果删除了系统必须的文件,可能导致系统不能引导。另一个途径是从零开始根据需要构建整个系统。“Linux From Scratch”采用的就是这种方式,一个个安装需要的软件包。类似的,更简单的方法是,安装一个完整的Linux系统,然后将必要的软件(可执行程序)、配置文件、库文件、内核等复制出来构建一个小系统。我们采取后一
13、种方式。3.2 软件结构LiPS包括3部分:Linux内核,根文件系统和引导器。内核(Kernel)提供了一个操作系统的基本功能,如内存管理、进程调度、文件系统、网络等,以及设备驱动程序。根文件系统(Root filesystem)是存放运行、维护系统所必须的各种工具软件、库文件、脚本、配置文件和其他特殊文件(比如设备节点)的地方,也可以安装各种软件包。通常根文件系统位于某个磁盘分区,而在LiPS中应用了initrd(初始RAM盘)机制,将根文件系统放在RAM Disk中。引导器(Boot Loader)的任务是从引导设备装载内核,引导系统运行。Linux系统常见的引导器包括早期的LILO和近
14、期的GRUB。LiPS用的是GRUB。4 内核4.1 创建内核的方法Linux提供了方便灵活的方法来定制内核,主要步骤包括:下载安装内核源代码树,配置内核,编译内核。具体方法请参考相关文档。关键指令如下: cd /usr/src/linux-2.4 make menuconfig make dep; make clean; make bzImage编译成功的内核文件为arch/i386/boot/bzImage.4.2 内核配置4.2.1 概述make menuconfig之后可以看到类似如下的内容(编号是为了描述方便而加上的)。根据内核版本的不同,列出的项目会有差异。而变化主要发生在发行版为
15、标准内核打的各种补丁上面,其实标准内核是比较稳定的。如下所示,我们配置的内核版本为2.4.20-8,这个“-8”就是Redhat所打的补丁版本号。补丁一般是对标准内核错误的修正和新增的功能。与2.4.20内核配置选项比较会发现,10,25,30都属于Redhat的补丁。一般地,这些补丁选项都不是必须的,因此我们的LiPS内核中都没有包括这些选项。其实,完全可以通过直接配置一个标准的内核版本(比如2.4.20)来产生我们所需要的内核。 Linux Kernel v2.4.20-8-R2Lips Configuration1 Code maturity level options -2 Loada
16、ble module support -3 Processor type and features -4 General setup -5 Memory Technology Devices (MTD) -6 Parallel port support -7 Plug and Play configuration -8 Block devices -9 Multi-device support (RAID and LVM) -10 Cryptography support (CryptoAPI) -11 Networking options -12 Telephony Support -13
17、ATA/IDE/MFM/RLL support -14 SCSI support -15 Fusion MPT device support -16 I2O device support -17 Network device support -18 Amateur Radio support -19 IrDA (infrared) support -20 ISDN subsystem -21 Old CD-ROM drivers (not SCSI, not IDE) -22 Input core support -23 Character devices -24 Multimedia dev
18、ices -25 Crypto Hardware support -26 File systems -27 Console drivers -28 Sound -29 USB support -30 Additional device driver support -31 Bluetooth support -32 Kernel hacking -33 Library routines - Load an Alternate Configuration File Save Configuration to an Alternate File 下面我们以2.4.20内核为例,来详细说明内核的配置
19、,也就是选哪些东西、不选哪些东西。没有说明的选项,比如“Code maturity level options”,表示不选。4.2.2 Loadable module support * Enable loadable module support Set version information on all module symbols * Kernel module loader可加载模块支持。虽然目前所选项目全部编译进内核,但是内核是支持模块的。可以考虑将一些硬件设备的驱动程序编译为模块,从而减小内核尺寸,同时增加适应不同硬件平台的灵活性。4.2.3 Processor type and
20、 features (Pentium-III/Celeron(Coppermine) Processor family * Machine Check Exception Toshiba Laptop support Dell laptop support /dev/cpu/microcode - Intel IA32 CPU microcode support /dev/cpu/*/msr - Model-specific register support /dev/cpu/*/cpuid - CPU information support (off) High Memory Support
21、 Math emulation MTRR (Memory Type Range Register) support Symmetric multi-processing support Local APIC support on uniprocessors Unsynced TSC support处理器特性。选择一下Processor family,其余基本上都没有选。High Memory Support也可以打开,不清楚有什么用。4.2.4 General setup * Networking support * PCI support (Any) PCI access mode * IS
22、A bus support * PCI device name database EISA support MCA support Support for hot-pluggable devices * System V IPC * BSD Process Accounting * Sysctl support (ELF) Kernel core (/proc/kcore) format Kernel support for a.out binaries Kernel support for ELF binaries Kernel support for MISC binaries * Pow
23、er Management support Kernel support for MISC binaries * Power Management support Advanced Power Management BIOS support * Ignore USER SUSPEND * Enable PM at boot time * Make CPU Idle calls when idle * Enable console blanking using APM * RTC stores time in GMT * Allow interrupts during APM BIOS call
24、s * Use real mode APM BIOS call to power off总体设置。这一部分选项比较重要,包括网络、总线、进程、二进制文件格式、电源管理等。其中APM相关的选项比较搞不清楚,有时候halt p命令不能关闭系统电源跟这里有关系。4.2.5 Plug and Play configuration Plug and Play support ISA Plug and Play support即插即用设置。4.2.6 Block devices Normal floppy disk support XT hard disk support Compaq SMART2 su
25、pport Compaq Smart Array 5xxx support Mylex DAC960/DAC1100 PCI RAID Controller support Loopback device support Network block device support RAM disk support (4096) Default RAM disk size * Initial RAM disk (initrd) support * Per partition statistics in /proc/partitions块设备。软驱也可以不选。这里的关键选项是Loopback dev
26、ice,RAM disk和initrd,一定要选中。Default RAM disk size多少都没有关系。4.2.7 Multi-device support (RAID and LVM) * Multiple devices driver support (RAID and LVM) RAID support Linear (append) mode RAID-0 (striping) mode RAID-1 (mirroring) mode RAID-4/RAID-5 mode Multipath I/O support Logical volume manager (LVM) sup
27、portMD支持。软RAID和LVM的支持在这里选择,如果不使用,也可以不选。4.2.8 Networking options Packet socket * Packet socket: mmapped IO Netlink device emulation * Network packet filtering (replaces ipchains) Network packet filtering debugging * Socket Filtering Unix domain sockets * TCP/IP networking * IP: multicasting * IP: adv
28、anced router IP: policy routing IP: equal cost multipath IP: use TOS value as routing key IP: verbose route monitoring IP: large routing tables * IP: kernel level autoconfiguration * IP: DHCP support * IP: BOOTP support * IP: RARP support IP: tunneling IP: GRE tunnels over IP IP: multicast routing I
29、P: TCP Explicit Congestion Notification support IP: TCP syncookie support (disabled per default) IP: Netfilter Configuration - 802.1Q VLAN Support - The IPX protocol Appletalk protocol support Appletalk devices - DECnet Support 802.1d Ethernet Bridging QoS and/or fair queueing - Network testing -网络选
30、项。这里选项也比较多,如果没有什么特殊要求,又不是十分理解这些选项的意义,基本上可以用缺省设置。注意DHCP选项,如果要用到的话要记得选中这个。IP: Netfilter Configuration(跟iptables有关)等几个子选项都没有选。4.2.9 ATA/IDE/MFM/RLL support ATA/IDE/MFM/RLL support IDE, ATA and ATAPI Block devices - Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support - Please see Documentation/ide.txt f
31、or help/info on IDE drives Use old disk-only driver on primary interface Include IDE/ATA-2 DISK support * Use multi-mode by default * Auto-Geometry Resizing support Include IDE/ATAPI CDROM support Include IDE/ATAPI TAPE support Include IDE/ATAPI FLOPPY support SCSI emulation support IDE Taskfile Acc
32、ess - IDE chipset support/bugfixes CMD640 chipset bugfix/support RZ1000 chipset bugfix/support * Generic PCI IDE chipset support * Sharing PCI IDE interrupts support * Generic PCI bus-master DMA support Boot off-board chipsets first support Force enable legacy 2.0.X HOSTS to use DMA * Use PCI DMA by
33、 default when available Enable DMA only for disks AEC62XX chipset support ALI M15x3 chipset support AMD Viper support CMD64X and CMD680 chipset support CY82C693 chipset support Cyrix CS5530 MediaGX chipset support HPT34X chipset support HPT366/368/370 chipset support * Intel PIIXn chipsets support *
34、 PIIXn Tuning support PROMISE PDC20246|62|65|67|68|69|70 support ServerWorks OSB4/CSB5 chipsets support SiS5513 chipset support SLC90E66 chipset support VIA82CXXX chipset support Other IDE chipset support IGNORE word93 Validation BITSIDE设备支持。要用IDE硬盘,当然要选中。CDROM选项看情况也可以不要。SCSI emulation似乎对使用USB盘有影响。剩
35、下的很多都是跟IDE chipset有关的。最好是用dmesg命令找出目标系统主板芯片组,然后选中对应的芯片组支持,这样相当于安装了IDE芯片组的驱动程序。如果没有指定应该也可以,只是性能可能会受到一些影响。4.2.10 SCSI support SCSI support - SCSI support type (disk, tape, CD-ROM) SCSI disk support (40) Maximum number of SCSI disks that can be loaded as modules SCSI tape support SCSI OnStream SC-x0 ta
36、pe support SCSI CD-ROM support SCSI generic support - Some SCSI devices (e.g. CD jukebox) support multiple LUNs Enable extra checks in new queueing code Probe all LUNs on each SCSI device Verbose SCSI error reporting (kernel size +=12K) SCSI logging facility SCSI low-level drivers -SCSI支持。如果要用到SCSI硬
37、盘等SCSI设备,这里当然要选。目前我们的目标系统其实没有SCSI硬盘,但是为了使用USB盘,也要选中SCSI支持。SCSI low-level drivers子选项中是一些SCSI卡,都不用选。4.2.11 Network device support * Network device support ARCnet devices - Dummy net driver support Bonding driver support EQL (serial line load balancing) support Universal TUN/TAP device driver support E
38、thernet (10 or 100Mbit) - * Ethernet (10 or 100Mbit) * EISA, VLB, PCI and on board controllers EtherExpressPro/100 support (eepro100, original Becker driver RealTek RTL-8139 PCI Fast Ethernet Adapter support Ethernet (1000 Mbit) - FDDI driver support PPP (point-to-point protocol) support SLIP (seria
39、l line) support Wireless LAN (non-hamradio) - Token Ring devices - Fibre Channel driver support Wan interfaces -网络设备支持。主要选择网卡类型,Ethernet (10 or 100Mbit)子选项中列出了内核可以支持的10/100M以太网卡,这里仅列出了我们选中的2种。其他子选项都没有选。4.2.12 Character devices * Virtual terminal * Support for console on virtual terminal Standard/gen
40、eric (8250/16550 and compatible UARTs) serial support * Support for console on serial port Extended dumb serial driver options Non-standard serial port support Unix98 PTY support I2C support - Mice - Joysticks - QIC-02 tape support Watchdog Cards - AMD 768 Random Number Generator support Intel i8x0
41、Random Number Generator support AMD 76x native power management (Experimental) /dev/nvram support Enhanced Real Time Clock Support Double Talk PC internal speech card support Siemens R3964 line discipline Applicom intelligent fieldbus card support Ftape, the floppy tape device driver - /dev/agpgart
42、(AGP Support) Direct Rendering Manager (XFree86 DRI support) ACP Modem (Mwave) support字符设备。这里主要就是选择了最前面4个跟终端和串口有关的选项,以支持虚拟终端(远程登录要用到),支持标准串口,支持串口控制台。4.2.13 File systems * Quota support Kernel automounter support Kernel automounter version 4 support (also supports v3) Reiserfs support Enable reiserfs
43、 debug mode * Stats in /proc/fs/reiserfs Ext3 journalling file system support JBD (ext3) debugging support DOS FAT fs support MSDOS fs support UMSDOS: Unix-like file system on top of standard MSDOS fs VFAT (Windows-95) fs support Compressed ROM file system support * Virtual memory file system suppor
44、t (former shm fs) ISO 9660 CDROM file system support * Microsoft Joliet CDROM extensions Transparent decompression extension JFS filesystem support Minix fs support FreeVxFS file system support (VERITAS VxFS(TM) compatible) NTFS file system support (read only) OS/2 HPFS file system support * /proc f
45、ile system support QNX4 file system support (read only) ROM file system support Second extended fs support System V/Xenix/V7/Coherent file system support UDF file system support (read only) UFS file system support (read only) Network File Systems - Coda file system support (advanced network fs) NFS
46、file system support * Provide NFSv3 client support Root file system on NFS NFS server support * Provide NFSv3 server support SMB file system support (to mount Windows shares etc.) Use a default NLS NCP file system support (to mount NetWare volumes) Partition Types - Native Language Support - Default
47、 NLS Option: iso8859-1 Codepage 437 (United States, Canada) Simplified Chinese charset (CP936, GB2312) Traditional Chinese charset (Big5)文件系统。这部分内容比较多,也很重要。首先是Quota,如果目标系统支持这个功能,这里就要选中。然后是选择要支持的文件系统,常用的有Reiserfs,Ext3,FAT,ISO9660,JFS等等,可以根据情况选择。/proc和ext2一定要选中。还有Network File Systems子选项,可以选择是否支持NFS和SMB。Native Language Support子选项跟所支持的语言有关,这里没有全部列出来,我们选中了英语和简体、繁体中文字符集。4.2.14 Console drivers * VGA text console Video mode selection support控制台驱动。调试的时候可以给目标系统接显示器看一下,实际系统应该可以不选。4.2.15 USB support Support for USB USB verbose debug messages - Miscellaneous
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业建设塔吊租赁合同样本
- 劳务规范制度宣传板
- 汽车承销协议书范本
- 医院建筑施工图设计合同
- 电子产品公司总经理任职合同
- 会展活动招标文件撰写技巧
- 电信运营商出纳劳动合同
- 学校建设模板施工合同
- 游乐园专用停车场出租协议
- 停车场车位租赁合同
- 胎心监护(妇产科)-课件
- 零售业财务管理制度实用文档
- 三年级科学期中考试质量分析
- 【本田轿车灯光系统常见故障分析及排除8200字(论文)】
- 数理统计(第三版)课后习题答案
- 急性颅脑损伤急诊科诊治流程-
- 甲苯磺酸瑞马唑仑(瑞倍宁)的临床应用
- 【市场营销(互联网营销)专业案例分析报告1700字】
- 高等工程数学知到章节答案智慧树2023年南京理工大学
- 博物馆安全管理规章制度
- 北京市居住区公共服务设施配套指标
评论
0/150
提交评论