别理我 烦着呢

2008年8月29日星期五

洗键盘

有很多东西比家里的马桶盖子还要脏.但是这些脏东西里面每天摸的最多的就是键盘了.
忙里偷闲的把公司的键盘拆开来洗洗.
没人敢去看饭店的厨房,虽然明知道很脏.当你把键盘拆开来之后,也是一样的感觉:比从外面看起来还要脏无数倍.但是科技进步的好处就是,现在的洗衣粉都可以称得上是jack bauer牌的了,一桶(大约和饮水机的桶差不多大)水里面放一勺(和煮一马克杯需要的咖啡粉差不多)洗衣粉,然后把键盘放进去,第二天拿出来就发现,所有附着在上面的垢都一冲就掉了.油渍污渍就更是无影无踪了.
油渍污渍去无踪之后,发现一件很邪门的事情:DELL的键盘按键本来上面是磨砂的,但是常用的按键几乎都被磨平了......难道皮肤的硬度超过塑料?难道塑料能溶解于油脂?如果答案是后者的话那就太恐怖了.看官里面如果有学化学的医学的和法律的,麻烦联系一下我,择日一起吃个饭讨论讨论这事情,如果能搞一把DELL估计这辈子就再不用写代码做实验接病人接官司了.

2008年8月27日星期三

House医生

最近在看House医生.这个医生出了名的刻薄,说话极其尖酸.不过就像24小时一样,最牛逼的特工也离不开不靠谱的科技,最牛逼的医生也需要不靠谱的医疗器械,和病例.比如,MRI随时可以做,各种穿刺(活检)都可以随时做,而且做完了立刻就跟没事人似的,包括肠胃,肾,心脏,肝脏,脊髓的穿刺.Google了一下,在中国做个随便什么穿刺都是伤筋动骨的甚至三个月不能下地的.看来美国人的科技实在是太发达了.
不过也有反过来的,比如在中国,得个Erdheim-Chester这种稀罕到极点的毛病,几年都没事,在美国入院后24小时就挂了.除了挂的快之外,电视剧里面的其他情节还是比较靠谱的,比如
MRI示患者垂体漏斗部下丘脑有占位
免疫染色CD1a(-),CD68(+),S-100(+).
不过按照Google到的案例说明,CD68只要下颌骨活检就能查出来了,而House医生居然动用了极其恐怖的心脏穿刺......

2008年8月21日星期四

Scroll Lock

如果你用台式机的标准101或者大于101的键盘,是不是看到有一个Scroll Lock按键?是不是这么多年来都没用过,且不知道是干嘛的?说来惭愧,偶也是最近才发现这个按键的神奇用处的.

Scroll Lock键最早出现在IBM的PC/XT机型的83键盘和AT接口的84键盘上,现在这个键不仅仅出现在PC机的101键盘上,连苹果机的"增强"型键盘上也加上了该按键。该键在DOS时期用处很大,由于当时显示技术,限制了屏幕只能显示宽80个字符长25行的文字,在阅读文档时,使用该键能非常方便地翻滚页面。随着技术发展,在进入Windows时代后,Scroll Lock键的作用越来越小,不过在Excel中它还是有点用处:如果在Scroll Lock关闭的状态下使用翻页键(如Page Up和Page Down)时,单元格选定区域会随之发生移动;反之,若要在滚动时不改变选定的单元格,那只要按下Scroll Lock即可。

更详细的资料参见万能的Google和9000能的维基百科
http://en.wikipedia.org/wiki/Scroll_lock

还有更变态的人,为了省的撅着屁股去看网卡灯亮不亮,写个"xCAT-Keyboard Network Leds"(键盘灯显示网络流量)的软件让Scroll Lock的灯客串网卡指示灯.考虑到鬼子的屁股往往是经济舱都坐不下去的,有这样的软件就不足为奇了.据说Richard Stallman就是因为屁股太大,懒得跑到楼下的打印机去取文件,一怒之下才搞出来开源的,当然,首先就是开源打印机驱动了,然后才是Emacs :)

2008年8月20日星期三

AZERA

从健身房回来的路上看到太平洋门口停了一辆AZERA,很少见的车,让我想起了美丽的半月湾

2008年8月17日星期日

辛普森一家

看到现在我的感觉就是,一个成事不足败事有余的老子还让人觉得好笑,而一个脑子有毛病的老娘就让人觉得无法容忍了.用一句时髦的话说,Marge是典型的蠢的无怨无悔.受不了......

