Netcraft报告说,截止2012年5月,全球10大最可靠的因特网虚拟主机供应商中有5家在他们的Web服务器上使用Linux。在超级计算机领域,Linux成绩更是耀眼:截止2012年3月,在全球顶尖的500台超级计算机中,约有60%安装的是Linux操作系统。
在个人电脑领域,Linux的成果没有Windows和Mac那么显著,但却也在稳步上升着。
在智能型掌上设备中,基于Linux的Android系统在近几年呈现爆发式的占据着市场。
凭借着Linux的自由和免费,以及开发产品的高可移植性的优势,Linux在硬件价格逐渐先将的过程中显现自己的优势。正如大家看到的,市场对此作出了反应。
就本平台下的程序开发而言,与Windows相比,有国内开发人员少、中文相关学习材料不够丰富、具有大量好质量的开源程序和软件,便于模仿学习、整个系统都是自由软件、所有源代码均可以获取的特点。
由此可见,由于操作系统源代码的开源和大量开原程序的存在,开发人员自身开发水平提高的余地比在windows平台下更大。
Qt作为跨平台的可视化开源编程软件,与Linux的理念相一致,并且具有强大的界面编程功能,弥补Linux下编程非所见所得的缺陷。
Qt是一个跨平台应用程序和UI开发框架。使用Qt只需一次性开发运用程序,无须重新编写代码,便可跨越不同桌面和嵌入式操作系统部署这些应用程序。Qt Create是全新的的跨平台Qt IDE(集成开发环境),可单独使用,也可与Qt库和开发工具组成一套完整的SDK(Software Development Kit,即软件开发工具包)。其中包括:高级C++ 代码编辑器,项目和生成管理工具,集成的上下文相关的帮助系统,图形化调试器,代码管理和浏览工具。
Qt具有直观的C++类库,在这个库中提供了一套丰富的程序生成块,包含了构建高级跨平台应用程序所需的全部功能。具有直观、易学、医用,生成好理解、易文护的代码的特点。当在Qt中使用单一的源代码库定位多个操作系统;通过重新利用代码可将代码跨设备进行部署;无需考虑平台,就可以重新分配开发资源,这样是开发人员专注于构建软件的核心价值,而不是文护API。
而ioctl作为Linux下对设备控制的系统调用,在对设备控制编程方面具有决定性的地位。ioctl用于向设备发控制和配置命令 ,有些命令也需要读写一些数据,但这些数据是不能用read/write读写的,称为Out-of-band数据。也就是说,read/write读写的数据是in-band数据,是I/O操作的主体,而ioctl命令传送的是控制信息 ,其中的数据是辅助的数据。
ioctl是设备驱动程序中对设备的I/O通道进行管理的函数,所谓对I/O通道进行管理,就是对设备的一些特性进行控制
利用ioctl系统调用来实现音频CD的播放的产品有很多,比如Deadbeef,但网上并没有推出一个简易的利用Qt的CD播放器的产品。
基于以上各方面的考虑,我将“Linux环境下CD播放器的设计与实现”作为我的毕业论文的课题。开发的过程将涉及到Linux软件开发的各个方面,有助于提升个人整合项目的水平,并为Linux社区和Qt社区的发展做出贡献。
2 主要相关技术介绍
2.1 Linux的设计和用户界面
基于Linux内核的系统是一种模块化的类Unix系统,它继承了Unix在上世纪70、80年代发展起来的基本设计原则。这种系统使用单内核(于此相对应的是使用微内核的Windows)来处理进程控制、网络连接、外设和文件访问等应用。设备驱动和内核直接集成在一起。 Linux环境下CD播放器的设计与实现(2):http://www.751com.cn/jisuanji/lunwen_7816.html