Linux操作系统的嵌入式领域面临新挑战
http://tech.ddvip.com 2007年03月12日 社区交流
本文详细介绍Linux操作系统的嵌入式领域面临新挑战
GPL对那些试图将开源软件整合进自己产品的公司还提出了另一个挑战,那就是关于这些公司是否会存在专利侵权和著作权被侵犯的问题。GPL并不对用户提供保证以避免遵守许可证的代码被侵权,同样GPL也不能够保证被许可的代码没有侵犯已有的专利。实际上,GPL已经明确地说明了它没有办法做这样的保证声明,这使得用户在使用GPL软件后只能自己去面对那些可能的专利和版权纠纷。如果这些纠纷在产品已经量产并推向市场后发生,那么开发商必须面对的就是复杂的召回工作或者是付给专利持有者巨额的费用。
开放的标准
Linux在有些人的印象中是开放标准的。其实并非如此,Linux只是一款开放源码软件。开放源码的软件是指可以自由使用,而且是可以自由修改的软件。而开放的标准是指一个规范,这个规范是能够被自由地阅读和实现的。开放标准可以增强技术实现的移植性,还避免了技术被某家开发商垄断的情形出现。因为Linux是没有标准来规范其发行的,所以各家开发商在发布各自的产品时对Linux所做的改动存在着较大差异,这直接导致了很多应用不能够跨系统移植。
POSIX(可移植的操作系统接口)就是开放标准的一个例子。它描述的是操作系统中的应用接口标准。已经有很多不同的操作系统开发商在他们各自的产品中提供了符合POSIX标准的接口。这就使得应用的开发者摆脱了只能局限于一家操作系统的困境,其编写的代码可以不加修改很方便地移植到其他的遵守POSIX标准的操作系统上。
在Unix操作系统中就早已定义了通用的接口集合。这个集合就是今天POSIX标准的基础。有人可能会想既然Linux是脱胎于Unix的,那么Linux也应该是符合POSIX标准才对。但事实上,虽然Linux目前具有一套类似POSIX的接口,但在很多关键的地方它们是并不一致的,比如之前谈到过的调度问题、信号以及线程的实现等等。即使是最新版本的Linux线程库(NPTL,Native POSIX Thread Library for Linux)也不是完全和POSIX兼容的。开发者们会发现他们编写的可移植的POSIX应用并不能够在Linux系统上正常工作,反之亦然。
这些不一致带来的后果可能是灾难性的。例如,二者对setuid系统调用的实现差异就会导致很大的问题。POSIX标准中要求只要有一个线程调用了setuid,那么和该线程同属一个进程的所有线程都会受到这次调用的影响。但是在Linux系统中,只有调用了setuid的那个线程才会做出相应的反应,而其他线程仍旧维持原状。一些POSIX进程在创建时可能具有超级用户的权限(比如系统管理员编写的程序),因此它们具有完全的系统访问权,比如可以删除计算机上的任何用户文件等等。出于安全原因的考虑,在这些程序完成一些只有超级用户才能完成的工作后,往往会调用setuid来降低它们自己的权限。如果这样一个符合POSIX标准的程序运行在Linux系统上,我们会发现那些在调用setuid之前创建的线程在调用后都还保持着超级用户的权限。那么对于一个有害的程序,也许它不能够在符合POSIX标准的系统上兴风作浪,但它却能够在Linux系统中干尽坏事。
也许有人会考虑开源操作系统的开发者们也可以进行开放的操作系统标准的研究。但实际上,Linus Torvalds本人就是不赞同POSIX的,他说:“POSIX是一个发育不健全的标准,是成不了气候的。我们不准备按照POSIX标准来设计操作系统。”那么Linux会成为一个与POSIX标准相兼容的操作系统么?Linus又说:“现在的情况是,没有理由去改变现状。”
作者:gaoliang 责编:豆豆技术应用
- Linux/Unix 新闻
- Linux/Unix 入门
- Linux/Unix 命令
- Linux/Unix 安装
- Linux 嵌入式系统
- Linux/Unix 编程
- Linux/Unix 管理
- Linux/Unix 桌面
- Linux/Unix 内核
- Linux/Unix 软件
- SCO Unix
- NetBSD
- OpenBSD
- Redhat/Fedora Linux
- 手机
- Linux/Unix find 搜索命令
- Linux/Unix vi 命令
- Linux/Unix kde 桌面环境
- Linux/Unix GNOME 桌面环境
- Linux/Unix Make 命令
- Linux/Unix crontab 命令
- Linux/Unix ext3 文件系统
- Linux/Unix 文件系统详解
- Linux/Unix ADSL 拨号设置
- Linux/Unix GRUB 配置及应用
- Linux/Unix nfs配置
- Linux/Unix 硬件信息查看及管理
- Linux/Unix 优化
- Linux/Unix 交换分区Swap管理及应用
- Linux/Unix 用户管理
- Linux/Unix Ramdisk
- Linux/Unix 密码恢复管理
- Linux/Unix 文件删除恢复
- Linux/Unix fdisk分区
- Linux/Unix lvs负载均衡管理
- Linux/Unix root用户
- Linux/Unix 集群
- Linux/Unix 日志
- 更多Linux/Unix专题……