Linux开发

来源:互联网 发布:费璇网络电影 编辑:程序博客网 时间:2024/05/06 10:23
 
  15年来,Linux从一份大学生的作业演变成了Windows最强劲的竞争对手,在网络、企业、政府和消费电子市场中逐步占据了重要的地位,在有些领域甚至成了最主要的角色。15年来,Linux在欧洲、在美国、在亚洲向微软发起强劲挑战,以至微软CEO鲍尔默一度相信微软会被Linux击败。
  随着Linux进入嵌入式设备领域后,关注和投身Linux开发的开发人员越来越多,但目前市面上介绍Linux开发的资料却非常稀少,很多开发人员感到入行无门,因此为了满足广大Linux爱好者的要求,我特意组织了这个教程,希望能给大家一些帮助。
   
Linux程序开发入门
Linux上搭建C/C++IDE开发环境
  以前开发 Linux 程序时写出好的图形化用户界面比较难。在 GIMP 工具包 (GTK)诞生之后,这件事就变得比较容易了。 [全文阅读]

Linux上的C/C++编译器gcc/egcs详解
  Linux 中最重要的软件开发工具是 GCC。GCC 是 GNU 的 C 和 C++ 编译器。实际上,GCC能够编译三种语言:C、C++和ObjectC(C语言的一种面向对象扩展)。利用 gcc 命令可同时编译并连接 C 和 C++ 源程序。 [全文阅读]

Linux 下 C++程序的异常处理技巧
  处理 C++ 中的异常会在语言级别上遇到少许隐含限制,但在某些情况下,您可以绕过它们。学习各种利用异常的方法,您就可以生产更可靠的应用程序。 [全文阅读]
 
Linux程序开发技巧
Linux系统下的多线程编程入门
  线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。 [全文阅读]

资深Linux程序员的开发经验谈
  本文介绍的是 Murray 和他在 Codemonks Consulting 的同事在日常的 Linux 开发以及应用服务工作中用到的基本技术: shell 脚本,相信 Linux 的开发人员都会受益于这项有用而且通用的技术。  [全文阅读]

Linux下Makefile的automake生成全攻略
  作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 [全文阅读]
 
近期优秀专题

正版化,谁为你买单?

代码的力与美 程序设计中的美学

“吃螃蟹的人” 一个开源工作者的告白

Borland二十年传奇成空 程序员何去何从
 
Linux设备驱动程序设计入门
第一讲 引言
  本文将仍然秉承《Linux Device Drivers》一书以实例为主的风格,但是实例的背景将非常简单,以求使读者能将集中精力于Linux设备驱动本身,理解Linux内核模块、Linux设备驱动的结构、Linux设备驱动中的并发控制等内容。 [全文阅读]

第二讲 Linux内核模块
  Linux设备驱动属于内核的一部分,Linux内核的一个模块可以以两种方式被编译和加载。 [全文阅读]

第三讲 字符设备驱动程序
  Linux下的设备驱动程序被组织为一组完成不同任务的函数的集合,通过这些函数使得Windows的设备操作犹如文件一般。  [全文阅读]

第四讲 设备驱动中的并发控制
  在驱动程序中,当多个线程同时访问相同的资源时(驱动程序中的全局变量是一种典型的共享资源),可能会引发"竞态",因此我们必须对共享资源进行并发控制。 [全文阅读]

第五讲 设备的阻塞与非阻塞操作
  阻塞操作是指,在执行设备操作时,若不能获得资源,则进程挂起直到满足可操作的条件再进行操作。非阻塞操作的进程在不能进行设备操作时,并不挂起。 [全文阅读] 

第六讲 设备驱动中的异步通知
  结合阻塞与非阻塞访问、poll函数可以较好地解决设备的读写,但是如果有了异步通知就更方便了。异步通知的意思是:一旦设备就绪,则主动通知应用程序。 [全文阅读]

第七讲 设备驱动中的中断处理
   与Linux设备驱动中中断处理相关的首先是申请与释放IRQ的API request_irq()和free_irq()。 [全文阅读]

第八讲 定时器
  Linux内核中定义了一个timer_list结构,我们在驱动程序中可以利用。 [全文阅读]

第九讲 内存与I/O操作
  对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统。  [全文阅读]

第十讲 结构化设备驱动程序
  在1~9节关于设备驱动的例子中,我们没有考虑设备驱动程序的结构组织问题。实际上,Linux设备驱动的开发者习惯于一套约定俗成的数据结构组织方法和程序框架。  [全文阅读]

第十一讲 复杂设备驱动
  这里所说的复杂设备驱动涉及到PCI、USB、网络设备、块设备等,这些设备的驱动中又涉及到一些与特定设备类型相关的较为复杂的数据结构和程序结构。  [全文阅读]