codesun 发布的文章

dnsmasq 部署笔记

发现实验室留着5台主机没人用,反正闲着也是闲着,于是琢磨着部署个集群玩玩,貌似有很多东西并没有亲自体验过,如ceph,mesos,kubernetes等,之后应该会贴出相关的笔记。

无论部署什么服务,只要是分布式的,基本离不开域名解析,因为我基本记不住IP,所以DNS服务就很必要了。

本文为我在ubuntu上配置DNS服务的笔记,这里ubuntu的版本为16.04,DNS程序为DNSmasq。

阅读剩余部分

POSIX进程组笔记

题目起得有点大,这里加上POSIX只是为了说明本文描述并不是windows下的进程。

前几天遇到了一个问题,在terminal触发ctrl+c,也就是发送SIGINT信号后,程序的所有进程都收到了该信号,觉得有点奇怪,故收集并整理了相关资料。

本文为我的笔记,可能有不正确的点,望指正。

阅读剩余部分

多进程日志实现

在绝大多数情况下,日志模块对于一个程序而言是必不可少的,对于服务端程序的重要性尤甚。

因为几乎所有服务端程序都是作为守护进程而运行的,因此指望开发者从terminal获取程序的状态并不现实,这个时候,依靠日志记录关键信息就很重要了,当然日志的作用远不止记录信息,它还可以用于恢复,相信从事数据库开发的读者对这应该十分熟悉,但这不属于本文的范畴。

对于Java开发者而言,他们是很幸福的,因为有log4j,甚至还有slf4j,而对于C语言而言,并没有发现同等地位或者功能的日志库,更别提类似slf4j之类的日志库抽象层了。于是,我拿起键盘,再次造起了轮子。

本文谈及的实现是为了多进程程序而设计的,简单而有效是我们追求的目标,通常而言简单的程序性能不会太差,当然乱用锁的除外。

阅读剩余部分

程序验证技术——霍尔逻辑

赶在四月的最后一天,发篇有点营养的文章。

如何确保程序的正确性?这是一个很难的问题,答案是暂时没有。

在本站的很多篇文章中,我都说过测试并不可靠。因为测试的目标就是尽可能找出错误,测试用例越完善,覆盖度越高,能够找出的错误就越多。但问题就在于,一般情况下,测试用例的覆盖度根本达不到100%。

阅读剩余部分