2008年8月15日星期五

你知道有多少种不同的tar么?

反正我是不知道...估计不会比中国队的金牌数量少...可恶的是他们都叫tar ......

几乎所有在*NIX能执行的命令都有GNU风格的,System V风格的,BSD风格的,其参数列表有完全不同的,有差距细微的,不知道有没有参数一样但是行为不同的...Solaris这种高大全形象的OS在复杂的文件结构下包含着各种版本的命令,比如我用的一台S9 上面就有7种Tar,当然其中一个是我自己compile的.管理员要极其小心的维护PATH环境变量.OMG.Windows上面有DLL地狱,*NIX上面的工具风格问题比起DLL地狱来一点也不谦虚.集市要是有一天被大教堂搞死了,这个因素估计功不可没......

用信用卡赚银行的钱

以前大家都是在网上刷积分,然后换东西.可麻烦了.
其实还有更简单直接暴力的办法.
比如5万的卡,刷出来存7天的通知存款,47天税后能拿到50099.09,然后50000去还信用卡,15块给银联,净赚84块.每年可以搞6次.47天是这么算出来的,比如ICBC的卡,1号刷,次月25号换,提前7天把通知存款转到活期帐户.至于银联的15块手续费,看你本事了,能不能搞到这种POS机.
如果你手头有150K,干脆搞3个月的整存整取,三个月的收益是395.44/50K, 更爽.关键是,风险绝对等于0.

2008年8月14日星期四

TD-SCDMA

头大-市场低迷啊

2008年8月5日星期二

2008.08.05

在过Solaris的新特性的时候看到ZFS,于是就顺便Google一下别人对这个文件系统的评论.结果在ChinaUnix上面看到5页Linux粉丝和FreeBSD的粉丝对Ext3和UFS的吵架.看完后还是学到了点东西,比如别人是怎么做分区的,对文件系统的理解,以及对开发思想的理解.

FreeBSD已经把ZFS纳入代码树了,而且也在PortingSolaris最牛逼的DTrace.在FB上面花的功夫没白费:)

BSD最大的好处,至少在我现在看来,是它的手册写的非常的好,比起Solaris来好太多了.BSD的handbook等文档都是用DocBook做的,看起来搜索起来都很方便,各种语言都有.Solaris的文档分成很多PDF(很多的意思是用7位数字来标示的),一看就是用Adobe的那种很专业的软件做出来的,每个文档几乎都是手册型的,不具备学习的功能.里面都充斥着大量废话,和我在LU写过和帮助审核过的文档是一个风格.至于Linux的文档我没有看过,不做评论.

今天决定放弃翻译Pretice Hall的那本Solaris 内核架构了. 太累人了.里面写的无数废话.还是简单的写写读书笔记好了.
Solaris 10 牛逼的地方有

SolarisTrusted Extensions, 这个扩展的安全性很高.高到要是想得到更高的评级就得让军方来评估了.

CPU上限, CPU上限提供了项目或区域可以占用的CPU资源量的绝对细粒度限制

SPARC: 硬件加速椭圆曲线加密算法(Elliptical Curve Cryptography, ECC)支持

64位SPARC:针对sun4v平台的内存位置优化支持. 内存位置,就是说想把内存放哪儿就能放哪儿.当然,肯定是放在靠近CPU的地方了.哪儿是靠近CPU的地方呢?那要看线程是在哪块CPU上执行的了.所以,如果你只有一块CPU,就别做梦了.

ZFS: 恐怕是时下最热门的文件系统咯:) 为什么天下的文件系统不能做个大一统呢?

故障管理和预测性自我修复: 这两个名词看起来很大头的样子,估计可以写一排书了.不多嘴.

x86: SATA模块下的并发FPDMA READ/WRITEQUEUED

SunVTS 6.4: 是一个综合性的软件诊断包,用来测试和验证Sun x86和SPARC硬件(从这句话就可以看出SUN的文档写的有多晦涩了吧)

x86:高清晰度音频驱动程序 : 类似于XP的KB888111, 连这个都支持了,看来真是对x86平台下大功夫了,哈哈

MPSS已扩展到共享内存:MPSS意思是 共享内存的多页面大小支持(multiple page size support,MPSS), 很BT的功能.

