




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、附录1:防火墙巡检表编号生产厂商外部IP地址内部IP地址网关IP责任人物理位置所在网络检查日期检查人编号检查内容结果检查记录自身安全性1防火墙是否具有专门的配制管理终端。是 否2是否及时修改防火墙超级管理员的默认口令。是 否3是否开放了不必要的端口和服务是 否4是否划分了不同级别的用户,赋予其不同的权限,至少应包括系统管理员、审计管理员等用户角色。是 否5管理员口令是否具有严格的保管措施。是 否运行维护6是否具备两个以上的用户身份,对系统策略和日志进行维护和管理。是 否7防火墙在网络拓扑图中是否有明显的标示。是 否8防火墙安全区域的划分是否明确合理。是 否9防火墙是否明确以何种方式接入网络,包
2、括透明模式、混合模式和路由模式。是 否10防火墙是否具有详细的访问控制列表。是 否12防火墙是否标注了源地址和目的地址。是 否13防火墙是否标注了允许和拒绝的动作。是 否14防火墙访问控制策略中是否出现重复或冲突。是 否15防火墙接口IP是否有明确的标注。是 否16是否对不安全的远程登录进行控制。是 否17防火墙是否标注NAT地址转换和MAP等。是 否18是否将防火墙配置及时保存并导出。是 否19是否每天有专人查看和分析防火墙日志,并对高危事件进行记录。是 否20是否具有完备的日志导出和报表功能,原则上应每周生成统计报告。是 否21是否有专门的防火墙监测报告。是 否22防火墙是否具备双机热备功
3、能。是 否23管理人员是否为双备份。是 否24是否具有防火墙应急恢复方案。是 否25是否对防火墙的CPU、内存和硬盘使用情况进行监测。是 否运行状况26是否具有防火墙应用情况报告。是 否27是否具有防火墙安全管理状况报告。是 否28是否具有防火墙系统运行监测报告。是 否29售后服务和技术支持手段是否完备。是 否附录2:IDS巡检表编号生产厂商物理位置所在网络检查日期检查人责任人编号检查内容结果检查记录网络部署1拓扑图中是否有明确的表示。是 否2是否以旁路方式接入网络。是 否3是否与交换机的镜向端口相连接。是 否探测引擎的安全性4是否有专门的管理端对其配置管理。是 否5管理员口令是否由专人管理。
4、是 否6IDS网络引擎与管理端的通信是否安全。是 否7通信是否采用的加密传输方式。是 否8网络引擎自身是否安全,有没有开放多余端口。是 否日志管理9是否对攻击事件生成记录。是 否10是否对攻击事件的危险等级进行定义。是 否11是否对攻击事件进行归类。是 否12是否能够对日志实时导出。是 否13是否具有日志备份与恢复机制。是 否14是否能够对日志进行审计查询。是 否15是否能够对日志进行智能分析。是 否16是否具有日志定期分析制度。是 否17是否对安全事件进行排序,即TOP1-TOP10。是 否18是否对安全时间发生的频率进行统计。是 否运行维护19IDS是否具备双机热备功能。是 否20是否具有
5、IDS应急恢复方案。是 否21IDS是否与防火墙建立联动机制。是 否22是否具有IDS应用情况报告。是 否23是否具有IDS安全管理状况报告。是 否24售后服务和技术支持手段是否完备。是 否附录3:防病毒系统巡检表编号生产厂商物理位置所在网络检查日期检查人单机病毒库服务器责任人检查细目编号检查项目检查内容结果检查记录1符合性要求是否通过了国家相关的认证2部署合理性网络中是否部署了防病毒系统3是否部署了网络版的防病毒软件4是否部署了病毒库服务器5病毒库服务器的命名是否一致6防病毒软件的品牌和版本是否统一7病毒库升级是否制定了多级病毒库升级策略8是否禁止客户端主动连接病毒库服务器9是否定制了病毒库
6、代码更新策略10病毒查杀是否定制了病毒查杀策略11是否定期对网络中的主机进行病毒扫描12是否定期检测防病毒系统的查杀能力13日志记录防病毒系统对病毒的入侵是否有完整的记录14告警机制是否对病毒入侵完备的告警机制15是否能够及时隔离被感染主机或区域16应急恢复是否具有应急恢复手段附录4:审计系统巡检表编号物理位置所在网络外部IP地址内部IP地址网关IP域名服务器IP操作系统版本号CPU内存检查日期检查人责任人检查细目编号检查项目检查内容结果检查记录1审计数据产生审计数据是否包括事件发生的时间、类型、主客体身份和事件结果等2是否可以扩充和修改可审计的事件3可审计的事件是否可以追溯到用户的身份和级别
7、4审计记录的查阅是否只有授权用户才能查阅审计记录5是否能够对审计的数据进行筛选6审计事件存储是否有审计数据备份与恢复机制7是否有防止审计数据丢失的手段8审计系统自防护审计系统发出告警后是否可以自动报告安全事件9系统发生异常后审计是否可以恢复审计到系统终止前的状态附录5:服务器巡检表服务器检查列表(AIX)编号生产厂商物理位置所在网络外部IP地址内部IP地址网关IP域名服务器IP操作系统版本号CPU内存检查日期检查人责任人编号检查内容结果检查记录安装和配置1系统已经安装了可信计算库是 否2系统的版本大于等于4.3是 否3系统已经安装了最新的安全补丁是 否登录控制4设置了登录失败,锁定帐户的次数是
8、 否5设置了无效登录的终端锁定时间是 否6设置了终端被禁用后,重新启用的时间是 否7重新设置了登录欢迎信息是 否8系统禁用X-Window系统是 否用户策略9系统禁止root用户远程登录是 否10root的$PATH环境变量中没有当前目录.是 否11系统中已经删除了不必要的系统用户是 否12系统中已经删除了不必要的系统用户组是 否13强制密码不能是字典中的单词是 否14密码可以重复使用的时间大于等于26周是 否15密码重复使用的次数小于等于20次是 否16密码的生命期最大为周是 否17密码过期锁定时间小于等于周是 否18密码中可重复字符的最大数目小于等于是 否19密码可以被立即修改是 否20密
9、码至少应该包含个字母是 否21密码中至少包括个唯一字符是 否22密码的最小长度是6位是 否23root用户的密码最小长度是位是 否24密码包含的非字母字符数目至少是2是 否服务安全25bootps已被禁用是 否26系统的小服务已被禁用是 否27cmsd服务已被禁用是 否28comsat服务已被禁用是 否29dtspc服务已被禁用是 否30exec服务已被禁用是 否31finger服务已被禁用是 否32ftp服务已被禁用是 否33imap2服务已被禁用是 否34klogin服务已被禁用是 否35kshell服务已被禁用是 否36login服务已被禁用是 否37netstat服务已被禁用是 否38
10、ntalk和talk服务已被禁用是 否39pcnfsd服务已被禁用是 否40pop3服务已被禁用是 否41rexd服务已被禁用是 否42quotad服务已被禁用是 否43rstatd服务已被禁用是 否44rusersd服务已被禁用是 否45rwalld服务已被禁用是 否46shell服务已被禁用是 否47spayd服务已被禁用是 否48systat服务已被禁用是 否49tftp服务已被禁用是 否50time服务已被禁用是 否51ttdbserver服务已被禁用是 否52uucp服务已被禁用是 否53CDE桌面环境已被禁用是 否54lpd服务已被禁用是 否55nfs服务已被禁用是 否56port
11、map服务已被禁用是 否57sendmail服务已被禁用是 否其他安全设置58系统中已经安装了OpenSSH代替telnet是 否服务器检查列表(Windows)编号生产厂商物理位置所在网络外部IP地址内部IP地址网关IP域名服务器IP操作系统版本号CPU内存检查日期检查人责任人编号检查内容结果检查记录补丁安装情况1操作系统是否已经安装相关的补丁,Windows 2000为SP4,Windows XP 为SP2。是 否2操作系统是否已经安装了全部的HOTFIX。是 否3应用程序是否及时进行补丁的更新,包括Office和IE等。是 否账户策略4密码是否符合复杂性要求。是 否5密码长度是否符合要求
12、。是 否6是否设置了密码最长使用期限。是 否7是否设置了帐户锁定阀值。是 否8是否设定了帐户锁定时间。是 否9是否设置了复位帐户锁定计数器。是 否10是否将审核策略更改为成功和失败。是 否11是否将审核登录事件更改为成功和失败。是 否12是否将审核对象访问设置为失败。是 否安全设置13当登录时间用完时自动注销用户(启用)。是 否14在挂起会话之前所需的空闲时间(小于等于30分钟)。是 否15发送未加密的密码到第三方SMB服务器:(禁用)。是 否16允许对所有驱动器和文件夹进行软盘复制和访问(禁用)。是 否17故障恢复控制台:允许自动系统管理级登录(禁用)。是 否18清除虚拟内存页面文件(启用)
13、。是 否19允许系统在未登录前关机(禁用)。是 否20交互式登录:不显示上次的用户名(启用)。是 否注册表安全21抑制Dr. Watson Crash Dump: HKLMSoftwareMicrosoftDrWatson CreateCrashDump (REG_DWORD) 0是 否22禁止在任何驱动器上自动运行任何程序: HKLMSoftware MicrosoftWindowsCurrentVersionPoliciesExplorerNoDriveTypeAutoRun (REG_DWORD) 255是 否23用星号掩藏任何的口令输入; HKLMSoftwareMicrosoft W
14、indowsCurrentVersionPoliciesNetworkHideSharePwds (REG_DWORD) 1是 否24禁止自动执行系统调试器: HKLMSoftware MicrosoftWindows NTCurrentVersionAeDebugAuto (REG_DWORD) 0是 否25禁止自动登录: HKLMSoftwareMicrosoftWindows NT CurrentVersionWinlogonAutoAdminLogon (REG_DWORD) 0是 否26禁止在蓝屏后自动启动机器: HKLMSystem CurrentControlSetControl
15、CrashControlAutoReboot (REG_DWORD) 0是 否27禁止CD自动运行: HKLMSystemCurrentControlSetServicesCDrom Autorun (REG_DWORD) 0是 否28删除服务器上的管理员共享: HKLMSystemCurrentControlSet ServicesLanmanServerParametersAutoShareServer (REG_DWORD) 0是 否29源路由欺骗保护: HKLMSystemCurrentControlSet ServicesTcpipParametersDisableIPSourceR
16、outing (REG_DWORD) 2是 否30帮助防止碎片包攻击: HKLMSystemCurrentControlSet ServicesTcpipParametersEnablePMTUDiscovery (REG_DWORD) 1是 否31管理keep-alive时间: HKLMSystemCurrentControlSetServicesTcpip ParametersKeepAliveTime (REG_DWORD) 300000是 否32防止SYN Flood攻击: HKLMSystemCurrentControlSet ServicesTcpipParametersSynAt
17、tackProtect (REG_DWORD) 2是 否33SYN攻击保护-管理TCP半开sockets的最大数目: HKLMSystemCurrentControlSetServicesTcpipParameters TcpMaxHalfOpen (REG_DWORD) 100 或 500是 否关闭的服务34Alerter 禁止是 否35Clipbook 禁止是 否36Computer Browser 禁止是 否37Internet Connection Sharing 禁止是 否38Messenger 禁止39Remote Registry Service 禁止是 否40Routing a
18、nd Remote Access 禁止是 否41Simple Mail Trasfer Protocol(SMTP) 禁止是 否42Simple Network Management Protocol(SNMP) Service 禁止是 否43Simple Network Management Protocol(SNMP) Trap 禁止是 否44Telnet 禁止是 否45World Wide Web Publishing Service 禁止是 否其他安全设置46所有的磁盘卷使用NTFS文件系统。是 否47已经安装第三方个人版防火墙。是 否48已经安装防病毒软件。是 否49防病毒软件的特征
19、码和检查引擎已经更新到最新。是 否50防病毒软件已设置自动更新。是 否附录6:数据库巡检表编号数据库类型物理位置所在网络外部IP地址内部IP地址网关IP域名服务器IP操作系统版本号CPU内存检查日期检查人责任人编号检查内容结果检查记录数据库版本升级1是否存在版本过旧,厂商停止技术支持和发布升级补丁程序。是 否安全设置2Oracle是否以root权限运行。是 否3Oracle运行帐户unask设置不合理。是 否4数据库帐户密码以明文方式存储。是 否5Oracle Listener和Oracle Intelligent进程以root帐户运行。是 否6是否设置连接超时参数,否则连接的客户端会一直等待
20、验证。是 否7是否设置连接过期参数。是 否8是否对数据库远程管理情况下启用Intelligent Agent。是 否安全使用外部存储过程和PL/SQL包。9是否安全使用外部存储过程,外部存储过程使用不当会造成诸多安全问题。是 否10是否限制访问PL/SQL包,UTL_FILE, UTL_SMTP, UTL_TCP, UTL_HTTP, and DBMS_RANDOM PL/SQL包可能给数据库和主机系统带来安全隐患,对这些包的访问应当严格限制。是 否帐户和密码安全设置11Oracle DBA组是否存在未授权的帐户。是 否12DBA角色中是否删除缺省帐户。是 否13数据库密码文件安全属性设置是否
21、合理。是 否14数据库中是否存在未授权的帐户。是 否15是否设置密码过期时间。是 否16是否启用密码复杂性验证功能。是 否17是否启用登录失败锁定帐户功能。 是 否18应用程序帐户是否被授予PUBLIC角色。是 否19是否删除数据库服务器上的演示帐户。是 否20非系统对象是否存在SYSTEM表空间,会影响个数据库服务器。安全配置审计功能21是否启用审计功能,Oracle能够把审计日志记录到数据库中或者OS系统文件中。是 否22Oracle Net配置和日志文件安全属性设置是否合理是 否23审计表的所有者是否合理,应当设置审计表不能被普通用户访问。保护关键文件24Oracle控制文件是否存放在其
22、他的硬盘或者作RAID备份。是 否25是否具有保护Init.ora/spfile.ora文件的措施,该文件被破坏会造成数据库不能正常启动。是 否附录7:网络设备检查列表编号生产厂商/型号物理位置所在网络外部IP地址内部IP地址操作系统版本号检查日期检查人责任人检查细目编号检查项目检查内容结果检查记录1系统安全是否定期更新操作系统的版本2口令管理是否修改网络设备的默认口令3是否设置口令强度和有效期4是否使用enable secret5是否使用service password-encryption6服务安全是否关闭IP直接广播7是否关闭HTTP设置8是否封锁ICMP PING请求9是否控制Teln
23、et访问10是否禁止CDP11是否关闭IP源路由12是否禁用了不必要的服务13是否限制远程终端会话14策略安全是否建立准入、准出地址过滤策略15是否制定数据包过滤策略16是否配置了强加密和密码加密17是否应用Control-plane police预防DDOS攻击18是否有完整的系统日志记录功能,包括AAA、SNMP Trap Syslog、本地日志缓存19是否实施了配置管理,必要时可将路由配置恢复到原先状态20OSPF协议使用LOOPBACK是否做ROUTE-ID的标识21接入层和汇聚层之间是否采用静态路由22是否存在黑洞路由即孤立的路由附录资料:不需要的可以自行删除 busybox详解制作
24、根文件系统详解制作根文件系统 一、FHS(Filesystem Hierarchy Standard)标准介绍当我们在linux下输入ls / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。该标准规定了根目录下各个子目录的名称及其存放的内容:目录名存放的内容/bin必备的用户命令,例如ls、cp等/sbin必备的系统管理员命令,例如ifconfig、reboot等/dev设备文件,例如mtdblock0、tty1等/etc系统配置文件,包括启动文件,例如inittab等/lib必要的链接库,例如C链接库、内核
25、模块/home普通用户主目录/rootroot用户主目录/usr/bin非必备的用户程序,例如find、du等/usr/sbin非必备的管理员程序,例如chroot、inetd等/usr/lib库文件/var守护程序和工具程序所存放的可变,例如日志文件/proc用来提供内核与进程信息的虚拟文件系统,由内核自动生成目录下的内容/sys用来提供内核与设备信息的虚拟文件系统,由内核自动生成目录下的内容/mnt文件系统挂接点,用于临时安装文件系统/tmp临时性的文件,重启后将自动清除制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括:编译安装busybox,生成/bin、/s
26、bin、/usr/bin、/usr/sbin目录 利用交叉编译工具链,构建/lib目录 手工构建/etc目录 手工构建最简化的/dev目录 创建其它空目录 配置系统自动生成/proc目录 利用udev构建完整的/dev目录 制作根文件系统的jffs2映像文件 下面就来详细介绍这个过程。二、编译安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录这些目录下存储的主要是常用命令的二进制文件。如果要自己编写这几百个常用命令的源程序,my god, 这简直是一个噩梦!好在我们有嵌入式Linux系统的瑞士军刀busybox,事情就简单很多。1、从 HYPERLINK /
27、 / 下载busybox-1.7.0.tar.bz22、tar xjvf busybox-1.7.0.tar.bz2解包3、修改Makefile文件175 ARCH ?= arm176 CROSS_COMPILE ?= arm-linux- 4、make menuconfig配置busyboxbusybox配置主要分两部分。第一部分是Busybox Settings,主要编译和安装busybox的一些选项。这里主要需要配置:1)、Build Options - Build BusyBox as a static binary (no shared libs),表示编译busybox时,是否静态
28、链接C库。我们选择动态链接C库。2)、Installation Options - Applets links (as soft-links) - (X) as soft-links,表示安装busybox时,将各个命令安装为指向busybox的软链接还是硬链接。我们选择软链接。3)、Installation Options - (/work/nfs_root/fs_mini3) BusyBox installation prefix,表示busybox的安装位置。我们选择/work/nfs_root/fs_mini34)Busybox Library Tuning。保留Command lin
29、e editing以支持命令行编辑;保留History size以支持记忆历史命令;选中Tab completion和Username completion以支持命令自动补全 第二部分是Applets,他将busybox的支持的几百个命令分门别类。我们只要在各个门类下选择想要的命令即可。这里我们基本保持默认设置。1)选中Networking Utilities - httpd下的Enable -u option,以启用http服务器的功能allows the server to run as a specific user5、编译busyboxmake6、安装busyboxmake insta
30、ll安装完成后,可以看到在/work/nfs_root/fs_mini3目录下生成了binsbinusr/binusr/sbin目录,其下包含了我们常用的命令,这些命令都是指向bin/busybox的软链接,而busybox本身的大小不到800K:dennisdennis-desktop:/work/nfs_root/fs_mini3$ lsbin linuxrc sbin usrdennisdennis-desktop:/work/nfs_root/fs_mini3$ ls -l bintotal 740lrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:5
31、7 addgroup - busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 adduser - busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 ash - busybox-rwxr-xr-x 1 dennis dennis 749632 2010-04-03 23:57 busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 cat busybox 而普通PC机上的ls命令就有差不多80K的大小: dennisdennis-desk
32、top:/work/nfs_root/fs_mini3$ ls -l /bin/ls-rwxr-xr-x 1 root root 78004 2007-09-29 20:51 /bin/ls busybox以它娇小的身躯容纳了数以百计的命令代码,实在是让人佩服不已,其不愧嵌入式系统瑞士军刀之美誉。据说,busybox的作者身患绝症,这更让人钦佩GNU开源软件的作者们。 三、利用交叉编译工具链,构建/lib目录 光有应用程序(命令)是不够的,因为应用程序本身需要使用C库的库函数,因此还必需制作for ARM的C库,并将其放置于/lib目录。my god,要自己写C库的源代码吗?不用!还记得交叉编
33、译工具链的3个组成部分吗?交叉编译器、for ARM的C库和二进制工具。哈哈,for ARM的C库是现成的,我们只需要拷贝过来就可以了。遗憾的是:整个C库目录下的文件总大小有26M。而我们根文件系统所在分区不过区区16M而已,根本放不下。怎么办呢? dennisdennis-desktop:/work/nfs_root/fs_mini3$ du -s -si /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib26M /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib 需要C库目录下所有的文件吗?no,abs
34、olutely no! 让我们来分析一下glibc库目录下内容的组成。该目录下的子目录和文件共分8类: 目标文件,如crtn.o,用于gcc链接可执行文件 libtool库文件(.la),在链接库文件时这些文件会被用到,比如他们列出了当前库文件所依赖的其它库文件,程序运行时无需这些文件 gconv目录,里面是各种链接脚本,在编译应用程序时,他们用于指定程序的运行地址,各段的位置等 静态库文件(.a),例如libm.a,libc.a 动态库文件 (.so、.so.0-9*) 动态链接库加载器ld-2.3.6.so、ld-linux.so.2 其它目录及文件很显然,第1、2、3、4、7类文件和目录
35、是不需要拷贝的。由于动态链接的应用程序本身并不含有它所调用的C库函数的代码,因此执行时需要动态链接库加载器来为它加载相应的C库文件,所以第6类文件是需要拷贝的。除此之外,第5类文件当然要拷贝。但第5类文件的大小也相当大。dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ du -c -si *.so* 7.2M total 需要全部拷贝吗?非也,非也!其实,需要哪些库完全取决于要运行的应用程序使用了哪些库函数。如果我们只制作最简单的系统,那么我们只需要运行busybox这一个应用程序即可。通过执行 denn
36、isdennis-desktop:/work/nfs_root/fs_mini3$ arm-linux-readelf -a bin/busybox | grep Shared0 x00000001 (NEEDED) Shared library: libcrypt.so.10 x00000001 (NEEDED) Shared library: libm.so.60 x00000001 (NEEDED) Shared library: libc.so.6 可知:busybox只用到了3个库:通用C库(libc)、数学库(libm)、加密库(libcrypt),因此我们只需要拷贝这3个库的库文
37、件即可。但是每个库都有4个文件,4个文件都要拷贝吗?当然不是。 dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libcrypt.-*-rwxr-xr-x 1 dennis dennis 30700 2008-01-22 05:32 libcrypt-2.3.6.so-rw-r-r- 1 dennis dennis 23118 2008-01-22 05:32 libcrypt.alrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libcrypt.
38、so - libcrypt.so.1lrwxrwxrwx 1 dennis dennis 17 2008-12-22 15:38 libcrypt.so.1 - libcrypt-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libm.-*-rwxr-xr-x 1 dennis dennis 779096 2008-01-22 05:31 libm-2.3.6.so-rw-r-r- 1 dennis dennis 1134282 2008-01-22 05:32 libm.
39、alrwxrwxrwx 1 dennis dennis 9 2008-12-22 15:38 libm.so - libm.so.6lrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libm.so.6 - libm-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libc.-*-rwxr-xr-x 1 dennis dennis 1435660 2008-01-22 05:48 libc-2.3.6.so-rw-r-r- 1 den
40、nis dennis 2768280 2008-01-22 05:31 libc.a-rw-r-r- 1 dennis dennis 195 2008-01-22 05:34 libc.solrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libc.so.6 - libc-2.3.6.so 4个文件中的.a文件是静态库文件,是不需要拷贝的。另外3个文件是: 实际的共享链接库:libLIBRARY_NAME-GLIBC_VERSION.so。当然需要拷贝。 主修订版本的符号链接,指向实际的共享链接库:libLIBRARY_NAME.so.MAJOR_R
41、EVISION_VERSION,程序一旦链接了特定的链接库,将会参用该符号链接。程序启动时,加载器在加载程序前,会检索该文件。所以需要拷贝。 与版本无关的符号链接,指向主修订版本的符号连接(libc.so是唯一的例外,他是一个链接命令行:libLIBRARY_NAME.so,是为编译程序时提供一个通用条目)。这些文件在程序被编译时会被用到,但在程序运行时不会被用到,所以不必拷贝它。关于共享库的2个符号链接的作用的特别说明:当我们使用gcc hello.c -o hello -lm编译程序时,gcc会根据-lm的指示,加头(lib)添尾(.so)得到libm.so,从而沿着与版本无关的符号链接(
42、libm.so - libm.so.6)找到libm.so.6并记录在案(hello的ELF头中),表示hello需要使用libm.so.6这个库文件所代表的数学库中的库函数。而当hello被执行的时候,动态链接库加载器会从hello的ELF头中找到libm.so.6这个记录,然后沿着主修订版本的符号链接(libm.so.6 - libm-2.3.6.so)找到实际的共享链接库libm-2.3.6.so,从而将其与hello作动态链接。可见,与版本无关的符号链接是供编译器使用的,主修订版本的符号链接是供动态链接库加载器使用的,而实际的共享链接库则是供应用程序使用的。通过以上分析,我们只需要拷贝
43、3个库(每个库各1个主修订版本的符号链接和1个实际的共享链接库)以及动态链接库加载器(1个符号链接和1个实体文件)。步骤如下:dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ mkdir /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libcrypt-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/
44、work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libcrypt.so.* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libm-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libm.so.* /work/nfs_ro
45、ot/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libc-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libc.so.* /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux
46、/lib$ cp -l ld-* /work/nfs_root/fs_mini3/lib 四、手工构建/etc目录 /etc目录存放的是系统程序的主配置文件,因此需要哪些配置文件取决于要运行哪些系统程序。即使最小的系统也一定会运行1号用户进程init,所以我们至少要手工编写init的主配置文件inittab。busybox的inittab文件的语法、语义与传统的SYSV的inittab有所不同。 inittab文件中每个条目用来定义一个需要init启动的子进程,并确定它的启动方式,格式为:。例如:ttySAC0:askfirst:-/bin/sh 表示子进程要使用的控制台,若省略则使用与ini
47、t进程一样的控制台 表示运行级别,busybox init程序这个字段没有意义 表示init进程如何控制这个子进程 sysinit:系统启动后最先执行,只执行一次,init进程等待它结束后才继续执行其它动作 wait:系统执行完sysinit条目后执行,只执行一次,init进程等待它结束后才继续执行其它动作 once:系统执行完wait条目后执行,只执行一次,init进程不等待它结束 respawn:启动完once进程后,init进程监测发现子进程退出时,重新启动它 askfirst:启动完respawn进程后,与respawn类似,不过init进程先输出” Please press Ente
48、r to activate this console“,等用户输入回车后才启动子进程 shutdown:当系统关机时 restart:Busybox中配置了CONFIG_FEATURE_USE_INITAB,并且init进程接收到SIGUP信号时执行,先重新读取、解析/etc/inittab文件,再执行restart程序 ctrlaltdel:按下ctrl+alt+del键时执行,不过在串口控制台中无法输入它 表示进程对应的二进制文件。如果前面有-号,表示该程序是“可以与用户进行交互的”我们制作最简单的/etc/inittab文件,其内容如下::sysinit:/etc/init.d/rcS:
49、askfirst:-/bin/sh:ctrlaltdel:/sbin/reboot:shutdown:/bin/umount -a r 制作最简单的脚本程序文件/etc/init.d/rcS,其内容如下: #!/bin/shifconfig eth0 7修改shell脚本文件/etc/init.d/rcS的权限,以使其可被执行:# chmod a+x /etc/init.d/rcS五、手工构建最简化的/dev目录 在linux机器上,执行ls /dev可看到几百个设备文件,我需要手工创建它们吗?maybe,我只需要手工创建几个设备文件!我怎么知道我应该创建哪几个设备文件呢?管它呢,先看看开发板
50、上可爱的linux的反应再说。 启动Linux操作系统,显示: VFS: Mounted root (nfs filesystem).Freeing init memory: 112KWarning: unable to open an initial console. 这说明,内核已经成功挂载根文件系统,但却未能成功启动第1个用户进程init。通过错误消息“unable to open an initial console”搜索内核源代码,找到init/main.c文件。748 static int noinline init_post(void)749 750 free_initmem()
51、;751 unlock_kernel();752 mark_rodata_ro();753 system_state = SYSTEM_RUNNING;754 numa_default_policy();755 756 if (sys_open(const char _user *) /dev/console, O_RDWR, 0) 0)757 printk(KERN_WARNING Warning: unable to open an initial console.n);758 759 (void) sys_dup(0);760 (void) sys_dup(0);761 762 if (
52、ramdisk_execute_command) 763 run_init_process(ramdisk_execute_command);764 printk(KERN_WARNING Failed to execute %sn,765 ramdisk_execute_command);766 767 768 /*769 * We try each of these until one succeeds.770 *771 * The Bourne shell can be used instead of init if we are772 * trying to recover a rea
53、lly broken machine.773 */774 if (execute_command) 775 run_init_process(execute_command);776 printk(KERN_WARNING Failed to execute %s. Attempting 777 defaults.n, execute_command);778 779 run_init_process(/sbin/init);780 run_init_process(/etc/init);781 run_init_process(/bin/init);782 run_init_process(
54、/bin/sh);783 784 panic(No init found. Try passing init= option to kernel.);785 显然,内核错误是由175行不能打开/dev/console所致。通过查看已经安装好的linux机器的/dev/console设备文件,可知其是字符设备文件,主设备号为5,次设备号为1: dennisdennis-desktop:/work/nfs_root/fs_mini3/etc$ ls -l /dev/consolecrw- 1 root root 5, 1 2010-04-08 08:40 /dev/console 因此,我们使用下
55、面的命令创建它: HYPERLINK mailto:dennisdennis-desktop:/work/nfs_root/fs_mini3/dev$ dennisdennis-desktop:/work/nfs_root/fs_mini3/dev$ sudo mknod console c 5 1 还需要创建其它设备文件吗?只有天知道!再看看linux的反应。 VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit: cant open /dev/null: No such file or directory 这次我们
56、有经验了,如法炮制,创建/dev/null设备文件:dennisdennis-desktop:/work/nfs_root/fs_mini3/dev$ sudo mknod null c 1 3 再次重启开发板上的linux,显示 VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit started: BusyBox v1.7.0 (2010-04-03 23:53:55 CST)starting pid 229, tty : /etc/init.d/rcS Please press Enter to activate
57、 this console.starting pid 231, tty : /bin/sh# 哈哈,我们成功了,终于可以K歌去了。六、创建其它空目录K完歌回来,继续战斗。dennisdennis-desktop:/work/nfs_root/fs_mini3$ mkdir home root proc sys tmp mnt var再次重启动开发板上的linux。咦,似乎有些问题。VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit started: BusyBox v1.7.0 (2010-04-03 23:53:55 CST)starting pid 229, tty : /etc/init.d/rcS Please pre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025商业空间设计装修合同
- 2025数据中心服务器托管服务合同模板
- 课程教学任务分配表格制作计划
- 关于墙体广告制作合同标准文本
- 主题班会课教案(9篇)
- 60岁聘用合同标准文本
- 培养学生的领导能力计划
- app界面设计合同范例
- 公司写字楼买卖合同标准文本
- 2025新版金华市房屋租赁居间合同示范文本
- 2024年客运从业资格证一点通
- 高考语文复习【知识精研】《千里江山图》高考真题说题课件
- 2024年广西区公务员录用考试《行测》真题及答案解析
- 2024年4月全国自考中国古代文学史二00539自考真题及解析
- PE管钢管供水管网施工方案
- 讲诚信课件教学课件
- 2024年浙江省单独招生文化考试语文试卷(含答案详解)
- 景区安全管理教育培训
- 无锡移动推拉棚施工方案
- 洗胃技术操作流程及评分标准
- 冯德全早教方案(0岁)
评论
0/150
提交评论