freebsd编译内核
㈠ FreeBSD 总是提示这个不知道是为什么,大概每隔24秒重复显示一次,那位高手能知道这是什么意思怎么解决
建议重新编译内核,看不出什么具体问题,应该是编译内核的时候缺少模块,不要太过精简了
㈡ 谁有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 on
24.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 configuration
stty -f /dev/ttyd1.init crtscts
stty -f /dev/cuad1.init crtscts
24.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 上设置上面的参数,可以用下面这些命令:
ATZ
AT&C1&D2&H1&I0&R2&W
您也可能想要在 modem 上寻找机会调节这个设置, 例如它是否使用 V.42bis 和 MNP5 压缩。
外置 modem 也有一些用来设置的 DIP 开关, 也许您可以使用这些设置作为一个例子:
Switch 1: UP —— DTR Normal
Switch 2: N/A (Verbal Result Codes/Numeric Result Codes)
Switch 3: UP —— Suppress Result Codes
Switch 4: DOWN —— No echo, offline commands
Switch 5: UP —— Auto Answer
Switch 6: UP —— Carrier Detect Normal
Switch 7: UP —— Load NVRAM Defaults
Switch 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 到计算机的传输率:
ATZ
AT&B1&W
24.4.5.2 匹配速度的配置
对于一个变速的配置, 您需要配置 modem 调节它的串口传输率匹配接收的传输率。 在一个 U.S. Robotics Sportster 14400 的外置 modem 上, 这些命令将锁定 modem 的错误修正传输率适合命令要求的速度,但允许串口速度适应没有纠错的连接:
ATZ
AT&B2&W
24.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 一般问题邮件列表 寻求帮助。
㈢ 怎样设置FreeBSD的字符界面的分辨率
字符界面(非图形界面)的分辨率是无法设置的;
如果是图形界面下的终端显示,可以设置软件。
㈣ FreeBSD 为什么要废弃 GCC 改用 Clang/LLVM
因为 GCC 是 GPL/LGPL 的,和 BSD 的协议不兼容(但是 BSD 的源代码可以被 GPL 项目引用,但是会被污染成 GPL)。这不符合 BSD 的协议风格。
所以 FreeBSD 换了编译器,自己写一个编译器还是很不容易的,正好 llvm 是 BSD 的协议。和 FreeBSD 自己的协议完全一样,就拿来用了。
㈤ 求FreeBSD的教程
FreeBSD连载(94):基于NAT的负载均衡技术 (王波 2月3日 17:06)
FreeBSD连载(93):反向代理负载均衡 (王波 2月3日 02:26)
FreeBSD连载(92):基于DNS的负载均衡 (王波 2月2日 01:04)
FreeBSD连载(91):提升静态网页服务能力的综合方式 (王波 2月1日 13:24)
FreeBSD连载(90):单服务器性能调整 (王波 1月31日 13:22)
FreeBSD连载(89):CGI和SSI的安全性 (王波 1月30日 16:17)
FreeBSD连载(88):安全连接方式SSL (王波 1月29日 00:38)
FreeBSD连载(87):基于用户的访问控制 (王波 1月28日 17:07)
FreeBSD连载(86):对IP地址和域名的控制 (王波 1月27日 14:59)
FreeBSD连载(85):配置Apache服务器(2) (王波 1月26日 15:03)
FreeBSD连载(84):配置Apache服务器(1) (王波 1月25日 13:29)
FreeBSD连载(83):Apache基本安装 (王波 1月24日 14:29)
FreeBSD连载(82):数据处理方式 (王波 1月23日 01:55)
FreeBSD连载(81):超文本传输协议HTTP (王波 1月22日 18:15)
FreeBSD连载(80):构建防火墙 (王波 1月21日 13:06)
FreeBSD连载(79):设置和使用ipfilter (王波 1月20日 15:30)
FreeBSD连载(78):设置和使用ipfw/natd (王波 1月19日 18:03)
FreeBSD连载(77):安全工具 (王波 1月18日 13:28)
FreeBSD连载(76):设置基本系统 (王波 1月17日 13:00)
FreeBSD连载(75):防火墙技术 (王波 1月16日 15:26)
FreeBSD连载(74):安全问题 (王波 1月15日 14:21)
FreeBSD连载(73):认证与加密 (王波 1月14日 13:25)
FreeBSD连载(72):设置和使用DHCP (王波 1月13日 15:16)
FreeBSD连载(71):DHCP的工作过程 (王波 1月12日 14:45)
FreeBSD连载(70):用SharityLight装SMB文件系统 (王波 1月11日 17:03)
FreeBSD连载(69):使用smbclient访问Windows资源 (王波 1月10日 14:29)
FreeBSD连载(68):根据Windows网络设置Samba (王波 1月9日 18:26)
FreeBSD连载(67):配置samba (王波 1月8日 17:02)
FreeBSD连载(66):安装samba (王波 1月7日 13:42)
FreeBSD连载(65):SMB/CIFS协议 (王波 1月6日 13:05)
FreeBSD连载(64):NetBIOS名字解析 (王波 1月6日 11:41)
FreeBSD连载(63):集成Unix和Windows的方式 (王波 1月4日 19:35)
FreeBSD连载(62):升级系统 (王波 1月3日 13:55)
FreeBSD连载(61):其他内核设置选项 (王波 1月3日 13:39)
FreeBSD连载(60):缺省内核配置选项 (王波 1月3日 11:23)
FreeBSD连载(59):编译安装新内核 (王波 12月31日 16:36)
FreeBSD连载(58):为编译内核准备源代码 (王波 12月30日 15:44)
FreeBSD连载(57):可执行程序格式 (王波 12月29日 15:01)
FreeBSD连载(56):手工编译安装程序 (王波 12月28日 11:11)
FreeBSD连载(55):Ports Collection (王波 12月27日 16:23)
FreeBSD连载(54):配置文件XF86Config (王波 12月26日 16:09)
FreeBSD连载(53):中文X服务器 (王波 12月25日 12:50)
FreeBSD连载(52):外挂式中文显示与输入软件 (王波 12月24日 15:52)
FreeBSD连载(51):中文X应用软件 (王波 12月23日 13:49)
FreeBSD连载(50):定制X Window的基本方法 (王波 12月22日 13:45)
FreeBSD连载(49):进入X Window (王波 12月21日 16:20)
FreeBSD连载(48):X Window的基本概念 (王波 12月21日 15:56)
FreeBSD连载(47):使用xf86config配置X服务器 (王波 12月19日 17:59)
FreeBSD连载(46):使用XF86Setup配置X服务器 (王波 12月19日 17:46)
FreeBSD连载(45):安装XFree86 (王波 12月17日 18:23)
FreeBSD连载(44):X Free86的硬件要求 (王波 12月16日 13:34)
FreeBSD连载(43):NFS服务器 (王波 12月15日 18:57)
FreeBSD连载(42):NFS客户支持 (王波 12月14日 14:09)
FreeBSD连载(41):在FreeBSD上查看邮件 (王波 12月14日 13:50)
FreeBSD连载(40):邮件服务器 (王波 12月12日 18:59)
FreeBSD连载(39):定义自己的名字服务 (王波 12月11日 15:02)
FreeBSD连载(38):配置缓冲或转发方式的named (王波 12月10日 11:40)
FreeBSD连载(37):DNS的体系结构 (王波 12月9日 14:20)
FreeBSD连载(36):PPP协议 (王波 12月8日 13:09)
FreeBSD连载(35):串口和modem (王波 12月7日 11:30)
FreeBSD连载(34):手工配置网络 (王波 12月6日 11:44)
FreeBSD连载(33):DOD参考模型 (王波 12月5日 18:11)
FreeBSD连载(32):系统备份 (王波 12月5日 17:50)
FreeBSD连载(31):系统日志 (王波 12月3日 17:11)
FreeBSD连载(30):配置打印机 (王波 12月2日 23:09)
FreeBSD连载(29):打印机配置:系统结构 (王波 12月2日 00:52)
FreeBSD连载(28):Packages Collection (王波 11月30日 17:05)
FreeBSD连载(27):应用软件的类别 (王波 11月29日 12:23)
FreeBSD连载(26):进程的权限 (王波 11月28日 18:31)
FreeBSD连载(25):定时执行程序 (王波 11月28日 18:17)
FreeBSD连载(24):查看系统状态 (王波 11月26日 16:10)
FreeBSD连载(23):配置系统时间 (王波 11月25日 12:44)
FreeBSD连载(22):调整控制台设置 (王波 11月24日 17:43)
FreeBSD连载(21):管理交换设备 (王波 11月23日 13:03)
FreeBSD连载(20):建立文件系统 (王波 11月22日 15:30)
FreeBSD连载(19):检查硬盘调整文件系统的目录结构 (王波 11月21日 18:29)
FreeBSD连载(18):软盘操作 (王波 11月21日 17:24)
FreeBSD连载(17):安装文件系统 (王波 11月19日 16:00)
FreeBSD连载(16):设备文件 (王波 11月18日 16:37)
FreeBSD连载(15):文件的属性 (王波 11月17日 19:49)
FreeBSD连载(14):shell设置 (王波 11月16日 15:04)
FreeBSD连载(13):超级用户root、登录类别 (王波 11月15日 19:16)
FreeBSD连载(12):用户管理-增加用户 (王波 11月14日 17:20)
FreeBSD连载(11):系统登录与退出 (王波 11月13日 04:20)
FreeBSD连载(10):系统启动脚本 (王波 11月12日 13:20)
FreeBSD连载(09):系统启动过程 (王波 11月11日 16:03)
FreeBSD连载(08):其他安装问题 (王波 11月10日 20:57)
FreeBSD连载(07):基本系统配置 (王波 11月9日 18:11)
FreeBSD连载(06):安装FreeBSD ( 11月8日 16:29)
FreeBSD连载(05):安装之前的准备 (王波 11月7日 18:20)
FreeBSD连载(04):FreeBSD的相关资源 (王波 11月6日 02:09)
FreeBSD连载(03):其他相关系统和组织 (王波 11月5日 14:46)
FreeBSD连载(02):FreeBSD的功能特点 (王波 11月4日 18:28)
FreeBSD连载(01):FreeBSD的起源 (王波 11月3日 17:19)
FreeBSD连载:FreeBSD使用大全目录 (王波 11月3日 03:58)
FreeBSD连载:作者自序 (王波 11月3日 03:14)
http://tech.sina.com.cn/focus/FreeBSD/index.shtml
㈥ 如何在freebsd下交叉编译arm-linux
1. 下载源文件、补丁和建立编译的目录 2. 建立内核头文件 3. 建立二进制工具(binutils) 4. 建立初始编译器(bootstrap gcc) 5. 建立c库(glibc) 6. 建立全套编译器(full gcc)
㈦ 有谁知道如何安装配置安全的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 即进入gnome
3.启动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改为YES
sound_load="NO"
snd_driver_load="NO"
5.汉化图形界面
1.安装kde-i18n-zh_CN:
#cd /usr/ports/chinese/kde3-i18n-zh_CN
#make install clean
2.安装字体
在/usr/X11R6/lib/X11/fonts/下建立TrueType目录
将windows下的SIMSUN.TTC复制到TrueType目录
双击SIMSUN.TTC,字体就安装好了
3.更改语言环境为中国,简体中文
4.在KDE的控制中心》外观和主题》字体 中修改字体为SIMSUN
6.安装fcitx输入法
1.通过ports安装fcitx
#cd /usr/ports/chinese/fcitx
#make install
2.修改~/.xinitrc,添加:
export LANG=zh_CN.eucCN
export LC_CTYPE=zh_CN.eucCN
export XMODIFIERS='@im=fcitx'
fcitx&
exec startkde
6.#qtconfig
然后选择-->Interface--->XIM Input Style 选Over the Spot(上面的复选框也选上)-->File--Save
7.挂载windows分区并支持中文文件名
1.建立挂载点,在/mnt/下建立文件夹C,D,E,F
2.修改/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 0
8.激活鼠标滚轮
修改/etc/xorg.conf
在"Mouse"中加入
Option "ZAxisMapping" "4 5"
保存推出,重启X。
9.调整屏幕偏移
开个终端窗口运行xvidtune,调整好之后现不要退出,点一下那个“Show”按钮,终端窗口中会显示几行类似于这样的信息:
hsync range 0: 31.50 - 48.50
vsync range 0: 40.00 - 70.00
"1024x768" 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync
打开/etc/X11/XF86Config或者xorg.conf文件,找到Section "Monitor"段,在EndSection前面加入一行:
# 这里填入上面显示的第3行信息,前面加上ModeLine
ModeLine "1024x768" 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-suffix
src-all
ports-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/conf
cp GENERIC APACHE
随后,用ee APACHE编辑它。我们拿一个实际的GENERIC文件来说明。
为了节省篇幅,这个文件头上的注释被删掉了一部分。
machine i386 # 体系模型为i386
cpu I386_CPU # 支持80386
cpu I486_CPU # 支持80486
cpu I586_CPU # 支持Pentium
cpu 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 Filesystem
options 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编辑器 editor
options 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_SCHEDULING
options ICMP_BANDLIM #对恶意ICMP请求进行限制
options KBD_INSTALL_CDEV # 在/dev安装一个CDEV设备
# 下面两项在制作对称多处理器(SMP)内核时需要
#options SMP #对称多处理器内核
#options APIC_IO #对称(APIC) I/O
device isa
device eisa
device pci
# 软驱
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
device 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 14
device ata1 at isa? port IO_WD2 irq 15
device ata
device atadisk # ATA 磁盘驱动器(IDE硬盘)
device atapicd # ATAPI 光驱
device atapifd # ATAPI 软驱
device atapist # ATAPI 磁带机
options ATA_STATIC_ID #静态设备编号
# SCSI控制器
device ahb # EISA AHA1742 family
device ahc # AHA2940 板载AIC7xxx设备
device amd # AMD 53C974 (Tekram DC-390(T))
device isp # Qlogic family
device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (较新的芯片组)
options SYM_SETUP_LP_PROBE_MAP=0x40
# 使用ncr可以在配置了sym和ncr的情况下挂接旧的NCR设备
device adv0 at isa?
device adw
device bt0 at isa?
device aha0 at isa?
device aic0 at isa?
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50
# SCSI 外设
device scbus # SCSI 总线(如果使用SCSI设备,必须有)
device da # Direct Access (硬盘)
device sa # Sequential Access (磁带,等等)
device cd # CD
device pass # Passthrough device (直接 SCSI 访问)
# 通过SCSI子系统接口的RAID控制器
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device dpt # DPT Smartcache - See LINT for options!
device iir # Intel Integrated RAID
device mly # Mylex AcceleRAID/eXtremeRAID
device ciss # Compaq SmartRAID 5* series
# RAID控制器
device aac # Adaptec FSA RAID, Dell PERC2/PERC3
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device amr # AMI MegaRAID
device mlx # Mylex DAC960 family
device twe # 3ware Escalade
# atkbdc0 控制键盘和PS/2鼠标
device atkbdc0 at isa? port IO_KBD
device atkbd0 at atkbdc? irq 1 flags 0x1
device psm0 at atkbdc? irq 12
device 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 card
device pcic0 at isa? irq 0 port 0x3e0 iomem 0xd0000
device pcic1 at isa? irq 0 port 0x3e2 iomem 0xd4000 disable
# 串口(COM)
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
device sio1 at isa? port IO_COM2 irq 3
device sio2 at isa? disable port IO_COM3 irq 5
device sio3 at isa? disable port IO_COM4 irq 9
# 并口
device ppc0 at isa? irq 7
device ppbus # 并口总线 (所有并口设备都需要)
device lpt # 打印机
device plip # 并口TCP/IP
device 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 workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device pcn # AMD Am79C97x PCI 10/100 NICs
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (``Starfire'')
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device ste # Sundance ST201 (D-Link DFE-550TX)
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 ``EPIC'')
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device 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 0xd8000
device ex
device ep
device fe0 at isa? port 0x300
# Xircom Ethernet
device 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 0xd0000
device lnc0 at isa? port 0x280 irq 10 drq 0
device cs0 at isa? port 0x300
device sn0 at isa? port 0x300 irq 10
# 伪设备 - 数字表示分配多少个
pseudo-device loop # 环回网络
pseudo-de
㈧ FreeBSD 到底是 微内核 还是单片式内核
所有的硬件驱动都必须是直接进入内核或编译成内核模块,否则kernel不知道how to communicate with your fucking device,你看看APUE就能大致了解,
Windows安装硬件驱动的时候需要reboot的原因是需要加载驱动,而这个驱动不能直接加载,
你在FreeBSD或者Linux上面安装一个驱动的时候就是一个内核模块(基本上你用不着干这个,内核支持你的设备,编译时告诉系统你需要这个设备就行了。这里没有安装驱动这么一个概念,但是某些硬件厂商确实是提供驱动程序),你可以直接编译进入内核,你也可以编译成模块,然后随意的加载入或者是卸载这个模块,而且根本不用reboot。
㈨ FreeBSD和Linux到底有什么不同
1、许可证
正如我们所知道的,Linux操作系统是基于 GPL 许可证授权下的。该许可证可防止开源软件被转换为封闭源代码软件及确保源代码的可用性。 GPL 许可证的目的就是防止二进制包成为唯一的软件发行源。
而 BSD 许可证的限制则要少得多,它甚至允许二进制包成为唯一的发行源。这就是核心差异,可以这样理解:GPL 许可证让您有权拥有任何你想要使用该软件的方法,但你必须确保提供源代码给下一个使用它的人(包括你对它的改变部分)。而 BSD 许可证并不是要求你必须那么做。( 译者注:这里分别是维基网络上对 BSD 及 GPL 许可证的解释)
2、代码控制
BSD 的代码不是被控制在任何一个人手里,而 Linux的内核基本上被 Linus Torvalds ( Linux创始人)所控制,BSD 并没有单一的人来说什么可以或什么不可以进入代码。相反,BSD 通过一个核心小组” Core Team”来管理该项目,这个核心小组比非核心小组有更多的发言权来指导 BSD 社区的发展方向,(译者注:而据我所知,FreeBSDD 核心小组的成员会每两年选举一次。)
3、内核vs 操作系统
BSD 项目维护的是整个操作系统,而 Linux则只是主要集中在单一的内核上面。这点确实是需要注意的,虽然这两个系统上都运行着许多相同的软件。
4、UNIX-Like
这里有一个关于 BSD vs Linux的古老说法:” BSD is what you get when a bunch of UNIX hackers sit down to try to port a UNIX system to the PC. Linux is what you get when a bunch of PC hackers sit down and try to write a UNIX system for the PC “,这里表达了很多。你会发现 BSD 系统更为类似于 UNIX ,而事实上它就是传统 UNIX 的直接衍生品。而 Linux,则是一个松散的基于 UNIX 衍生品( Minix)而新创建的一个 OS 。
5、基本系统
这是一个关于 BSD 与 Linux 之间差异的至关重要的理念。 Linux的”基本系统”是并不真正存在的,许多人会说,Linux的基本系统就是内核,但问题是如果没有任何可用的应用程序的话,那么这个内核是完全没有价值的。而另一方面,BSD 则有一个包括众多工具的基本系统,甚至 libc 也是基本系统的一部分。因为这些组件都被作为一个基本系统,所以它们都是被一起开发和打包的,许多事实表明这样更能创建出一个更具凝聚力的整体。
6、更多来自于源代码
由于 BSD 的开发方式(使用 Ports 系统)的关系,所以用户们更多的是从源代码来安装程序,而不是预先编译好的二进制包。这是一个优势还是劣势?这取决于不同的用户。如果你更多的想从友好或易用性方面考虑的话,看到这一点后你也许会有放弃的念头,对于新用户更是如此。但一些新的用户也有想要从源代码编译安装,这可能比较累人。但是,从源码安装也有一定的优势,比如库版本控制,通过特殊的包来构建系统等等。
7、升级
由于 BSD 的开发方式的原因(见第5项),你可以利用一条指令就可以升级你的基本系统到最新版本( Freebsd 下是用 freebsd-update fetch update 命令)。或者你也可以下载整个源代码树,然后通过编译来升级。而在Linux中,你也可以通过内置的包管理系统来升级系统。前者(BSD)仅更新基本系统,而后者( Linux)则会升级整个系统。不过请记住,BSD 中升级到最新的基本系统并不意味着所有的附加软件包也将会被更新,而Linux升级的时候,所有的软件包都会被升级。这是否意味着 Linux处理得更好吗?在我看未必。我经常会看到Linux在升级时出现严重错误,从而需要重新安装整个系统,但这个现象基本不太可能发生在 BSD 的升级过程中。
8、前沿技术
基本上你不太可能会看到 BSD 系统运行着任何非常前沿版本的软件。而在 Linux 这一方面,大量的发行版会分发前沿版本的软件包。如果你是一个”If it isn’t broken, don’t fix it”这样观点的持有者的话,你将会是 BSD 的超级粉丝。但是,如果你很新潮,想要体验一切最新的东西,那么你最好尽快迁移到Linux。
9、硬件支持
你会发现,通常情况下 Linux 的硬件支持要比 BSD 更早一些。但这并不是说 BSD 没有像 Linux那样支持足够多的硬件,它只是意味着在某些情况下 Linux 会在 BSD 之前先支持某些硬件。因此,如果你想要最新的、最好的显卡的话,基本上不用考虑 BSD 了。如果你有一个包含了最新无线芯片的新型笔记本的话,建议你选择 Linux,运气好的话也许它会支持。
10、用户群
在这里我冒险概括一下计算机用户们,但我想先声明一下每一个事物都有例外。下面我要向你展示我对用户分布方面的概括。
Mac –> Windows –> Linux–> BSD –> UNIX
㈩ FreeBSD做服务器的好处是什么比较WIN和LINUX的区别.
稳定、安全、性能的综合选择,如果你认为服务器的最重要指标不只是速度快,那么FreeBSD一定会让你充满惊喜,FBI的服务器就用FreeBSD。下面是的压力测试(下载大图查看)
测试环境:均在虚拟机环境下,不和真机对比测试。其它没说明的信息均代表一致,软件的安装均使用包管理方式,没使用源代码安装,系统没做任何调优。3个虚拟服务器同时打开,每测试一个服务器均测试两次,以最好的结果为准。(测试结果顺序:FreeBSD、Ubuntu、Win2019)。注意:nginx服务器版本没统一,会稍微影响结果的公平性,但在合理范围之内。
ab重要指标:Requests per second(越大越好)、Time per request(越小越好)、Transfer rate(越大越好,大流量下的吞吐量)
结论:FreeBSD在大压力情况下的性能要比ubuntu略好,稳定性、安全性、健壮性也要比Linux好。当然如果要是用于深度学习而不是web,我可能会选Linux。
另外,安全都是相对的,虽然默认情况下*BSD比Linux安全,但并不代表你维护起来就安全,账号密码、ssh安全,权限,web程序的安全,都会影响系统安全性(web站点还是推荐使用wordpress最新版,安全插件使用:WP Cerber Security,比All In One WP Security略好,但即使刚入门,也比windows经常打补丁放心的多。只是FreeBSD调试wordpress还需要提高更多的技术,不是简单的pkginstall就完了,需要对nginx、php、mysql有足够的掌握,这些看起来复杂,但会了又觉得其乐无穷,而且绝对会培养起传统黑客的精神和体会到简洁的强大。