linux程序设计xmind.jpg
大致框架如上,重点关注进程、线程、进程间通信以及套接字,从入门开始。

入门

1. UNIX、Linux和GNU

UNIX

Unix 是在1969年美国贝尔实验室的 肯.汤普森开发出来的一款操作系统,源代码大部分都是用C语言写的。它是一个强大的多用户、多任务操作系统,而且支持多种处理器架构。在1984年,Unix用户协会颁发了使用标准。后来IEEE为此制定了POSIX标准(即IEEE1003标准)国际标准名称为ISO/IEC9945,它通过一组最小的功能定义了在UNIX操作系统和应用程序之间兼容的语言接口,后面很多系统的开发都是遵循这个标准来的。
UNIX系统是一个对源代码实行知识产权保护的传统商业软件,也就是说Unix系统源代码不开源,而且Unix系统也是一个收费软件。这也直接导致了Linux系统的诞生。

Linux

UNIX 最初免费发布,在1990年,UNIX 在服务器市场尤其是大学校园成为主流操作系统,许多校园都有 UNIX 主机,当然还包括一些研究它的计算机系的学生。这些学生都渴望能在自己的电脑上运行 UNIX 。不幸的是,从那时候开始,UNIX 开始变得商业化,它的价格也变得非常昂贵。唯一低廉的选择就是 MINIX ,这是一个功能有限的类似 UNIX 的操作系统,作者 Andrew Tanebaum 开发它的目的是用于教学。
  1991 年 10 月,Linus Torvalds(Linux 之父)在赫尔辛基大学接触 UNIX ,他希望能在自己的电脑上运行一个类似的操作系统。可是 UNIX 的商业版本非常昂贵,于是他从 MINIX 开始入手,而 Linus Torvalds 对Minix不是很满意,于是决定自己编写软件。他以学生时代熟悉的Unix作为原型, 在一台Intel 386 PC上开始了他的工作。他的进展很快,受工作成绩的鼓舞,他将这项成果通过互连网与其他同学共享,主要用于学术领域。他第一次发行的版本很快吸引了一些黑客。尽管最初的 Linux 并没有多少用处,但由于一些黑客的加入使它很快就具有了许多吸引人的特性,甚至一些对操作系统开发不感兴趣的人也开始关注它。每当出现新问题时,有人会立刻找到解决办法并加入其中,很快的, Linux成为了一个操作系统。值得注意的是Linux并没有包括Unix源码,它是按照公开的POSIX标准重新编写的。Linux大量使用了由麻省剑桥免费软件基金的GNU软件,同时Linux自身也是用它们构造而成。

Unix和Linux的区别

Linux和UNIX的最大的区别是,前者是开放源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对后者却只能去被动的适应;这种不同还表现在前者的开发是处在一个完全开放的环境之中,而后者的开发完全是处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型。
https://www.cnblogs.com/jfzhu/p/12895692.html 解释得比较详细,这部分大致了解下即可。

2. Linux程序设计

Linux程序

Linux应用程序表现为两种特殊类型的文件:可执行文件和脚本文件。

  1. /usr/bin : 系统为正常使用提供的程序,包括用于程序开发的工具,都可在目录/usr/bin中找到。
  2. /usr/local/bin 或者 /opt : 系统管理员为某个特定的主机或网络添加的程序。
  3. 系统管理员喜欢使用/usr/local目录,因为它分离了厂商提供及后续添加的文件与系统本身的应用程序。

    文本编辑器

    介绍了vi与Emacs,本书作者推荐Emacs(然而linus喷过Emacs…)

    C语言编译器

    GNU C编译器或gcc,这部分看《深入理解计算机系统》相关内容会更清晰些。

    开发系统导引

    应用程序、头文件、库文件、静态库、共享库。

    总结

    基本了解linux系统,通过程序和函数库演示了下基本的C语言工具,有个概念就行, 了解编译系统如何工作推荐《深入理解计算机系统》这本书。