『壹』 在freebsd中怎么打开编译器编写C啊
clang本来就是为了比来gcc更方便调用调试自而开发的,用 ee/vi 等编辑器都可以写文件,编译和执行。如果一定要和win环境对比,嗯,应该难以比较。因为1.IDE不一样;2.桌面环境,BSD默认没有桌面;3.clang/llvm的win版本没法比较;4.win下还是老实点去调win本身的system库吧。
『贰』 请问下freebsd 下怎么手动分区 详细点吧
2.6 分配磁盘空间您的第一个工作就是要分配 FreeBSD 用的硬盘空间以便 sysinstall 先做好一些准备。 为了完成这个工作,您必须先对 FreeBSD 如何找到磁盘信息做一个了解。2.6.1 BIOS 磁盘编号当您在系统上安装配置 FreeBSD 之前,有一个重要的事情一定要注意,尤其是当您有多个硬盘的时候。在 pc 架构,当您跑像 MS-DOS® 或 Microsoft® Windows® 这种跟 BIOS 相关的操作系统的时候,BIOS 有能力改变正常的磁盘顺序, 然后这些操作系统会跟着 BIOS 做改变。这让使用者不一定非要有所谓的 “primary master” 硬盘开机。许多人发现最简单而便宜备份系统的方式就是再去买一块一模一样的硬盘,然后定期将数据从第一块硬盘复制到第二个硬盘,使用 Ghost® 或 XCOPY。所以,当第一个硬盘死了, 或者是被病毒破坏,或者有坏轨道,他们可以调整 BIOS 中的开机顺序而直接用第二块硬盘开机。就像交换硬盘的数据线,但是无需打开机箱。比较昂贵,配有 SCSI 控制卡的系统通常可以延伸 BIOS 的功能来让 SCSI 设备 (可达七个) 达到类似改变顺序的功能。习惯于使用这种方式的使用者可能会感到惊讶, 因为在 FreeBSD 中并非如此。FreeBSD 不会参考 BIOS, 而且也不知道所谓的 “BIOS 逻辑磁盘对应” 是怎么回事。这会让人感觉很疑惑,明明就是一样的硬盘而且资料也完全从另一块复制过来的, 结果却没办法像以前那样用。当使用 FreeBSD 以前,请将 BIOS 中的硬盘开机顺序调回正常的顺序,并且以后不要再改变。 如果一定要交换硬盘顺序, 那请用硬件的方式, 打开机箱并调整调线。2.6.2 使用 FDisk 创建分区注意: 如果不再做改变,数据将会写进硬盘。如果您犯了一个错误想重新开始, 请选择 sysinstall 安装程序的退出按钮(exit)。或按 U 键来 Undo 操作。如果您的操作没有结果, 您总可以重新启动您的计算机来达到您的目的。当您在 sysinstall 主菜单选择使用标准安装后,您会看到下面的信息:MessageIn the next menu, you will need to set up a DOS-style ("fdisk")partitioning scheme for your hard disk. If you simply wish to devoteall disk space to FreeBSD (overwriting anything else that might be onthe disk(s) selected) then use the (A)ll command to select the defaultpartitioning scheme followed by a (Q)uit. If you wish to allocate onlyfree space to FreeBSD, move to a partition marked "unused" and use the(C)reate command.[ OK ][ Press enter or space ]如屏幕指示,按 Enter 键,然后您就会看到一个列表列出所有在探测设备的时候找到的硬盘。 图 2-13 范例显示的是有找到两个 IDE 硬盘的情形,这两个硬盘分别为 ad0 和 ad2。图 2-13. 选择要分区的硬盘您可能正在奇怪,为什么 ad1 没有列出来?为什么遗失了呢?试想,如果您有两个 IDE 硬盘,一个是在第一个 Primary master, 一个是 Secondary master,这样会发生什么事呢? 如果 FreeBSD 依照找到的顺序来为他们命名,如 ad0 和 ad1 那么就不会有什么问题。但是,现在问题来了。如果您现在想在 primary slave 加装第三个硬盘,那么这个硬盘的名称就会是 ad1,之前的 ad1 就会变成 ad2。这会造成什么问题呢?因为设备的名称 (如 ad1s1a)是用来寻找文件系统的,因此您可能会发现,突然,您有些文件系统从此无法正确地显示出来, 必须修改 FreeBSD 配置文件(译注:/etc/fstab)才可以正确显示。为了解决这些问题,在配置内核的时候可以叫 FreeBSD 直接用 IDE 设备所在的位置来命名,而不是依据找到的顺序。使用这种方式的话, 在 secondary master 的 IDE 设备就 永远是 ad2,即使您的系统中没有 ad0 或 ad1 也不受影响。此为 FreeBSD 内核的默认值,这也是为什么上面的画面只显示 ad0 和 ad2 的原因。画面上这台机器的两颗硬盘是装在 primary 及 secondary 的 master 上面;并没有任何一个硬盘安装在 slave 插槽上。您应该选择您想安装 FreeBSD 的硬盘,然后按下 [ OK ]。之后 FDisk 就会开始,您会看到类似 图 2-14的画面。FDisk 的显示画面分为三个部分。第一部分是画面上最上面两行,显示的是目前所选择的硬盘的信息。 包含它的 FreeBSD 名称、硬盘分布以及硬盘的总容量。第二部分显示的是目前选择的硬盘上有哪些分区,每个分区的开始及结束位置、所占容量、FreeBSD 名称、它们的描述以及类别(sub-type)。此范例显示有两个未使用的小分区, 还有一个大的 FAT 分区, (很可能是 MS-DOS 或 Windows 的 C: ), 以及一个扩展分区(在 MS-DOS 或 Windows 里面还可以包含逻辑分区)。第三个部分显示 FDisk 中可用的命令。图 2-14. 典型的尚未编辑前的 Fdisk 分区表接下来要做的事跟您要怎么给您的硬盘分区有关。如果您要让 FreeBSD 使用整个硬盘(稍后您确认要 sysinstall 继续安装后会删除所有这个硬盘上的资料),那么您就可以按 A 键(Use Entire Disk )目前已有的分区都会被删除,取而代之的是一个小的,标示为 unused 的分区,以及一个大的 FreeBSD 分区。之后, 请用方向键将光标移到这个 FreeBSD 分区,然后按 S 以将此分区标记为启动分区。 您会看到类似 图 2-15 的画面。注意,在 Flags 栏中的 A 记号表示此分区是 激活 的, 因而启动将从此分区进行。要删除现有的分区以便为 FreeBSD 腾出空间, 您可以将光标移动到要删除的分区后按 D 键。 然后就可按 C 键,并在弹出的对话框中输入将要创建的分区的大小。 输入合适的大小后按 Enter 键。 一般而言, 这个对话框中的初始值是可以分配给该分区的最大值。它可能是最大的邻接分区或未分配的整个硬盘大小。如果您已经建立好给 FreeBSD 的分区 (使用像 PartitionMagic®类似的工具), 那么您可以按下 C 键来建立一个新的分区。同样的,会有对话框询问您要建立的分区的大小。图 2-15. Fdisk 分区使用整个硬盘完成后,按 Q 键。您的变更会存在 sysinstall 中, 但是还不会真正写入您的硬盘。2.6.3 安装多重引导在这步骤您可以选择要不要安装一个多重引导管理器。 一般而言,如果碰到下列的情形,您应该选择要安装多重引导管理程序。*您有一个以上的硬盘,并且 FreeBSD 并不是安装在第一个硬盘上。*除了 FreeBSD,您还有其它的操作系统安装在同一块硬盘上,所以您需要在开机的时候选择要进入哪一个系统。如果您在这台机器上只安装一个 FreeBSD 操作系统, 并且安装在第一个硬盘, 那么选择 Standard 安装就可以了。如果您已经使用了一个第三方的多重引导程序, 那么请选择 None。选择好配置后请按 Enter。图 2-16. Sysinstall 多重引导管理程序按下 F1 键所显示的在线说明中有讨论一些操作系统共存可能发生的问题。2.6.4 在其它硬盘上创建分区如果您的系统上有一个以上的硬盘,在选择完多重引导管理程序后会再回到选择硬盘的画面。 如果您要将 FreeBSD 安装在多个硬盘上,那么您可以在这里选择其它的硬盘, 然后重复使用 FDisk 来建立分区。重要: 如果您想让 FreeBSD 来管理其它的硬盘, 那么两个硬盘都必须安装 FreeBSD 的多重引导管理程序。图 2-17. 离开选择硬盘画面Tab 键可以在您最后选择的硬盘、 [ OK ] 以及 [ Cancel ] 之间进行切换。用 Tab 键将光标移动到 [ OK ] 然后按 Enter 键继续安装过程。2.6.5 使用 bsdlabel 创建分区您现在必须在刚刚建立好的 slice 中规划一些 label。 请注意,每个 label 的代号是 a 到 h,另外,习惯上 b、 c 和 d 是有特殊用途的,不应该随意变动。某些应用程序可以利用一些特殊的分区而达到较好的效果,尤其是分区分散在不同的硬盘的时候。但是,现在您是第一次安装FreeBSD,所以不需要去烦恼如何分割您的硬盘。最重要的是,装好FreeBSD然后学习如何使用它。当您对FreeBSD有相当程度的熟悉后,您可以随时重新安装FreeBSD,然后改变您分区的方式。下面的范例中有四个分区 —— 一个是磁盘交换分区,另外三个是文件系统。表 2-2. 为第一个硬盘分区分区 文件系统 大小 描述a / 512 MB 这是一个根文件系统(root filesystem)。 任何其它的文件系统都会挂在根目录(译注:用根目录比较亲切) 下面。 512 MB 对于此目录来说是合理的大小,因为您往后并不会在这里存放太多的数据; 在安装 FreeBSD 后会用掉约 128 MB 的根目录空间。 剩下的空间是用来存放临时文件用的,同时,您也应该预留一些空间,因为以后的FreeBSD版本可能会需要较多的 /(根目录)空间。b N/A 2-3 x RAMb 分区为系统磁盘交换分区 (swap space)。选择正确的交换空间大小可是一门学问唷。一般来说,交换空间的大小应该是您系统上内存(RAM) 大小的2到3倍。 交换空间至少要有 64 MB。因此, 如果您的电脑上的 RAM 比 32 MB 小, 请将交换空间大小设为 64 MB。如果您有一个以上的硬盘, 您可以在每个硬盘上都配置交换分区。FreeBSD 会利用每个硬盘上的交换空间,这样做能够提高 swap 的性能。 如果是这种情形,先算出您总共需要的交换空间大小 (如128 MB),然后除以您拥有的硬盘数目(如2块),算出的结果就是每个硬盘上要配置的交换空间的大小。 在这个例子中, 每个硬盘的交换空间为 64 MB。e /var 256 MB 至 1024 MB /var 目录会存放不同长度的文件、日志以及其它管理用途的文件。大部分这些文件都是 FreeBSD 每天在运行的时候会读取或是写入的。当这些文件放在另外的文件系统(译注:即/var)可以避免影响到其它目录下面类似的文件存取机制。f /usr 剩下的硬盘空间 (至少 2 GB) 您所有的其它的文件通常都会存在/usr 目录以及其子目录下面。警告: 上面例子中的数值仅限于有经验的用户使用。 通常我们鼓励用户使用 FreeBSD 分区编辑器中一个叫做 Auto Defaults的自动分区布局功能。如果您要将FreeBSD安装在一个以上的硬盘, 那么您必须在您配置的其它分区上再建立分区。最简单的方式就是在每个硬盘上建立两个分区,一个是交换分区, 一个是文件系统分区。表 2-3. 为其它磁盘分区分区 文件系统 大小 描述b N/A 见描述 之前提过,交换分区是可以跨硬盘的。但是,即使 a 分区没有使用,习惯上还是会把交换分区放在 b 分区上。e /diskn 剩下的硬盘空间 剩下的空间是一个大的分区,最简单的做法是将之规划为 a分区而不是e分区。然而, 习惯上a分区是保留给根目录 (/) 用的。您不一定要遵守这个习惯,但是 sysinstall 会,所以照着它做会使您的安装比较清爽、干净。您可以将这些文件系统挂在任何地方,本范例建议将它们挂在 /diskn 目录,n 依据每个硬盘而有所不同, 但是,您喜欢的话也可将它们挂在别的地方。分区的配置完成后,您可以用sysinstall. 来建立它们了。您会看到下面的信息:MessageNow, you need to create BSD partitions inside of the fdiskpartition(s) just created. If you have a reasonable amount of diskspace (200MB or more) and don't have any special requirements, simplyuse the (A)uto command to allocate space automatically. If you havemore specific needs or just don't care for the layout chosen by(A)uto, press F1 for more information on manual layout.[ OK ][ Press enter or space ]按下 Enter 键开始FreeBSD分区表编辑器,称做 Disklabel。图 2-18 显示您第一次执行 Disklabel的画面。 画面分为三个区域。前几行显示的是您正在编辑的硬盘以及您正在建立的 slice 位于哪个分区上。(在这里,Disklabel 使用的是 分区名称 而不是 slice 名)。 此画面也会显示 slice 还有多少空间可以使用;亦即,有多余的空间,但是尚未指派分区。画面中间区域显示已建立的区区,每个分区的文件系统名称、所占的大小以及一些关于建立这些文件系统的参数选项。下方的第三区显示在 Disklabel 中可用的按键。图 2-18. Sysinstall Disklabel 编辑器Disklabel 您可以自动配置分区以及给它们预设的大小。这些默认的分区是由内部的分区尺寸算法根据磁盘的大小计算出的。 您可以按 A键使用此功能。您会看到类似 图 2-19的画面。根据您硬盘的大小,自动分配所配置的大小不一定合适。但是没有关系, 您并不一定要使用预设的大小。注意: 默认情况下会给/tmp 目录一个独立分区,而不是附属在 / 之下。这样可以避免将一些临时文件放到根目录中(译注: 可能会用完根目录空间)。图 2-19. Sysinstall Disklabel 编辑器-使用自动配置如果您不想使用默认的分区布局, 则需要用方向键移动光标并选中第一个分区, 然后按 D 来删除它。 重复这一过程直到删除了所有推荐的分区。要建立第一个分区 (a,作为 / —— 根文件系统), 请确认您已经在屏幕顶部选中了正确的 slice, 然后按 C。 接下来将出现一个对话框, 要求您输入新分区的尺寸 (如 图 2-20 所示)。您可以输入以块为单位的尺寸,或以 M 表示MB、 G 结尾表示GB, 或者 C 表示柱面数的方式来表达尺寸。图 2-20. 根目录使用空间如果使用此处显示的默认尺寸, 则会创建一个占满整个 slice 空余空间的 partition。如果希望使用前面例子中描述的 partition 尺寸, 则应按 Backspace 键删除这些数字, 并输入 512M,如 图 2-21 所示。 然后, 按下 [ OK ]。图 2-21. 编辑要分区大小输入完大小后接着问您要建立的分区是文件系统还是交换空间,如 图 2-22所示。第一个分区是文件系统,所以确认选择 FS后按Enter 键。图 2-22. 选择根分区类型最后,因为您要建立的是一个文件系统,所以必须告诉 Disklabel 这个文件系统要挂接在什么地方,如 图 2-23所示。根文件系统的挂接点 /, 所以请输入 /,然后按 Enter键。图 2-23. 选择根挂接点刚刚制作好的分区会显示在画面上。您应该重复上述的动作以建立其它的分区。当建立交换空间的时候,系统不会问您要将它挂接在哪里,因为交换空间是不用挂在系统上的。 当您在建立最后一个分区/usr的时候, 您可以直接使用默认的大小,即所有此分区剩余的空间。您最终的 FreeBSD DiskLabel 编辑器画面会类似 图 2-24, 实际数字按您的选择而有所不同。按下 Q 键完成分区的建立。
『叁』 FREEBSD 文件无法编辑,
提示什么?用的VI还是EE?
『肆』 FreeBSD shell 脚本编程
可以用edit 你的脚本名字,在freebsd下有edit,比vi更好上手点。脚本编辑后或者创建后,要给予chmod 755 脚本名字 权限,否则无法运行。
『伍』 有谁知道如何安装配置安全的freeBSD还有php.ini怎么配置
我的FreeBSD5.3配置笔记(相同于5.4\6.0)接触FreeBSD时间不长,我发现配置FreeBSD对于象我这样的新手还是很有些困难,经过几天的研究取得了一点进展,现在我的配置方法写出来希望新手能少走一些弯路。1.安装完成配置xorg,命令如下:#Xorg -configure这时,当前目录下就多了一个xorg.conf.new的文件,把它cp到/etc/X11/下:#cp xorg.conf.new /etc/X11/xorg.conf然后,编辑xorgcfg -textmode,修改一下屏幕的分辨率.2.启动gnome在用户主目录下创建.xinitrc文件,加入以下内容:exec gnome-session#startx 即进入gnome3.启动KDE方法1:在用户主目录下创建.xinitrc文件,加入以下内容:exec startkde方法2:修改一下/usr/X11R6/1ib/X11/xinit/xinitrc文件拉到文件最后…看到..twm了吗…从这里起..后最后前面都加#吧..然后加上一句:startkde方法3:直接输入# echo "/usr/local/bin/startkde" >> ~/.xinitrc 就行了4.打开声音修改/boot/defaults/loader.conf将下面两项的NO改为YESsound_load="NO"snd_driver_load="NO"5.汉化图形界面1.安装kde-i18n-zh_CN:#cd /usr/ports/chinese/kde3-i18n-zh_CN#make install clean2.安装字体在/usr/X11R6/lib/X11/fonts/下建立TrueType目录将windows下的SIMSUN.TTC复制到TrueType目录双击SIMSUN.TTC,字体就安装好了3.更改语言环境为中国,简体中文4.在KDE的控制中心》外观和主题》字体 中修改字体为SIMSUN6.安装fcitx输入法1.通过ports安装fcitx#cd /usr/ports/chinese/fcitx#make install2.修改~/.xinitrc,添加:export LANG=zh_CN.eucCNexport LC_CTYPE=zh_CN.eucCNexport XMODIFIERS='@im=fcitx'fcitx&exec startkde6.#qtconfig然后选择–>Interface—>XIM Input Style 选Over the Spot(上面的复选框也选上)–>File–Save7.挂载windows分区并支持中文文件名1.建立挂载点,在/mnt/下建立文件夹C,D,E,F2.修改/etc/fstab文件,加入windows分区,并把分区挂载到刚才建好的目录上,设置权限为读写,语言为中文并自动挂载/dev/ad0s1 /mnt/C msdos rw,-L=zh_CN.eucCN,auto 0 0/dev/ad0s5 /mnt/D msdos rw,-L=zh_CN.eucCN,auto 0 0/dev/ad0s6 /mnt/E msdos rw,-L=zh_CN.eucCN,auto 0 0/dev/ad0s7 /mnt/F msdos rw,-L=zh_CN.eucCN,auto 0 08.激活鼠标滚轮修改/etc/xorg.conf在"Mouse"中加入Option "ZAxisMapping" "4 5"保存推出,重启X。9.调整屏幕偏移开个终端窗口运行xvidtune,调整好之后现不要退出,点一下那个“Show”按钮,终端窗口中会显示几行类似于这样的信息:hsync range 0: 31.50 – 48.50vsync range 0: 40.00 – 70.00"1024×768" 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync打开/etc/X11/XF86Config或者xorg.conf文件,找到Section "Monitor"段,在EndSection前面加入一行:# 这里填入上面显示的第3行信息,前面加上ModeLineModeLine "1024×768" 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync保存退出,重启X。FreeBSD配置:更新FreeBSD完成了安装、配置,FreeBSD基本上就算装完了。不过,目前为止没有哪个通用操作系统能够保证“bug-free”,FreeBSD也一样。在重新启动之后,我们需要做一些调整;并且,通过重新配置内核,我们可以得到一个更小、更快的操作系统。第一步要做的是同步源代码。FreeBSD是一套开放源代码的操作系统,它的全部源代码都可以通过cvsup与中央cvsup服务器,或它的某个镜像同步。cvsup是一个可选的package,同样的,它也可以从ports里面安装(/usr/ports/devel/cvsup和 /usr/ports/devel/cvsup-nogui)。考虑到许多应用程序都依赖X的库文件,在前面安装的部分我安装了它,并且直接安装了 cvsup的package。不过,如果你有足够的耐心去一个一个地make需要的ports,那么先安装ports collection,然后make cvsup-nogui也是一个不错的主意,尽管这需要比较长的时间。创建一个用于cvsup(1)的supfile,命名为stable-supfile:(default host中选定的cvsup服务器——ftp.bjpu.e.cn对访问的IP进行了限制,笔者只在北京工业大学校内使用过,因此如果您无法连接这个服务器,请尝试www.cn.freebsd.org,或cvsup.freebsd.org)*default host=ftp.bjpu.e.cn*default base=/usr*default prefix=/usr*default release=cvs tag=RELENG_4*default delete use-rel-suffixsrc-allports-all tag=.随后执行cvsup -g -L 2 stable-supfile这里需要稍微解释一下FreeBSD的几种版本。FreeBSD包括3类分支:-RELEASE,-STABLE和-CURRENT。FreeBSD 3.x、4.x和5.0是目前受到维护的版本,如果你期待稳定运行,那么,可以选择的最新版本将是FreeBSD 4.6-STABLE(如果你是在4.6.2-RELEASE发行之后更新的,那么它实际上比4.6.2-RELEASE新,并且,它正式的CVS tag是RELENG_4,即FreeBSD 4-STABLE)。那么,三类分支有什么区别呢?FreeBSD的开发是非常活跃的。系统中可能会随时引入一些新的特性。最新的代码是在-CURRENT分支中引入的。-CURRENT的修改非常频繁,每天都可能有数百处修改。使用-CURRENT分支的FreeBSD需要耐心和勇气,因为你的系统随时可能崩溃(随着FreeBSD 5.0开发尾声的接近,这种现象已经越来越少),make world也可能空手而归(没有人保证-CURRENT分支能够正常编译),此外,这个分支的性能也不好(因为调试的原因,这个分支引入了大量的调试选项,这意味着运行速度不会太快)。当然,正像它的名字那样,-CURRENT分支的版本也是最新的5.0,而且,一切FreeBSD的错误和漏洞的修正都是首先在-CURRENT分支引入的。目前,-CURRENT分支硕果仅存的只有FreeBSD 5-CURRENT(指定cvs tag时写“.”),这个分支包括了FreeBSD 5.0开发的最新进展。FreeBSD 5中将引入大量的新特性,包括核心级线程(目前FreeBSD中的线程支持仅限于用户级线程,这在多处理器的环境下性能不够好,当然,目前使用fork ()来支持的多进程线程模拟能够提供类似核心级线程的功能,但并不是所有的程序员都知道如何使用fork)、完整的Soft Updates(这一变化将提供更好的文件系统性能,同时提供更好的稳定性),等等。如果你有快速的Internet连接,一台或一些空余的机器(当然,不是生产用的服务器),并且希望为FreeBSD的开发作贡献,或者你关心操作系统的最新发展,那么,-CURRENT分支是最好的选择。此外,由于-CURRENT分支性能不好、稳定性不够等这些缺点,对于生产的服务器来说,通常运行的应该是FreeBSD-STABLE。如同它的名字那样, FreeBSD-STABLE的目的是“稳定地运行”。-CURRENT分支中的代码,在经过一段时间(通常是7到90天,但安全更新属于特例,通常会在几个小时)的验证之后,符合版本条件(有些新特性只能用于FreeBSD 5.0)的代码会被FreeBSD-STABLE吸收,这个操作称作MFC(Merge From -CURRENT,不是Microsoft Foundation Classes:P)。由于FreeBSD 5.0的第一个RELEASE至今仍然没有发布,因此,目前还没有5.0-STABLE。目前,FreeBSD-STABLE有两个版本,FreeBSD 3-STABLE和FreeBSD 4-STABLE,分别对应3.x和4.x的最新稳定版代码(对应的cvs tag分别是RELENG_3和RELENG_4)。由于版本的更新换代,其中3.x的-STABLE正在逐渐消亡。FreeBSD-STABLE每天平均会修改10个左右的文件。每隔一段时间,FreeBSD的发行工程组(Release Engineering Team)会对FreeBSD-STABLE的源代码树进行锁定。这段时间(目前的规定是30天,之前还有30天准备)内,所有的MFC操作都需要发行工程组的批准,因此,FreeBSD-STABLE在这个阶段基本不会引入任何新的特性。经过这段时间之后,发行工程组会在最后锁定ports树,并 build一份所有的package,之后,这份锁定的-STABLE,可能经过若干RC(Release Candidate),被命名为RELEASE,并制作光盘发行。顾名思义,-RELEASE的设计目标是“发行”。一个版本一旦RELEASE,那么他的功能就不会再增加了。此后的所有维护的目标都只有一个,那就是绝对稳定。如果你和-RELEASE分支同步,那么绝不会出现make无法通过的情况,而且,通常这也可以保证你的系统“绝对”稳定,因为它不会引入任何新功能(例如,4.6就是4.6,如果你想要4.6.2的功能,必须明确地指定4.6.2)。目前,FreeBSD有很多RELEASE版本,它们的cvs tag如下。我个人建议使用最新的4.6.2-RELEASE。对于多数人来说,-RELEASE是一个比较极端的选择。无论何时出现版本升级,如果你想跟进,那都必须修改supfile,如果你选择不跟进,那么就可能造成ports工作异常。如果经常更新,-RELEASE可以保证操作系统本身的安全性,但同其他分支一样,如果ports出了问题,那么也得一块 make,而既然这样,还不如使用-STABLE。如果你符合下面的条件,那么RELEASE分支可能比-STABLE分支更适合你* 你使用的软件对于操作系统的变化非常敏感,比如,它只能FreeBSD 4.5,而无法在4.6上运行;同时,你不打算采用它的更新版本,或者它的作者拒绝更新 * 操作系统的更新对于你来说没有任何意义,比如,你打算把FreeBSD当作一个相对固定的嵌入式操作系统来使用,例如,作为防火墙的一部分 * 更新会对你造成困扰,操作系统的绝大多数新特性对于你来说除了增加烦恼之外,不能带来任何其他东西。-并且,符合以下的全部条件- * 你每天察看FreeBSD,以及使用的全部软件的安全公告 * 你的Internet连接比较通畅目前我本人维护的所有主机,除了作为防火墙的那台之外,使用的都是FreeBSD-STABLE。一旦同步完源代码,就应该对整个系统进行更新。如果你没有每天察看安全公告的习惯,那就应该关心一下cvsup到底更新了哪些代码。nectar是目前 FreeBSD的Security Officer。如果你发现他一下子更新了许多代码,那么对你来说立即make world和kernel很可能是必需的。为了更新整个系统,在/usr/src中执行make world以及make kernel KERNCONF=内核配置文件名当然,也可以连起来执行:make world kernel KERNCONF=内核配置文件名如果你的计算机运行速度较慢,那么,对于基本系统的更新(相当于不包括库的一次world),可以用make most替代make world,但make world是一个不错的主意,因为它能够保证对C运行环境的改变应用到所有的程序中,如果修正的不是动态连接的C函数库,那么make world可以保证代码的一致性。make kernel是一个需要重新启动的操作。如果你的make world修改了系统的关键服务,那么最好也重新启动一下。我很少有耐心看完make world和kernel的执行,根据系统的运行速度不同,这需要一个小时到一天的时间,而且,不是所有的SSH客户端都能够长时间正确的执行,例如, SecureCRT的多个版本都有内存泄漏问题。为了解决这个问题,我用下面的命令来完成更新:make world kernel KERNCONF=内核配置文件名 clean > /var/log/world,out && reboot &这个命令能够记录更新的全过程,如果在什么地方编译失败,你可以很快地找到原因。对于多数人来说,由于后面的&&,只需要察看uptime就能知道便以是否成功。需要说明的是,FreeBSD的make world并不总能成功。有时需要修改一些环境变量才能成功完成make。为了保证make成功,在/usr/src中执行任何make操作之前,建议你看一眼UPDATING中是否有特殊的要求(这种要求并不是在FreeBSD Release的时候才会出现,很多时候他会在某个CURRENT中引入,然后随着MFC进入-STABLE分支),并且,在进行大的版本升级之前(跨 RELEASE,甚至主版本号),首先执行下面的命令mergemaster -p并在make world之后执行mergemaster -i运行mergemaster脚本需要一定的Unix配置知识,不过,由于配置文件中包含很多帮助信息,因此,只要master.passwd、group 这样的文件不出大问题(如果cvsup更新了master.passwd,那么就需要留神,因为master.passwd标准配置是root口令为空,这时需要用m来合并,而不是使用i安装),mergemaster并不会引入什么新的问题。前一条命令是更新make的配置(/etc/defaults/make.conf和/etc/make.conf)。对于多数人来说,除非进行跨版本升级,否则一般情况下是不需要这样做的。后一条命令是同步全部配置,并安装以前不存在的配置文件,而不进行提示。笔者曾经遇到过FreeBSD因为系统日期不正确而无法make的情况,因此,再次特别提醒大家,如果你的系统日期不正确,最好是用date命令修改一下,或者干脆用ntpdate或ntpd来同步时间。关于如何使用ntp,将在以后说明。以后我们将讲解FreeBSD内核的配置,以及如何配置make.conf来优化FreeBSD的编译结果。“简单的东西不容易出问题。”至理名言!事实上,削减操作系统中那些对你没用的功能是一件非常重要的事情。这不仅仅意味着一个更小的操作系统,占用更少的磁盘空间(现在的硬盘少说也有几十GB,几兆的空间根本就是九牛一毛),而且意味着你被攻击的可能性也更低——简而言之,你不需要担心操作系统中没有安装的模块存在问题会对你造成影响。这篇文章中,我们将一起对FreeBSD-i386的内核进行优化配置。这篇文章是针对FreeBSD4.7-STABLE写的,并且,FreeBSD 4.x的配置不会和这篇文章有太大出入。如果你要优化FreeBSD 5或FreeBSD 2/3的内核的话,则需要仔细参考它们的LINT文件了(后面将会提到)。[注意:FreeBSD 5.0预定将于2002年11月20日发布。FreeBSD的开发组非常重视发行版本的质量,并认为这比发行版本的计划还重要,但由于同样的原因,我们往往会发现FreeBSD实际发行的版本比预定计划晚一些,通常在半个月之内。FreeBSD 5.0作为FreeBSD近期最为重要的发行版本,很可能也会延后发表,但笔者个人认为无论如何我们在今年年底之前肯定是可以看到最终的发行版本的。 FreeBSD 5.0对系统进行了大量的修改,这一系列的文章将在FreeBSD 5.0发布当天发表针对5.0的修订版本,而现有版本将保留,但进入维护阶段,不再引入新的内容。]FreeBSD的源代码可以直接从中央cvsup服务器同步,也可以作为系统的一部分在安装的时候一兵装上。前面已经说过如何同步源代码,在此不再赘述。 FreeBSD的源代码(通常在/usr/src)包含建造基本系统的全部代码,而在/usr/src/sys中则有若干个目录,对应不同的计算机体系结构(4.x只支持i386和alpha)。i386是一个泛指的名字,包含了与Intel 80386兼容的所有机器,并不是特指80386。简单介绍一下FreeBSD的内核文件。在4.x系统中,/kernel这个文件是默认的内核,通常正常启动使用的就是它。 /kernel.GENERIC这个文件是兼容性较强的内核,如果/kernel无法引导系统,就得靠这个文件来引导。/kernel.old是本次make kernel之前的内核,通常如果你的kernel坏掉,也可以考虑使用/kernel.old来引导系统。/moles/是内核的模块,而/moles.old/是对应/kernel.old的模块。这些文件在每次替换kernel的时候都会同时替换。在5.0中,内核以及内核的模块都被保存在/boot/kernel中。在/usr/src/sys/i386/conf中有两个配置文件,GENERIC和LINT。其中GENERIC是make kernel的默认配置文件,直接make kernel生成的是GENERIC内核,但安装时命名为/kernel。系统在安装时会安装一个kernel.GENERIC,以后,这个文件不会跟随系统的make kernel更新,因此,如果你认为这个文件有必要更新的话,需要手工make kernel,并把/kernel改名为kernel.GENERIC。当然,通常并不需要这样做。LINT是包括几乎所有内核编译配置详细信息的文件。这个配置并不是用来真正建立kernel的,他的主要用途是向用户展示可用的内核编译配置。在修改内核编译配置时,最好先参考这个文件。为了配置自己的内核,应将GENERIC复制为一个另外的文件。习惯上这个文件和主机名相同。例如,我把自己的这台Web机器命名为apache.intranet.frontfree.net,就把配置文件命名为APACHE:cd /usr/src/sys/i386/confcp GENERIC APACHE随后,用ee APACHE编辑它。我们拿一个实际的GENERIC文件来说明。为了节省篇幅,这个文件头上的注释被删掉了一部分。machine i386 # 体系模型为i386cpu I386_CPU # 支持80386cpu I486_CPU # 支持80486cpu I586_CPU # 支持Pentiumcpu I686_CPU # 支持Pentium Pro以及更高ident GENERIC # 内核文件的名字maxusers 0 # 自动检测同时允许的最大用户数#makeoptions DEBUG=-g # 包含调试符号。通常只有current版本打开options MATH_EMULATE #支持协处理器模拟options INET #支持互联网options INET6 #IPv6通讯协议options FFS #伯克利快速文件系统options FFS_ROOT #FFS作为根设备[必须保留]options SOFTUPDATES #打开FFS soft updates支持options UFS_DIRHASH #提高大型目录的支持options MFS #内存文件系统options MD_ROOT #MD作为根设备options NFS #Network Filesystemoptions NFS_ROOT #NFS作为根设备(需要NFS)options MSDOSFS #MSDOS文件系统options CD9660 #ISO 9660文件系统(光盘)options CD9660_ROOT #CD-ROM作为根设备(需要CD9660)options PROCFS #进程文件系统options COMPAT_43 #兼容4.3BSD[必须保留]options SCSI_DELAY=15000 #检测SCSI设备前的延时(ms)options UCONSOLE #用户可以夺取控制台options USERCONFIG #boot -c编辑器 editoroptions VISUAL_USERCONFIG #菜单式boot -c编辑器options KTRACE #ktrace(1)支持options SYSVSHM #SYSV-风格的共享内存options SYSVMSG #SYSV-风格的消息队列options SYSVSEM #SYSV-风格的信号量(semaphores)options P1003_1B #Posix P1003_1B实时扩展options _KPOSIX_PRIORITY_SCHEDULINGoptions ICMP_BANDLIM #对恶意ICMP请求进行限制options KBD_INSTALL_CDEV # 在/dev安装一个CDEV设备# 下面两项在制作对称多处理器(SMP)内核时需要#options SMP #对称多处理器内核#options APIC_IO #对称(APIC) I/Odevice isadevice eisadevice pci# 软驱device fdc0 at isa? port IO_FD1 irq 6 drq 2device fd0 at fdc0 drive 0device fd1 at fdc0 drive 1## 如果使用东芝Libretto以及他的Y-E Y-E Data PCMCIA软驱# 不要使用上面的fdc0,而应使用#device fdc0# ATA以及ATAPI设备device ata0 at isa? port IO_WD1 irq 14device ata1 at isa? port IO_WD2 irq 15device atadevice atadisk # ATA 磁盘驱动器(IDE硬盘)device atapicd # ATAPI 光驱device atapifd # ATAPI 软驱device atapist # ATAPI 磁带机options ATA_STATIC_ID #静态设备编号# SCSI控制器device ahb # EISA AHA1742 familydevice ahc # AHA2940 板载AIC7xxx设备device amd # AMD 53C974 (Tekram DC-390(T))device isp # Qlogic familydevice ncr # NCR/Symbios Logicdevice sym # NCR/Symbios Logic (较新的芯片组)options SYM_SETUP_LP_PROBE_MAP=0x40# 使用ncr可以在配置了sym和ncr的情况下挂接旧的NCR设备device adv0 at isa?device adwdevice bt0 at isa?device aha0 at isa?device aic0 at isa?device ncv # NCR 53C500device nsp # Workbit Ninja SCSI-3device stg # TMC 18C30/18C50# SCSI 外设device scbus # SCSI 总线(如果使用SCSI设备,必须有)device da # Direct Access (硬盘)device sa # Sequential Access (磁带,等等)device cd # CDdevice pass # Passthrough device (直接 SCSI 访问)# 通过SCSI子系统接口的RAID控制器device asr # DPT SmartRAID V, VI and Adaptec SCSI RAIDdevice dpt # DPT Smartcache – See LINT for options!device iir # Intel Integrated RAIDdevice mly # Mylex AcceleRAID/eXtremeRAIDdevice ciss # Compaq SmartRAID 5* series# RAID控制器device aac # Adaptec FSA RAID, Dell PERC2/PERC3device aacp # SCSI passthrough for aac (requires CAM)device ida # Compaq Smart RAIDdevice amr # AMI MegaRAIDdevice mlx # Mylex DAC960 familydevice twe # 3ware Escalade# atkbdc0 控制键盘和PS/2鼠标device atkbdc0 at isa? port IO_KBDdevice atkbd0 at atkbdc? irq 1 flags 0x1device psm0 at atkbdc? irq 12device vga0 at isa?# 启动画面和屏幕保护程序pseudo-device splash# syscons 是默认的控制台驱动,类似SCO控制台device sc0 at isa? flags 0x100# 对于pcvt vt220控制台,启用这个和PCVT_FREEBSD#device vt0 at isa?#options XSERVER # 在vt控制台支持X服务器#options FAT_CURSOR # 使用大光标# 如果你是用ThinkPad,将下面的一行和其他PCVT相关设备的注释去掉#options PCVT_SCANSET=2 # IBM使用非标准键盘# 浮点运算支持 – 请勿禁用device npx0 at nexus? port IO_NPX irq 13# 电源管理支持device apm0 at nexus? disable flags 0x20 # Advanced Power Management# PCCARD (PCMCIA) 支持device carddevice pcic0 at isa? irq 0 port 0x3e0 iomem 0xd0000device pcic1 at isa? irq 0 port 0x3e2 iomem 0xd4000 disable# 串口(COM)device sio0 at isa? port IO_COM1 flags 0x10 irq 4device sio1 at isa? port IO_COM2 irq 3device sio2 at isa? disable port IO_COM3 irq 5device sio3 at isa? disable port IO_COM4 irq 9# 并口device ppc0 at isa? irq 7device ppbus # 并口总线 (所有并口设备都需要)device lpt # 打印机device plip # 并口TCP/IPdevice ppi # 并口接口设备#device vpo # 需要scbus和da# PCI 以太网适配器device de # DEC/Intel DC21x4x (“Tulip'')device em # Intel PRO/1000 adapter Gigabit Ethernet Card (“Wiseman'')device txp # 3Com 3cR990 (“Typhoon'')device vx # 3Com 3c590, 3c595 (“Vortex'')# 使用公共的MII总线控制器代码的PCI以太网适配器# 注意:一定要保留'device miibus'以确保可用device miibus # MII总线支持device dc # DEC/Intel 21143 and various workalikesdevice fxp # Intel EtherExpress PRO/100B (82557, 82558)device pcn # AMD Am79C97x PCI 10/100 NICsdevice rl # RealTek 8129/8139device sf # Adaptec AIC-6915 (“Starfire'')device sis # Silicon Integrated Systems SiS 900/SiS 7016device ste # Sundance ST201 (D-Link DFE-550TX)device tl # Texas Instruments ThunderLANdevice tx # SMC EtherPower II (83c170 “EPIC'')device vr # VIA Rhine, Rhine IIdevice wb # Winbond W89C840Fdevice xl # 3Com 3c90x (“Boomerang'', “Cyclone'')device bge # Broadcom BCM570x (“Tigon III'')# ISA以太网适配器# 'device ed' 需要 'device miibus'device ed0 at isa? port 0x280 irq 10 iomem 0xd8000device exdevice epdevice fe0 at isa? port 0x300# Xircom Ethernetdevice xe# PRISM I IEEE 802.11b wireless NIC.device awi# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really# exists only as a PCMCIA device, so there is no ISA attachment needed# and resources will always be dynamically assigned by the pccard code.device wi# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP# mode (the factory default). If you set the switches on your ISA# card for a manually chosen I/O address and IRQ, you must specify# those parameters here.device an# The probe order of these is presently determined by i386/isa/isa_compat.c.device ie0 at isa? port 0x300 irq 10 iomem 0xd0000#device le0 at isa? port 0x300 irq 5 iomem 0xd0000device lnc0 at isa? port 0x280 irq 10 drq 0device cs0 at isa? port 0x300device sn0 at isa? port 0x300 irq 10# 伪设备 – 数字表示分配多少个pseudo-device loop # 环回网络pseudo-de
『陆』 在freebsd中怎么打开编译器编写C
clang本来就是为了比gcc更方便调用调试而开发的,用 ee/vi 等编辑器都可以写文件,编译和执行。如果一定要和win环境对比,嗯,应该难以比较。
『柒』 如何配置FreeBSD X桌面(虚拟机环境)
FreeBSD7.0Release中文桌面(Gnome)安装配置1.安装xorg以及gnome通过安装盘可以找到相关软件包:xorg-7.3_1gnome2-2.20.12.重启后测试Xorg# Xorg -config xorg.conf.new有鼠标显示即成功,按下"Ctrl+Alt+<-"换回命令下.3.配置.xinitrc#echo “/usr/X11R6/bin/gnome-session” > ~/.xinitrc \\运行startx时默认的桌面系统为Gnome或#echo “gnome-session” > ~/.xinitrc#startx \\进入Gnome桌面系统,此时显示的是英文环境。4.中文环境设置Gnome本身就可以支持中文环境,只需要简单编辑配置文件即可(root用户默认为.cshrc文件,普通用户默认为 .shrc文件):#cd ~ \\切换到用户根目录#ee .cshrc (或 ee .shrc ) 加入下面的内容:setenv LANG zh_CN.eucCN (或 export LANG='zh_CN.eucCN' )setenv LC_LANG zh_CN.eucCN (或 export LC_LANG='zh_CN.eucCN' )保存、退出、重启电脑,登陆后运行startx,进入Gnome,此时界面已经是中文版。注:root用户的默认shell环境为csh,对应的配置文件为.cshrc;一般用户的默认shell环境为sh,对应的配置文件为.shrc。这样行了
『捌』 教你配置freebsdftpnfs方法
出现以下提示就可以进行FTP设置了:UserConfirmationRequestedDoyouwanttohaveanonymousFTPaccesstothismachine?Yes[No]选择默认的[No]并按下Enter键将仍然可以让在这台机器上有账号的用户访问FTP。要启用FTP匿名访问,用方向键选择[Yes]然后按Enter键。您会看到下面(或类似)的画面:默认的匿名FTP配置按F1键可以查看在线帮助文档:ThisscreenallowsyoutoconfiguretheanonymousFTPuser.Thefollowingconfigurationvaluesareeditable:UID:TheuserIDyouwishtoassigntotheanonymousFTPuser.AllfilesuploadedwillbeownedbythisID.Group:WhichgroupyouwishtheanonymousFTPusertobein.Comment:Stringdescribingthisuserin/etc/passwdFTPRootDirectory:WherefilesavailableforanonymousFTPwillbekept.Uploadsubdirectory:WherefilesuploadedbyanonymousFTPuserswillgo.默认的FTP根目录将放在/var目录下。如果您的/var目录空间不足以应付您的FTP需求,您可以将FTP的根目录改为/usr目录下的/usr/ftp目录。当您对一切配置都满意后,请按Enter键继续。UserConfirmationRequestedCreateawelcomemessagefileforanonymousFTPusers?[Yes]No如果您选择[Yes]并按下Enter键,系统会自动打开文本编辑器让您编辑FTP的欢迎信息。编辑FTP欢迎信息此文本编辑器叫做ee。按照指示修改信息文本或是稍后再用您喜爱的文本编辑器来修改。请记住画面下方显示的文件位置。按Esc将弹出一个默认为a)leaveeditor的对话框。按Enter退出并继续。再次按Enter将保存修改。配置NFS网络文件系统(NFS)可以让您可以在网络上共享您的文件。一台机器可以配置成NFS服务器、客户端或两者并存。出现以下提示开始配置:UserConfirmationRequestedDoyouwanttoconfigurethismachineasanNFSserver?Yes[No]如果您不想安装网络文件系统,请选择[No]然后按Enter键。如果您选择[Yes]将会出现一个对话框提醒您必须先建立一个exports文件。MessageOperatingasanNFSservermeansthatyoumustfirstconfigurean/etc/exportsfiletoindicatewhichhostsareallowedcertainkindsofaccesstoyourlocalfilesystems.Press[Enter]nowtoinvokeaneditoron/etc/exports[OK]按Enter键继续。系统会启动文本编辑器让您编辑exports文件。编辑exports文件按照指示加入真实输出的文件目录或是稍后用您喜爱的编辑器自行编辑。请记下画面下方显示的文件名称及位置。按下Esc键会出现一具对话框,默认选项是a)leaveeditor。按下Enter离开并继续。NFS客户端允许您的机器访问NFS服务器。UserConfirmationRequestedDoyouwanttoconfigurethismachineasanNFSclient?Yes[No]按照您的需要,选择[Yes]或[No]然后按Enter。
『玖』 FREEBSD 系统文件无法查看编辑 文件权限是 777 用户是root用户
freebsd我没有用过,所以不清楚。CentOS 我是用 chmod u+w 你的文件名 更改权限的。例如我想编辑sudoers 就用命专令 chmod u+w /etc/sudoers然后再gedit /etc/sudoers改完之后再用chmod u-w还原属权限。希望能帮到你
『拾』 谁有FreeBSD的使用手册啊
24.4 拨入服务Contributed by Guy Helmer. Additions by Sean Kelly. 为拨入服务配置FreeBSD系统与连接到终端是非常相似的,除非您正在使用 modem来拨号而不是终端。24.4.1 外置vs.内置modem 外置modem看起来很容易拨号。 因为,外置 modem 可以通过储存在非易失性的RAM中的参数来配置,它们通常提供指示器来显示重要的RS-232信号的状态。不停闪光的信号灯能给用户留下比较深刻的印象,而且指示器也可以用来查看modem是否正常地工作。 内置modem通常缺乏非易失性的RAM, 所以对它们的配置可能会限制在通过 DIP 开关来设置。如果您的内置modem有指示灯,您也很难看得到。24.4.1.1 Modem和线缆 如果您使用一个外置的 modem,那您将需要适当的电缆线。一个标准的串口线应当足够长以至普通的信号能够连接上:表 24-4. 信号名称缩写 全名 RD 收到数据 (Received Data) TD 传出数据 (Transmitted Data) DTR 数据终端就绪 (Data Terminal Ready) DSR 数据集就绪 (Data Set Ready) DCD 数据载波检测 (Data Carrier Detect) (RS-232 的收到线路信号检测器) SG 信号地 (Signal Ground) RTS 要求发送数据 (Request to Send) CTS 允许对方发送数据 (Clear to Send) FreeBSD 对速度超过 2400 bps 的情形需要通过 RTS 和 CTS 信号来完成流控制, 通过 CD 信号来检测呼叫响应和挂机,并通过 DTR 信号来在会话结束时对调制解调器进行复位。某些电缆在连接时没有提供全部需要的信号, 这会给您带来问题, 例如在挂断时登录会话不消失,这就有可能是电缆的问题。 与其它类 UNIX? 操作系统类似, FreeBSD 使用硬件信号来检测呼叫响应, 以及在挂断时挂断并复位调制解调器。 FreeBSD 避免发送命令给调制解调器, 或监视其状态。 如果您熟悉通过调制解调器来连接基于 PC 的 BBS 系统, 这可能看起来有点难用。24.4.2 串口的考虑 FreeBSD支持基于 NS8250, NS16450, NS16550 和 NS16550A 的EIA RS-232C通讯接口。 8250和16450设备有单字符缓冲。 16550设备提供了一个 16 个字符的缓冲,可以提高更多的系统性能。 因为单字符缓冲设备比 16 个字符的缓冲需要更多的系统资源来工作,所以基于16550A的接口卡可能更好。 如果系统没有活动的串口, 或有较大的负载, 16 字符缓冲的卡对于低错误率的通讯来说更好。24.4.3 快速预览 对于终端, init 会在每个配置串口上为每个拨入连接产生一个 getty 进程。 例如, 如果一个 modem 被附带在 /dev/ttyd0 中,用命令ps ax可以显示下面这些: 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0 当用户拨上modem, 并使用它进行连接时, CD 线就会被 modem 认出。 内核注意到载波信号已经被检测到, 需要完成 getty 端口的打开。 getty 发送一个登录:在指定的初始线速度上的命令行。 Getty 会检查合法的字符是否被接收,在典型的配置中, 如果发现 “垃圾”, getty 就会设法调节线速度,直到它接收到合理的字符。 用户在键入他/她的登录名称后, getty执行/usr/bin/login, 这会要求用户输入密码来完成登录,然后启动用户的shell。24.4.4 配置文件 如果希望允许拨入您的 FreeBSD 系统, 在 /etc 目录中有三个系统配置文件需要您关注。 其一是 /etc/gettytab,其中包含用于 /usr/libexec/getty 服务的配置信息。 其二是 /etc/ttys, 它的作用是告诉 /sbin/init 哪些 tty 设备上应该运行 getty。 最后,关于端口的初始化命令, 应放到 /etc/rc.d/serial 脚本中。 关于在 UNIX 上配置拨入调制解调器有两种主要的流派。一种是将本地计算机到调制解调器的 RS-232 接口配置为固定速率。 这样做的好处是,远程用户总能立即见到系统的登录提示符, 而其缺点则是,系统并不知道用户真实的数据速率是多少, 因而, 类似 Emacs 这样的程序, 也就无法调整它们绘制屏幕的方式, 以便为慢速连接改善响应时间。 另一种流派将调制解调器的 RS-232 接口速率配置为随远程用户的连接速率变化。 例如, 对 V.32bis (14.4 Kbps) 连接, 调制解调器会让自己的 RS-232 接口以 19.2 Kbps 的速率运行, 而 2400 bps 连接, 则会使调制解调器的 RS-232 接口以 2400 bps 的速率运行。 由于 getty 并不能识别具体的调制解调器的连接速率反馈信息, 因此, getty 会以初始速度给出一个 login: 提示, 并检查用户的响应字符。如果用户看到乱码, 则他们应知道此时应按下 Enter 键,直到看到可以辨认的提示符为止。 如果数据速率不匹配, 则 getty 会将用户输入的任何信息均视为 “乱码”, 并尝试以下一种速率来再次给出 login: 提示符。 这一过程可能需要令人作呕地重复下去, 不过一般而言,用户只要敲一两下键盘就能看到正确的提示符了。 显然, 这种登录过程看起来不如前面所介绍的 “锁定速率” 方法那样简单明了, 但使用低速连接的用户,却可以在运行全屏幕程序时得到更好的交互响应。 这一节将尽可能公平地介绍关于配置的信息,但更着力于介绍调制解调器速率随连接速率变化的配置方法。24.4.4.1 /etc/gettytab /etc/gettytab是一个用来配置 getty 信息的 termcap 风格的文件。 请看看 gettytab 的联机手册了解完整的文件格式和功能列表。24.4.4.1.1 锁定速度的配置 如果您把您的modem的数据通讯率锁定在一个特殊的速度上, 您不需要对 /etc/gettytab 文件作任何变化。24.4.4.1.2 匹配速度的配置 您将需要在 /etc/gettytab 中设置一个记录来告诉 getty 您希望在 modem 上使用的速度。 如果您的 modem 的速率是 2400 bit/s, 则可以使用现有的 D2400 的记录。## Fast dialup terminals, 2400/1200/300 rotary (can start either way)#D2400|d2400|Fast-Dial-2400:\ :nx=D1200:tc=2400-baud:3|D1200|Fast-Dial-1200:\ :nx=D300:tc=1200-baud:5|D300|Fast-Dial-300:\ :nx=D2400:tc=300-baud: 如果您有一个更高速度的 modem, 必须在 /etc/gettytab 中添加一个记录。 下面是一个让您可以以最高 19.2 Kbit/s 的用在 14.4 Kbit/s的modem上的接口记录:## Additions for a V.32bis Modem#um|V300|High Speed Modem at 300,8-bit:\ :nx=V19200:tc=std.300:un|V1200|High Speed Modem at 1200,8-bit:\ :nx=V300:tc=std.1200:uo|V2400|High Speed Modem at 2400,8-bit:\ :nx=V1200:tc=std.2400:up|V9600|High Speed Modem at 9600,8-bit:\ :nx=V2400:tc=std.9600:uq|V19200|High Speed Modem at 19200,8-bit:\ :nx=V9600:tc=std.19200: 这样做的结果是 8-数据位, 没有奇偶校验的连接。 上面使用19.2 Kbit/s的连接速度的例子,也可以使用 9600 bit/s (for V.32), 2400 bit/s, 1200 bit/s,300 bit/s, 直到 19.2 Kbit/s。 通讯率的调节使用 nx= (“next table”) 来实现。 每条线使用一个 tc= (“table continuation”) 的记录来加速对于一个特殊传输率的标准设置。 如果您有28.8 Kbit/s的modem,或您想使用它的 14.4Kbit/s 模式,就需要使用一个更高的超过 19.2 Kbit/s 的通讯速度的 modem。 这是一个启动 57.6 Kbit/s 的 gettytab 记录的例子:## Additions for a V.32bis or V.34 Modem# Starting at 57.6 Kbps#vm|VH300|Very High Speed Modem at 300,8-bit:\ :nx=VH57600:tc=std.300:vn|VH1200|Very High Speed Modem at 1200,8-bit:\ :nx=VH300:tc=std.1200:vo|VH2400|Very High Speed Modem at 2400,8-bit:\ :nx=VH1200:tc=std.2400:vp|VH9600|Very High Speed Modem at 9600,8-bit:\ :nx=VH2400:tc=std.9600:vq|VH57600|Very High Speed Modem at 57600,8-bit:\ :nx=VH9600:tc=std.57600: 如果您的 CPU 速度较低, 或系统的负荷很重, 而且没有 16550A 的串口,您可能会在57.6 Kbit/s 上得到 “sio” “silo”错误。24.4.4.2 /etc/ttys /etc/ttys文件的配置在 例 24-1中介绍过。 配置 modem 是相似的, 但我们必须指定一个不同的终端类型。锁定速度和匹配速度配置的通用格式是:ttyd0 "/usr/libexec/getty xxx" dialup on 上面的第一条是这个记录的设备特定文件 —— ttyd0 表示 /dev/ttyd0 是这个 getty 将被监视的文件。 第二条 "/usr/libexec/getty xxx" 是将运行在设备上的进程 init。 第三条,dialup,是默认的终端类型。 第四个参数, on, 指出了线路是可操作的 init。也可能会有第五个参数, secure, 但它将只被用作拥有物理安全的终端 (如系统终端)。 默认的终端类型可能依赖于本地参考。 拨号是传统的默认终端类型,以至用户可以定制它们的登录脚本来注意终端什么时候拨号, 和自动调节它们的终端类型。 然而,作者发现它很容易在它的站点上指定 vt102 作为默认的终端类型,因为用户刚才在它们的远程系统上使用的是VT102模拟器。 您对/etc/ttys作修改之后,您可以发送 init 进程给一个 HUP 信号来重读文件。您可以使用下面的命令来发送信号:# kill -HUP 1如果这是您的第一次设置系统, 您可能要在发信号 init 之前等一下,等到您的 modem 正确地配置并连接好。 24.4.4.2.1 锁定速度的配置 对于一个锁定速度的配置,您的 ttys 记录必须有一个为 getty 提供固定速度的记录。 对于一个速度被锁定在 19.2kbit/s 的 modem, ttys 记录是这样的:ttyd0 "/usr/libexec/getty std.19200" dialup on 如果您的 modem 被锁定在一个不同的数据速度, 为 std.speed 使用适当的速度来代替 std.19200。 确信您使用了一个在 /etc/gettytab 中列出的正确的类型。24.4.4.2.2 匹配速度的设置 在一个匹配速度的设置中,您的 ttys 录需要参考在 /etc/gettytab 适当的起始 “auto-baud” 记录。 例如, 如果您为一个以 19.2 Kbit/s 开始的可匹配速度的 modem 添加上面建议的记录, 您的 ttys 记录可能是这样的:ttyd0 "/usr/libexec/getty V19200" dialup on24.4.4.3 /etc/rc.d/serial 高速调制解调器, 如使用 V.32、 V.32bis, 以及 V.34 的那些, 需要使用硬件 (RTS/CTS) 流控制。 您可以在 /etc/rc.d/serial 中增加 stty 命令来在 FreeBSD 内核中, 为调制解调器设置硬件流控制标志。 例如, 在 1 号串口 (COM2) 拨入和拨出设备上配置 termios 标志 crtscts, 可以通过在 /etc/rc.d/serial 增加下面的设置来实现:# Serial port initial configurationstty -f /dev/ttyd1.init crtsctsstty -f /dev/cuad1.init crtscts24.4.5 Modem 设置 如果您有一个 modem, 它的参数能被存储在非易失性的 RAM 中,您将必须使用一个终端程序来设置参数 (比如 MS-DOS? 下的 Telix 或者 FreeBSD 下的 tip)。使用同样的通讯速度来连接 modem 作为初始速度 getty 将使用和配置 modem 的非易失性 RAM 来适应这些要求:连接时宣告 CD操作时宣告 DTR; DTR 消失时挂断线路并复位调制解调器CTS 传输数据流控制禁用 XON/XOFF 流控制RTS 接收数据流控制宁静模式 (无返回码)无命令回显 请阅读您 modem 的文档找到您需要用什么命令和 DIP 接口设置。 例如,要在一个 U.S. Robotics? Sportster? 14400 的外置 modem 上设置上面的参数,可以用下面这些命令:ATZAT&C1&D2&H1&I0&R2&W 您也可能想要在 modem 上寻找机会调节这个设置, 例如它是否使用 V.42bis 和 MNP5 压缩。 外置 modem 也有一些用来设置的 DIP 开关, 也许您可以使用这些设置作为一个例子:Switch 1: UP —— DTR NormalSwitch 2: N/A (Verbal Result Codes/Numeric Result Codes)Switch 3: UP —— Suppress Result CodesSwitch 4: DOWN —— No echo, offline commandsSwitch 5: UP —— Auto AnswerSwitch 6: UP —— Carrier Detect NormalSwitch 7: UP —— Load NVRAM DefaultsSwitch 8: N/A (Smart Mode/Dumb Mode) 在拨号 modem 上的结果代码应该被 禁用/抑制, 以避免当 getty 在 modem 处于命令模式并回显输入时错误地给出 login: 提示时可能造成的问题。 这样可能导致 getty 与 modem 之间产生更长的不必要交互。24.4.5.1 锁定速度的配置 对于锁定速度的配置, 您需要配置 modem 来获得一个不依赖于通讯率的稳定的 modem到计算机 的传输率。 在一个 U.S. Robotics Sportster 14400 外置 modem 上, 这些命令将锁定 modem 到计算机的传输率:ATZAT&B1&W24.4.5.2 匹配速度的配置 对于一个变速的配置, 您需要配置 modem 调节它的串口传输率匹配接收的传输率。 在一个 U.S. Robotics Sportster 14400 的外置 modem 上, 这些命令将锁定 modem 的错误修正传输率适合命令要求的速度,但允许串口速度适应没有纠错的连接:ATZAT&B2&W24.4.5.3 检查modem的配置 大多数高速的modem提供了用来查看当前操作参数的命令。 在USR Sportster 14400外置modem上, 命令 ATI5 显示了存储在非易失性RAM中的设置。要看看正确的 modem 操作参数, 可以使用命令 ATZ 然后是 ATI4。 如果您有一个不同牌子的 modem, 检查 modem 的使用手册看看如何双重检查您的 modem 的配置参数。24.4.6 问题解答 这儿是几个检查拨号modem的步骤。24.4.6.1 检查FreeBSD系统 把您的modem连接到FreeBSD系统, 启动系统, 然后, 如果您的 modem 有一个指示灯,当登录时看看 modem 的 DTR 指示灯是否亮: 会在系统控制台出现命令行——如果它亮, 意味着 FreeBSD 已经在适当的通讯端口启动了一个 getty 进程, 等待 modem 接收一个呼叫。 如果DTR指示灯不亮, 通过控制台登录到 FreeBSD系统,然后执行一个 ps ax 命令来看 FreeBSD 是否正在正确的端口运行 getty进程。您将在进程显示中看到像这样的一行: 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1 如果您看到是这样的: 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0 modem 不接收呼叫, 这意味着 getty 已经在通讯端口打开了。这可以指出线缆有问题或 modem 错误配置, 因为 getty 无法打开通讯端口。 如果您没有看到任何 getty 进程等待打开想要的 ttydN 端口, 在 /etc/ttys 中双击您的记录看看那儿是否有错误。 另外,检查日志文件 /var/log/messages 看看是否有一些来自 init 或 getty 的问题日志。 如果有任何信息, 仔细检查配置文件 /etc/ttys 和 /etc/gettytab,还有相应的设备文件 /dev/ttydN,是否有错误,丢失记录,或丢失了设备指定文件。24.4.6.2 尝试接入Try Dialing In 设法拨入系统。 确信使用8位, 没有奇偶检验, 在远程系统上的1阻止位。如果您不能立刻得到一个命令行, 试试每隔一秒按一下 Enter。如果您仍没有看到一个登录: 设法发送一个 BREAK。如果您正使用一个高速的 modem 来拨号, 请在锁定拨号 modem 的接口速度后再试试。 如果您不能得到一个登录:prompt,再检查一下 /etc/gettytab,重复检查:在/etc/ttys 中指定的初始可用的名称与 /etc/gettytab 的一个可用的相匹配。每个 nx= 记录与另一个 gettytab 可用名称匹配。每个 tc= 记录与另一个 gettytab可用名称相匹配。 如果您拨号但 FreeBSD 系统上的 modem 没有回应, 确信 modem 能回应电话。 如果 modem 看起来配置正确了, 通过检查 modem 的指示灯来确认 DTR 线连接正确。 如果您做了好几次,它仍然无法工作,打断一会,等会再试试。 如果还不能工作,也许您应该发一封电子邮件给 FreeBSD 一般问题邮件列表 寻求帮助。