Tuesday, March 23, 2010

Nature by Numbers

Wednesday, March 17, 2010

Tuesday, March 9, 2010

ports-mgmt/portaudit

警告: 安装任何应用程序之前, 应首先检查 http://vuxml.freebsd.org/ 上是否有关于您所安装的应用程序的安全问题报告。

您也可以安装 ports-mgmt/portaudit,它能够自动地检查已经安装的应用程序的漏洞; 此外,在您安装程序之前它也会首先检查是否存在已知的漏洞。 另外, 您也可以使用 portaudit -F -a 这个命令在安装了某个软件包之后作出检查。

in reference to:

"ports-mgmt/portaudit"
- FreeBSD 使用手册 (view on Google Sidewiki)

联机手册

这些在线手册分下列章节:

1.

用户命令。
2.

系统调用以及错误代码。
3.

C 库文件里的函数说明。
4.

设备驱动程序。
5.

文件格式。
6.

游戏以及其他娱乐。
7.

各种资讯。
8.

系统维护以及命令。
9.

内核开发情况。

  在某些情况下,同样的主题也会出现在在线手册的不同章节。 举个例子,系统里有chmod这个用户命令,而又有个 chmod() 系统调用。 在这种情形下,您应当向 man 命令指定需要的内容:

% man 1 chmod

in reference to:

"这些在线手册分下列章节: 用户命令。 系统调用以及错误代码。 C 库文件里的函数说明。 设备驱动程序。 文件格式。 游戏以及其他娱乐。 各种资讯。 系统维护以及命令。 内核开发情况。   在某些情况下,同样的主题也会出现在在线手册的不同章节。 举个例子,系统里有chmod这个用户命令,而又有个 chmod() 系统调用。 在这种情形下,您应当向 man 命令指定需要的内容: % man 1 chmod"
- FreeBSD 使用手册 (view on Google Sidewiki)

发送一个信号给进程

在某些情况下,FreeBSD也会向应用软件发送信号。假如一个应用软件含有恶意写入并试图去访问内存,那是不可想象的,FreeBSD会向那个进程发送 段式违规 信号 (SIGSEGV)。假如一个应用软件使用alarm(3)系统去进行周期性调用闹钟功能,每当达到时间时, FreeBSD会向应用软件发送闹钟信号(SIGALRM)。

  有两个信号可以停止进程:SIGTERM 和 SIGKILL。 SIGTERM比较友好,进程能捕捉这个信号,根据您的需要来关闭程序。在关闭程序之前,您可以结束打开的记录文件和完成正在做的任务。在某些情况下, 假如进程正在进行作业而且不能中断,那么进程可以忽略这个 SIGTERM信号。

  对于SIGKILL信号,进程是不能忽略的。 这是一个 '“我不管您在做什么,立刻停止”'的信号。 假如您发送SIGKILL信号给进程, FreeBSD就将进程停止在那里。[4].

  您可能会去使用 SIGHUP、 SIGUSR1 和 SIGUSR2信号。 这都是些通用的信号,各种应用程序都可以应用在各方面的信号发送。

  假如您改变了web系统的配置文件──并想web系统去重读它的配置,您可以停止然后再启动httpd。但这样做web系统会导致一个短暂的中断周期,那样是不受欢迎的。几乎所有的守护进程在编写时,都会指定对SIGHUP 信号进行响应从而重读配置文件。 所以, 最好的方法,就不是杀死并重启 httpd, 而是发一个 SIGHUP 信号给它。因为在这方面没有一个标准,不同的守护进程有不同的用法,所以不了解时应读一下守护进程的文档。

  发送信号可用kill(1) 命令,请参考kill(1)所列出的例子。

发送一个信号给进程

这个例子显示了怎样去发一个信号给inetd(8)。 inetd配置文件是/etc/inetd.conf, 如果想inetd 去重读文件系统的话,可以给它发一个SIGHUP 信号。

1.

寻找您要发送信号的进程ID,可以用ps(1) 加 grep(1)来完成。 grep(1)命令被用在搜索输出方面,搜索您指定的字符串。这命令是由普通用户来执行的,而inetd(8)是root用户运行的, 所以必须给ps(1)带上ax选项。

% ps -ax | grep inetd
198 ?? IWs 0:00.00 inetd -wW

得出 inetd(8) PID号是198。有时 grep inetd 命令也出现在输出中, 这是因为在这方面 ps(1) 也是寻找列表中运行进程。
2.

使用 kill(1) 去发送信号。因为 inetd(8) 是由 root启动的, 您必须使用 su(1) 去 变为 root 用户。

% su
Password:
# /bin/kill -s HUP 198

和大多数 UNIX 命令一样, kill(1) 如果完成了任务, 就不会给出任何消息。 假如您发送信号给一个不属于您的进程, 您会看到 “kill: PID: Operation not permitted”. 假如输错了PID号,把信号发送到其他进程,那是坏事。或者您侥幸,把信号发送到不存在的进程, 您会看见 “kill: PID: No such process”.

in reference to:

"发送一个信号给进程"
- FreeBSD 使用手册 (view on Google Sidewiki)

BSD不输Linux

四. 教堂与集市 教堂,指代少数人把持的地方。集市,指代人们都无拘无束的地方。 而事实是,Linux正在变成教堂。 在得到众多厂商支持的同时,Linux日趋臃肿,核心代码提供者逐渐被少数大厂商把持。 相反,BSD系统一直处于更自由的状态,在一个不显眼的角落默默奉献。 而苹果看到了BSD的价值,基于BSD核心的OS X系统拯救了苹果公司。 其实只算苹果系统的安装数量,就比Linux桌面多不知多少倍了。而作为服务器的BSD类服务器,相信未必比Linux要少,Solaris的内核Sun Os以及AIX都是BSD的衍生。它们甚至工作在更苛刻、更机密的环境下。

五. 各个版本均有所长 BSD的版本并不像Linux那样多,就笔者本人来说,下载一个Linux,打个包,就为Linux又贡献了一个distro。 但是这个有什么意义呢? 所有的Linux都使用同一个内核,然后人们在这个内核上扩展内容形成不同的distro。也就是说,相当数量版本的Linux系统最大的区别只是装的程序不一样。 但各主要版本的BSD其分工非常明确而不重复:全能发展的FreeBSD、注重安全的OpenBSD、具有强大可移植能力的NetBSD。我相信 Linux也有,而且有很多,但是我想知道,那么多有什么意义呢?为什么不专注做好同一件事呢? BSD衍生的操作系统,设置也与BSD都是天壤之别:Solaris专注于强大的线程机制,AIX用于大型机,OS X则给了强大的BSD核心一身华丽而易用的外衣。

in reference to:

"BSD不输Linux"
- BSD不输Linux_cnBeta 博文精选_cnBeta.COM (view on Google Sidewiki)