嵌入式系统Linux简明教程.docx_第1页
嵌入式系统Linux简明教程.docx_第2页
嵌入式系统Linux简明教程.docx_第3页
嵌入式系统Linux简明教程.docx_第4页
嵌入式系统Linux简明教程.docx_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux简明教程来源: 作者: 时间:2008-11-29 Tag: 点击: 156 第一章 基本要求 第一节 基础知识 linux的管理是通过一系列文本文件来实现的。Linux常用的文本编辑器有如下几种:vi、pico、joe、emacs。vi是linux系统最通用的文本编辑器,emacs则更加的灵活。如果你使用紧急引导盘来恢复一个文件,vi是唯一可用的编辑器。 vi的基本用法:vi filename 基本命令: i 插入 o 插入新行 :w保存 :q退出 :wq!保存并强制退出 :q!不保存强行退出 第二节 文件系统的层次结构 基本文件系统层次结构: / 根目录,linux的最高级目录 /bin 基本的命令行工具,不应该单独挂接。 /boot 引导目录,包含linux的启动文件,其中有linux内核。默认大小 为100M /dev 所有软硬件设备的驱动,不要将此目录单独挂接在一个分区上 /etc 存放大多数的基本配置文件 /home 存放大多数用户的主目录 /lib 内核程序库以及各种命令行工具。不要将此目录挂接在单独的分区上 /mnt 可移动设备的挂接点,包括软盘,光驱等 /opt 存放应用程序,如wordperfect、openoffice套件等 /proc 当前运行的和内核相关的进程,包括IRQ ports,I/O地址,DMA通道 /root root用户的主目录 /sbin 系统管理命令,不要单独挂接 /tmp 临时文件夹 /usr 对所有用户可用的小程序,包括一些系统管理命令和功能 /var 可变的数据包括日志文件,打印池 文件系统的格式及校验 用来对不同的文件系统进行管理的工具有如下几种:fdisk、mkfs、fsck fdisk:硬盘分区工具,使用该命令,你必须指定对应的设备。 例如管理第一个scsi硬盘:#fdisk /dev/sda fdisk命令: a:指定引导分区 l:列出已知分区的类型 n: 增加新的分区 q:不保存退出 t: 改变分区的文件系统 mkfs:格式化命令,例如格式化硬盘分区/dev/hda1:#mkfs t ext3 /dev/hda1 fsck:磁盘检查命令,类似于windows 2000的chkdsk,使用该命令之前应将所要 检查的分区卸载,例如要检查挂接在/var目录下的hda7分区: #umount /var #卸载/var目录 #fsck t ext3 /dev/hda7 #检查文件 #mount /dev/hda7 /var #重新挂接文件系统 练习:创建新的lvm(逻辑卷)分区 1、 增加一个新的硬盘 2、 创建了一个新的分区,使用fdisk工具将该分区设为lvm文件系统。 3、 备份/home目录 4、 使用vgscan命令,扫描lvm文件系统,为其他的lvm命令创建数据库 5、 使用pvcresate /dev/partition创建卷 6、 使用vgcreate groupname /dev/partition1 /dev/partition2命令创建卷组 7、 使用lvcreate L xyM n volname groupname groupname创建逻辑卷,xy是卷的大小。 8、 最后使用mkfs命令来格式化逻辑卷 9、 将逻辑卷挂接在/home目录下,修改/etc/fstab使得系统自动挂载/home目录 第二节 密码管理 linux的安全性是基于文件的权限管理。默认的权限通过umask变量来进行设定。suid和sgid权限赋予每一个指定的文件。对权限和属主进行更改分别使用命令:chmod chown chgrp umask: 用于设置默认的文件权限,例:umask=123,则默认的权限为777-123=654,但实际上不论umask的最后一位是什么,默认的权限最后一位一定是0,即不具有可执行权限。 suid and sgid: 为了防止赋予每一个用户完全的权限导致的潜在的威胁,可以设置suid和sgid来减小风险。 shadow passwords: 查看/etc/passwd文件的时候,你会发现有这么一列:x.旧版本的linux在这个位置将密码加密。由于/etc/passwd对所有的用户都是可以访问的,所以就会有黑客将这个文件拷贝之后进行破解以次得到该计算机的密码。这个问题导致了shadow passwords suite的出现。 shadow password suite Shadow password suite为密码提供了更进一步的保护,它把加密后的密码存放在shadow文件中(/etc/shadow、/etc/gshadow)。此文件只有root用户可以读取。 shadow password 命令 pconv: 将/etc/passwd转化为/etc/shadow punconv: 将/etc/shadow转化为/etc/passwd grpconv: 将/etc/group转化为/etc/gshadow grpunconv:将/etc/gshadow转化为/etc/group 第五节 系统管理 执行管理任务需要root用户的权限。标准用户文件存储在/etc/skel文件中。守护进程在后台运行并且执行各种不同的服务。cron是一种特殊的守护进程,它可以在指定的场合运行指定的脚本文件。对于午夜执行的备份任务,这项功能非常有用。作为系统管理员可以执行普通用户的任何任务。仅仅当需要的时候才使用root用户是一个很好的主意因为管理员的失误可能会给组织带来不可估量的损失。 su : superuser命令,su c 只对一个特定的命令设定根用户权限。 su root:切换到根用户 sudo: 该命令允许/etc/sudoers种的用户运行管理员的命令 /etc/skel:对个体用户可用的配置文件存在于/etc/skel/目录中 tar czvf home.tar.gz /home:备份/home目录为home.tar.gz tar xzvf home.tar.gz /home:将home.tar.gz 解压缩 gzip hello.jpg: 压缩hello.jpg文件 gunzip hello.jpg.zip 解压缩hello.jpg.zip 第三节 tcp/ip基础知识 tcp/ip协议从unix上发展而来并最终成为因特网上的通信标准。你可以使用ip地址来组织你的网络。有一系列的工具可以帮助你来配置你的网络。 基本工具: ping:用来测试网络连接是否有故障。例:ping ifconfig:最重要的网络配置命令,例:ifconfig eth0 netmask :分配ip地址。 ifconfig eth1 irq 10:分配中断号。 ifconfig eth0 up/dow:启用或停止指定的网卡 netstat:查看和网络相关的信息,例:netstat r 查看路由表 /etc/hosts: ip地址和主机名的对应表 /etc/resolv.conf: 该文件指定了域名服务器 /etc/host.conf: 该文件指定了以何种顺序查询主机名 第四节 基础硬件知识 linux 主要应用于intel架构的计算机,因此我们有必要对intel计算机的加够有一个大致的了解 irq settings:irq是由外围设备发送给处理器要求处理时间的信号。连接到计算机的每一个设备都需要一个irq端口。正常情况下,每一个设备需要一个专用的el架构的计算机只有十六个irq(0-15),现在这些irq端口号常常会显得不够用。通过共享端口号可以支持更多的设备。2000年以后生产的计算机大多都支持该功能。可以共享irq的主要是pci、usb接口的设备。 dma: dma设备之间可以直接通信而不经过cpu,但是dma设备仍然需要irq端口号,以共有八个标准dma通道(0-7),其中dma4属于保留号码,不能用于任何设备。 内存需求: 对于as3.0最少需要256m内存,实际上我的内存少于256运行的也还算正常,只是慢了点。系统所需的最大内存是你同时运行所有程序所需要的内存容量,这难于计算,所以你应该尽量购买大一点的内存,这样可以让你的系统运行的更好。as3.0支持的最大内存是64g。如果你的内存大于16g,你需要安装hugemenm内核。 关于硬盘: 在你的计算机将linux载如系统之前,bios一定要能够认出包含引导文件的主分区。这样硬盘上的linux才能启动,你应该知道下面这些关于硬盘的知识。标准intel架构支持4个ide硬盘最多支持31一个不通的scsi硬盘linux可以安装在前两个硬盘上,否则你就需要一张启动软盘来引导系统了尽管你可以使用usb硬盘或1394硬盘但是你不应该将系统安装在这两种设备上,因为既不能从这两种硬盘引导,也不能使用软盘来引导着两种硬盘上的系统。 第五节 硬件兼容性 现在的pc机的硬件绝大部分都已经可以被linux直接支持,硬件兼容性的问题已经较少见 第二章 磁盘管理 第一节 磁盘分区 磁盘使用之前必须进行格式化成某种格式才能够使用,linux支持多种文件系统。每一个硬盘最多可以划分为16个分区。 磁盘分区:推荐使用fdisk。举例说明: #fdisk /dev/hda hda指第一块ide硬盘,scsi硬盘为sda或sdb等 command(m for help): n增加磁盘分区 command action e extended p primary partition (1-4) p 增加主分区 partition number (1-4):1 first cylinder (1-512, default 1): using default value 1 last cylinder or +size or +sizeM +sizeK(1-512,default512):+200M command (m for help):p 查看当前磁盘信息 device boot start end blocks id system /dev/sdb1 1 192 196592 83 linux command (m for help):w 保存退出 mount:显示当前挂接的目录 df:查看磁盘信息 du: 查看文件夹的空间使用效率 磁盘格式化:mkfs ,例:格式化/dev/sda1: mkfs t ext3 /dev/sda1 第二节 扩展磁盘空间 现有的磁盘的空间可能会随着时间的增长而变得越来越不够用。在这种情况下就需要增加新的磁盘来对原先的硬盘进行扩展。方法如下: 1、 将新的硬盘接好,进入系统后使用fdisk进行分区,然后格式化。 2、 建立一个空目录,例如:mkdir /mnt/newdisk. 3、 挂接新的硬盘到新建的空目录:mount /dev/sda1 /mnt/newdisk 4、 修改/etc/fstab使该分区自动挂载 第三节 逻辑卷管理(lvm) 磁盘上的某一个目录存储的文件增长迅速空间日渐不够使用这时候你可以使用lvm来解决 这个问题。实现方法如下:假设要增加/home目录的空间。 1、 增加新的硬盘,分区、格式化,假定要增加的新的分区为/dev/sdb2,/home 目录的分区为:/dev/sda7 2、 备份/home文件夹的内容 3、 #umount home 卸载/home目录 4、 #vgscan 进行扫描并创建相关的文件 5、 #pvcreate /dev/sda7 /dev/sdb2 创建物理卷 6、 #vgcreate vgtest /dev/sda7 /dev/sdb2 创建卷组 7、 #lvcreate vgtest L 2000M nlvtest 创建逻辑卷 8、 #mkfs t ext3 /dev/vgtest/lvtest 格式化逻辑卷 9、 #mount /dev/vgtest/lvtest /home 挂接/home目录 10、 #vi /etc/fstab,删除和home 相关的行,并增加如下行: /dev/vgtest/lvtest /home ext3 defaults 0 0 11、 #reboot 重新启动计算机使更改生效 第四节 磁盘阵列 磁盘阵列可以有效的提高数据的读写速度和数据的可靠性。具体分类如下: raid 0、raid 1、raid 2、raid 3、raid 4、raid5其中常用的是:raid 0、raid 1、raid 5,简介如下: raid 0:使用两块硬盘,数据分别存放在两块硬盘上,读写速度较快,但不提供数据冗余。 raid 1: 也称为磁盘镜像,在两块硬盘上同时存储完全相同的数据,写入速度一般,但读 取速度增加一倍。任意一块硬盘损坏不会对数据造成损害。 raid 5: 也称为带奇偶校验的磁盘条带化,最少需要3块硬盘,最多支持32块硬盘,可用磁盘数量为n 1块硬盘。读取速度和写入速度都有一定程度的提高。为最常用的阵列形式。 实现方法:假定添加了四块硬盘到计算机,分别为/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde,实现步骤如下: 1分别进行分区格式化 2、更改分区类型:fdisk /dev/sdb1 t fd p w 对每一块硬盘进行如上操作,把分区类型 改为raid 3、创建/etc/raitab #vi /etc/raidtab 添加如下内容: raiddev /dev/md0 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 persistent-superblock 1 chunk-size 4 device /dev/sdb1 raid-disk 0 device dev/sdc1 raid-disk 1 保存退出。 #mkdir /dev/md0 创建阵列md0 #mkfs -t ext3 /dev/md0 对阵列进行格式化 第五节 增加交换分区 #mkswap /dev/sdb1 创建交换分区 #swapon /dev/sdb1 开启新增的交换分区 #cat /proc/swaps 查看当前的交换分区 第六节 增加交换文件 #dd if=/dev/zero of=/swapfile bs=1024 count=8192 #mkswap /swapfile #swapon /swapfile 交换文件最多8个,每个最大容量为16M 第七节 读取windows的文件 #mkdir /mnt/windows 建立一个空目录 #mount t vfat /dev/hda4 /mnt/windows 挂接windows的fat分区 #mount t ntfs /dev/hda5 /mnt/windows 挂接ntfs分区,linux内和默认不支持ntfs分区,要让linux识别ntfs分区必须要重新编译内核加入对ntfs的支持。 第三章 基本配置和管理 第一节 用户管理 1、增加用户:方法1:#useradd username p password 例:增加用户kk,密码kk #useradd kk p kk 方法2:直接修改/etc/passwd文件,然后手工创 建相应的用户主目录 2、修改用户:#usermod -l newusername -c “comment” -d /home/newusername oldusername 例:把test 用户名改为test2,主目录改为:/home/test2 usermod -l test2 /home/test2 test(test2目录要手工建) -p:修改密码 -e:设定账号过期时间 -s: 设定shell 3、改密码:passwd username 4、删除用户:userdel username 5、限定可以执行su 命令的用户:普通的用户如果知道root的密码,就可以通过su命令取得根用户的权限。黑客也有可能通过暴力破解的办法,获得超级权限,因此有必要对可以执行su命令的用户进行限制。具体方法如下: #vi /etc/pam.d/su,修改其中一行: #auth required /lib/security/$ISA/pam_wheel.so use_uid 将行首#去掉,这样就只有wheel组中的用户可以使用su命令了。然后将选定的用户加入到wheel用户组即可。 第二节 基本用户环境 当我们使用userdd命令或redhat-config-users工具来创建一个新的用户的时候,会自动生成用户的主目录和一些默认的文件设定一些配置,即所谓的用户环境。这些默认的配置和文件存储在/etc/skel文件夹中。默认文件有以下这些:.bash_logout、.bash_profile、.bashrc、.kde、.zshrc,不同的版本的linux默认文件可能也会有一些差别 第三节 文件系统管理及自动挂接 1、挂接软盘:mount t vfat /dev/fd0 /mnt/floppy 或者:mount /mnt/floppy 或者:mount /dev/fd0 2、自动挂在软盘:修改/etc/fstab 增加如下一行: /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 3、卸载软盘:umount /mnt/floppy 4、卸载光驱:umount /mnt/cdrom 第四节 RPM的使用简介 所谓rpm是指redhat package manager即红帽软件包管理器,是有redhat公司创建的一种软件发行发式,rpm格式发行的软件易于安装,相比其他的发行方式有很大的优越性。在此简介其基本用法。 1、rpm i penguin-3.4.5.-26.i386rp安装以rpm形式发行的软件 2、rpm U penguin-3.4.5-26.i386.rpm 升级软件包 3、rpm e penguin-6 删除软件包 4/pub/fedora/linux/core/update/i386/kernel-smp-2.6.7-1.494.2.2.i686.rpm 安装远程rpm包 5、rpm import /usr/share/rhn/RPM_GPG_KEY 导入gpg公钥 6、rpm checksig /mnt/cdrom/RedaHat/pxe-0.1-36.i386.rpm导入公钥以后对文件的完整性进行验证 7、rpm verify p /mnt/cdrom/RedaHat/pxe-0.1-36.i386.rpm进行md5校验和的验证 8、rpm -redhatprovides /etc/group查找某个文件对应的rpm包 9、rpm q samba 查询samba是否安装,以及版本 10、rpm qf /etc/passwd 查询/etc/passwd属于哪个软件包 第五节 关于rpm 源码包 通过rpm 源码包创建和定制rpm rpm ivh rpm-build-4.2.3-10.i386.rpm:安装rpmbuild工具 rpm ivh modutils-2.4.21-22.src.rpm:安装源码包 这时在/usr/src/redhat/SPECS文件夹内可以看到modutils.spec,/usr/src/redhat/SOURCES文件夹内可以看到以下的文件:modutils-2.4.21.tar.gz、modutils-2.4.21.tar.gz cd /usr/src/redhat/SPECS/ 进入该文件夹 rpmbuild ba modutils.spec 重新编译建立rpm包,运行结束后, cd /usr/src/redhat/RPMS可以看到如下文件:modutils-2.4.21.i386.rpm modutils-debuginfo-2.4.21-22.i386.rpm 至此rpm包成功建立,使用rpmbuild命令的时候,使用参数-bb也同样可以生成rpm包 第六节 基本网络配置 大多数情况下,在系统的安装过程中,网络的相关设置就已经设好了,但是如果你碰到了问题,你可能就会需要诊断网络的故障,特别是排除网络故障的时候,就更需要了解网络配置的知识。 1、和网络相关的配置文件大多数都存储在/etc/sysconfig文件夹里。/etc/syscofig/network是比较重要的一个,其设置简介如下: networking:可以设置为yes或者no 以此来决定电脑是否联网。 nisdomain: 如果你使用nis网络,你应该在这个文件中指定nis域的名字 hostname:设定计算机的名字 gateway:设定网关的ip地址 gatewaydev:设定网络设备,例如eth0,如果你只有一个网卡那么你应该看不到这个选项。 2、/etc/syscofnig/network-scripts/ 命令及置文件介绍 eth0:和第一块网卡有关的设置,如ip地址、子网掩码、网络地址、 网关等等。最后一位的0代表第一块网卡,如有第二块网卡,就会有 ifconfig-eth1文件,依此类推。 ifconfig-lo:配置lookback 设备的相关信息,内容与ifconfig-eth0类似 network-functions:包含其他的网络脚本所使用的激活网卡、禁止网卡等功能 ifup-* and ifdown-*:用于激活或者禁止相关的协议 ifup eth0:激活eth0 ifdown eth0:禁止eth0 ifconfig:主要的网络配置命令 3、ifconfig 用法介绍 ifconfig:显示当前的网络配置 ifconfig eth0 netmask 设置ip地址和子网掩码。该命 令只在当前生效 ifconfig eth0 down:禁用网卡eth0 ifconfig eth0 up:激活网卡eth0 4、netstat r:显示当前的路由表 基本启动过程 理解系统的启动及关闭过程将对你的系统管理工作带来极大的益处。Redhat使用的启动过程称之为:System V init。一旦内核被装载,它启动一个程序:init,由init来启动其余所有的相关程序。我们将对linux如何将自己引导为一个可用的系统有一个大致的了解。Redhat提供两个工具来管理随系统启动服务:redhat-config-services(图形化工具)、chkconfig(命令行工具)。首先我们要了解redhat runlevels。 1、runlevel 0 :关闭系统 2、runlevel 1: 单用户模式,用于对系统进行维护 3、runlevel 2: 多用户模式,但不能使用网络 4、runlevel 3: 多用户模式,具有网络功能 5、runlevel 4: 未使用 6、runlevel 5: 带图形界面的多用户模式 7、runlevel 6: 重新启动计算机 系统启动过程:计算机通电以后由bios会检查你的系统寻找引导装载程序(grub、lilo)。然后再由引导装载程序寻找linux内核。这样就开始安装你配置好的服务。内核总是通过调用init来启动。Init进程立刻运行/etc/rc.d/rc.sysinit,由其执行一系列的任务,例如网络配置、键盘映射、分区挂接等等。Init进程通过查看/etc/inittab来决定将系统引导至哪个运行级别。/etc/inittab中有类似这样的一行:id:5:initdefault:其中数字5代表系统的默认级别为runlevel 5,通过简单的更改这里的数字即可改变系统启动时自动运行的级别。 /etc/rc.d/目录中包含如下子目录: init.d、rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d、rc6.d 除init.d之外的每一个目录都对应一个运行级别,其中包含该运行级别启动和关闭的服务,标有k的服务是该运行级别默认关闭的服务,标有s的服务为该运行级别默认启动的服务。 /etc/rc.d/init.d目录包含所有服务的启动脚本,手工启动一个服务即可在该目录下执行,例:/etc/rc.d/init.d/smb stop 第五节 虚拟控制台 linux作为多用户操作系统,你可以使用相同的身份同时等录到不同的终端。使用ALT+功能键在不同的终端窗口之间进行切换。例:切换到终端2:ALT+F2。在图形界面下切换使用:ctrl+alt+功能键 虚拟控制台在/etc/inittab文件中配置,可以看到有如下行: 1:2345:respawn:/sbin/mingetty tty12:2345:respawn:/sbin/mingetty tty23:2345:respawn:/sbin/mingetty tty34:2345:respawn:/sbin/mingetty tty45:2345:respawn:/sbin/mingetty tty56:2345:respawn:/sbin/mingetty tty6 根据官方的说法,最多只有6个终端,实际试验的结果是在这里修改配置文件添加终端数量以后,重新启动。终端的数量增加了,但是可用的仍然只有6个 第六节 其他配置工具 1、 clock:显示当前的系统时间设置 2、 redhat-config-date:图形化的时间配置工具 3、 redhat-config-keyboard:图形化的键盘配置工具 4、 redhat-config-mouse:图形化的鼠标配置工具 5、 redhat-config-services:图形化的服务配置工具,决定哪些服务岁系统启动 6、 redhat-config-network:图形化的网络配置工具 7、 chkconfig:确定某服务默认在哪个级别运行 第四章 内核、用户管理和任务自动化 第一节 shell配置文件 所有的shell配置文件都保存在/etc目录中,包括:bashrc、profile以及/etc/profile 目录中的脚本文件。简介如下: /etc/bashrc:设定别名和一些其它的功能,你可以使用文本编辑器来查看该文件,该文件设定了umask的数值该参数决定了新创建的文件的默认权限,另外还设定了命令行下的提示符。 /etc/profile:用于设定系统环境,设定PATH、USER、 LOGINNAME、MAIL、HOSTNAME、HISTSIZE以及INPUTRC变量。以及最后运行/etc/profile.d目录中的脚本文件。 /etc/profile.d:一个包含若干用于bash shell脚本文件的目录,这些脚本文件由/etc/profile启动运行。 第二节 实现磁盘配额 1、 查看当前的内核是否支持磁盘配额: #grep CONFIG_QUOTA /boot/config-2.4.21-4.EL 如果输出的内容如下则内核支持磁盘配额: CONFIG_QUOTA=y 如果你看到的输出如下,则你需要自行编译内核: CONFIG_QUOTA=n 2、 查看相关软件包是否已安装: rpm q quota 3、 举例说明磁盘配额的实现方法: #useradd linux 增加用户linux #passwd linux 修改用户linux的密码 #mkdir /www/linux 建立新文件夹 #chown linux.linux /www/linux 更改文件夹的属主 #vi /etc/fstab 增加如下行: /dev/hda7 /www ext3 defaults,usrquota 0 0 #mkfs t ext3 /dev/sdb1 格式化分区 #quotacheck -cu /www 生成aquota.user 文件 #quotacheck -vu /www 生成相关的信息 #repquota au 显示所有的磁盘配额信息 #edquota -u linux 对用户linux设置配额 #edquota -t 设置宽限期 #edquotaon /www 开启/www目录上的磁盘配额 内核基础知识 内核是整个操作系统的核心部分。它管理硬件之间的通讯,决定哪个进程运 行,提供每一个进程运行所需的相对隔离的虚拟的地址空间。内核由引导程 序(grub、lilo)装入系统。内核负责将驱动程序,模块装入系统。自行编译 内核以后可以带来以下方面的好处: 极大的提高核心服务的运行速度 提供用户服指定的服务的内核直接支持 对适当的服务以模块化的形式动态支持 通过减少不必要的服务可以降低内核的内存需求 配置支持高端硬件,例如大于4G的内存,硬盘阵列,对称式多cpu 编译内核的建议: 只有在需要的时候才编译内核,直接编译进内核的东西越少系统运行越快。通过移除你不需要的设备减小内核, 可以在不改变设备的情况下提高系统运行的速度,其它的硬件留下更多的可用资源。将各种硬件的设备的驱动作为模块动态加载和卸载是一个较好的办法。模块是内核的扩展,虽然没有直接编译进内核,但是可以随需要加载和卸载。 单内核与模块化内核 单内核:所有的设备模块直接编译进内核 模块化内核:许多设备已模块的形式单独加载。 单内核与模块化内核比较:单内核与设备的通讯速度快,模块化内核与硬件通信要通过模块列表,不行的是单内核过于庞大。大内核减少了可用的内存。有些系统甚至不能启动这样大的内核。Linux过去使用单内核,linux一度在装载模块化内核的时候由于某些硬件而产生问题。使用单内核则系统安装完成之后所有的驱动程序就已经装好了。模块化内核有极大的灵活性。你可以将几乎所有的驱动程序作为模块编译,这样在必要的时候这些模块就会被载入系统。模块化使得内核十分的小,这就减少了启动所需要的时间提高了系统整体性能。如果linux装载模块的时候产生问题,你可以使用modprobe或者insmod命令来手动装载模块。 升级内核:你应该总是保留旧内核,以免由于新内核的错误而导致系统无法引导。对grub或者lilo而言新的内核就是一个新的操作系统。如果使用rpm包安装了新的内核,引导程序也自动被升级。如果你犯了一个比较大的错误,导致无法引导,你可以在重新启动后选择使用旧的内核。保存内核配置文件这样你就可以轻松的将其拷贝到新的内核继续使用。 /boot目录: linux的内核存储在这个目录里。新的内核也必须存放于这个目录,才能够使用。该目录的莫人大小时100M,足够存储当前的内核以及升级内核的时候的附加内核。 /proc 目录:这个目录基于一个虚拟的文件系统。换句话说她不包含任何存储在硬盘上的文件,但它是查看计算机的一个窗口。如果你要查看当前的内存信息使用该命令:cat /proc/meminfo 理解内核模块: 当你编译内核的时候,你可以将所有的需要的驱动程序编译成进内核,成为一个单内核。但是这样的内核太大了,并且需要很长的时间加载。大多数的系统管理员使用内核模块。内核模块并不直接编译进内核,而是根据需要动态的进行加载和卸载。如果和内核模块相关的硬件有了问题,你可以使用kudzu。这是一个自动检测和配置工具,一般在系统启动的时候自动运行,当然了你也可以手工运行这个工具来排除故障。kmod是模块加载控制器,负责内核模块的加载和卸载。指定特别的选祥和参数可以修改/etc/modules.conf文件。大多数的硬件都可以自动检测到,对于未识别到的硬件可以执行:depmod a 手工加载模块使用modprobe例:#modprobe pcnet32 查看当前加载的模块:#cat /proc/modules或者#lsmod 卸载模块:rmmod r pcnet32 第四节 升级内核 1、关于内核版本 内核版本号的形式一般都是这样的:x.x.x例如:2.4.21 第一个数字表示主版本号,第二个数字表示辅助版本号,第三个号码代表patch的号码。主版本号的变更往往意味着很大的改变,可能会有很多程序不能够在新的内核上使用。辅助版本号有两个含义:第一主版本内核的第x个版本,第二x若为奇数则表示该版本为正在开发中的版本,不适合生产使用,若为偶数则表示该版本为稳定的可靠版本,可以用于生产。最后一个号码代表patch即补丁的版本号。 2、升级内核的方式 内核往往会包含着新的技术,意味着系统可以支持更多的设备,也意味着更好的稳定性和更快的性能。所以系统管理员可能会需要对内核进行升级。升级内核主要有两种方式: 1、 rpm包升级方式 从网上下载已经编译好的rpm内核软件 包,然后进行安装,例:rpm ivh kernel-2.4.21-8.i386.rpm 2、原码包编译:下载源代码进行编译安装 3、内核补丁 为了使你的系统运行的更加的稳定、高效,你可能经常要给你的系统打补丁,例如从2.4.20到2.4.21。内核补丁可以很容易的从网上下载到。安装也很容易,例: #zcat pathch-2.4.22.gz | patch p0 3、重新编译内核 内核资源 linux的优点之一是你可以格局你的需要对内核自由进行裁减编译,使之符合自己的需要。要编译内核就要先了解linux的源代码。一旦安装了源码包,你就会在/usr/src目录中看到如下子目录:debug、redhat、linux-2.4、linux-2.4.21-4.EL。linux-2.4是linux-2.4.21-4.EL的符号链接文件。安装内核源码包使用如下命令: #mount /mnt/cdrom #rpm Uvh /mnt/cdrom/RedHat/RPMS/kernel-source-* 或者你可以下载linux tar file,即以tar.gz的形式发行的源码包。 内核编译:将下载好的内核解压缩到:/usr/src/目录下 #cd /usr/src/ 进入该目录 #ln linux-2.4.26 linux-2.4 创建该目录的符号链接文件 #cd linux-2.4 进入内核目录 修改Makefile文件,找到包含EXTAVERSION的行将其改为EXTRAVERSION=qun #make mrproper 确保源文件的一致性 #make xconfig 选择需要编译进内核的功能 #make dep 解决依赖性 #make bzImage 生成内核 #make modules 编译内核模块 #cp usr/src/linux-2.4/arch/i386/boot/bzImage /boot/vmlinuz-2.4.26qun #make modules_install 安装内核模块 #mkinitrd /boot/initrd-2.4.26qun.img 2.4.26qun 生成启动镜像文件 # cp /usr/src/linux-2.4/System.map /boot/System.map-2.4.26qun #vi /etc/grub.conf # 在最后部分添加如下行: title Red Hat Linux (2.4.26qun) kernel /vmlinuz-2.4.26qun ro root=LABEL=/ initrd /initrd-2.4.26qun.img :wq! #reboot 重新启动后就可以看到刚刚安装好的内核了。 #对于2.6的内核而言,步骤就简单了很多只需要这几个命令: make xconfig、make、make install 第五节 任务自动化 linux下实现任务自动化的工具主要有两个:cron、at,cron的守护进程是crond,在默认的情况下,它每分钟都检查一系列的目录,如果有设定的程序就会在指定的时间内将其启动。用户的cron设置位于:/var/spool/cron目录,计算机的调度任务位于:/etc/crontab和/etc/cron.d目录。只用当需要运行程序的时候,cron守护进程才会启动。 cron的配置方法如下: crontab u username -e,例: crontab u root e 对用户root进行设置 设置的具体格式如下: minute, hour, day of month, month, day of week, command * * * * * command 例:crontab -u root -e 30 23 * * * * reboot 设定每晚23:30重新启动计算机 查看cron设置:crontab -l例:crontab -l -u zhao查看用户zhao的设置 crontab 参数介绍: -e:编辑设置 -u:指定用户 -r:删除设置 -u:列出当前设置 使用at实现任务自动化:类似于cron,at也可以实现任务自动在指定的时间执行,不同之处在于cron任务是多次循环反复执行的,而at任务是一次性的,执行一次之后就不再生效了。设定at任务的方法如下: #at now + 1 hour at reboot atctrl+D 设定一个小时之后重新引导系统 查看at任务:atq 例:#atq 1 2004-11-01 00:53 a root 2 2004-11-01 01:53 a root 除任务:atrm 例:删除第一个任务:#atrm 1 增强cron、at安全性: 可以通过这两个文件来对用户进行权限的控制:/etc/cron.allow、/etc/cron.deny。如果 这两个文件不存在,那么所有的用户都可以使用cront、at。如果有/etc/cron.allow文件, 则该文件不包含的用户将不能使用cron,如果没有/etc/cron.allow文件,则 /etc/cron.deny文件所包含的用户不能访问cron. 第五章 linux网络服务 第一节 samba网络共享服务 共享文件是网络的一项重要服务,在linux中实现类似的功能主要有两种办法:samba文件共享,NFS文件共享,本节主要讲解samba的网络共享服务。使用samba服务可以实现linux和unix以及windows之间的网络文件共享。并且使用samba服务,linux还可以作为windows的服务器,主要有如下几种: win9x的工作组成员、 nt/2000/xp/2003的域成员、 成员服务器甚至是域主服务器。 共享用户的主目录。 作为wins服务器 作为主浏览器 提供集中式的身份验证 配置本地目录作为共享文件系统 支持microsoft访问控制列表 1、 samba有两个守护进程:smbd、nmbd位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论