Zones:很牛叉的技术,但是貌似没人感冒.倒是不少人对Hyper-V兴趣很大.

DTrace动态跟踪工具:DTrace是Solaris 10OS中的一项至关重要的功能.DTrace是一项全面的动态跟踪功能,借助该功能,Solaris用户、管理员和开发者可在一个全新级别观察内核和用户进程。使用DTrace,可以动态检测操作系统内核和用户进程,并记录您在所关注的位置(称为探测器)指定的数据,从而帮助您了解系统。探测器类似于小型的可编程传感器,分散在整个Solaris系统中。本发行版中包含30,000多个探测器。每个探测器均可与自定义程序(用新的D编程语言编写)关联。通过这种关联,您可以使用ANSI C类型和表达式来访问系统数据,并轻松地执行捕获栈跟踪、记录时间戳和生成直方图等操作。DTrace的所有检测过程都是完全动态的,并且可用于产品化的系统。关闭DTrace对系统的性能没有影响。任何跟踪都只对所启用的探测器和操作的性能产生影响。此外,DTrace还很安全:它不会破坏正在运行的系统,因为它以安全性、完整性和错误检查为设计核心。有了这些功能,便可根据需要随时放心地在运行的系统上使用DTrace,以查明故障的原因。

大页面增强功能:此功能无需应用程序调优或系统调优,便可将大页面的优点引入大范围的应用程序。此增强功能自动为基于区段大小的匿名内存申请大页面。

内核页重定位

内存放置优化分层Lgroup支持

当然,Solaris 10也有很恶心的地方,就是安装起来很麻烦,安装指南有6卷PDF,还不包括发行说明和硬件兼容性列表.OMG!

对付Autorun的简单办法

在每个硬盘分区下面都建立一个autorun.inf的文件夹, 和一个叫做RECYCLER的文件,注意,千万别搞反了.
就这么简单.
这也说明了,写程序的时候调用任何函数,检查返回值是多么的重要^_^

2008年8月4日星期一

翻译:Solaris内核架构 (第一章)

1.1. Solaris 10, Solaris 9, 和 Solaris 8的关键Feature
这一节件den总结一下这一版的书所涵盖的Solaris发行版本的关键Feature.更完整的可以在docs.sun.com里面去找.

记住,每个版本的Solaris都是前一个版本的适当的超集,比如,在8里面发现的Feature会滚进9里面,当然10也会从包含8和9里面的.前面版本的Feature在后面的版本可能会被增强.这里的例子包括UFS登陆,(在7里面被引入的,在8和9里面被改进), 动态亲密共享内存Dynamic Intimate Shared Memory(DISM, 在8引进, 9和10 改进)

继承规则也有明显的例外,那就是硬件支持.每个本版的Solaris都会放弃对一些老旧的硬件的支持.比如, 10不支持32位版本的SPARC, 或者UltraSPARC I 处理器(1995年发布的). SPARC版本的Solaris10是一个64位Only的操作系统,仅支持UltraSPARC II,UltraSPARC III, 和UltraSPARC IV以及更新的处理器. 当然32位的SPARC程序还是能完美的运行在64位的Solaris10核心上面的. Solaris10 也支持32位的Intel-X86 架构 64位的AMD大锤技术

1.1.1. Solaris 10
Solaris 10里面继承的新技术列表展现了量产的操作系统中的新发明

预测性自我修复
预测性自我修复这个术语描述的是Solaris缺陷管理和Solaris服务管理技术的整合带来的好处.预测性自我修复最大化了Solaris系统极其提供的服务在硬件故障时的可用性.开发出了用语事件侦测,隔离,动态关闭错误组建的设施,以及改进的消息和服务管理器.

服务管理框架(SMF)
SMF提供Solaris内部的统一模型用来管理服务.服务的定义是一个,或者一组被系统管理起来的程序.可以是传统的服务比如rlogin, ftp,NFS,或者客户的应用程序服务.传统的管理这些服务的方式是通过使用启动脚本和状态/配置信息,典型的是/etc目录下的文件的形式.SMF提供一组命令,工具和文档来简化之.不仅简化启动,停止,重启,还负责定义服务之间的依赖关系(译者注:这他妈的不是Windows的Services.msc么?)SMF框架是和前面提到的预测性自我修复整合的.所以,可以健壮的检测和管理特定服务的错误.

