idprio和rtprio

| Kernel

记一笔,没啥特别。

Unix 系统的分时调度中,nice值(通过 nice(1) 来控制)是管理员告诉调度器的一个参数,这个参数令内核在考虑就绪进程优先级时,根据其值适当增大或减少执行绪的动态优先级。很明显,如果采用抢占式调度,如果执行绪等待时间较长,或者由于某种原因获得了优先级奖励(例如I/O导致的等待),即使有更重要的任务需要执行,内核还是会将这个执行绪调度进来并进行执行;反之,如果执行绪使用的 CPU 很多(计算密集型任务,如压缩等等),即使这个执行绪进行的就是最重要的任务,它仍然可能被置入休眠状态。

阅读全文…( 本文约 676 字,阅读大致需要 2 分钟 )

密码阴谋论

| Security

大家都喜欢阴谋论,所以今天说个关于密码的。话说,假如你拿到了一个大网站的密码数据库,然后恰好这个数据库里面的密码又都是明文,但这个数据有点旧了,怎么样才能立即得到其中的活跃用户的密码呢?

假设你可以控制若干家网络公司所使用的网络基础设施,例如事先装了一些监控非法活动的防火墙的话,方法就很简单了:公布这个数据库,或者公布至少其中的一部分,然后做简单的监听就可以了。这个过程不但可以知道他们的新密码是什么,而且可以知道旧密码是否是对的,还可以知道他们的安全习惯如何,要知道,假如没有这个事件,绝大多数人可能正靠着他们的简单密码睡大觉。

当然,攻击者显然还会注意到,这些网站,以及很多其他网站,多数还都没有对用户做最起码的保护,即使用 https 来保护登录过程。

阅读全文…( 本文约 1356 字,阅读大致需要 3 分钟 )

作弊条:几个不太常用的git库管操作

| Development | #作弊条 | #cheatsheet | #git

配合 svn 使用 git 时可能会遇到许多问题,例如两个人分别做了 git svn clone,然后希望合并到同一个 git 库中。如何做合并呢?假定两个库分别是 old, new,将这两个库对应的分支和对应的源分支 (svn/*) 通过 .git/config 分别复制到不同的分支名字下面,例如 svn/releng/8.2 和 old-svn/releng/8.2。假定需要合并的分支是 old/my8.2,则做以下操作:

阅读全文…( 本文约 470 字,阅读大致需要 1 分钟 )

unbound之DNSSEC缓存服务器作弊条

| Security

DNSSEC 是一种验证域名信息真实性的协议扩展。个人之前一直觉得这事相当的蛋疼:DNS协议本身是不安全的,而DNSSEC无非是增加了数字签名验证,而这验证还依赖于相当复杂的密钥更新和分发机制,这一切都给它的推广带来了困难。

阅读全文…( 本文约 1060 字,阅读大致需要 3 分钟 )

netmap进 -CURRENT

| Kernel

近日, netmap 已经正式进入 -CURRENT (r227614)。目前联编带 netmap 的内核需要做下面的操作:

% cd /usr/src/sys
% patch -p0 < dev/netmap/head.diff

然后在内核联编配置中加入:

阅读全文…( 本文约 259 字,阅读大致需要 1 分钟 )

clang静态分析工具作弊条

| Development

📜 历史文件已不具备现实意义

文章介绍的是旧版 clang 的用法。

静态分析是一种辅助的代码品质提高手段,简而言之静态分析大致是走一个类似编译的过程(或者走完生成副产品),然后给出代码中可能存在的问题。

阅读全文…( 本文约 437 字,阅读大致需要 1 分钟 )

FreeBSD 的 InfiniBand 支持

| Development

现时 InfiniBand 硬件已经相当廉价。有些 4x 的 InfiniBand 适配器已经可以在 $100 以内拿到。由于 InfiniBand 可以提供高带宽、低延迟的数据传输,而且点对点对联不需要交换机,因此可以以十分低廉的价格满足近实时同步,或分离存储服务这样的需求。

今年年初的时候, Isilon我厂Panasys 联合资助了 FreeBSD 上的 InfiniBand 协议栈的实现。这个实现基于 OpenFabrics Alliance 的 OFED,对基于 Mellanox 芯片的多种常见的 InfiniBand 卡都提供了支持。这些代码目前已合并至 FreeBSD 的开发主线,并将随 FreeBSD 9.0-RELEASE 发布。

阅读全文…( 本文约 647 字,阅读大致需要 2 分钟 )

有关"非正常终止"

| Development

多年以前在 USENIX HotOS 2003 论文集中看到了 一篇 关于 “Crash only software” 的论文,当时有一些想法,但很多没有认真地实践。最近做的东西用到的这方面的设计方法比较多,总结一下写出来。

阅读全文…( 本文约 1189 字,阅读大致需要 3 分钟 )

关系代数中的除

| Development

简单记一笔,感谢 Stanford 的 数据库入门 课程课后作业 (有人在 StackOverflow提问)。复习一下。

应用场景:找出一家能制作全部30岁以上人士需要的Pizza种类的Pizza店。

在示范数据库中给出的四个关系:

阅读全文…( 本文约 401 字,阅读大致需要 1 分钟 )

#lspe之Disks

| Hardware

今天去 Y! 参加了 #lspe 的一个交流会。

比较感兴趣的项目是之前了解过但仔细看过的 FlashCache,这是 Facebook 搞的一个 SSD 加速模块,原理不复杂,是在文件系统下面做上一层集关联(set-associative)高速缓存,提供了LRU和FIFO两种淘汰方法。这次 Mohan Srinivasan 讲解的时候提到了以前公开发表的讲稿上没有的一个内容—-按线程id/线程组id去做的黑白名单,并对MySQL进行了修改,令其在扫描表时不做cache。从使用的角度,这个不失为一个不错的折衷方法。

阅读全文…( 本文约 621 字,阅读大致需要 2 分钟 )