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

一年的总结。

openbsd mysql_使用OpenBSD一年的总结相关推荐

  1. OpenBSD基金会收到锤子科技约140万捐赠款

    11月26日消息,给开源项目捐款一向是锤子科技发布会的传统,去年发布会的门票收入捐给了国人章亦春主导的开源项目OpenResty.今年,锤子科技选择将收益捐赠给OpenBSD基金会.OpenBSD基金 ...

  2. OpenBSD 将迎来原生的 Hypervisor

    据 OpenBSD 开发者 Mike Larkin 透露, 他在过去的几个月里一直在致力于实现一个名为"vmm"的 OpenBSD 上的原生的 hypervisor.Larkin ...

  3. FreeBSD NetBSD OpenBSD DragonFlyBSD 操作系统

    BSD是一套经过精心设计的完整的操作系统,值得我们去学习和使用 BSD一系对文档的积累还是比Linux要完整,但却没有Linux那么丰富,所以我的工作环境就一直是Linux + KDE,然后在Virt ...

  4. [ZT]BSD家族大观——FreeBSD、OpenBSD、NetBSD

    本文出自:http://www.zdnet.com.cn 作者: <个人电脑> (2002-04-04 08:02:01) 暂时忘记Windows和Linux吧 不太出名的BSD也许才是你 ...

  5. 编译OpenSSH8.4的RPM包及升级

    目录 一.安装相关依赖包 二.创建rpmbuild目录并下载源码 三.打包及排错 四.升级到OpenSSH 8.4p1 以下是打包好的OpenSSH 8.4p1,包括7个rpm包,欢迎下载使用. Op ...

  6. CentOS7 打包RPM 升级OpenSSH8.3

    目录 一.源码包 二.打包RPM 2.1.准备阶段 2.2.打包排错阶段 三.升级 漏扫设备发现OpenSSH有漏洞,需要升级到OpenSSH 8.1及以上版本,那么干脆就直接升级到发文时最新的版本, ...

  7. 2007年100款最佳安全工具谱

    2007年100款最佳安全工具谱   在2000和2003年非常成功的推出了安全工具调查后,Insecure.Org 非常高兴为大家带来2006年度的安全工具调查.我-Fyodor对nmap-hack ...

  8. RHEL7升级openssh7.4p1教程

    由于升级OpenSSH涉及到安全性问题,为保险起见,在升级前最好安装telnet服务作为备用方案,然后在升级成功后再停止telnet即可. 一.OpenSSH升级相关源码包下载地址: zlib  ht ...

  9. centos7离线安装ansible

    centos7离线安装ansible: 1.通过在线的centos7将rpm包下载好了,上传到指定服务器. 下载官方repo,rpm -iUvh http://dl.Fedoraproject.org ...

  10. linux升级ssh到6.6版本,centos6.5升级openssh到7.4版本

    一个同事rpm卸载openssh的时候,使用了参数--erase,导致libssl.so.10依赖也被卸载了,导致yum,wget等服务器无法运行,使用yum等命令时会出现以下报错 libssl.so ...

最新文章

  1. 游戏+云服务器+自动驾驶样样全,看NVIDIA为中国市场带来了哪些好东西 | GTC China 2018...
  2. 近期活动盘点:2019第六届世界互联网大会、智慧城市的人本尺度城市形态讲座、高管AI大数据能力研修班、英伟达初创企业展示开启报名...
  3. 【计网】IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段/数字-如192.168.0.1/24是什么意思?
  4. Django2.x中url路由的path()与re_path()参数解释(亲测)
  5. 大神级的布线,人家攻城狮是如何做到的?
  6. 牛客题霸 [判断一个链表是否为回文结构] C++题解/答案
  7. OpenCV精进之路(八):图像轮廓和图像分割修复——轮廓查询和多边形包围轮廓
  8. 米家扫地机器人是石头代工的_石头科技的隐忧:智能扫地机器人前有高山 后有追兵...
  9. android图片根据屏幕适配
  10. 获取请求真实IP地址的工具类
  11. DirectShow 视频采集
  12. oracle startup mount是什么意思,startup,startup mount,startup nomount之间的区别-Oracle
  13. 内网映射软件之80端口映射和全端口映射实现发布网站访问内网
  14. 搭建内网音频直播源基于天津相声广播音频
  15. 二叉树---先序遍历(递归)
  16. laradock、phpstrom、xdebug配置实现断点调试
  17. 百度智能云章淼:详解企业级七层负载均衡开源软件BFE
  18. 【交叉编译】海思平台和安霸平台交叉编译
  19. selenium基础八种元素定位
  20. 常见的四种排名函数的用法(sql)

热门文章

  1. WinPcap笔记:VisualStudio2015配置WinCap
  2. 关于NaN、undefined、null——基础必懂
  3. 为什么 scala无法导入 scala.actors.Actor
  4. 【Linux学习笔记04】Linux常用命令
  5. UnityEditor三自定义窗口 案例2
  6. 闲的没事,自己动手修改上兴3.2源代码(2)
  7. 上兴远控流量分析报告
  8. JS获取今天是星期几
  9. ubuntu16.04 双显卡 安装N卡驱动
  10. Spark:Container exited with a non-zero exit code 137