Comparing windows and Linux hardware management.
一个操作系统最基本的功能是作为计算机硬件和用户空间程序的中间层。用户空间是指你作为计算机用户所使用的程序,例如,office, email, internet 以及 游戏程序。操作系统提供给用户空间程序的是一个标准的接口,通过这个接口可以访问计算机硬件,无论是哪种类型的硬件。比如,你在显示器上看到精美的图片,你必须发送数据到显卡,然后会显示在显示器上。
然而,有成千上万种不同品牌和型号的图形卡。在操作系统出现之前,每个程序必须直接和硬件交互。这意味着在你更换硬件的时候,你需要修改你的程序去匹配硬件。
随着操作系统作为硬件和程序之间的一层(Mmmm layer cake:)的出现,程序员的这一困难被消除了。
您程序只需要将数据发送到指定的接口给操作系统,操作系统再将数据发送给硬件驱动程序。然后,硬件驱动程序将该信息转换为与特定硬件匹配的信息,发送给硬件,而该接口不会变的。驱动程序和程序的中间层(操作系统)存在的原因是为了在驱动更改和更新的情况下,不需要修改用户空间程序。
对于windows和Linux,理论方法是一样的。不同之处是他们的实现方式不同。正如我之前所说,有许多不同的品牌和型号的相同类型的硬件。比如说,我用的显卡。每种显卡都有一组芯片,被称为芯片组。不同的制造商使用这种芯片组生产自己的图形卡。对于windows系统每个厂家必须为自己的显卡提供特定的驱动。windows不负责为硬件编写驱动。安装硬件时,运行硬件的驱动程序也是如此。如果将图形卡更改为其他品牌,即使它是同一型号,也不能使用现有的驱动程序。你需要为那个牌子的卡安装匹配的驱动程序。简而言之,windows驱动程序支持是特定于制造商的。
linux则完全不同。几乎所有的驱动程序都是由linux内核以模块的形式提供的,这些模块可以随意添加、更改和删除。正如我之前所指定的,不同型号的显卡通常使用相同的芯片组。安装硬件后,该芯片组对应的驱动程序将被激活,显卡就可以使用了。如果你把那张显卡换成不同的牌子,只要芯片组是同一种型号,就可以使用同一个驱动,不需要安装其他驱动程序。简而言之,Linux驱动程序支持是特定于芯片组的。这意味着,由于windows是特定于制造商的,所以每个不同的硬件都需要安装一个新的驱动程序。由于Linux是特定于芯片组的,所以只有不同的芯片组需要使用不同的驱动程序。
这就是为什么Linux倡导者说Linux比windows支持更多现成的硬件。这也使得系统更加稳定和易于维护。