学习笔记1
一. 学习笔记
第一章 引言
1.Unix
Unix是20世纪70年代初出现的一个操作系统,除了作为网络操作系统之外,还可以作为单机操作系统使用。Unix作为一种开发平台和台式操作系统获得了广泛使用,主要用于工程应用和科学计算等领域。
2.Linux
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
3. VMware
1.在 Windows 10 上安装 VMware Player
VMware Workstation Player可从VMware的下载站点得到。下载完成后,双击文件名运行,安装VMware,并在桌面上创建VMware Workstation图标。点击图标,启动VMware VM,弹出VMware虚拟机窗口。
2.将Ubuntu 15.10安装到VMware虚拟机上
请按照以下步骤将Ubuntu 15.10安装到VMware虚拟机上
(1)下载"Ubuntu 15.10 install DVD"映像;将其刻录成DVD光盘。
(2)下载适用于 Windows 10 的 VMware Workstation Player 12 exe 文件。
(3)安装 VMware Player。
(4)启动 VMware Playero
・选择:创建一个新的虚拟机。
・选择:安装光盘:DVD-RW驱动器(D:)
=>插入安装程序光盘,直到准备好安装然后,输入“Next”(下一步)
•选择:Linux
版本:ubuntu
•虚拟机名称:更改为合适的名称,例如Ubuntuo
• VMware将创建一个虚拟机,其具有20GB的磁盘、1GB的内存等。 -选择“Finish"完成),完成新虚拟机的创建。
•下一屏:选择:“play virtual machine”(启动虚拟机)来启动虚拟机。 •虚拟机将从“Ubuntu install DVD”启动,以安装Ubuntu.,
(5)在Ubuntu Linux下运行C程序。
图1.4显示了 Ubuntu的启动界面以及在Ubuntu下运行C程序。
4.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:移除或删除文件。
・Inoldfile newfile:在文件之间创建链接。
・find:搜索文件。
・grep:搜索文件中包含模式的行。
- ssh:登录到远程主机。
- gzip filename:将文件压缩为.gz文件。
- gunzip file.gz:解压.gz 文件。
- tar -zcvf file.tgz .:从当前目录创建压缩tar文件。
- tar -zxvf file.tgz .:从,tgz文件中解压文件。
- man:显示在线手册页。
- zip file.zip filenames:将文件压缩为.zip 文件。
- unzip file.zip:解压.zip 文件。
第二章 编程背景
1. 文本编辑器
vim有3种不同的操作模式,分别是
-命令模式:用于输入命令。
·插入模式:用于输入和编辑文本;
-末行模式:用于保存文件并退出。
在X-window中使用vim时,也可以通过箭头键来完成光标的移动疽要输入文本进行编 辑,用户必须输入i (插入)或a (追加)命令将vim切换到插入模式:
·i:切换到插入模式,插入文本。
·a:切换到插入模式,追加文本。
要退岀插入模式,请按ESC键一次或多次「在命令模式下,输入“:”进人末行模式, 将文本保存为文件或退出vim:
·:w:写入(保存)文件。
·:q:退出 vim。
·: wq:保存并退出。
·:q!:不保存更改,强制退出。
WYSIWYG:
·Ctri+C:中止或退岀。
·Ctrl+K:删除行到缓冲区。
·Ctrl+Y:从缓冲区内容中复制或粘贴。
·Ctrl+S:保存已编辑文本等。
2. 使用文本编辑器
• emacs菜单
• File菜单支持打开文件、插入文件和保存文件的操作。它还支持打印正在编辑的缓冲区、打开新窗口和新帧。
-Edit菜单支持査找和替换操作。
• Options菜单支持配置emacs操作的功能。
• Buffers菜单支持缓冲区选择和显示。
• Tools菜单支持编译源代码、执行二进制可执行文件和调试。
• C菜单支持自定义编辑C源代码。
• Help菜单为emacs的使用提供支持,如简单的emacs教程。
3. 程序开发
• 步骤:
(1)创建源文件
(2)用gcc把源文件转换成二进制可执行文件
(3)静态与动态链接库
• 可执行文件格式
(1)二进制可执行平面文件
(2)a.out 可执行文件
(3)ELF可执行文件
• a.out文件
(1)文件头
•tsize
•dsize
•bsize
•total_size
(2)代码段
(3)数据段
(4)符号表
4.程序执行过程
(1)读取a.out文件头,以确定所需的总内存大小。
(2)sh从总大小中分配一个内存区给执行映像。
(3)sh放弃放弃旧映像,开始执行新映像。
(4)执行从crt0.o开始,调用main()。
5.程序终止
(1)正常终止
(2)异常终止
6.C语言程序与汇编代码的链接
1.用汇编代码编程
(1)将C代码编译成汇编代码
(2)汇编代码说明
(3)用汇编语言实现函数
(4)从汇编中调用C函数
7.链接库
(1)动态链接库
(2)静态链接库
8.makefile
9.GDB调试工具
(1)GDB调试工具是一个交互式调试工具,可以调试用C、C++和其他几种语言编写的程序。
(2)GDB是一个功能强大的调试工具,使用非常简单,但应该注意,所有调试工具只能提供有限的帮助,在某些情况下用处不大,所以程序开发的最佳方法是仔细设计程序的算法,然后根据算法编写程序代码。
10.C语言结构体
(1)结构体和指针
(2)类型转换
(3)链表
(4)树和二叉树
二. 问题与解决思路
问题:代码无法在终端运行
解决方法: main前加int 代码末尾加return 0
三、截图