当前位置

技术

技术

Read-Copy Update

内核 2.6.31-rc1 里,一个更新是用 Tree RCU 代替了 Classic RCU . 用以保证在超多的 CPU 上这种同步机制的可伸缩性..

RCU 的一个中文介绍可见 http://www.ibm.com/developerworks/cn/linux/l-rcu/

对于咱们非内核开发来说,这个 Userspace RCU Library 可能会有用处,URCU 还有另一个开源实现 libsync 。对于开发读多写少应用的同学来说,可以考虑应用下..

Topic: 

FUSE for windows

关于 Linux 和 Windows 的 SSH 互操作,除了 Putty,WinSCP 外,现在又出现了一个 Dokan SSHFS,试用了下,觉得有相当的可用性,推荐使用。

使用方法很简单,去下载页面http://dokan-dev.net/en/download/

首先是安装 Dokan Library,也就是标题里说的 User mode file system library for windows

然后安装 Dokan SSHFS,启动后输入主机名,用户,密码。。。就可以在资源管理器里看到新盘符了

比较遗憾的是,对我们现在用的公钥不支持,可能是因为我们还停留在 ssh1 的缘故??
要能像 WinSCP 那样支持 Pageant 就好了...

Topic: 

Gears?

Firefox 的 beta 意味着 feature freeze;对于一个 externsion 开发者来说,从 beta1 开始,就应该跟进自己项目的兼容性,因为这个时候 API 已经稳定,可以放心利用新的特性来作开发了。

但这次 Firefox 从去年10月15日的 beta1 到今天正式发布,中间过去了整整7个半月,Google Gears 没有发布哪怕一个作测试的 3.5 兼容版本。这种行为让人很忧虑该项目是否进入一个“衰退通道”——缺乏公司支持,然后慢慢淡出公众视线。

Gears 是 Google 在桌面方向 的尝试之一,首先是希望增强 Web 应用的离线工作能力,然后调整目标为给主流的浏览器打HTML5的patch,但最后 Google 意识到目前 Web 应用的瓶颈是性能,于是 v8/chrome 横空出世,Gears 备受冷落。而除了 IE 外的主流浏览器最近的升级,Safari4,Firefox 3.5,Opera 10,看起来都在向 HTML5 迈进,Gears 这种统一浏览器功能的努力,到底还有多大实际意义,确实值得怀疑。

当然不论怎么样,Gears 会作为 Chrome 的一个组件存在下去,Google Wave 里演示的那种浏览器和桌面交互的能力,正是 Gears 的支持。另一方面对IE占据95%份额的中国开发者来说,Gears 是我们唯一可期盼的救赎。

现在看来 Gears 开发还算活跃,希望工程师对跨浏览器的热情能一直保持,阿门

Topic: 

2.4 内核下应用 nginx 的一个问题

现在还在使用 2.4 内核的服务器应该很少了吧....

总之,2.4 tmpfs 里的文件,是无法执行 mmap()-like 的操作滴;这就导致使用 nginx 的 sendfile 特性时,出现诡异的 EINVAL 错误, 2.6 内核则一切正常.

最开始是在出错的机器上查看 sendfile manpage,关于 EINVAL 的描述是 Descriptor is not valid or locked. 但显然不是这个原因..

直到从另外一个地方看到 manpage 描述是: Descriptor is not valid or locked, or an mmap(2)-like operation is not available for in_fd.

以及从网上搜索到很多人抱怨在 CIFS 文件系统下无法使用 apache2 sendfile 的时候才猛然意识到是因为我们把文件放在 tmpfs 里的问题。。。。

Topic: 

HP 2230s 的三维加速感应设备开发

