北京人在SUN北京

pageicon 星期四 五月 08, 2008

Tape Self ID

很久没有更新blog了,愧对广大读者,如果有读者的话。其实主要的原因是因为我忘了我的用户名和密码。我一般只维护两组用户名和密码,一组是公司的,一组是个人的,在公司内部用公司的,在公司外部用个人的,可是用这两组都无法登录。我曾想,我的blog算是就这样夭折了。今天突然很想再试一下,没想到,用个人的用户名,公司的密码,居然登录成功了。仔细回想近一年前,创建blog的时候,可能是为了迎合北京人在SUN北京的主题吧,我选择了个人和公司的用户密码组合,一点小小的心思,尽然让自己的blog沉睡了一年,嘿嘿。

其实我想blog的原因是因为最近我很开心,因为一件麻烦,费时,费力,又没有什么技术成就感,没有知名度的,但却相当重要,不得不做还必须丝毫无错的做好的工作,我以后终于不用再做了。因为有了Tape Self ID(identification),即磁带自识别。

从前,Solaris 要提供对某一种磁带的支持,需要在st_conf.c文件里加一组静态的数据,规定磁带的名称,PID, VID, 类型(DAT, LTO,等等),支持的选项(倒带,进带,等等),支持的密度,一些命令的超时时限。乍听这些都很简单,其实不然,这些数据不是罗列好了放在那里,而是渗透在磁带的使用手册的字里行间。我是一个写软件的,我要从动辄几百页的硬件手册里去找到我要的其实也就几行的信息,而且一定要准确,真是有点赶鸭子上架的味道;而且,一旦决定支持某种新磁带,时间就会非常紧张,天天都有各级别的老板在屁股后面追着问,毕竟这是关系到SUN的MONEY和声誉的大事啊。

现在好了,我们有了Tape Self ID。Tape Self ID 不是给每个磁带分配一个ID,而是让Solaris自动去识别磁带,因为这些配置信息不仅藏在浩瀚的用户手册里,而且磁带本身就有。这样就不用我费劲吧啦的去查手册了,让Soaris自己问问磁带好了。在磁带设备向系统绑定的时候,Solaris会发一系列SCSI命令去询问磁带的参数,这些命令包括,INQUIRY, MODE SENSE, READ BLOCK LIMITS, REPORT DENSITY SUPPORT, REPORT SUPPORTED OPERATION CODES。通过这些命令返回的参数,这个磁带就自动被Solaris识别了。

有了Tape Self ID,不光我开心了,SUN开心了,连磁带设备厂商也开心了。因为他们的新产品可以随意的卖给安装Soalris的用户,而不需要等待漫长的Solaris漫长的发布周期去支持他们的新磁带了。

好了,先写这么多,如果你有进一步的兴趣,欢迎访问

http://developers.sun.com/solaris/articles/tapedriveselfid/index.html 

http://cvs.opensolaris.org/source/

浏览技术文档和程序实现。主要实现在st.c里。

 


评论:

发表一条评论:
  • HTML语法: 禁用

« 十二月 2009
星期日星期一星期二星期三星期四星期五星期六
  
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
  
       
今天

Feeds

Search this blog

Links

Weblog menu

Today's referrers

今日点击: 5