免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: minok
打印 上一主题 下一主题

菜鸟100问 [复制链接]

论坛徽章:
0
151 [报告]
发表于 2006-12-26 16:39 |只看该作者

FreeBSD编译内核详解

FreeBSD编译内核详解

以前老听说编译内核,觉得特别神气,呵呵,特别是像FreeBSD这样自由开发的操作系统,简直是非常好,能够自己定制内核,想怎么弄就怎么弄,呵呵,能够提升速度,还能够保证安全稳定,所以我就试一试怎么定制内核. (我也是新手,如果文章出现错误,请指正!)

我所用的FreeBSD是5.2.1版,现在是比较新的了,我一看我的内核文件大小:

# ls -l /boot/kernel/kernel
-r-xr-xr-x 1 root wheel 5940286 Feb 24 2004 /boot/kernel.bak/kernel

看来不小呀,5M多,呵呵,我要把它编成 3M左右,呵呵,begin...

来源 http://www.code365.com/os/freebsd/yl/200512242240472107.htm

论坛徽章:
0
152 [报告]
发表于 2006-12-26 16:41 |只看该作者

怎样编译FreeBSD内核

怎样编译FreeBSD内核

一、 编译内核的必要性  

1. 减少启动时间。常规内核的启动要浪费很多时间在检测不必要的硬件上。  
2. 减少运行时的内存消耗。不必要的系统支持不用加载。  
3. 增加一些缺省不支持的特性(kernel option)。  

二、 编译安装新内核  

首先,我们必须确认/usr/src/sys存在,也可以通过/sys访问到,接下来所有的操作依赖于该目录,
我们需要的是i386/conf。 注意:如果你的系统中不存在/usr/src/sys目录,这说明你在安装系统时
没有安装内核的源代码,你可以用root身份运行/stand/sysinstall,选择Configure->Distributions->src->sys.  
接下来要做的是:进入/i386/conf,拷贝常规内核配置文件为你想要的文件名  

# cd /usr/src/sys/i386/conf  
# cp GENERIC MYKERNEL 你必须以root账号登录,否则你可能没有权限做以下操作  

用你喜欢的编辑器编辑MYKERNEL,调整相应的设置,去掉不必要的,加入你需要加入的特性。  

