两点建议:
1.注意团队合作
2.温故而知新
今天内容:
1.什么是操作系统?操作系统的作用
操作系统是一款软件。
管理计算机资源的软件。
计算机资源有软件资源和硬件资源。
常见的计算机操作系统
unix GNU/LINUX windows
ios macos
补充:
1)标准c函数库。本质就是一个仓库,
这个仓库表现在计算机里就是一个文件。
在仓库里存放的是C语言的函数。
2)shell是用户和操作系统交互的窗口
3)system call 本质就是C语言写成的函数。
void func1(void arg)
{
func2();
}
专业术语 分层、透明
2.GNU项目
GNU项目组
开放源代码。《GNU宣言》。
GNU项目组开发了很多实用的小项目。
gcc编译器、vi编辑器、bash
GNU/LINUX操作系统 linux内核和实用的app组成
3.计算机语言的发展历史
开关 灯 状态
1 1 2
2 2 4
3 3 8
。。。 。。。 。。。
32 32 4G
11111111,11111111,00000011,00000010 add
11111111,11111110,00000011,00000010 sub
if...else
while
for
4.复习C语言的知识
.c 源文件的后缀
.i 预处理后的源文件
.s 汇编程序的源文件后缀
.o 目标文件的后缀
补充:
1)echo 字符串
在显示器上显示字符串
echo $变量的名字
将变量的内容显示在屏幕上
echo $?
将上一个命令的执行结果显示到显示器上
在linux上写c程序,规则,程序正常运行结束返回0,
不正常返回非0;
2)man帮助
man 1 commnad linux命令的帮助信息
man 2 system call 察看系统调用的帮助信息
man 3 标准c库函数名 查看标准C库中的函数的帮助信息
以hello.c为例
a)预处理阶段
对.c源文件进行预处理
gcc -E hello.c -o hello.i
(一) 程序中的注释全部去掉
(二) 在C程序的源代码中以#(sharp)开头的,
都是预处理指令。
#include <stdio.h>
#include <>
#include ""
b)从预处理文件到汇编语言
gcc -S hello.i -o hello.s
c)将汇编语言汇编成目标文件(机器语言)
gcc -c hello.s -o hello.o
d)需要将目标文件和运行时库文件进行绑定(链接)
gcc hello.o -o hello
e) ./hello
集成:
gcc hello.c
gcc -v hello.c 显示所有的编译过程
5.大型软件的开发模型
第一步:定义头文件(代码参照tmath.h)
第二步:头文件中函数的实现
第三步:函数的调用
每一个.c源文件中可以包含多个函数。但是编译的单位是
源文件,不是函数。
补充:
变量的声明不为变量分配内存空间。
变量的定义为变量分配内存空间
宏定义:(代码参见pre_do.c)
#define PI 3.14
nm命令的使用
nm 二进制文件 察看文件的导出符号
T
U
静态链接:发生在编译阶段
动态链接:程序运行的时候,才发生的链接。
ldd 可执行文件 查看可执行文件依赖的库文件
框架和组件
6.typedef的使用
typedef是给类型起别名。
第一步:先定义变量
int count;
第二步:
typedef int count;
第三步:
count i;
int array_t[3];
typedef int array_t[3];
array_t a;==int a[3];
代码参见(array.c)
struct node{
int data;
struct node *next;
};
typedef struct node node_t;
typedef node_t *node_p;
node_p p;
node_t **q;
node_p *q;