openbsd mysql_使用OpenBSD一年的总结

我从去年 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

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

一年的总结。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值