LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 937|回复: 4

power2bash笔记 zz

[复制链接]
发表于 2006-5-3 19:38:25 | 显示全部楼层 |阅读模式
零碎的东西, 抖抖,希望对大家有帮助。
发信人: Dieken (风催草低), 信区: LinuxApp
标  题: power2bash笔记
发信站: 水木社区 (Wed May  3 19:29:37 2006), 站内

发现这篇文章很不错,做了点笔记, 顺便粗略看了下X的启动过程.
http://www.netspace.net.au/~gok/power2bash/
http://www.faqs.org/docs/Linux-H ... h-Prompt-HOWTO.html

======================
CMOS BIOS (ROM): bootstrap loader, 寻找引导介质,装入引导扇区并执行。

boot sector: MBR + MPT, 装入grub的stage1

stage1: 装入grub的stage2

stage2: 装入vmlinuz, initrd

vmlinuz: 执行/sbin/init

/sbin/init: 读取/etc/inittab, 执行bash解释/etc/init.d/rcS (Debian)
            或者/etc/rc.d/rc.sysinit (Red Hat), 它负责检查(fsck)
            文件系统并装载(mount), 设置时钟,激活交换空间(swapon),
            获取或者设置主机名等。

            执行/etc/rc<N>.d/ (Debian) 或者 /etc/rc.d/rc<N>.d/下的所有
            以S开头的脚本,其实这些脚本都是/etc/init.d下面脚本的链接。
            <N>指run level。这些脚本负责启动各个子系统。
            
            给每一个虚拟终端创建getty进程,这些进程在退出时又会被init
            重新创建。

            在/etc/rc<N>.d/下的某个脚本会执行mount -a来装载文件系统,
            这会用到/etc/fstab配置文件。



Linux kernel一开始以只读模式mount根文件系统,在init调用的
rcS做了fsck检测文件系统无误后再重新以可读可写模式mount根
文件系统。

klogd, syslogd接收log信息,由 /etc/syslog.conf控制,需要
/etc/services文件。


init:           启动getty(fork),显示登录信息和登录提示,取得
                用户名后启动login(exec),由它负责取得密码并检验。
                密码正确就根据/etc/passwd启动相应的shell, 一般是
                bash.

=========================
BIOS bootstrap loader: search bootable media, load it into RAM
-> boot sector: load stage1
-> GRUB stage1: load stage2
-> GRUB stage2: load vmlinuz
-> vmlinuz
-> fork: init (pid=1)
        -> fork: /etc/init.d/rcS
                        
/etc/init.d/rc S
                                
/etc/rcS.d/S*
                                        (x11-common)

        -> fork: /etc/init.d/rc 2
                        
/etc/rc2.d/S*
                                (gdm or kdm)

        -> fork: getty (ppid=1)
               
-> exec: login
                        
-> fork: bash

在用户退出后init负责重新创建(fork)getty进程。

==========================
/etc/init.d/gdm脚本会运行/usr/sbin/gdm, gdm又会创建一个子进程
运行gdm,在这个子进程退出后再运行gdm。
init-+
......|-gdm---gdm-+-Xorg
............................`x-session-manager-+-Xsession
..............................................................`-ssh-agent



/usr/bin/x-session-manager是一个符号链接,指向/etc/alternatives/
x-session-manager, 后者又指向/usr/bin/gnome-session.

gnome-session缺省会读取/usr/share/gnome/default.session,根据
这个文件运行/usr/bin/gnome-wm, 这个shell脚本会选择一个window
manager来运行,缺省是metacity. 另外gnome-session还会启动gnome-panel
等。

============================
从终端启动X:
startx:对xinit的封装脚本, 它会以指定参数(比如指定/etc/X11/xinit/xinitrc)
        来启动xinit.

xinit: 启动一个x client(缺省是xterm)和一个x server(缺省是X),
       见xinit(1), 注意它会运行~/.xinitrc,在这里面可以启动
       某个窗口管理器。

Debian上缺省配置, xinit会执行/etc/X11/xinit/xinitrc脚本, 而xinitrc
调用了/etc/X11/Xsession脚本, 这个脚本会执行~/.Xsession或~/.xsession
以及/etc/X11/Xsession.d/下的脚本,有点类似/etc/init.d的机制。

注: Xsession会被这两种启动X的方式(startx or gdm)调用。



--
Gurer ner gjb xvaqf bs s**x, bar sbe ybir, bar sbe ungr.

:help g?


※ 修改:·Dieken 于 May  3 19:31:27 修改本文·[FROM: 221.122.47.*]
※ 来源:·水木社区 newsmth.net·[FROM: 221.122.47.*]


在这上面排版这么别扭,连个空格也要吞掉。。。
 楼主| 发表于 2006-5-3 19:46:10 | 显示全部楼层
大致了解启动过程后发觉在这个过程中插入木马病毒什么的还是难以察觉的,Linux中有太多
自动运行的脚本了,bash就有几个, 一般的用户很可能不小心中招了还蒙鼓里,虽然现在
Linux上的病毒还很少见, 但恐怕将来仍然是病毒木马横行,所以安全意识还是早点培养的好,
多研究一下SELinux, GrSecurity, LIDS等东西。              —— 一点感想。
回复 支持 反对

使用道具 举报

发表于 2006-5-3 20:03:11 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-3 20:09:57 | 显示全部楼层
nod,看到有中文版,它主页上有。
回复 支持 反对

使用道具 举报

发表于 2006-5-3 20:26:18 | 显示全部楼层
这两篇都是好文,常看身心有益。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表