第一步:裁减内核
打开终端,输入:cd /usr/src/linux2.4,然后输入make xconfig.现在编译内核正式开始了
1.1 “code maturity level options”选项,代表代码的成熟等级,因为这是一个试验的部分,我们不需要,所以关闭它。
1.2 “Loadable module support”可加载模块支持
可加载模块是指内核代码(kernel code)的一些片断,比如驱动程序,当编译内核的时候它们也被单独编译。因此,这些代码不是内核的一部分,但是当需要它的时候,它可以被加载并使用。内核代码编译成可加载模块,可以使内核更小,而且更稳定。所以里面的三项我们全选。
1.3 Processor type and features:处理器类型和特色
在这里,你可以选择你的处理器(Processor)的类型,决定是否选择不同的选项。通常“/dev/cpu”选项更高级,多数用户并不需要选择它。 “High Memory Support”只有当你的计算机有超过1GB内存(不是磁盘空间)时才是必须的。多数计算机的内存从64到512MB(并且拥有8到60GB硬盘空间),因此“High Memory Support”通常并不使用。实际上现在所有的处理器都集成了浮点运算单元(译者注:从586级开始所有CPU集成了浮点运算单 ......
说到裁减Linux,无非是为了减小磁盘占用或者是为了某些特定场合的应用(如嵌入式系统)。以RedHat 7.3为例,其最小安装仍然达到了300M,这不得不让人对一直号称小而全的Linux系统感到疑惑。
作为自己手中课题的一个铺垫,不久前我尝试了对Linux进行裁减,虽然没有达到预期的一张软盘大小,但结果也相当有吸引力。下面我对此一一做说明。
参考文档:
Linux bootdisk-HOWTO:
http://www.linux.org.tw/CLDP/gb/Bootdisk-HOWTO.html
initrd introduce on Linux system:
/usr/src/linux-2.4/Documentation/initrd.txt
裁减Linux一般有两种办法,其一是重新生成kernel和文件系统,其二是在原有的系统上删除不必要的文件缩小“体积”
对从一个完整的RedHat 7.3版本而言,其最小安装也有300M,因此,第二个方法是不太现实的。于是重构文件系统和kernel成为了必然。
裁减目标:构成一最小Linux系统担负实验室网关工作,系统载体为硬盘,运行使用RAMDISK,从而减小意外断电造成的文件系统修整消耗提高系统可靠性。
目标平台:P2-400,8G/64M,8139LAN adapt x 2
首先裁减kernel,既然是最小系统,则kernel里所有 ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
什么是小
Linux
(“
Small
Linux”
)发行版?有哪些小
Linux
?它们有什么用处?
众所周知,由于
Linux
体系的模块化程度极高,因而,容易分离出一些体积小而效率高的“小
Linux”(Windows系统不可如此办理)
。这些小
Linux
往往能够运行在内存中,适宜完成某些特别任务,比如:数据恢复、系统抢救等。当然,它们必须放在
LiveCD
或
LiveUSB
里面启动计算机。在此不用赘述。
今年
6
月
18
日,
Richard
Hillesley
写了一篇综述,题为“
Linux
on a stick”
,读后颇有启发,至今不忘。实际上,
Puppy
Linux
是小
Linux
的代表;再小一点,
Damn
Small Linux
;再小一点,
Tiny
Core Linux
(小
Linux
的冠军);再小一点,就是一些小
Linux
工具版本了,比如:
Parted
Magic
,
SuperGrubDisk
& SystemRescueCD
,
......
这些 ......
Linux下scp的用法
http://blog.csdn.net/Channels_net/archive/2009/09/02/4510286.aspx
scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令。
有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的。
一、将本机文件复制到远程服务器上
#scp /home/administrator/news.txt root@192.168.6.129:/etc/squid
/home/administrator/ 本地文件的绝对路径
news.txt 要复制到服务器上的本地文件
root 通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
192.168.6.129 &nb ......
一、关于lilo
1. 在出现 lilo: 提示时键入 linux single 画面显示 lilo: linux single
2. 回车可直接进入linux命令行
3. 用password命令修改密码
二、关于 grub
1. 在出现grub画面时,用上下键选中你平时启动linux的那一项,然后按e键 2. 再次用上下键选中你平时启动linux的那一项(类似于kernel/boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键
3. 修改你现在见到的命令行,加入single,结果如下: kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/ single
4. 回车返回,然后按b键启动,即可直接进入linux命令行
5.用password命令修改密码
破解Red Hat Enterprise Linux Password
1. 开机按方向键【↓】---【Red Hat Enterprise Linux AS(2.6.9-22.EL)】
2. 单机OS按【e】(相当于windows安全模式)选择
【Kernel /vmlinuz-2.6.9-22.EL ro root=/dev/VolGroup00/LogVol00 rhgb quiet】
3. 按【e】将【/rhgb quiet】 改为【/rhgb 1】【/rhgb single】
4. 按"b"
系统运行到
sh-3.0#passwd root
****** &nbs ......
从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。
Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。
Linux platform driver机制和传统的device driver 机制(通过driver_register函数进行注册)相比,一个十分明显的优势在于platform机制将设备本身的资源注册进内核,由内核统一管理,在驱动程序中使用这些资源时通过platform device提供的标准接口进行申请并使用。这样提高了驱动和资源管理的独立性,并且拥有较好的可移植性和安全性(这些标准接口是安全的)。
Platform机制的本身使用并不复杂,由两部分组成:platform_device和platfrom_driver。
通过Platform机制开发发底层驱动的大致流程为: 定义 platform_device à 注册 platform_device à 定义 platform_driver à注册 platform_driver。
首先要确认的就是设备的资源信息,例如设备的地址,中断号等。
在2.6内核中platform设备用结构体platform_device来描述,该结构体定义在kernel\include\linux\platform_device.h中,
struct platform_device ......