内容简介:我从去年首先介绍一下我使用的谈完了我使用的版本,再聊一下我使用
我从去年 8
月份起开始尝试使用 OpenBSD
,到现在已经有一年多的时间了,是时候做一个简单的分享了。
首先介绍一下我使用的 OpenBSD
版本。刚开始的时候,我使用的都是 -release
的版本。后来为了编译最新的源代码,就切换到了 -current
版本,也就是当前开发的版本。曾经有人评价说 OpenBSD
的 -current
版本比有些软件的 -release
还要稳定,这也从另一个角度说明 OpenBSD
代码的质量很高。但是如果你真的打算在商用环境下使用 -current
版本,还是谨慎为妙,因为我就碰到过用了 -current
版本,系统无法启动的情况;此外也有过代码回滚的先例。所以如果你的系统很重要,在使用 -current
版本之前还是先找另外一台机器测试一下,这样比较保险。
谈完了我使用的版本,再聊一下我使用 OpenBSD
的主要用途:
(1)一本好的 Unix
教材。 OpenBSD
的 man
手册和代码质量都很高。所以当我想深入了解一个 Unix
工具时,我会选择阅读 OpenBSD
上的代码实现和相应的手册。我曾经花费大块的业余时间阅读 netcat
的代码,当然收获也颇丰:不仅全面复习了网络编程的相关知识,发现 bug
并提交 patch
,还写了一本介绍 netcat
的英文 小册子
。可以说”一举多得“!
(2)一个好的测试环境。 OpenBSD
在编译和运行程序时经常会给出一些其它系统无法提供的有用信息,这对及时发现和解决程序问题有着很大的帮助。比如下面程序:
#include <mutex> int main(void) { std::mutex m; m.lock(); return 0; }
在 Arch Linux
上编译运行没有任何提示信息:
$ clang++ -g -pthread -std=c++11 test_mutex.cpp $ ./a.out $
但在 OpenBSD
上却给了如下提示:
# clang++ -g -pthread -std=c++11 test_mutex.cpp # ./a.out pthread_mutex_destroy on mutex with waiters!
此外, OpenBSD
还曾经帮我找到了一个很难查的内存 bug
,相关内容可以参考这篇文章。
(3) OpenBSD
系统还提供了一些有用的工具,比如 tcpbench
。我自己把它移植到 Linux
平台(代码在 这里
),方便自己使用。
来而不往非礼也,我不光只对 OpenBSD
进行“索取”,也给予“了回馈”:
(1)提交 patch
。这一年来提交了十几个 patch
,不过都是一些简单的 bug
修改。
(2)撰写教程。分享了一些使用 OpenBSD
的经验,希望可以帮助到有需要的使用者。
(3)开发工具:
a) Linux
系统上有个很好用的 lscpu
命令,可惜 BSD
系统没有。我自己实现了一个针对 BSD
系统的 lscpu
命令。因为我个人对 X86
的体系最熟悉,所以这个 lscpu
在 X86
平台上可以显示详尽的信息,但是对于其他的处理器,比如 ARM
,只能显示基本的信息。
b)为 OpenBSD
”量身定制“了一个 free
命令。
c) libtlscpp
, OpenBSD
自带 libtls
的 C++
封装:用户不用再操心相关资源释放,甚至不用太了解 TLS
协议,就可以写出 TLS
应用程序。
(4)移植程序。如果发现有好的开源 工具 不支持 OpenBSD
平台,我也会尝试着去移植过来,比如 google/benchmark
,我就把它移植到了 OpenBSD
上。
补充说明: OpenBSD
另一个被人称道之处的是安全性,这个网上可以搜索到很多文章。此外,我并没有把 OpenBSD
当做一个日常办公环境,所以对 OpenBSD
是否是一个适合大众的操作系统这一话题也没什么发言权。
以上就是我使用 OpenBSD
一年的总结。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。