- 12
- 0
- 约4.09万字
- 约 85页
- 2017-12-30 发布于湖北
- 举报
第1单元 UNIXLinux基础知识.ppt
* 操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。 例如可以通过进程控制相关的系统调用实现创建进程、实现进程调度、进程管理等。 为什么使用系统调用? 在Linux中,为了更好的保护内核空间,将程序的运行空间分为内核空间和用户空间,分别运行在不同的级别上。 用户进程在通常情况下不允许访问内核数据,也无法使用内核函数。但在有些情况下用户空间的进程需要调用内核空间程序,所以操作系统利用系统调用规定用户进程进入内核空间的具体位置。 进行系统调用时,程序运行空间从用户空间进入内核空间,处理完后再返回到用户空间。 系统调用很精简(250个左右),大致可以分为进程控制、进程间通信、文件系统控制、系统控制、存储管理、网络管理、socket控制,用户管理等几类。 API函数 通常程序员并不直接与系统调用进行交互,而是采用用户编程接口——API函数进行编程。 并不是所有API函数都对应一个系统调用,有时一个API函数会需要几个系统调用来共同完成函数的功能,或者不需要系统调用。 这些系统编程接口主要通过C函数库实现的。 系统命令 系统命令是一个可执行程序,引用了API实现相应的功能。 * \n:下一行行首 \r:本行行首 * cc1中的1是1234的1 * * * * * * * makefile文件包含 包含5部分内容 显式规则:由程序员写出 隐式规则:make命令支持 变量定义:类似宏 文件指示:引用另一个makefile 注释:用#进行行注释。 make执行过程 读入所有的makefile文件,初始化变量,推导隐含规则,分析所有规则。 创建目标文件的依赖关系链,决定哪些目标要重新升成。执行生成命令。 * akefile 自动处理头文件的依赖关系 2009年11月26日 星期四 23:16 现在我们的Makefile写成这样: all: mainmain: main.o stack.o maze.ogcc $^ -o $@main.o: main.h stack.h maze.hstack.o: stack.h main.hmaze.o: maze.h main.hclean:-rm main *.o.PHONY: clean 按照惯例,用all做缺省目标。现在还有一点比较麻烦,在写main.o、stack.o和maze.o这三个目标的规则时要查看源代码,找出它们依赖于哪些头文件,这很容易出错,一是因为有的头文件包含在另一个头文件中,在写规则时很容易遗漏,二是如果以后修改源代码改变了依赖关系,很可能忘记修改Makefile的规则。为了解决这个问题,可以用gcc的-M选项自动生成目标文件和源文件的依赖关系: $ gcc -M main.cmain.o: main.c /usr/include/stdio.h /usr/include/features.h \/usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \/usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h \/usr/include/bits/types.h /usr/include/bits/typesizes.h \/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stdarg.h \/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h main.h \stack.h maze.h -M选项把stdio.h以及它所包含的系统头文件也找出来了,如果我们不需要输出系统头文件的依赖关系,可以用-MM选项: $ gcc -MM *.cmain.o: main.c main.h stack.h maze.hmaze.o: maze.c maze.h main.hstack.o: stack.c stack.h main.h 接下来的问题是怎么把这些规则包含到Makefile中,GNU make的官方手册建议这样写: all: mainmain: main.o stack.o maze.ogcc $^ -o $@clean:-rm main *.o.PHONY: cleansources = main.c sta
您可能关注的文档
最近下载
- DB11_T 2478-2025 碘-131核素治疗病房辐射安全与防护要求.pdf VIP
- NB-T-47018.1~47018.5-2017-承压设备用焊接材料订货技术条件+编制说明_.pdf VIP
- DBJ51_T 233-2023 四川省光伏建筑一体化应用技术标准(CTP).pdf VIP
- DB11_T 2492-2025 消防通信指挥系统应用规范 (1).pdf VIP
- 大众电影封面全集1950-1991170p.doc VIP
- DB11_T 136-2025 汽车维护竣工出厂技术条件.pdf VIP
- DB11_T 783-2025 建设用地土壤修复与风险管控效果评估技术规范.pdf VIP
- DB11_T 1312-2025 预制混凝土构件质量控制标准.pdf VIP
- DB11_T 1322.81-2025 安全生产等级评定技术规范 第81部分:歌舞娱乐场所.pdf VIP
- DB11_T 1322.82-2025 安全生产等级评定技术规范 第82部分:营业性演出场所.pdf VIP
原创力文档

文档评论(0)