LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: freesky64

问:Gentoo Linux的工作原理?

[复制链接]
发表于 2005-6-2 08:28:51 | 显示全部楼层
如果真地想弄明白linux的内核和原理,最好请看书
如果有时间的话可以去看《LINUX内核源代码情景分析》,也许还有更好的书,反正我的意思就是最好的办法是去看书,然后自己装几次lfs,基本上内核,shell什么的能明白个差不多了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-2 10:14:01 | 显示全部楼层
Gswan :

你可能没明白我想弄明白的是什么.<LINUX内核源代码情景分析>一书讨论的是内核,介绍的内容大概就是什么进程调度,内存管理这些算法吧,操作系统不仅仅是一个内核,还有依靠内核来服务的提供功能的系统程序.
我想知道的就是这些关于一个Linux系统的系统组成相关的知识.

下一步,我想请问一下,Linux启动以后都启动了一些什么系统进程,进程树的结构是什么?前面提到的环境变量,象PATH等首先是谁创建的? 还有前面哪个问题,init是内核的一部分,还是另一个程序?

谢谢!
回复 支持 反对

使用道具 举报

发表于 2005-6-2 23:54:24 | 显示全部楼层
不知道你的系统进程指的是什么
有内核线程,守护进程,不知道你是不是想说这些
启动了什么守护进程,是因人而异的
gentoo里你可以看看
rc-update -s

redhat,FC是
chkconfig --list

进程树可以用这个看
pstree -lp

init不是内核的一部分
在/usr/src/linux/init/main.c里,有个函数
static int init(void * unused)
函数里有这几行
if (execute_command)
                execve(execute_command,argv_init,envp_init);
        execve("/sbin/init",argv_init,envp_init);
        execve("/etc/init",argv_init,envp_init);
        execve("/bin/init",argv_init,envp_init);
        execve("/bin/sh",argv_init,envp_init);
        panic("No init found.  Try passing init= option to kernel.");
这就是内核启动的最后一步
首先,如果grub.conf中你要启动的那个内核的kernel那一行有init=xxxx参数(xxx是init程序的路径)那么内核就会执行你指定的init程序
这就是为什么要使用initng一定要加init=/path/to/your/initng这个参数
如果没有加init=参数,就会依次尝试/sbin/init,/etc/init等等
init程序是黑客很感兴趣的东西,想想windows注册表的current version/run你就知道了
注意这几个init不会顺次被执行,而是只有一个被执行(这里我假设你知道execve的意义,如果你不懂,往下看完)

init进程将会依照/etc/inittab来启动守护进程,控制台,display manager(诸如xdm/gdm/kdm)等

PATH是在shell的startup script里设定的
对于bash来说有/etc/profile, /etc/bashrc, ~/.bash_profile, ~/.bashrc等等,后两个是个人的,前两个是全局的

最后一点
我觉得你还是找本书看,如果你觉得市面上讲系统管理的书不够深度,去看
APUE--UNIX环境高级编程
这也是进一步研究内核的基础之一
回复 支持 反对

使用道具 举报

发表于 2005-6-3 00:43:18 | 显示全部楼层
好的 Linux 发行版都有相应的软件包管理系统来管理软件, 处理依赖关系

Gentoo 是使用 emerge  , debian 是  apt

这里的 export 是 bash 的内部命令

类 UNIX 系统会给 main()  传递指向 环境变量的指针
回复 支持 反对

使用道具 举报

发表于 2005-6-3 09:25:10 | 显示全部楼层
Post by jhuangjiahua
好的 Linux 发行版都有相应的软件包管理系统来管理软件, 处理依赖关系

Gentoo 是使用 emerge  , debian 是  apt

这里的 export 是 bash 的内部命令

类 UNIX 系统会给 main()  传递指向 环境变量的指针



花花,Gentoo是portage才對
回复 支持 反对

使用道具 举报

发表于 2005-6-3 10:31:33 | 显示全部楼层
那你还要说  Debian 是 dpkg .............
回复 支持 反对

使用道具 举报

发表于 2005-6-3 10:33:10 | 显示全部楼层
Post by jhuangjiahua
那你还要说  Debian 是 dpkg .............




Debian俺沒你熟,Gentoo你沒俺熟 :p
回复 支持 反对

使用道具 举报

发表于 2005-6-3 14:05:46 | 显示全部楼层
要求 Jwing 换回原先那加菲猫头像
回复 支持 反对

使用道具 举报

发表于 2005-6-3 14:31:17 | 显示全部楼层
Post by jhuangjiahua
要求 Jwing 换回原先那加菲猫头像




幹嘛?俺現在這個頭是用?硌b憨厚騙MM的,以前那個加菲頭太狡猾了,給自己制造了門檻 :p
回复 支持 反对

使用道具 举报

发表于 2005-6-3 15:08:32 | 显示全部楼层
更显得狡猾...
回复 支持 反对

使用道具 举报

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

本版积分规则

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