Tips:用常规内核启动,用dmesg查看not found的设备(# dmesg |grep "not found"),在新内核中去掉相应的选项。  

# /usr/sbin/config MYKERNEL  
# cd ../../compile/MYKERNEL  
# make depend # make  
# make install 安装完成以后,原有的内核自动改名为:/kernel.old,新内核为/kernel  

三、 配置文件  

machine arch ;arch值为i386或者alpha cpu "cpu_type";  

ident machine_name;标识当前的机器名称,你应该使用你的内核配置文件名称,在系统启动的时候,
ident的值将被显示出来。  

常规特性:(详情请查阅FreeBSD手册)  

options QUOTA ;允许磁盘空间限制  

四、Quota

(1) 编译内核时加入 options QUOTA  
(2) 在/etc/rc.conf中加入 enable_quotas="YES" check_quotas="YES"  
(3) 在/etc/fstab中加入 /dev/da1s2g /home ufs rw,userquota,groupquota 1 2  
(4) 重新启动  
(5) # quotacheck -av # repquota -a  
(6) # edquota -u user1 # edquota -p user1 user2 user3 //copy quota .user1 to user2 user3 # quota -v user1

(http://www.fanqiang.com)

论坛徽章:
0
153 [报告]
发表于 2006-12-26 16:48 |只看该作者

FreeBSD编译安装新内核

FreeBSD编译安装新内核

导读】FreeBSD目录中最重要的文件有GENERIC和LINT,名为GENERIC的文件就是通用内核kernel.GENERIC的配置文件,而LINT文件中包括 FreeBSD支持的几乎所有配置参数,并逐一加以解释。

来源 http://os.51cto.com/art/200612/35697.htm

编译安装新内核-FreeBSD 技术文摘

 在/usr/src/sys/i386/conf目录下,可以看到一系列内核配置文件的样例。 bash-2.02$ ls /sys/i386/confGENERIC Makefile.i386 files.i386 majors.i386LINT PICOBSD-N.2000 ipfilter options.i386LKM devices.i386 kernel.script

  目录中最重要的文件有GENERIC和LINT,名为GENERIC的文件就是通用内核kernel.GENERIC的配置文件,而LINT文件中包括FreeBSD支持的几乎所有配置参数,并逐一加以解释。另一些文件则是其他硬件配置下,用于特定目的的配置文件的例子。因此GENERIC和LINT文件是在设置内核时的必备参考。有了这些文件作参考之后,就可以生成针对某个计算机具体设置的配置文件就更为简单了,并执行编译内核的任务。

来源 http://server.chinabyte.com/404/2694904.shtml

论坛徽章:
0
154 [报告]
发表于 2006-12-26 16:53 |只看该作者

FreeBSD kernel 编译大法

FreeBSD kernel 编译大法

1.写在之前的:
路径:/usr/src/sys/i386/conf
在这之下...GENERIC LINT NEWCARD 有3个档案
GENERIC -- 一般预设的kernel文字叙述档
LINT -- kernel options 的说明
NEWCARD -- new pccard 的设定
2.编译 kernel 之前续动作
a.先做kernel的文字叙述档
cp GENERIC OHAHA // 保持GENERIC不变,以防不时之需..或许待会会用到..-___-||
// 通常我们用大写的host name表示kernel新的文字叙述档名称
b.做kernel的备份
mv OHAHA /etc/ // 因为一般备份/etc,常会忘了kernel
c.因为kernel的文字叙述档一定要位於/usr/src/sys/i386/conf中,所以做一个link
ln -s /etc/OHAHA ./
d.编辑 kernel 新的文字叙述档
vi OHAHA

3.新的文字叙述档内容 // # 表示功能不开启,绿色表示内文,棕色表示我加上的
为让页面显示清晰明,所以加以分页,但是有依照顺序的...请放心...
now here we go ... 『 kernel内容编译 』

4.路径:/usr/src/sys/i386/conf
指令:config OHAHA // OHAHA 为我们先前编好的文字叙述档名

5.若第4步骤没有错误的话,接下来进行文字叙述档相依性检查
路径:/usr/src/sys/compile/OHAHA
指令:make depend

6.若第5步骤没有错误的话,接下来进行编译
路径:/usr/src/sys/compile/OHAHA
指令:make

7.若第6步骤没有错误的话,接下来进行安装
路径:/usr/src/sys/compile/OHAHA
指令:make install
:5.6.7.步骤可以省略为 make depend all install
若4.5.6.7中发生错误,请检查一下您的文字叙述档的内容。
8.完成後先行重新开机...若成功开机...恭喜...
这时别忘了做下面这一步骤..将不必要的档案清除
路径:/usr/src/sys/compile/OHAHA
指令:make clean

9.若很不幸的您在开机途中挂点....这时请看看急救区中编译kernel失败时的处理方式

来源 http://www.linuxdiyf.com/bbs/viewthread.php?tid=30615

论坛徽章:
0
155 [报告]
发表于 2006-12-26 16:56 |只看该作者

重新编译freebsd内核

重新编译freebsd内核

安装完系统后,要重新编译内核。目的是要系统支持Firrwall和提高运行效率。

  注意:这之后的过程在终端上操作要方便许多。SecureCRT支持在终端界面上直接拷贝和粘贴文本内容。

  转到内核文件目录:

来源 http://www.sd001.net/2/viewspace_2195.html

论坛徽章:
0
156 [报告]
发表于 2006-12-26 17:00 |只看该作者

freebsd内核配置howto

freebsd内核配置howto

Configure The Kernel Howto
郑重申明:本文版权属于www.linuxsir.org
作者:Freebird
任何转载均需注明作者及出处
发表时间:2003年12月31日
1.假如你的系统上没有/usr/src/sys目录,就意味着你没有安装内核原代码。 安装内核源码的最简便的方法是以root身份运行/stand/sysinstall,选择Configure,,然后Distributions ---> src--> sys.假如你不喜欢从sysinstall安装,你也可以从FreeBSD的安装盘中安装之:

来源 http://www.devfox.net/web/post/2084.htm

论坛徽章:
0
157 [报告]
发表于 2006-12-26 17:04 |只看该作者

FreeBSD 6.0 编译内核,安装内核的不同之处!

FreeBSD 6.0 编译内核,安装内核的不同之处!

安装后包错:

net# make installworld
ERROR: Required audit group is missing, see /usr/src/UPDATING.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
make buildworld 后一定要执行:mergemaster -p 然后输入:i 增加组,然后在 Enter (默认的是:no)即可进行安装内核:

make installworld


来源 http://phoenix.100steps.net/showArt.php?id=477

论坛徽章:
0
158 [报告]
发表于 2006-12-26 17:07 |只看该作者

工作笔记 : FreeBSD内核编译流程【转】

工作笔记 : FreeBSD内核编译流程【转】

FreeBSD内核编译流程

最小化安装FreeBSD后,为了让系统支持内核定制和使用Ports安装应用程序,要运行系统配置程序安装内核编译支持和Ports。

首先以root身份登录,运行

#/stand/sysinstall

出现系统配置界面,选择Configure后,出现FreeBSD Configuration Menu,然后选择Distributions,出现“Select the distributions you wish to install”窗口,选择SYS和Ports,安装(具体操作细节略)。

安装完成后,转到内核文件目录:

#cd /usr/src/sys/i386/conf

找到GENERIC,我复制了一份,改名为myKernel,编辑内核文件,新手可以使用ee来编辑,我不是很喜欢vi(因为我不熟悉操作,菜鸟嘛^_^)

#ee myKernel

配置内核文件的时候,找到ident GENERIC,将GENERIC修改为你的内核文件名,我的是myKernel,就是ident myKernel了,其他配置根据自己的需要添加或删除。具体配置细节省略,可以参考网上的资料(内核文件太长,我懒...^_^)

配置好后编译安装新内核

#/usr/sbin/config myKernel //myKernel是你的内核文件名

结束后提示你生成的内核文件路径,切换到这个目录

#make depend

这需要一段时间,完成后,

#make

#make install

重新启动FreeBSD

#reboot

论坛徽章:
0
159 [报告]
发表于 2006-12-26 17:08 |只看该作者

FreeBSD 内核中的SYSINIT分析

FreeBSD 内核中的SYSINIT分析

FreeBSD kernel是一个膨大的系统, 对于这样一个大系统, 里面往往包含了大量的子系统和模块,当系统初始化时这些模块就需要初始化, 按照通常的思路,这些初始化过程必须在某处被显式地调用,这样一来,当你新增某个模块,你必须再修改那个系统初始化的地方来调用这个新增模块的初始化过程, 而且由于ANSI C语言的限制,调用某个函数最好先声明,这样当系统的初始化过程开始增加时, 那个调用初始化过程的文件开始大量包含那些本来不相关的头文件, 偶合度就增加了, 这是一种不好的设计.  

FreeBSD为了应付这种情况, 使用一种叫做SYSINIT的机制. 我们知道FreeBSD使用一种叫做 ELF的二进制目标执行文件格式. 这种文件格式允许文件内部组织成结构化的方式, 文件内部可以由不同的组成部分(section), FreeBSD正是利用了这种机制.  

FreeBSD使用GNU GCC作为其C语言编译器, 这种编译器允许在C源程序中嵌入汇编语言代码, FreeBSD通过在C源程序中加入汇编指令来在目标文件中增加额外的section, 在文件 /sys/sys/linker_set.h中定义如下:

来源 http://www.52wg.org/lunwen/lw/200511/20051125062350.htm

论坛徽章:
0
160 [报告]
发表于 2006-12-26 17:09 |只看该作者

如何压缩FreeBSD内核

如何压缩FreeBSD内核

---- 我同时使用Linux和FreeBSD,Linux的“make zImage”的功能使得我可以定制压缩的内核,在自己制作
启动盘、应急盘时尤为方便。而在FreeBSD中我却没有找到类似的功能,编译出的内核要大很多,请问FreeBSD
是否支持压缩内核?

---- 事实上,FreeBSD的安装盘使用的就是压缩的内核,压缩是由kzip工具来完成的。内核压缩的方法如下。

---- ① 以root身份登录。

---- ② 进入kzip所在目录:

---- # cd /sys/i386/boot/kzipboot

---- ③ 编译kzip:

---- # make all

---- ④ 压缩内核并检查,通常压缩率可达50%。

---- # kzip /kernel

---- # ls -l /kernel*

---- ⑤ 备份原有内核,修改内核标记并复制压缩内核:

---- # cp /kernel /kernel.orig

---- # mv /kernel.kz /kernel

---- # chflags schg /kernel

---- ⑥ 重新启动系统使改动生效:

---- # sync;reboot

---- 如果一切正常,当系统再次启动时,您会看到:

---- Uncompressing kernel...done

---- Booting the kernel

---- 使用压缩后的内核,您就可以方便地定制自己的启动盘了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP