操作系统:01 Linux环境编程

1 UNIX操作系统

        最早版本 1970左右诞生于美国的贝尔实验室,丹尼斯.里奇,肯.汤姆逊,  

        最早的多用户、多任务、支持多种cpu架构

        高安全性、高可靠性、高稳定性

        在构建大型关键性业务的商用服务器中会进行使用,也能在嵌入式移动设备中架设

    Minix是一种基于微内核架构的类UNIX计算机操作系统,并开源给大学教学研究使用,Linux受到其启发

2 Linux操作系统

        Linux 全称GNU/Linux 由林纳斯.托瓦兹于1991年在校园网上发布了第一个Linux内核版本

        是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。

        Linux继承了UNIX以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统

2.1 相关知识

        Linux的标志企鹅,因为企鹅是南极洲标志性动物,而当时南极是没有被任何国家占领的,是属于全人类的,符合Linux开源的风格:共享

        GNU组织:通用的非商业的类UNIX,目前全球最大的开源组织,负责维护和开发Linux的内核源

        GPL通用许可证:任何在带有GPL证书的代码的基础上,进行开发、修改出来的软件、代码,也必须支持GPL许可证书,确保开源免费

        POSIX:可移植操作系统接口规范,Linux完全遵循该规范,UNIX极少部分有所不同,但基本遵循

2.2 Linux内核版本和发行版本

        Linux只是表示内核是Linux,只要操作系统的内核是Linux,则可以称该系统属于Linux操作系统

2.3 完整的操作系统

        内核+Shell+界面软件

        其它公司是在Linux内核的基础上设计制作出不同样子、特点的Linux发行版。例如Ubuntu,RedHat、CentOS、debian、deepin

3 GNU编译工具gcc

3.1 多样化:

        支持多种编程语言、支持各种操作系统

        gcc -v  可以查看是否安装了gcc以及版本信息

3.2 编译构建过程:

        预处理:   gcc -E code.c -o code.i

        编译:     gcc -S code.i  ->code.s

        汇编:     gcc -c code.s  ->code.o

        链接:     gcc a.o b.o ... ->a.out

3.3 文件类型:.c .h .i .s .o

        .h.gch  如果存在会优先使用,应及时删除

        .a      静态库文件

        .so     共享库文件

3.4 编译参数:

        -E        只显示预处理结果

        -S        生成汇编文件

        -c        只编译不链接

        -o        指定编译结果的名字

        -std=gnu99  或者 -std=c99(不建议)

        -Wall   -Werror

        -L        指定库文件的查找路径

        -I        指定头文件的加载路径

        -l        根据库名指定要加载的库文件 -lm

        -pedantic 配合使用 -ansi 这告诉编译器要严格遵守ANSI标准,如果不符合会产生警告

3.5 预处理指令:(是否支持预处理指令由编译器决定)

#include<>/""
#define定义宏常量、宏函数
#undef删除宏
#ifdef/#ifndef/#if
#elif
#endif
#pragma pack(n)设置对齐补齐的最大字节数
#pragma once相当于头文件卫士
#pragma GCC dependency"文件名" 监控文件在上一次编译到这一次编译期间是否有修改,如果有会产生警告
#pragma GCC poison key设置key标识符为有毒的,禁止出现该标识符
#error"提示信息"   提示错误    不会生成可执行文件
#warning"提示信息" 提示警告
#line n  设置行号为n,并且会影响后面的行号

一般都与条件编译配合使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就酱77叭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值