UNIX-Linux环境编程(一):开发环境

本文介绍了UNIX操作系统的起源、派生版本和族谱,以及Linux的简介、标志、相关知识,包括Minix、GNU工程、POSIX标准等。此外,详细阐述了GNU编译工具GCC,包括其支持的编程语言、平台,以及编译过程和相关指令。
摘要由CSDN通过智能技术生成

一、Unix操作系统

1. 简介

美国AT&T公司贝尔实验室1971年肯.汤普逊丹尼斯.里奇
PDP-11,多用户、多任务、支持多种处理器架构,高安全性、高可靠性,高稳定性。
既可构建大型关键业务系统的商业服务器应用,也可构建面向移动终端、手持设备等的嵌入式应用。
在这里插入图片描述

2. 三大派生版本
1) System V

AIX: IBM,银行
Solaris: SUN->Oracle,电信
HP-UX
IRIX

2) Berkley

FreeBSD
NetBSD
OpenBSD
Mac OS X

3) Hybrid

Minix: 迷你版的类Unix操作系统。
Linux: GPL,免费开源,商用服务器(RedHat)、
桌面(Ubuntu)、嵌入式(Android)。

3. Unix族谱

在这里插入图片描述

二、Linux操作系统

1. 简介

类Unix操作系统免费开源,不同发行版本使用相同内核。
手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型计算机、超级计算机。
严格意义上的Linux仅指操作系统内核,隶属于GNU工程,发明人Linus Torvalds。
在这里插入图片描述

2. 标志

Tux (Tuxedo,一只企鹅)企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有。
不属于当今世界上的任何国家,当今任何国家无权将南极洲纳入其版图。
Linux选择企鹅图案作标志,其含意也是表明:开源的Linux,为全人类共同所有,任何公司无权将其私有。
在这里插入图片描述

3. 相关知识
1) Minix操作系统

荷兰阿姆斯特丹Vrije大学,数学与计算机科学系,
Andrew S. Tanenbaum,ACM和IEEE的资深会员。

2) GNU工程

Richard Stallman发起于1984年,由自由软件基金会(FSF)提供支持。
GNU的基本原则就是共享,其主旨在于发展一个有别于一切商业Unix系统的。
免费且完整的类Unix系统——GNU Not Unix。

3) POSIX标准

Portable Operating System Interface forComputing Systems,统一的系统编程接口规范
由IEEE和ISO/IEC开发,保证应用程序源代码级的可移植性Linux完全遵循POSIX标准

4) GPL通用公共许可证

允许对某成果及其派生成果的重用、修改和复制,对所有人都是自由的,但不能声明做了原始工作,或声明由他人所做。

  1. 版本
  1. 早期版本:0.01, 0.02, …, 0.99, 1.0

  2. 旧计划:介于1.0和2.6之间,A.B.C
    •A: 主版本号,内核大幅更新。
    •B: 次版本号,内核重大修改,奇数测试版,偶数稳定版。
    •C: 补丁序号,内核轻微修订。

  3. 2003年12月发布2.6.0以后:缩短发布周期,A.B.C-D.E
    •D: 构建次数,反映极微小的更新。
    •E: 描述信息。
    rc/r - 候选版本,其后的数字表示第几个候选版本,
    越大越接近正式版本
    smp - 对称多处理器
    pp - Red Hat Linux的测试版本
    EL - Red Hat Linux的企业版本
    mm - 测试新技术或新功能
    fc - Red Hat Linux的Fedora Core版本

5) 特点

•1) 遵循GNU/GPL
•2) 开放性
•3) 多用户
•4) 多任务
•5) 设备独立性
•6) 丰富的网络功能
•7) 可靠的系统安全
•8) 良好的可移植性

6) 发行版本

•1) 大众的Ubuntu
•2) 优雅的Linux Mint
•3) 锐意的Fedora
•4) 华丽的openSUSE
•5) 自由的Debian
•6) 简洁的Slackware
•7) 老牌的RedHat

三、GNU编译工具GCC

1. 支持多种编程语言

C、C++、Objective-C、Java、Fortran、Pascal、Ada

2. 支持多种平台

Unix、Linux、Windows

3. 构建(Build)过程

编辑 -> 预编译 -> 编译 -> 汇编 -> 链接
•1) 编辑: vi hello.c -> hello.c
•2) 预编译:gcc -E hello.c -o hello.i -> hello.i -+
•3) 编译: gcc -S hello.i -> hello.s | GCC
•4) 汇编: gcc -c hello.s -> hello.o | 工具链
•5) 链接: gcc hello.o -o hello -> hello -+

范例:hello.c
1.#include <stdio.h>
2.
3.int main ()
4.{
5. printf(“Hello, World !\n”);
6. return 0;
7.}

4. 查看版本

gcc -v

5. 文件后缀

1…h - C语言源代码头文件
2…c - 预处理前的C语言源代码文件
3…i - 预处理后的C语言源代码文件
4…s - 汇编语言文件
5…o - 目标文件
6…a - 静态库文件
7…so - 共享库(动态库)文件

6. 编译单个源程序

1.gcc [选项参数] 文件
2.-c - 只编译不链接
3.-o - 指定输出文件
4.-E - 预编译
5.-S - 产生汇编文件
6.-pedantic - 对不符合ANSI/ISO C语言标准的
7. 扩展语法产生警告
8.-Wall - 产生尽可能多的警告。
9. 范例:gcc -Wall wall.c
10.-Werror - 将警告作为错误处理。
11. 范例:gcc -Werror werror.c
12.-x - 指定源代码的语言。
13. 范例:gcc -x c++ cpp.c -lstdc++
14.-g - 生成调试信息
15.-O1/O2/O3 - 优化等级

7. 编译多个源程序

gcc [选项参数] 文件1 文件2 …

•头文件的作用是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值