文件系统的PPT

多任务

最近在做WebCast的PPT, 总在想怎样才能用最简单的方法把一件事情解释到最透彻. 结果冥思多任务的时候发现我们一直说自己(IT)是High Technology的行业, 其实除了在金属板上画的图画更精细一点儿以外, 比古人高级的货色并不多.

比如多任务:

DOS时代: 其实用的是老子的方法”无为而治”. 其实就是不管, 也有些现代的说法叫”放羊”… 这绝对是最自由的实现方法了, 你可以随便怎么(胡)搞. 怀念那个遍地TSR的年代吧. 后来因为碰到个比较实在的老外, 他说”DOS不支持多任务”.

想象一群小朋友吃一个棒棒糖(我们今天不讨论卫生和疾病……)阿姨把糖扔到人堆里然后大喊”糖来了, 抢啊~~”. (如果你想象不出, 请换成小羊和一群狼)

Windows 3.x时代: 协作式多任务. 这个是儒家学派的标准做法. 因为这个是江湖大派, 按今天的话说, 这个组织制定了无数的工业标准; 所以当大家呼唤多任务的时候, 就按照他们的标准进行了实现.

这个标准的基本依据是”程序之初, 性本善”. < <论语>>里面记载了怎样实现多任务的论述:

颜渊问仁。子曰:“克己复礼为仁。一日克己复礼,天下归仁焉。为仁由己,而由人乎哉?”颜渊曰:“请问其目。”子曰:“非礼勿视,非礼勿听,非礼勿言,非礼勿动。”

颜渊(就是颜回, 大牛啊!)问孔子(Robin Kong?)怎样实现多任务, 孔子说:”约束自己的一切行为,使之符合或不超越规范. 一旦程序都能达到以上标准, 多任务就可以实现了.” (这里的规范其实就是要求程序(进程)得到CPU使用权并使用之后, 将使用权交还给操作系统.) 孔子还说:”多任务是靠程序们自己实现的, 不需要专用的部分(在操作系统里)来控制CPU的使用权. 颜回又问:”那对程序们还有其他要求吗?” 孔子说:”不是自己的内存, 不要Read/Query/Run/Write.”

参考以上理论, 协作式多任务被实现了. 它其实已经足够先进, 并且完美解决了用户对多任务环境的需求. 可是问题是它的理论基础是”性本善”, 它的很多要求都是需要应用程序实现/遵守的. 而在接下来的日子里, 有那么一些程序, 坚定不移地向世界证明, “性本善”地那句话是不对地.

还是棒棒糖和小朋友, 这次阿姨说”排成一个圈, 拿到棒棒糖的小朋友舔一下然后传给下一个小朋友.” 问题是个别小朋友拿到了棒棒糖后就坐下狂舔, 干到只剩棒棒了都不肯给别人…… (3.x里面进程其实是把控制还给操作系统的)

Win9x后: 抢占式多任务. 3.x时代的一小撮程序, 让人感叹”程序心不古啊”. 于是韩非出现了. 他是在人们问为什么总有些程序不听话, 占着CPU就不还的时候出现的; 他说”不听话的小兔崽子就是欠揍!” (韩非认为有人犯罪是因为刑罚不够严厉)

又是棒棒糖和小朋友, 这次阿姨说”排成一个圈, 拿到棒棒糖的小朋友舔一下, 最多舔5秒. 然后传给下一个小朋友.” 然后如果有人舔了5秒还不还, 阿姨就毫不留情地把棒棒糖抢下来, 给下一位小朋友.

这还不止, 韩非还说:”谁不听话就干掉谁!” 于是那些以访问NULL指针(还有别人家内存)为首的家伙们就看到了一个对话框:”该程序执行了非法操作, 将被关闭.” 作为用户这个上帝一般的存在, 你会有两个选择:斩立决, 和开堂审理. 而即使你开了堂(用debugger) 狂审了一把, 不管是什么罪, 最后给出判决的时候还是只有一个选项:斩立决.

