轻松实现Linux编程–面向初学者的完整指南

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


Linux是操作系统,平台,生态系统和文化。尽管Windows和Mac OS在桌面计算领域的持续主导地位使未开始使用的消费者认为Linux是极端极客和那些不想为操作系统付费的人的一种附带选择,但事实是, Linux是地球上最常用和最重要的操作系统。它为网络提供动力,为我们的基础设施提供动力,为世界上最大的超级计算机提供动力.

为Linux开发可能会遇到一些挑战,但也会带来巨大的回报。本简短指南将向您介绍开始使用Linux编程所需的信息和资源。它涵盖了Linux开发的四个领域:为内核做出贡献,构建新模块,为Linux开发应用程序以及Shell脚本编写.

Linux内核开发

Linux内核也许是地球上最雄心勃勃的软件开发项目。新的稳定版本大约每三个月发布一次,每个版本涉及数十个国家/地区的数千名开发人员.

奇怪的是,参与内核开发不仅容易,而且难度极高。它比看起来应该的容易,因为没有招聘程序,没有面试,没有官僚作风。欢迎知道自己在做什么的任何人开发核心产品并提交补丁。另一方面,这也非常困难,因为内核非常复杂。此外,内核开发社区虽然在某些方面非常受欢迎,但对忍受业余恶作剧的态度却不太好。尽管它有助于使皮肤厚实,但没有什么能真正替代您真正知道自己在做什么的东西。开发核心是一项相当严肃的业务,涉及相当严肃的计算机科学。如果您刚刚开始进行操作系统开发,那么这不是真正的起点。.

您需要知道的

发展技巧

Linux内核的编程是用C语言完成的。不是C ++,不是Objective-C,不是C#。因此,您需要做的第一件事就是非常好地学习C编程语言.

您还需要深入了解操作系统理论,尤其是与Linux系统有关的理论。下一节将详细介绍.

  • C编程语言:该语言的权威指南。也可以免费下载PDF.
  • 操作系统概念:操作系统开发的理论和实践的全面介绍.

了解Linux

自然,您需要以用户和开发人员的身份了解Linux。这包括对Linux内核的结构以及各个子项目如何组合在一起有相当深入的了解。.

  • Linux编程接口
  • Linux内核新手

过程与文化

最后,您需要了解Linux开发过程实际上是如何工作的。这包括对整个社区,其文化以及开发社区的各个成员如何相互联系有一种感觉。此外,它还意味着了解分布式版本控制和开发发布周期.

  • 如何参与Linux社区:必读。从这里开始.
  • 初学者为Linux内核做出贡献的三种方法:简短而友好的参与指南.
  • 官方事物:
    • Linux内核档案
    • Linux内核邮件列表
    • 内核错误跟踪器
  • 在Linux内核上成为Moron:有关如何在Linux内核(或任何其他)邮件列表上不作任何行为的指南。 (我们的建议:在发布任何内容之前潜伏至少六个月。)

开发内核模块

在进入Linux内核的核心开发之前,增加您对Linux编程知识和专业知识的一种好方法是在内核模块上工作。这些是独立开发的软件,可以与内核一起使用,以充当完整的操作系统。内核模块包括用于各种硬件外围设备的驱动程序,以及文件管理器和其他低级操作系统功能。.

一般来说,在内核模块上工作的障碍比在Linux内核上工作的障碍低得多。有数百个模块,由许多不同的团队和个人开发,因此没有一组看门人为发展定下基调。而且,模块开发的风险要低一些.

您需要知道的

内核模块,就像内核本身一样,通常是用C编写的。(关于在C ++中开发内核模块有一些争论,并且有一些现成的方式来实现这一点,但这当然不是正常的方法,也不是。是推荐的。)

显然,如果您正在为一块硬件编写设备驱动程序,则需要了解一些有关硬件类型及其上嵌入的固件的知识。您还需要对基于Linux的内核及其与内核模块交互的方式有相当的了解。最后,如果您对现有的内核模块有所贡献,则需要了解它们的过程和开发周期.

  • 《 Linux内核模块编程指南》:极为详尽的指南.
  • 如何通过一个简单的示例编写自己的Linux内核模块:一个不错的演练教程.
  • 在Linux内核中编写文件系统:另一个相对容易遵循的分步教程.

另请参见“内核开发”部分中的上述资源列表。.

为Linux操作系统开发应用程序

一旦我们摆脱了操作系统开发的麻烦,并开始谈论为Linux操作系统开发实际应用程序,这项工作就会变得容易一些,并且我们有更多关于如何进行的选择。 Linux平台几乎可以使用每种编程语言的编译器和解释器,对于特定语言,通常不止一种.

您需要知道的

如果您习惯于Windows或Mac OS开发,那么为Linux开发时最大的震撼可能就是各种各样的Linux环境。有几十个Linux发行版,每个Linux用户都可以在很多方面改变其特定环境的工作方式。这意味着,除其他事项外,您必须比其他时候更加关注依赖关系管理.

另一个区别(尤其是与Windows系统相比)是许多Linux用户更喜欢从源代码编译其应用程序。这种情况也发生在Mac OS上,但频率较低。在Linux世界中,大量用户总是喜欢从源代码编译应用程序,而不是使用安装程序包。这可能会影响您对软件开发和发行的看法.

大多数以Linux为中心的开发都是使用C,C ++,Perl或Python进行的。很好地学习这些语言,并深入研究上述(内核和模块)以及下文(脚本)中的资源将有很大帮助.

  • Linux中的C编程:有关使用C语言对Linux应用程序进行编程的完整介绍和教程。.
  • Linux开发人员培训:Linux Foundation提供的有关Linux开发的付费课程.

Linux中的脚本编写

也许Linux中编程的“最底层”是shell脚本。但是,这与其他任何事情一样都是“编程”。 Linux中的Shell脚本编写是自动化日常任务并在更短的时间内完成更多工作的好方法。此外,深入研究高级Shell脚本将使您对Linux操作系统有更深入的了解。 Shell脚本确实是将Linux新手与高级Linux用户区分开的地方.

您需要知道的

尽管还有其他选项,但是最常见的脚本语言是Bash。即使您打算转而使用更高级的脚本语言,使用Bash的技巧也可以让您从右脚开始使用所有类型的操作系统脚本。大多数真正将脚本作为提高生产率的方法的人,在大多数工作中都使用Python或Perl。一旦您在Bash上可以轻松完成的工作碰壁,您可能会想转向其中一种语言.

Bash资源

  • Bash初学者指南
  • 高级Bash脚本编制指南
  • Linux Shell脚本教程

Python资源

  • 艰苦学习Python:Python开发最受欢迎的介绍之一.
  • 使用Python自动完成无聊的工作:面向初学者的实用编程:Python脚本(相对于“开发”)的精彩介绍。也可以在线免费获得视频课程.

Perl资源

  • 入门的Perl简介
  • 如何在Perl中编写Shell脚本
  • UNIX,Shell脚本和Perl简介

一般Linux资源

Linux基金会

Linux.org:有关Linux所有事物的中央论坛.

Linux文档计划:一个庞大的Linux指南库,上面提供了所有上述主题,以及许多其他内容。这是深入了解Linux信息的最重要的地方之一.

摘要

那是一个疯狂的旅程!从Linux内核编程一直到Shell脚本编写。有无数种编程Linux操作系统的方法。有了本指南,您应该会顺利进行.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map