(http://v.blog.sohu.com/u/vw/2802100)

这个设备,就是 HP 宣传的 HP 3D DriveGuard,搜狐 08 年以后采购的笔记本都应该包括该特性,希望这篇文章对同事们利用自己的硬件有帮助..

Linux kernel 从 2.6.28 才开始加入了这个驱动 "LIS3LV02Dx Accelerometer driver”,像我这样用 Fedora 11,或者 Ubuntu 9.04,就可以玩了

关于这个驱动的描述文档见: http://www.mjmwired.net/kernel/Documentation/hwmon/lis3lv02d ,很简单,不断从 /sys/devices/platform/lis3lv02d/position 这个文件里读数据就是了.

在偶的演示里面,切换桌面是用的 libwnck 的 python 封装。开发中才知道在开启立方体桌面特效的模式下(compiz??),只有一个 Workspace(所以才能把一个窗口跨桌面放,因为本质上是在一个workspace里面),立方体的各个面叫做 viewport。好在 wnck 对切换 workspace 以及 viewport 都有支持..

比较郁闷的一点是位置获得不稳定,经常出现检测到反向移动的乌龙,上面的视频已经表现了这一点,呵呵。

不知道有没有人利用这个特性给 HP 或 Thinkpad (APS主动保护) 开发 wii/iphone 那样的加速感应游戏,这么笨重的设备,体育项目估计也只有举杠铃了

Topic: 

关于 Video

  1. 每个桌面系统都有自己的多媒体框架,微软下是 directshow,苹果是 quicktime,freedesktop 是 gstreamer
  2. 视频文件格式应该称之为 container,因为里面包括了视频流,一条或多条音频流(这很常见),甚至字幕流。平时我们下载最多的是 mkv 和 avi;flash 的 flv 也算是一种 container,比如网上高清视频点播的都是 H.264 + AAC;而 firefox 3.5,将内置支持的是 Ogg (Theora + Vorbis)
  3. H.264 乃至于 MPEG 对于开源界的主要问题是专利(patent)。虽然我们有了 x264,ffmpeg,lame 这样优秀的开源软件,但是如果商业公司要把它们集成到自己产品里面的话,源代码可以使用,但还是得面对 MPEG-LA 的专利许可收费。这也是以前传出什么中国 Mp3 厂商参加德国汉诺威展的时候被查封设备调查的原因——人家怀疑你没有交纳专利费用,这也是侵权。
  4. chrome 内置了 ffmpeg 的代码以支持 H.264 视频,当然人家 google 有钱,大概是能搞定 MPEG-LA 的
  5. Theora 其实也有专利,它来源一个叫 On2 的公司开发的 VP3 编码器项目。但 On2 将这个专利授予了 xiph.org,而且是 irrevocable 的!! "free to download VP3 and Theora, use them free of charge, implement them in a for-sale product, implement them in a free product, make changes to the source and distribute those changes, or print the source code out and wallpaper your spare room with it. "
  6. 所以 firefox 支持 Theora 就显得很顺理成章了,估计 Opera 和 Chrome 也会支持 Theora,苹果还死抱着 quicktime,不晓得 IE Team 会怎么做。。。。继续观察吧。
  7. 最后一个问题,x264 编码的影片,高清的 flv 视频,大家都很清楚其视频质量了,那么这个 Theora 咋样呢?所幸的是 Theora 现在已经有了一个非常棒的编码器:Thusnelda encoder。有人评价就低分辨率或中等分辨率的视频而言,Theora 已经超过了 Youtube 上同等码流的高清视频 (http://hacks.mozilla.org/2009/06/open-video-codecs-and-quality/),这个对 HTML5 来说已经足够了。
  8. 相比较于高分辨率来说,Youtube 的 H.264 稍微胜出 (http://people.xiph.org/~maikmerten/youtube/),不过就我的看法,差别非常小...我相信就目前的状态而言,一个有很大用户基础(想想 firefox 吧),以及一个完全自由的 Theora 已经足以吸引这个领域的高水平开发人员来为这个项目出力了,祝愿它早日成为互联网,乃至于桌面放映的主流。
Topic: 

configfs 为什么

上回说到 cgroup 配置是通过特定的文件系统来弄的,这个...配置内核为什么要通过文件系统?就算要用 fs 为什么还去弄一个新的文件系统,现存的 sysfs 还不够吗?

关于第一个问题的答案是这样的。用户和操作系统打交道的标准方式是系统调用,可这 Linux 世界里那么多 developer,那么多 patch,每新开发一个需要用户交互的功能就新增系统调用显然不可行,这里有 Namespace/全局控制的显著难题;即使想在 ioctl 里增加宏定义什么也是同样的困境。通过文件系统路径来控制 Namespace 算一个大家都能接受的方案。

而 sysfs 的问题在于,它只是内核对象的一个视图,你可以去查看甚至修改对象的属性,但是所有的对象都是内核自己创建的,通过 sysfs 无法新建一个内核对象!对于 cgroup 应用来说,管理员需要去配置维护特定的 cgroup 对象,传统的 sysfs 就无能为力了。

这就是 configfs 的由来,它最初是 OCFS2(oracle cluster fs)的一部分,后来独立成为 Linux 的一个标准部件,在 2.6.16 成为 mainline

至于为什么 cgroup 最后没有用现成的 configfs而自己搞了一个新的文件系统,还没有从邮件列表中搜出端倪,待以后去考据罢...

Topic: 

Fedora11 on HP2230s

公司新发的小本,正好配最新的distribution.

  • 最重要的,wifi工作正常,NetworkManager 里简单配置一下就可以通过公司的 LEAP 认证。这里附带说一下,我是从 F11-Snapshot 安装来的,最开始无线驱动不起来,报什么"Kill switch must be turned off for wireless networking to work",后来系统yum update了一下后就能用了
  • 图形驱动也很好,配置上了 Solar 的开机启动效果。算是过了一把 KMS + Plymouth 的瘾。再附带说一下,开源图形驱动的支持方面,Intel > ATI > Nvidia
  • 支持面板上的音量滑动调整,但不支持音量的on/off按键
  • 屏幕亮度调整也支持
  • 外接投影只能用桌面扩展,无法clone,我猜测是屏幕分辨率和投影分辨率不一致的原因。不过我觉得扩展也挺好,这样可以一边投影一边看事先准备的演示提示,哈。
  • 因为是第一次在小屏幕上用Gnome,这才注意到它的字号是根据磅数来的——就是说自动使用更大的像素值,确保在不同的设备上看到的字的物理大小是一样的。这一点比windows要人性化
  • Linux下似乎比Windows下要耗电一些
  • 偶把缺省的宋体换成了文泉驿,官方源里就有
  • GNOME对蓝牙的支持也不错,比 XP 强
  • 传说F11对指纹识别集成得很好了,但2230s上的设备AES2810尚不被支持
  • 才用了差不多一个星期,以后慢慢折腾这个系统吧。现在我的工作模式是笔记本用 Linux,台式机上跑 XP,outlook/office/IE/MSN 啥的都在台式机上用,然后开一个 rdesktop...是不是太装了点?

    Topic: 
    订阅 RSS - 技术