My prompt() for PowerShell

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function prompt
{
$private:h = @(Get-History)
$private:nextCommand = $private:h[$private:h.Count - 1].Id + 1
$currenttime = "["+(get-date).hour+":"+(get-date).minute.tostring("D2")+"]"
$PathDriver = (get-location).provider.tostring().split("\")[-1]
$currentpath = (get-location).providerpath
Write-Host -NoNewline -ForeGroundColor Yellow [^_^]
Write-Host -NoNewline -ForeGroundColor White $currenttime
Write-Host -NoNewline -ForeGroundColor Yellow ""[$PathDriver][
foreach ($StackPath in (Get-Location -Stack))
{
Write-Host -NoNewLine -ForeGroundColor Yellow +
}
Write-Host -ForeGroundColor Yellow $currentpath]
Write-Host -NoNewline -ForeGroundColor Cyan [$private:nextCommand]
return ">"
}

阿福也被计算机玩了

我从北京回来就一直没有放出照片, 很多人在等, 可能后来都忘了吧……

其实是因为我一直忙于修理家中的计算机. 笔记本进了苹果汁, 台式机经常重启:

事情是在升级到Vista以后开始的, 随机的忽然关机, Vista的报告是”unexpected power off”. 我是RTM的Vista, 这个状况看上去也不像软件问题.

随着检查的深入(时间的推移), 一次POST过程中关机被我发现, 于是坚定了不是软件问题的想法.

排除软件原因不想, 这种突然掉电的现象, 最大的可能就是板卡间接触问题. 于是我判断是一些忽然发生的电路状况导致系统为了保护自己而直接关掉电源. 下一个问题就是: 是谁?

嫌疑从大到小是: AGP/4PCI(电视卡, 声卡, 无线网卡, 1394)/2DDR/DVD/2HD/8Fan/温控系统/CPU.

于是我进入了旷日持久的排除法……

这是一个典型的”有时发生”的问题……

把非必须的设备拿走, 用最小系统排查了好多天, 情况还是不明朗了. 什么时候都能出问题, 也都可能不出问题…….

更多的线索要出现了, 发生了一个新的问题: 接上电源就开始自动启动, 然后很快自动关闭(POST还没完), 过一会再自动启动, 自动关闭……把某些板卡重新安装一下又会变好, 不知道什么时候又发生……

这种情况使我们不得不开始考虑电源和主板出问题的可能性, 综合前面的各种问题, 如果PCB里面某条电路断裂……这是我们不期望看到的

下一次troubleshooting是在计算机陷入自动启动/关闭的循环时做的, 在一旁盯着它看, 一边整理没在用的电缆. 看到主板到机箱的大把线缆, 想起如果这里面有接触问题会怎么样, 灵光一现想到的ATX的电源, 是它短路了. 这个按住3秒就关闭电源的…….

赶快拔掉Power SW, 再接电源, 不会自动开机了; 接上Power SW, 问题又开始. 把Power SW拔掉, 又把Reset SW拿了过来临时用, 计算机又开始了正常工作.

结论: Power SW微动开关短路(可是在手感上根本没问题), 怀疑是邻居最近装修震的. 可我还是很郁闷, 微动开关会被震坏?

北京回忆

十几年后再回忆,什么也想不起来。只留一堆票据证明足迹。

火车票 门票-故宫 门票-天安门 门票-天坛 景点票-天坛 门票-北海公园 门票-香山 香山索道 红叶1 红叶2 红叶3 红叶4 全聚德 全聚德 东来顺 车票-地铁 车票-地铁 车票-公交 车票-公交 车票-公交

苹果汁洒到(IBM X31)键盘上之后

北京之行, 除了劳累, 还收获了键盘上的苹果汁.

那一瞬, 一瓶七喜(苹果味)忽然倾倒, 苹果汁喷薄而出, 而此时, X31正在那下面努力工作中……

3秒后, 液体洒到笔记本键盘上的应急预案启动:

  • 强行关闭
  • 拔掉电源
  • 拿掉电池
  • 键盘向下, 让液体自然流出
  • 擦干
  • 通风
  • 确认没有水了以后开机, 让机器的温度蒸发渗进的水汽

都弄干了以后按键盘没有任何异样, 以为自己正确地处理了这个问题, 没想到真正的问题还没有到来.

回到上海又开始上班, 工作了快两个小时后, 被果汁浇过的键按下去了就不肯在起来. 下班拿回家打算处理一下, 可是从包里把笔记本拿出来看的时候, 键盘很正常……

经过几天的分析, 发现当时用正确的方法处理了键盘进水的问题, 可是果汁里的糖却成了遗留问题. 当计算机工作一段时间以后, 糖开始融化, 键盘就会被粘住.

发现了问题, 就把键盘拆开, 用酒精进行了清洗:

进水的键盘 拆掉的键帽 拆掉键帽的键盘

结论是: 略有改善, 还是不能正常工作.

于是想可能要换个键盘了, 就电话蓝快, 蓝快开价1000块.

又去淘宝看了看, 英文键盘500, 日文300.

由于刚在北京接受爱国主义教育, 便宜的日文键盘被54, 所以换键盘的成本是500. 我只不过洒了一点果汁儿……

知道了底线以后, 决定对键盘进行更深入的清洗, 反正搞不定也是500, 搞坏也是500.

于是把键盘直接拿了下来准备彻底搞定
拆掉键盘的X31
X31的键盘

这次更彻底, 把键盘上的塑料支架也都拆了下来
拆掉部分支架的键盘
拆掉部分支架的键盘
拆掉部分支架的键盘

然后把所有的小支架拆碎清洗
拆碎的小支架

洗净后进行安装:
先把小支架的底座拆开, 把其他部分组合好放在一起
一个小支架
把小支架的底座拆开

先把底座安装到键盘上, 在把其他部分按进去就搞定了
先把底座安装到键盘上
把其他部分按进去
搞定一个

支架装好以后再把键帽安上去就完成了. 键帽非常容易安装, 轻轻一按就上去了.

接下去几天的使用表明键盘完全恢复了新键盘的手感和流畅, 500元也省下了.

北京

今年休假去了北京玩, 结果累个半死, 一点也不像休息. 还有很多地方没去看, 连计划都cancel了一部分.

此行结论:

  1. 作为一个中国人, 首都一定要去. 升旗一定要参加, 故宫一定要参观.
  2. 请将此行作为爱国主义教育机会. 休息的话……找个小地方吧.
  3. 去之前仔细的研究与详细的计划非常重要. 能去的地方太多了, 时间有限, 一定要事先规划好(如果你像我表妹一样有8个月的假期, 当我没说)
  4. 看别人的(包括我的)说法没意义, 一定要自己去过.
我的计划

阿福的VMWare优化方法

How to make your virtual machine smaller and faster


如果你用过我做的VM Template并且喜欢那些又小又快的VM的话, 很遗憾地说, 我没有时间再做了. 其实除了前段时间给Robin做了一个以外, 已经快一年没做这种东西了. 如果你觉得自己做的VM又大又慢的话, 我在这里给出优化的方法, 其他爱莫能助了.

开发人员->技术支持人员->正版用户->盗版用户

[论语][季氏][九] 子曰: “生而知之者, 上也; 学而知之者, 次也; 困而学之、又其次也; 困而不学, 民斯为下矣.”

“软件编出来就了解它, 是上等; 经过学习才了解, 是次一等; 有了问题打800来学习解决的, 是再次一等; 有了问题还不打800, 只知道重装的, 一般的人就是这种最下等了. “

今天听说有人不知道延安 (yán ān) 怎样用拼音输入词, 只好一个字一个字的输入. 于是就问他会输入 () 吗. 结果他说会的, 不就是LV嘛.

于是乎, 在这个没有(明媚)阳光的午后, 我顿悟了时尚原来就是头驴.

  • ps1: 延安正确的拼音是yan'an
  • ps2: LV = Louis Vuitton
  • ps3: The above “ps2” doesn’t mean the game console.
  • ps4: The above “ps3” doesn’t mean a game console too.
  • ps5: 老吴说: LV = Look, Very expensive