UC成长之路1
注: U是Unix,C是标准C语言
一、什么是操作系统
- 接口
- 环境
(以汽车为例:转向系统、加油系统、空调系统、导航系统…,子系统协调完成一个任务,司机没有直接控制汽车的硬件,而是通过接口间接控制了汽车的硬件)
操作系统为我们提供了方便、安全、高效…
二、什么是计算机的操作系统
- 计算机的操作系统管理了计算机的硬件;
- 用户通过计算机的操作系统来使用计算机;
- 计算机的操作系统还需要管理计算机的软件;
- 计算机系统的定义:管理计算机软件资源和硬件资源的一款系统软件
要使用一个函数,需要了解函数的什么?
功能、参数(每个参数的类型、参数个数、每个参数代表的意义)、函数的返回值及意义
操作系统的分类
unix, linux, windows
参照unix
GNU应用软件是基于Unxi的系统调用做出的软件,遵循posix标准
使用man找函数的帮助信息
- man 1 command
- man 2 system call
- man 3 library(如:man 3 printf)
LFS
自己动手搭建自己操作系统
内容:内存管理、文件系统、文件管理、进程管理、信号管理(软件中断)、进程间的通讯、网络通讯、线程管理。(在Linux中一切皆文件)
三、计算机语言的发展史
机器语言->汇编语言->C语言
- 汇编语言
命令:objdump -d fileName
可以查看一个文件的二进制存储情况
翻译软件 | 将汇编指令翻译成机器指令 | 汇编器 | 汇编
汇编指令跟cpu紧密相关,汇编指令不能跨平台 - C语言| 是汇编指令的集合
将C语言翻译成汇编指令 | 翻译软件 | 编译器 | 编译
编译器和汇编器要保证好用、安全- 对C语言的源程序进行预处理。(预处理:由预处理器完成。# 预处理指令 | <其中有文件的包含、宏定义、条件编译>)预处理是给预处理器下的指令,不是C语句,所以预处理指令后面没有
;
。预处理的命令是gcc -E Hello.c -o Hello.i
。预处理去掉了所有的注释信息 - 将hello.i编译成hello.s汇编语言,命令
gcc -S hell.i -o hello.s
- 将汇编语言汇编成机器语言,目标文件,命令:
gcc -c hello.s -o hell.o
- 将目标文件与库文件与运行时文件进行链接,形成可执行文件,命令
gcc hello.o
- 对C语言的源程序进行预处理。(预处理:由预处理器完成。# 预处理指令 | <其中有文件的包含、宏定义、条件编译>)预处理是给预处理器下的指令,不是C语句,所以预处理指令后面没有