自学教材1、2章学习笔记1
学习笔记
知识点归纳以及有收获的内容
知识结构
第一章 引言
系统编程:
系统编程是计算机科学和计算机工程教育不可或缺的一部分。
本书目标:
1.强化编程背景知识。
2.动态数据结构的应用。包括c结构,指针,链表,和链数。
3.进程概念和进程管理。
4.并发编程。
5.定时器和定时功能。
6.文件系统。
7.信号、信号处理和进程间通信。
8.Tcp/ip和网络编程。Tcp/ip协议、套接字api、Udp和tcp套接字编程。
Unix
1.AT&T Unix
2.Berkeley Unix
3.HP Unix
4.IBM Unix
5.Sun Unix
Linux
1.Debian Linux
2.Ubuntu Linux
3.Linux Mint
4.基于RPM的Linux
5.Slackware Linux
虚拟机上的Linux
1.VirtualBox
2.VMware
3.双启动的Slackware和Ubuntu Linux
使用Linux Unix/Linux文件系统组织
文件类型
文件路径名
Unix/Linux命令
手册页
Ubuntu Linux系统管理
用户账户
添加新用户:sudo adduer username
sudo命令
第二章 编程背景
1.Linux中的文本编辑器
vim :
Vm是linux的标准内置编辑器,它是unix。原始默认vi编辑器的改进版本有三种不同的操作模式,分别是命令模式,插入模式和末行模式。
gedit:
gedit是GNOME桌面环境默认的文本编辑器。 emacs:
是一款强大的文本编辑器。
2.使用文本编辑器
使用emacs:emacs将任意.c文件识别为C语言程序的源代码,并按照C代码行的惯例缩进。创建源文件后,按下meta键序列“Ctrl+X+C",已保存文件并退出。
emacs菜单:
emacs的集成开发环境:emacs不仅是一款文本编辑器,他还为软件开发提供了一个集成开发环境,其中包括编译c语言,程序运行,可执行的印象以及用gdp执行调试程序。
3.程序开发
开发步骤
1.创建源文件
2.用gcc把原文件转换成二进制可执行文件
3.gcc是什么,gcc是一个程序,包含三个主要步骤:将源文件转换为汇编代码文件;把汇编代码转换成目标代码;链接
静态与动态链接
创建二进制可执行文件的方式有两种,分别是静态链接和动态链。
在使用静态库的静态链接中链接器将所有必要的库函数代码和数据存入到a.out文件中。
在使用共享库的动态链接中,库函数未包含在a.out文件中,但是对此类函数的调用以指令形式记录在a.out文件中。
可执行文件格式
1.二进制可执行平面文件
2.a.out可执行文件
3.ELF可执行文件
a.out文件的内容
1.文件头
2.代码段
3.数据段
4.符号表
程序执行过程
1.读取a.out文件,一标记字符串作为命令行参数
2.sh从总大小中分配一个内存区给执行映像
3.sh放弃旧映像,开始执行新映像
4.执行从crt0.o开始,调用main,将argc和argv作为采纳数传递给main
程序终止
1.正常终止
2.异常终止
4.C语言中的程序调用
1.32位GCC中的运行时堆栈使用情况
2.long jump
3.64位GCC中的运行时堆栈使用情况
5.C语言程序与汇编代码的链接
1.用汇编代码编程
2.用汇编语言实现函数
3.从汇编中调用C函数
6.链接库
静态链接库 动态链接库
7.makefile
7.GDB调试工具
8.C语言相关知识
实践过程
在virtual box中安装openeuler
首先先在virtual box中新建一个虚拟机,并下载好ubuntu
其次,安装好openeuler,并设置密码和用户
安装好之后重启虚拟机,并输入设置好的用户和密码之后,如下图,即安装成功