第一章 引言
本书目标
- 强化学生的编程背景知识
- 动态数据结构应用
- 进程概念和进程管理
- 并发编程
- 定时器和定时功能
- 信号、信号处理和进程间通信
- 文件系统
- TCP/IP和网络编程
Unix发展
Linux版本
虚拟机上的Linux
- virtualbox
- VMware
Unix/Linux文件系统组织
树形组织系统
Unix/Linux常用命令:
Is
:Is dirname
:列出CWD或目录的内容。cd dirname
:更改目录。pwd
:打印CWD的绝对路径名。touch filename
:更改文件名时间戳(如果文件不存在,则创建文件)cat filename
:显示文件内容。cp src dest
:复制文件。mv src dest
:移动或重命名文件。mkdir dirname
:创建目录。rmdir dirname
:移除(空)目录。rm filename
:移除或删除文件。In olefile newfile
:在文件之间创建链接。find
:搜索文件。grep
:搜索文件中包含模式的行。ssh
:登录到远程主机。gzip filename
:将文件压缩为.gz文件。gunzip filename.gz
:解压.gz文件。tar -zcvf file.tgz
.:从当前目录创建压缩tar文件。tar -zxvf file.tgz
.:从.tgz文件中解压文件。man
:显示在线手册页。zip file.zip filenames
:将文件压缩为.zip文件。unzip file.zip
:解压.zip文件
Linux手册页
第二章 编程背景
Linux中的文本编辑器
- vim
- gedit
- emacs
程序开发
- 创建源文件
- 用gcc把源文件转换成二进制可执行文件
gcc三个主要步骤
- 将c源文件转换为汇编代码文件
- 把汇编代码转换为目标代码
- 链接
可执行文件格式
- 二进制可执行平面文件
- a.out可执行文件
- 文件头
- 代码段
- 数据段
- 符号表
- ELF可执行文件
程序执行过程
- 读取a.out文件,一标记字符串作为命令行参数
- sh从总大小中分配一个内存区给执行映像
- sh放弃旧映像,开始执行新映像
- 执行从crt0.o开始,调用main,将argc和argv作为采纳数传递给main
程序终止
- 正常终止
- 异常终止
Unix/Linux文件系统操作命令规范
- mkdir路径名:为给定的路径名创建一个新目录。
- rmdir路径名:如果目录为空,则删除该目录。
- cd[路径名]:将当前工作目录更改为路径名,如果没有路径名则更改为“/”。
- ls[路径名]:列出路径名或当前工作目录的目录内容。
- pwd:打印当前工作目录的(绝对)路径名。
- creat路径名:创建一个FILE节点。
- rm路径名:删除FILE节点。
- save文件名:将当前文件系统树保存为文件。
- reload文件名:从一个文件构造一个文件系统树。
- menu:显示有效命令菜单。
- quit:保存文件系统树,然后终止程序
在virtualbox中安装OpenEuler
最初安装时内存不够,于是只能重建虚拟机,最终按照网上的教程进行回收空间后成功安装。
安装emacs
在虚拟机中安装emacs中报错,显示无法定位软件包,在网上搜到解决方法后,将软件源改为中国的源后仍无法解决,目前还在解决中。