Solaris缺陷管理
这个全新的缺陷管理软件架构结合了若干个软件组建,包括一个用来发送和接受错误和缺陷信息的事件协议,一个缺陷诊断引擎,一个新的编程接口的集合,改进了诊断,隔离,恢复和动态关闭缺陷硬件的能力.以缺陷为忠心的软件模型将相关的错误报告到二进制的由事件协议定义的临时流中并且分发到适当的诊断引擎.软件能够诊断缺陷,生成特定的关于缺陷的信息供系统管理员使用.如果可能的话,会自动采取修改措施,比如将出错的处理器断开.


Solaris Zones.
Zone是一个软件划分工具,可以在一个操作系统内核上创建和管理多个虚拟的操作系统之行环境.对于处理器,永和,和管理员来说,每个Zone(虚拟环境)看起来就像是一个系统,并且和同一内核实例上的其他Zone相互隔离.隔离带来安全性,因为Zone里运行的进程对同一内核其他Zone里运行的进程是不可见的.唯一的例外是全局Zone,这是主Zone,在其中运行的是Solaris内核实例.该内核实例上运行的所有的Zone里的进程对全局Zone都是可见的.

Zone还提供一个资源管理容器,这样可以配置创建特定应用程序(Web服务器, 数据库服务器,等等)的Zone以使用部分系统中可用的硬件资源.

更详细的关于创建,管理和使用Zone的信息,请参阅System Administration Guide: Solaris Containers, Resource Management and Solaris Zones

动态资源池Dynamic resource pools (DRP).
资源池是在Solaris9中被引入的.他们为协助一个或者多个处理器应对一个或者一组应用程序提供一个永久的配置机制.还有,资源池允许为在池中启动的应用程序建立一个默认的调度类型,比如fair share 或者fixed-priority classes.在Solaris10 中, 一个新的不见动态的根据设备利用率,负载和属性调整指派的池资源.一个新的守护进程,poold,当DRPs被配置好之后始终处在活动状态. 它监控系统的状态,状态和池配置属性的相互关系,根据需要做出动态调整.比如,如果资源池A被配置成最多运行掉80%的利用率,并且在能承受的范围内超过了这个极限值,poold会从别的使用率不足的池指派更多的CPU资源.poold所做的所有的改变都有log记录,DRP框架提供一个丰富的属性定义集合,包括各种约束和对象.

更详细的关于创建,管理和使用动态资源池的信息,请参阅System Administration Guide: Solaris Containers, Resource Management and Solaris Zones

物理内存控制
有了Solaris9引入的项目框架,就可以限制一个进程在任何时间点上能使用的物理内存了.一个叫做rcapd的守护进程在Solaris10 被引入,它可以监视运行中的进程在通常时间段的物理内存使用情况,如果进程超过了配置的上限,会加强物理内存的caps.有了rcapd,进程如果多用了内存,会被有效的针对自身进行换页,这样就不会挤兑到别的运行中的进程.

更详细的信息,请参阅System Administration Guide: Solaris Containers, Resource Management and Solaris Zones

动态跟踪器(DTrace).
往应用程序,用户进程和Solaris内核里面插入探针.要想使用DTrace,编程触发探针,触发后每个探针在程序执行的路径的特定点上收集数据,然后呈现出来.DTrace探针类似于软件传感器,有上千种软件传感器可供动态打开或关闭,可以在整个执行路径上记录数据,从用户级别的进程到整个内核

DTrace提供你理解系统行为,分析性能问题,研究改进应用程序性能,发现异常行为根源所需要的所有信息.在命令行上使用一个新的工具叫做dtrace(1M)来激活探针,收集数据.还有,一种新的脚本语言,D,允许管理员,开发人员和性能分析师收集,提炼,重用脚本来分析系统行为和性能

DTrace是为重要产品环境而从头设计的.DTrace是安全的,其实现是伴随这严谨的安全措施和错误检查.当没有DTrace探针被打开的时候,DTrace就像不存在一样.这是因为DTrace的指令是在探针激活后被动态插入到运行的系统中的.DTrace逐字逐句插入=指定的探针指令到代码中恰当的位置,典型的情况是,一个函数的入口和return点,然后等探针被取消后恢复指令流到原始状态.这意味着,当没有探针被启用时,指令流中是没有DTrace代码存在的.实际上DTrace的探针作用和启用的探针数量相关:启用少量探针将不会导致可观的探针效果,而在一个繁忙的系统中启用大量探针将导致某种程度的性能降低,但是绝对不会危及到系统完整性.

