为什么驱动程序在不同操作系统平台下要有不同的版本

现在的硬件功能越来越多,结构也越来越复杂,一些通用的驱动程序基本上不能驾驭它,甚至根本无法识别。好在硬件厂家都会发布配套的驱动程序,配合着用,也还算将就。

但是,如果有一天,我买了一块手写板,而我呢偏偏又是一个 Linux 爱好者。我发现厂家宣传的什么多高的识别率,能识别连笔书写的汉字等,都是建立在你使用的是 Windows 操作系统的基础上的,离开了 Windows ,我的电脑根本就不能用它。我该不该理解为这是厂家对消费者的一种歧视?

或许厂家会说,“大哥,你站在我的立场上想一想好不好,那么多操作系统,我要开发多少个版本的驱动啊?我容易吗?” 这似乎也有一点道理。

可为什么是驱动程序去配合操作系统,而不是操作系统去配合驱动程序。就好象一台电脑可以装不同版本的系统,但是它的 BIOS 还是原来的 BIOS 一样。为什么驱动程序不能像 BIOS 一样固化在最底层,而是依靠系统的内核去加载。真的必须这样吗?答案当然是否定的,现在就有一种比较可行的方法, EFI

EFI (Extensible Firmware Interface,可扩展固件接口) 在现在来说还是相当新颖的,不少人或许都没听说过。但是苹果公司生产电脑你这件事你总知道吧,他们生产的 Mac 电脑,底层用的就是 EFI ,而不是 80 年代的BIOS。 EFI 采用 C/C++ 语言编写,较现时普遍的 BIOS 运行于16bit不同, EFI 运行于 32 或 64bit  ,而且 EFI 更可让各家厂商自行撰写的驱动程序直接挂入 EFI 之中,成为过去固件工作内容的一部分。 也就是说,操作系统完全可以不需要另外安装驱动程序,通过 EFI 提供的接口,它就可以实现对硬件的所有操作。

我们还需要为一个硬件开发许多个不同平台下的驱动吗?

EFI 的时代即将带来, BIOS  是时候离开了。

对固定电话的一些感想

很少用家里的固定电话,今天拨打一个外地手机号码时忘了加0,居然听到的不再是“您拨打的是空号”,而是提示你拨打是外地手机号码,请在号码前加0。虽然只是小小的改进,但对用户来说却方便许多。

有时候拨打一个手机号码,当电话提示您拨打是空号时,我的第一感觉是可能号码按错了,接着才会想到或许是外地手机号码,这也是我为什么喜欢用手机的原因,至少不用理会是不是外地这个问题。

固定电话的数量正在逐渐减少,但是它的优点还是可圈可点的,比如无辐射、话音清晰、电话机不容易丢失等。既然现在外地手机号码可以提示了,为什么不直接接通呢,这应该不存在什么技术瓶颈吧。

如果固定电话不再收取什么月租费,不再存在外地手机号码的加0问题,我想还是有很多用户会使用固定电话的,至少现在有的不会轻易去销户,用户数量递减的问题也就不存在了。