FreeBSD

共690篇文章。

ZFS性能的一些优化结论

• Data Management

最近几天测试了一下盘很多(具体说是24块盘,其中2块热备的JBOD)的时候ZFS的性能特点。一些结论

a) ZFS的随机读性能比较差(相对于顺序读写)。这一点除了改为用mirror而不是raidz1/z2之外似乎没什么太好的办法。同样多的硬盘做成两组raidz1(11+11+2),与做成两块盘一组的11组mirror的pool相比,针对同样的数据集的随机读性能相差可达10倍多,当然,mirror的结果是顺序写性能会差一些。作为副作用,mirror时的读性能可提高大约4倍左右。

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

为什么重复free()比内存泄漏危害更大

• Security

C程序设计中,内存操作相关的错误可以说是最常见,同时也是非常隐蔽的一类错误。这类错误往往导致程序莫名其妙地崩溃、耗尽系统资源,或是形成严重的安全弱点。

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

NULL指针引用和内核bug的利用

• Security

总算是发公告了,可以说具体的事情了。

FreeBSD昨天发布了2项安全公告和1项Errata Notice:SA-09:13.pipe、SA-09:14.devfs和EN-09:05.null。两个安全公告修正的是同一类问题,也就是我们常说的多线程程序中的竞态条件(Race Condition);EN-09:05.null则是增加了一个使这类问题不再那么容易被利用达到特权提升目的的功能,但默认并不启用。

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

一部分应用层协议放进kernel?

• Kernel

先把想法记下来。

  • 提供一种描述语言,将应用层协议描述成DFA;
  • 一个generator将DFA转换为代码;
  • 用户态程序通过某种接口来向kernel请求已经协商好的该种协议的socket并由kernel直接填写一部分数据结构;
  • 应用程序对socket的第一个回应有时间限制—-如果一段时间之内不回应,则系统将该socket交给下一个监听进程。

解决的问题:

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

改一行代码带来的性能改进

• Kernel

FreeBSD先前的vesa framebuffer驱动有个问题,就是滚屏的时候会比较慢。jkim大长辈于是改了一行代码。

好吧,我承认我之前一直以为是console驱动想要锁&Giant的问题。其实真正的原因是默认的pmap_mapdev并不做写合并,所以应该呼叫更低阶的pmap_mapdev_attr并传入PAT_WRITE_COMBINING参数。

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

使用DSR模式实现单IP服务冗余

• Networking

FreeBSD支持以DSR(Direct Server Return,即服务器直接将流量通过路由器返回,而不经过负载平衡设备;俗称"单臂模式")模式提供服务。为了改善服务的可用性,可以使用这种方法来配置服务器。这种方法非常适合于大并发、大流量的环境。

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

模拟实模式x86 CPU

• Kernel

前一段时间commit了来自XFree86 -> NetBSD -> OpenBSD的x86emu,这是一个大约9千行C代码的x86实模式CPU模拟器。

由于 amd64/EM64T “long mode” 不支持先前 x86 保护模式中的 “vm86” 扩展(虚拟实模式环境),因此,这个模拟器使得 FreeBSD 能够在 amd64(EM64T) 平台上支持 vesa、dpms 等功能了。

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

9.0-CURRENT

• Development

今天 -HEAD 被命名为 FreeBSD 9.0-CURRENT 了(对应的 __FreeBSDversion 是 900000)。从流程上说,这么做的意思是 -HEAD 终于准备解冻进入 slush 状态了(另外,8.0-BETA3应该很快会发布了),基本上之前的一些障碍也都扫清了,目前看来,8.0-RELEASE应该只推后两周左右。。

参与评论

FreeBSD CAM/AHCI committed

• Kernel

下周一的8.0-BETA2会包含这个。CAM/AHCI是按照CAM框架重写的AHCI驱动(之前是ata(4)),提供了包括NCQ等硬件特性的支持,并改善了对SATA光驱的支持。与OpenBSD的实现不同,FreeBSD实现通过扩展CAM框架使其直接对ATA设备提供支持。

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