SMB协议 vs TCP的延迟ACK特性

| Kernel | #SMB | #TCP | #delayed ACK | #networking | #Windows

之前一直没什么概念,今天看了微软的 KB 321169 的解释,大致如此:

不过感觉这个解释依然不是很有说服力—-文档上说,SMB服务器端是需要对 NT_TRANSACT_NOTIFY_CHANGE 给出回应的,那么这种情况下ACK不就回应回来了吗?或者说,只要收到了 ACK 就说明服务器端已经处理了这条 SMB?哪位帮忙理解一下?

参与评论

Ruby用实际行动向GPLv3吐槽,Ruby 1.9.3将改用 BSD 许可证发布

Ruby 从下一个版本,也就是 1.9.3 开始,从原先的 GPLv2 许可证换成了 2-clause BSD 许可证(大体上相当于 MIT 许可证)。

早期 Ruby 采用的是自由软件基金会推荐的 GPLv2 or later 许可证方式。在实际操作中这种许可方式十分常见,这种许可证方式包含两层意思:

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

备忘:OpenSSL valgrind报"Conditional jump or move depends on uninitialised value(s)"的解决

最近改一个用到 OpenSSL 的程序,顺手用 valgrind 抓了一下,发现很多「Conditional jump or move depends on uninitialised value(s)」的错误。发现 OpenSSL 的 FAQ 提到,在生成随机数时会将输入缓冲区(未初始化)的内容直接混入 entropy pool,使用 valgrind 时便会导致警告。

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

.svn目录

今天同事跑来问我为什么没办法checkout一个子目录,发现svn提示说某个目录已有既有的、未有版本的副本(这是一个新的checkout)。

删除重新checkout,问题依旧。

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

嚷一嗓子

| Life | #FreeBSD | #forum | #moderator | #community

intron 因任满卸任,现水木社区的 FreeBSD 版需要一名版主。哪位去申请一下?

参与评论

一次DNS重大运营事故教训

长久不做 SA,所以有些事情变得没有以前那么敏感。昨天终于还是出事了,不过幸亏不是商业系统,如果是的话,我觉得绝对够得上是重大事故。记一笔,留个教训。

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

针对桌面系统的一个ULE调度器tunable

在 /etc/sysctl.conf 中加入:

kern.sched.preempt_thresh=224

然后用 /etc/rc.d/sysctl start 或重启系统令其生效。

系统默认的值是 80,表示只有新优先级 < 80 时才允许抢占;224 表示非空闲线程均可以进行抢占。这样做的结果是系统会产生更多的切换,从而改善响应时间(牺牲吞吐量)。对桌面系统来说,这种设置是很有用的。

参与评论

检查是否有多余#include的小工具

基于 LLVM 的一个 小检查器。如果代码经手人很多,或者经过了大规模的改写,这个工具就很有用了。使用说明 在此

参与评论

作弊条:用git做中心式代码库

在开始创建 git 代码库的时候,应使用 --bare 参数。举例:

git init --bare [repo_path]

或者,如果多人开发的话:

git init --bare --shared [repo_path]

将现有代码库转换为中心式代码库:

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

记一笔,关于 syslogd

| Development | #syslogd | #logging | #UTF-8 | #sysadmin

syslogd 的 -8 参数可以让汉字通过。以下摘自 manual page:

1
2
3
4
5
6
     -8      Tells syslogd not to interfere with 8-bit data.  Normally syslogd
             will replace C1 control characters (ISO 8859 and Unicode
             characters) with their "M-x" equivalent.  Note, this option does
             not change the way syslogd alters control characters (see
             iscntrl(3)).  They will always be replaced with their "^x" equiv‐
             alent.

不过这事有点坑人,为啥默认不 -8 呢?出于安全方面的原因吗?差点就开始改代码了……

参与评论