OS X终端中的 PgUp 和 PgDn

多年不用 Mac 了,这没有 PgUp 和 PgDn 的死毛病还是没改。我觉得我真是没法接受没有 Page Up 和 Page Down 的键盘的。

当然,设计者关上一道窗的同时,往往又会在另外的地方开一扇门。Mac 上可以用组合键来模拟这些功能:

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

Asus笔记本安装 FreeBSD 笔记

| Hardware | #Asus | #laptop | #FreeBSD | #installation | #GPT | #EFI

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

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

三张

| Life | #life | #reflection | #Steve Jobs | #FreeBSDChina

时间过得真是太快了。

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

计时攻击和登录系统设计

计时攻击是一种通过观测由于某些操作时泄露出来的时间信息来获取更多信息的攻击。由于设计和实现的不同,攻击者能够通过计时得到的信息也会不一样。简而言之,作为安全系统的设计者,必须对可能泄露信息的各种渠道有充分的了解,并针对它们采取因应措施。

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

shell 中的 ` 和 $()

sh(1) 脚本中,`$() 的作用类似。比如:

rm `find /foo/bar -ctime +3d -type f`

📓 注意

FreeBSD系统中,此处实际可以用 find /foo/bar -ctime +3d -type f -delete 来代替。

表示将 find 的输出结果作为 rm 的命令行输入。

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

GNU libtool 和 FreeBSD 10

FreeBSD 开始用 10 以上的版本号有一段时间了。这个变动立刻导致了大量 ports 无法编译,多数情况下是因为开发者采用了较早版本的 libtool 导致的,具体来说,是类似下面的代码:

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

为什么安全更新通常在周三发表

目前多数软件产品的安全更新都是在周二或者周三公布了。这种做法 据说 是微软开始采用的,不过具体是谁先开始这么做,目前我还没有找到非常可靠的资料。

一般来说,软件开发者在发布安全更新之前,需要做下面这些事情:

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

FreeBSD 的 strlen(3)

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

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

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

远程升级 FreeBSD 系统备忘

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

目前(2020)的最佳实践是使用 etcupdate 和 package。本文内容已过时。

最近两次失败记录的教训。

首先是联编 world 和 kernel (make buildworld buildkernel),这个没啥可说的。假定 / 是 UFS(即,可使用 nextboot),且配置了 watchdog,则操作步骤为:

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

伯南克讲课

今天在电视上看了 C-SPAN 上播出的伯南克讲联储局与经济危机(也可以在网上收看)。之前一直不太明白的一些问题得到了解答,不过还是有一些别的问题不太明白。

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