delphij's Chaos
选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……
昨天测试成功,下面是大致过程。
做转换的 pool 要符合几个条件:
大致过程如下:
另外想了一个在线转换的方法,等有时间实现一下看看。
Read more...TextMate 2 宣布开源了,在 一则报道 中指出,这是对苹果 OS X 新增的限制的回应,我对此十分怀疑。
为什么呢?因为沙箱是非常重要的安全机制。沙箱其实到处存在,只不过在过去没有 OS X 中这样全面和细致而已。例如,现代操作系统中两个进程不能随便互相写对方虚拟内存中的内容;又比如,操作系统中通过"用户"、“属主"等概念来进行访问控制,等等。这些机制的存在,限制了由于开发人员偶然犯错导致的损失范围。许多不靠谱而且不负责任的开发者,则会以种种借口指责沙箱拖慢了他们的开发进度。更有甚者,其中的一些甚至还会告诉用户打破沙箱(例如比较常见的是很多 php 应用建议用户 chmod -R 777),其结果则必然是在发生问题时产生更大的损失。
是的,我的意思就是,如果有人建议你用一些方法削弱操作系统的沙箱机制来运行他的程序,那不仅这个开发者的水平太差,而且他的良心也让狗吃了。
Read more...没什么特别,这里记一下大致过程,以及一些想到的值得 FreeBSD 学习,以及 OS X 应该改进的地方。
我选择的方法是借助 USB 安装盘来做重装的操作。在 App Store 下载 Mountain Lion 之后,不要选择继续安装(继续安装的话,在安装结束后会删掉安装的文件)。
在 Finder 中找到 /Applications/Install Mac OS X Mountain Lion.app,在其上按右键,Show Package Contents,这会将 Bundle 内容打开,在其中找到 Contents/SharedSupport,其中有一个叫 InstallESD.dmg 的文件。双击 InstallESD.dmg 挂载它。
接着,启动 Disk Utility,选择 U 盘(需要至少 5GB 的空间),将其中内容擦除;接着选择刚才挂载的 InstallESD,在 Restore 标签页中,将 U 盘拖拽到 Destination 的位置,然后按 Restore。
这个操作将会把 InstallESD.dmg 写入 U 盘。重启系统时按住 Option,选择刚刚制作的 U 盘,就进入了 OS X 的恢复界面。
在这里有四个选项,使用 Disk Utility (最后一个)清除硬盘或 SSD 内容(此处可以选择Mac OS Extended (Case sensitive, Journaled) )。如果原先的硬盘使用了 File Vault,可能需要先输入任意用户的口令来解锁。完成后退出 Disk Utility,选择 Reinstall OS X Mountain Lion。
重装的过程大致需要20分钟左右。然后是一些基本的配置,完成后,重新进入 App Store 安装 Garage Band、iMovie 和 iPhoto。
Read more...今天尝试了一下将 zpool 在线转换为 geli 加密卷,失败。这里记一笔。
想法是:将 zpool (RAIDZ)中的一块盘 offline,建立 GELI 卷,然后用新建的 GELI 卷来替换拿下来的盘。
失败原因主要是两点:首先,GELI 设备比其下的盘小 4kB (8个扇区)。这部分空间用来保存 GELI 的元数据。这样,替换后的设备要比原先的略小(之前曾经遇到过 SATA 硬盘不同批次尺寸不一样的情况)。另外,这个 zpool 在创建的时候使用的是 512 字节的扇区,而 GELI 的块尺寸是 4kB,因此会有问题。
如此看来,为了支持未来的扩展,需要做两件事:
第一个是毫不犹豫地"浪费"少量空间:预留适当的保留空间(如 1MB,甚至若干 GB 的交换区)可以避免在未来需要换盘时因为供货的问题导致出现困难。当然,如果是针对企业市场的硬盘,通常是可以避免这种情况发生的。不过需要注意的是,如果交换分区放在不同的硬盘上而不做任何冗余的话,也有可能会出现掉盘导致系统不稳定的问题。
第二个是应该尽量将卷做成按 4kB 对齐的,即使磁盘本身并不是 4kB 的。我个人的测试显示这样并不会导致性能下降,相反在许多情况下可以改善吞吐量。
Read more...早期的 FreeBSD 版本中采用的是 md5crypt,其作者 Poul Henning-Kamp 最近发表了一篇文章:Md5crypt Password scrambler is no longer considered safe by author,所以 FreeBSD 预设的密码格式也就随之改成了 SHA512 crypt。
不过其实这个意义也不是太大,因为这个版本(5000轮,16位salt=96bit)虽然慢的还算可以,可是计算机的速度还是在持续增长的。
前段时间找时间把 FreeBSDChina.org 的密码格式也换成 SHA512-crypt 了。目前采取的方法是用户登录的时候,如果验证通过,则用用户明文口令产生新的 SHA512-crypt 并刷回数据库(因为原先保存的是 hash 值)。这样,几个月后还可以把不活跃用户挑选出来一起砍掉。
Read more...今天看到有人问 GMail 为什么会显示一个黄色的三角符号(浏览器在 https 页面包含非 https 内容时的警告)。检查一下发现我的居然也是,心想 Google 大概应该不会干这么缺心眼的事,于是打开 Developer tools 检查,发现这个"不安全"的内容来自于 AdBlock,具体来说是插件在阻止广告时插入到页面中的内容。
AdBlock未必真的会做损害安全的事情,不过,这个让我想起之前在 Facebook 上看到的奇怪的广告,最后发现是安装的一个应用导致的,这个后果确实还是相当可怕的,除了浏览器本身之外,安装的插件也会影响安全,而这些东西做审计还是相当困难的,尤其是在 Chrome 中的自动更新特性,如果 Chrome Market 没有认真审核代码的话,还是相当危险的。
Read more...官方版本的 nginx 在 https 的时候是不对流量做压缩的,具体原因在这里 和 这里 有解释,它会增加半兆的连接内存开销。
启用 https 压缩除了需要 nginx 本身做少量修改(例如去掉 if[n]def SSL_OP_NO_COMPRESSION 部分的语句块)之外,还需要 OpenSSL 本身编译了加密支持。FreeBSD ports 的 security/openssl 预设启用了 ZLIB 扩展,但基本系统目前没有(由于 zlib 是很大的一片代码,也许需要做了 Capsicum 处理之后才可以放进来用)。
启用 https 压缩通常并不会显著地减少带宽占用,因为多数情况下浏览器会与服务器协商将内容以 deflate 方式在放进 https 流之前做压缩处理。不过,启用压缩可以进一步减少 TLS 协议本身使用对称加密时可能发生的信息泄漏风险,其代价是引入 zlib 可能引入更多漏洞,以及每个连接增加大约 0.5MB 的内存占用。
Read more...多年不用 Mac 了,这没有 PgUp 和 PgDn 的死毛病还是没改。我觉得我真是没法接受没有 Page Up 和 Page Down 的键盘的。
当然,设计者关上一道窗的同时,往往又会在另外的地方开一扇门。Mac 上可以用组合键来模拟这些功能:
另外,由于 Terminal 对这两个键有另外的解释,需要在 Preferences 中重新定义它们的映射:
然后就虽不爽,但可用了。
Read more...祸不单行。继 老婆 笔记本坏掉之后,我的也在周一突然坏掉了。因为已经过保,找来 Dell 的维修手册做了初步诊断之后认为是主板问题,简单尝试了下没有修好,所以找老板商量,暂时买了一台 Asus G75VW 来用。
这是一款游戏用移动式PC。不兼容的状况包括:
我首先在预装的 Windows 系统中制作了一份恢复 DVD(共4张)。当然,如果不打算恢复 Windows 系统的话是可以跳过这一步的,升级 BIOS 可以通过 U 盘来完成。
用 LiveFS 安装 FreeBSD。由于 FreeBSD 目前还没有提供基于 EFI 的引导加载器(2012年的 Google SoC 项目有一个是关于 EFI 引导加载器 的),因此只能先破坏掉硬盘上现有的 GPT 分区。
gpart destroy -F ada0
dd if=/dev/zero of=/dev/ada0 bs=512 count=34
dd if=/dev/zero of=/dev/ada0 bs=512 oseek=/* LBA - 35 */ count=34
接下来的安装就和普通的 MBR 安装一样了。
目前知道的一些其他事项。
由于采用的是 Ivy Bridge 的 Core i7,因此可以用 AES-NI 来加速。向 GELI 卷写 1MB 的随机数块的速度可以稳定在 33MB/s;写 0 数据块的速度可以稳定在大约 60 MB/s。对于全加密的卷来说,第一次使用之前应该覆写一遍加密的随机数,而不是 0。(当然,这个架不住有人拿 $5 的扳手揍你到说出密码为止)(当然,其实根本没人 care 你的硬盘上存的是啥)。
Read more...时间过得真是太快了。最近这段时间, 乔帮主 2005 年 Stanford 毕业典礼演讲 里说的那段话一直让我觉得有如芒刺在背:
Your time is limited, so don't waste it living someone else's life.
Don't be trapped by dogma - which is living with the results of other
people's thinking. Don't let the noise of other's opinions drown out
your own inner voice. And most important, have the courage to follow
your heart and intuition. They somehow already know what you truly
want to become. Everything else is secondary.
来美帝快 6 年了, FreeBSDChina.org 也已经 10 周年了。我想,接下来的十年,我需要做一些新的事情,认识一些新的人,去一些新的地方,等等等等。所谓 Keep looking, don’t settle,这话说起来容易,做起来没那么容易,可是趁着年纪不算太大,还是要尽量去做。
Read more...