进程权限管理Process rights management.
传统上,需要超级用户(root)权限来执行特殊的任务,使用某些功能.但是,提供超级用户对用户区域的访问会带来安全风险,而且威胁整个系统的完整性和可用性.超级用户的一个简单的错误会搞出灾难性的后果.比如,在根目录试试看rm -r *.进程权限管理定义一组可以被指派个特定用户或角色的权限,而且是全系统内有效.权限是让进程在指定的范围内,按预先定义的动作执行制定的操作.例如,使用DTrace, 改变文件所有者,使用高精度的计时器,提高进程的优先级,使用实时的调度类型.


TCP/IP 性能
一老钵子工程(译者注:是工程量,不是,但约等于是,工程师数量),被搞来改进Solaris 10的TCP/IP性能,重点就是网络吞吐能力(典型的表征是每秒传输多少bit),建立和解除的连接,首字节响应时间,连接和CPU的可扩展性(CPU越多,连接数越多的意思),效率(搞定特定负载需要的CPU数量).增加性能和效率等已经实现了,手段包括去掉TCP/IP协议层的STREAMS结构,实现一个worker线程模型来处理更高的收包率,改进硬件缓存的使用等.

x64架构的支持
自从Solaris2.1就开始支持Intel X86架构了.随着基于AMD Opteron处理器的服务加入到Sun的硬件产品中,支持AMD64 架构也成为开发Solaris10的一个重要部分.除了基本的移植工作外,花费大量人力物力优化,调试,以及native支持64bit的基于Opteron处理器的内核. Solaris10支持32位x86处理器和32bit/64bit的Opteron处理器.当然,支持多处理器,有杰出的可扩展性.


更齐全的新功能列表上这找去 :)
http://docs.sun.com/app/docs/doc/817-0547


1.1.2. Solaris 9
Solaris9提供了一把新功能,把其他商用操作系统甩了老远,包括,内存性能增强,一组新的资源管理工具,新的调度类型

支持多重页面尺寸.
内存分配是以页为单位的,默认尺寸是8Kbytes.不过,UltraSPARC硬件支持更大的达到4M的页面尺寸.在命令行可以设置.更大的页面可以为需要分配大物理内存的程序改进性能.

内存位置优化MPO
在Sun的高端服务器上,应用程序可以通过将物理内存页面换到离执行该程序的处理器最近的内存上来改进性能.这种将执行中的线程和其用到的内存放的较近的做法减少了内存操作的反应时间,改进了性能.MPO紧密集成在Solaris的内存分配分发核心代码中,维护物理内存的分配,使其尽可能靠近线程使用的处理器.

动态锁定共享内存Dynamic Intimate Shared Memory (DISM).
锁定共享内存是Solaris2.6引入的.通过为共享块分配大内存页面,锁定内存中的页面,在所有共享内存的进程间共享低级的页面交换信息来改进System V的共享内存.DISM动态改变共享块的尺寸,启用动态增加内存,重分配数据库缓存而无需重启数据库进程.Solaris9之前的DISM不支持大页面.从Solaris 9 9/02 开始支持

资源管理器Resource Manager (RM).
Solaris 9集成资源管理器.


公平分享和指定优先级调度类型Fair Share (FSS) and Fixed Priority (FX) scheduling classes.
除了传统的时间共享TS,实时RT 和交互IA的调度类型外, Solaris9增加了FSS和FX类型. FSS取代了只恰的SHR类型,允许按照用户的定义分配处理器时间给内核现成. 在FX类型下,线程的优先级在整个生命周期中不会被内核改变. FSS是资源管理器的一个组成部分,使用资源池来管理共享分配.

UNIX文件系统(UFS)增强.
改进了logging和直接I/O并发读写的性能

Solaris存储管理Solaris Volume Manager (SVM)
集成进了Solaris9, SVM允许创建RAID 0, RAID 1, RAID 10, RAID 5 存储, 软分区支持, 去掉了每个盘最多7个分区的限制.

线程库Threads library.
libthread.so, 号称有显著性能提升,将多线程程序的行为转换成单层线程模型(译者注:搞不明白...-_-)
boasts substantial performance improvements, and it transitions to a single-level threads model as default behavior for multithreaded applications.

1.1.3. Solaris 8
8的就不翻了,2000年的东西了都是...