Linux背景

一、UNIX的相关标准简介

产生标准的原因:

  • 为了使开发出来的应用程序在不加修改的情况下,能从一个系统移植到另一个系统,实现不同版本的相互兼容。

ANSI C/ISO

  • ANSI C:目标是为各种操作系统上的C程序提供可移植性保证。该标准不仅定义了C编程语言的语法和语义,还定义了一个标准库.

POSIX:

  • 基于现有的UNIX的实践经验,规范了操作系统的应用编程接口,目的是使应用程序源代码能够不加修改地移植到多种UNIX操作系统。

  • 该标准最初由 IEEE 开发的标准族,部分已经被 ISO 接受为国际标准。该标准的具体内容 见 1.1.3。POSIX.1 和 POSIX.2 分别定义了 POSIX 兼容操作系统的 C 语言系统接口 以及 shell 和工具标准。这两个标准是通常提到的标准。

  • POSIX:表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX 是为了读音更像 UNIX)。

SVID

  • SystemV接口描述(SVID)是描述AT&T公司UNIX SystemV操作系统的文档,是POSIX标准的扩展超集。

  • GNU C 函数库定义了大多数由 SVID 指定而未被 ISO C 和 POSIX 标准指定的函数。来自 System V 的支持函数包括进程间通信和共享内存、hsearch和drand48 函数族、fmtmsg 以及一些数学函数


XPG/X/Open

  • X/Open可移植性指南,是比POSIX更为一般的标准
  • XPG是UNIX操作系统必须满足的要求
POSIX版本 目标
1003.1 库函数和系统调用标准
1003.2 命令工具标准
1003.3 测试方法标准
1003.4 实时标准
1003.5 Ada语言相关标准
1003.6 安全标准

二、自由软件计划GNU

GNU的概述

  • http://www.gnu.org/
  • GNU的目的是开发一个自由的类UNIX的完整操作系统
  • 自由软件的的含义是任何人可自由使用、学习、复制、修改、发布

GNU的特点

  • 一个软件挂上了GPL版权宣告之后,他自然就成了自由软件,这个软件就具有底下的特色:
    1. 取得软件与原始码:你可以根据自己的需求来执行这个自由软件;
    2. 复制:你可以自由的复制该软件;
    3. 修改:你可以将取得的原始码进行程序修改工作,使之适合你的工作;
    4. 再发行:你可以将你修改过的程序,再度的自由发行,而不会与原先的撰写者冲突;
    5. 回馈:你应该将你修改过的程序代码回馈于社群!
  • 但请特别留意,你所修改的任何一个自由软件都不应该也不能这样:
    1. 修改授权:你不能将一个GPL授权的自由软件,在你修改后而将他取消GPL授权
    2. 单纯贩卖:你不能单纯的贩卖自由软件。

自由软件、开源软件、免费软件

  • 开源软件是指在软件发行的时候,附上软件的源代码,并授权允许用户更改/自由再散布/衍生著作,开源并不抵制商业收费。

  • 免费软件就是免费提供给用户使用的软件,但是其免费的时候,通常都会有其他的限制,比如其源码不一定会公开,而且使用者也并没有使用、复制、研究、修改和再散布的权利。

  • 自由软件是一项思想运动,强调用户拥有如何使用软件的自由,这里指的自由,并不是价格免费,这和价格无关而是使用软件对所有的用户来说是自由的。

  • 开源软件和自由软件是有区别的,他们代表了两种不同的哲学理念,自由软件强调自由地“分享”与“协作”。开源软件则是从技术上的角度,为提高软件质量做的一种开发模式。

你可能感兴趣的:(GNU/Linux编程,linux,编程)