*Nix and Win32 Kernel

MeetBSD CA 2012流水账

| *nix and Win32 Kernel

昨天是会前的开发人员峰会,参加的人基本都是 src/ committer。我参加的讨论是 安装、虚拟化和存储。关于安装程序,目前基本的共识是 bsdinstall 需要重做(基本上 bsdinstall 是个 drive-by commit,作者现在态度是管杀不管埋,bug很多),而先前 Devin Teske 所做的 bsdconfig (目前未接入 world 联编,试了一下太 XX 复杂和强大了)和 DruidBSD 有很多东西可以添到安装程序中,而一票 committer 也已经为他撑腰,所以应该问题不会太大。

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

FreeBSD 9.1-RC3

| *nix and Win32 Kernel

总算是 命名了……现在 re@ 已经开始拒绝所有的变动请求,包括前几天的 High Point Technologies 驱动更新。不出意外的话,两周之内应该会正式 release 了。

参与评论

LSI SAS HBA固件

| *nix and Win32 Kernel

最近我厂对 LSI 6Gb/s SAS HBA 的驱动 (mps(4)) 进行了改进,令其可以在 FreeBSD 环境中进行固件刷写操作。目前最新的固件版本是 14,这个版本修正了目前已知的全部问题。

以前一直没有太注意,这类 HBA 卡上可以用两种固件。一种是 IT (initiator target) 固件,这类固件只提供HBA功能;另一种是 IR (integrated RAID) 固件,这类固件提供集成 RAID 功能。对于我们的应用来说,显然希望用 IT 固件,因为它的代码量要少得多,而由于减少了包含校验的冗余,卡本身的 RAID 功能在 ZFS 环境多数情况下都是有害的。

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

Asus笔记本安装 FreeBSD 笔记

| *nix and Win32 Kernel

祸不单行。继 老婆 笔记本坏掉之后,我的也在周一突然坏掉了。因为已经过保,找来 Dell 的维修手册做了初步诊断之后认为是主板问题,简单尝试了下没有修好,所以找老板商量,暂时买了一台 Asus G75VW 来用。

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

作弊条:shell可用,但没有 ls 时如何列出文件

| *nix and Win32 Kernel

常见的场景是由于某种原因 ls 无法使用(内存不足、动态连接库丢失等等)。

因为 shell 通常可以做 * 扩展,所以我们可以用:

echo *

来列出当前目录中的文件。

参与评论

FreeBSD 的 strlen(3)

| *nix and Win32 Kernel

之前只有一篇关于较早版本的 strlen(3) 实现的笔记,这里补上我在 2010 年做的新增改进。

与 Pascal 等语言不同,C 的字符串并不保存串的长度,而是在字符串末尾以 nul 字符(’\0’)来表示字符串结束。这个设计决策是上世纪 60 年代作出的,有都市传说是为了省几个字节的空间,不过我个人认为也可能是因为汇编里面到处都是判断是否碰到了 0 的操作。不管怎么说,这个设计令 strlen 变成了一个 O(n) 的操作。

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

delphijfork 9.0更新

| *nix and Win32 Kernel

可以在 这里 下载。

和过去一样,风险自担 USE AT YOUR OWN RISK!

这个版本 (20120402) 和上一个版本 (20120114) 相比的改动:

全部改动来自 -CURRENT 或 -STABLE,并已经做过至少两周的疲劳测试。

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

delphijfork 9.0

| *nix and Win32 Kernel

可以在 这里 下载。

和过去一样,风险自担 USE AT YOUR OWN RISK!

和 FreeBSD 9.0-RELEASE 相比的改动:

参与评论

idprio和rtprio

| *nix and Win32 Kernel

记一笔,没啥特别。

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

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

#lspe之Disks

| *nix and Win32 Kernel

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

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

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