备课笔记-Linux编程基础.pdf
《备课笔记-Linux编程基础.pdf》由会员分享,可在线阅读,更多相关《备课笔记-Linux编程基础.pdf(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux编程基础CCIT计算机学院嵌入式教研室於志强常州信息职业技术学院 计算机学院Linux 编程基础1目 目 录 录 一、一、Linux Linux 基础基础.2 2 1.1.操作系统.操作系统.2 2 2.Linux 2.Linux 简介 简介.4 4 3.3.嵌入式 嵌入式 Linux Linux.5 5 4.C 4.C 语言概述 语言概述.6 6 二、二、常用 常用 Shell Shell 命令命令.10 10 2.1 用户系统相关命令2.1 用户系统相关命令.10 10 2.2 2.2 文件目录相关命令 文件目录相关命令.15 15 2.3 压缩打包相关命令2.3 压缩打包相关命
2、令.22 22 2.4 网络相关命令2.4 网络相关命令.24 24 三、三、Vi Vi 编辑器编辑器.28 28 3.1 vi 3.1 vi 的基本模式 的基本模式.28 28 3.2 vi 3.2 vi 的基本操作 的基本操作.28 28 四、四、GCC GCC 编译器编译器.33 33 4.1 gcc 4.1 gcc 编译流程解析 编译流程解析.33 33 4.2 gcc 4.2 gcc 编译选项分析 编译选项分析.33 33 五、五、GDB GDB 调试工具 调试工具.35 35 5.1 gdb 5.1 gdb 使用流程 使用流程.35 35 5.2 gdb 5.2 gdb 基本命令
3、基本命令.35 35 5.3 GDB 5.3 GDB 使用实例 使用实例.38 38 六、六、Make Make 工程管理器 工程管理器.39 39 6.1 Makefile 6.1 Makefile 基本结构 基本结构.39 39 6.2 Makefile 6.2 Makefile 变量 变量.39 39 6.3 Makefile 6.3 Makefile 规则 规则.41 41 6.4 Make 6.4 Make 管理器的使用 管理器的使用.41 41 参考文献 参考文献.4343常州信息职业技术学院 计算机学院Linux 编程基础2一、一、Linux 基础基础 计算机系统由硬件和软件两部
4、分组成。操作系统式计算机中的底层软件,其他软件如数 据库、编译系统和应用软件都依赖于操作系统的支持。1.操作系统1.操作系统1.1 操作系统的概念操作系统的概念 操作系统(Operating System,简称 OS)是用户与计算机硬件系统间的接口,是用于控 制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。通过操作系统,用户可以安全、快捷地操纵计算机硬件系统并运行自己的程序。同时,操作系统也便于对计 算机系统的各项资源进行管理。操作系统是计算机系统的内核与基石,是一个庞大的管理控制程序,大致包括 5 个方面 的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理
5、。目前微机上常 见的操作系统有 DOS、Windows、UNIX、LINUX、XENIX、Netware 等。用户使用操作系统主要通过两种方式进行:一是通过执行 shell 命令方式,典型的如 DO S 的 command,UNIX 及 Linux 的 bsh、csh 等;二是编写程序,通过调用操作系统提供的系统 调用接口,访问操作系统的各种资源。用户使用操作系统的两种方式如图 1-1 所示。图 1-1 操作系统接口1.2 操作系统基本功能操作系统基本功能 典型的操作系统中,通常包含多种软硬件资源,如处理器(CPU)、存储器(内存、磁盘)、输入输出设备、数据或程序等,其组织结构如图 1-2 所
6、示:计算机硬件 操作系统操作系统 系统调用 Shell 命令接口 应用程序 用户 OSOS常州信息职业技术学院 计算机学院Linux 编程基础3图 1-2 计算机系统的组织结构 操作系统的基本功能包括以下几点:1.处理机管理:对处理机进行分配,并对其运行进行有效的控制和管理。通常情况下,处理机的分配以进程为单位,所以一般可归结为进程管理。2.存储器管理:负责内存的分配与回收。为程序的运行分配内存空间,为程序提供良好 的运行环境,方便用户合理使用存储器。3.输入/输出设备管理:负责输入/输出设备的分配与控制,如从键盘鼠标输入数据,向 打印机打印输入。4.文件管理:负责文件的存取。通常情况下,程序
7、和数据总是以文件的形式存储在磁盘 等介质中供用户使用。文件管理的主要任务就是对文件进行有效的管理。1.3 主要操作系统介绍主要操作系统介绍 操作系统从诞生至今已有近 50 年的历史。上世纪 60 年代至 70 年代是操作系统发展的活 跃时期。到上世纪 80 年代至 90 年代,已发展的比较成熟,功能日趋完善,性能更加优化,主要分以下几种:?MS-DOS 操作系统:微软 1981 年推出,随 IBM 公司的 IBM-PC 计算机一起发行,随着 PC 计算机的畅销,MS-DOS 成为 16 位计算机操作系统的标准。?Windows 系列操作系统:1990 年,微软推出了 Windows3.0 版本
8、,以其友好的图形界 面征服了广大计算机用户。该操作系统同时具有支持多任务、易学好用的特点,在 P C 领域迅速流行。1993 年推出的 WindowsNT 是真正的 32 位多任务操作系统,用于服 务器领域。1995 年 Windows95 的推出,更加巩固了 Windows 在 PC 的市场,后来还有 Windows98、WindowsME、Windows2000,发展到现在的 Windows XP、Windows Vista、Windows7 一系列操作系统,是目前 PC 领域绝对的主流。?UNIX 操作系统:UNIX 是 1969 年由 AT&T 贝尔实验室的丹尼斯里奇与肯汤普逊所 建立
9、,是多用户、多任务的操作系统,一开始是在小型机、大型机上使用,现在也 可以在微机上使用,具有优良的性能和强大的安全控制机制,但由于厂商众多,所 以种类也很多,如 IBM AIX、Sun Solaris、HP-UX、SCO Unix 等,目前是服务器领 域最重要的操作系统。?Linux 操作系统:实际上时 UNIX 的变种,一开始是为 PC 建立的,继承了 UNIX 的全 部优点,是开放源码的自由软件。目前在服务器领域也大行其道,占据了一定的市 场份额。Linux 还提供了不亚于 Windows 的华丽的用户界面,吸引了大量桌面办公领 域的用户由 Windows 转向 Linux 阵营,不同厂商
10、有着不同的发行版本,但内核一般 都是相同的。处理机(CPU)存储器 存储器 存储器 总线常州信息职业技术学院 计算机学院Linux 编程基础42.2.Linux Linux 简介简介 最早开始于一位名叫 Linus Torvalds 的计算机业余爱好者,当时他是芬兰赫尔辛基大学 的学生。他的目的是想设计一个代替 Minix(是由一位名叫 Andrew Tannebaum 的计算机教授 编写的一个操作系统示教程序)的操作系统,这个操作系统可用于 386、486 或奔腾处理器的 个人计算机上,并且具有 Unix 操作系统的全部功能,因而开始了 Linux 雏形的设计。Linux的历史的历史 Lin
11、ux 历史是和 GNU 紧密联系在一起的。1983 年,Richard Stallman 创立了 GNU 计划(GNU Project,GNU is not Unix)。这个计划有一个目标是为了发展一个完全免费自由的 Unix-like 操作系统。自 1990 年代发起这个计划以来,GNU 开始大量的产生或收集各种系统 所必备的元件,像是函数库(libraries)、编译器(compilers)、侦错工具(debuggers)、文字编辑器(text editors)、网页服务器(web server),以及一个 Unix 的使用者接口(Unix shell)除了执行核心(kernel)仍然付阙
12、外。1990 年,GNU 计划开始在马赫微核(Mach microkernel)的架构之上开发系统核心,也就是所谓的 GNU Hurd,但是这个基于 Mach 的设 计异常复杂,发展进度则相对缓慢。1991 年 4 月,芬兰赫尔辛基大学学生 Linus Benedict Torvalds(当今世界最著名的电 脑程序员、黑客)不满意 Minix 这个教学用的操作系统。出于爱好,他根据可在低档机上使 用的 MINIX 设计了一个系统核心 Linux 0.01,但没有使用任何 MINIX 或 UNIX 的源代码。他通 过 USENET(就是新闻组)宣布这是一个免费的系统,主要在 x86 电脑上使用,
13、希望大家一起 来将它完善,并将源代码放到了芬兰的 FTP 站点上任人免费下载。本来他想把这个系统称为 freax,意思是自由(free)和奇异(freak)的结合字,并且附上了X这个常用的字母,以配合所谓的 Unix-like 的系统。可是 FTP 的工作人员认为这是 Linus 的 MINIX,嫌原来的命 名“Freax”的名称不好听,就用 Linux 这个子目录来存放,于是它就成了“Linux”。这时 的 Linux 只有核心程序,仅有 10000 行代码,仍必须执行于 Minix 操作系统之上,并且必须 使用硬盘开机,还不能称做是完整的系统;随后在 10 月份第二个版本(0.02 版)就
14、发布了,同时这位芬兰赫尔辛基的大学生在 comp.os.minix 上发布一则信息:Hello everybody out there using minix-Im doing a(free)operation system(just a hobby,wont be big and professional like gnu)for 386(486)AT clones.由于许多专业用户(主要是程序员)自愿地开发它的应用程序,并借助 Internet 拿出来 让大家一起修改,所以它的周边的程序越来越多,Linux 本身也逐渐发展壮大起来。倍受青睐的原因倍受青睐的原因 Linux 之所以受到广大计
15、算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用 户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的 修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有 Unix 的全部功能,任何使 用 Unix 操作系统或想要学习 Unix 操作系统的人都可以从 Linux 中获益。运行 Linux 需要的配置并不高,支持众多的 PC 周边设备,并且这样一个功能强大的软件 完全免费,其源代码是完全公开的,任何人都能拿来使用。说到这里,各位可能怀疑这免费常州信息职业技术学院 计算机学院Linux 编程基础5后面是不是隐藏着什么?作者会心甘情愿的把它拿出来而分文不取
16、吗?其实,它代表着软件 开发的另一种概念:那就是基于 GNU 的版权制度。标志与读音标志与读音 linux 发音五花八门版本颇多,见到和听到的不下 10 种。根据 linux 的创始人 Linus Torvalds 的说法,Linux 的发音和“Minix”是押韵的。“Li”中“i”的发音类似于“Minix”中“i”的发音,而“nux”中“u”的发音类似于英文单词“profess”中“o”的发音。依照 国际音标应该是/links/类似于“里讷克斯”。但是,由于 Linus Torvalds 本人是芬 兰人,所以他的 Linux 读音不是/links/,而是/liniks/.Linux 的标志和
17、吉祥物是一只名字叫做 Tux(Torvalds UniX)的企鹅,标志的由来是因为 Linus 在澳洲时曾被一只动物园里的企鹅咬了一口,便 选择了企鹅作为 Linux 的标志。Linux 的注册商标是 Linus Torvalds 所有 的。最新的 Linux Logo 或吉祥物如右图所示:发行版本发行版本 目前最著名的发行版本:Debian,红帽(redhat)、ubuntu(包括 kubuntu,xubuntu 等)、OpenSuse(原 Suse)、Ma ndriva(原 Mandrake)、CentOS、fedora,veket,等 国内比较著名的 linux 版本:红旗 linux,
18、Qomo Linux,冲浪 Linux(Xteam Linux),蓝点 Linux,新华 Linux,共 创 Linux,新氧 Linux,雨林木风,Deepin Linux 3.嵌入式 3.嵌入式 LinuxLinux 嵌入式系统出现于 60 年代晚期,它最初被用于控制机电电话交换机,如今已被广泛的应 用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费 类产品等众多领域。计算机系统核心 CPU,每年在全球范围内的产量大概在二十亿颗左右,其 中超过 80应用于各类专用性很强的嵌入式系统。一般的说,凡是带有微处理器的专用软硬 件系统都可以称为嵌入式系统。什么是嵌入式
19、 什么是嵌入式 LinuxLinux 嵌入式 linux 是将日益流行的 Linux 操作系统进行裁剪修改,使之能在嵌入式计算机系 统上运行的一种操作系统。嵌入式 linux 既继承了 Internet 上无限的开放源代码资源,又具 有嵌入式操作系统的特性。嵌入式 Linux 的特点是版权费免费;购买费用媒介成本技术支持全 世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以常州信息职业技术学院 计算机学院Linux 编程基础6参考和移植,实时性能 RT_Linux Hardhat Li
20、nux 等嵌入式 Linux 支持,实时性能稳定性好安 全性好。嵌入式 linux 应用领域非常广泛,主要的应用领域有信息家电、PDA、机顶盒、Digital Telephone、Answering Machine、Screen Phone、数据网络、Ethernet Switches、Router、Bridge、Hub、Remote access servers、ATM、Frame relay、远程通信、医疗电子、交通运 输计算机外设、工业控制、航空航天领域等。Linux Linux 作为嵌入式操作系统的优势:作为嵌入式操作系统的优势:(1)低成本开发系统 Linux 的源码开放性允许任何人
21、可以获取并修改 Linux 的源码。这样一方面大大降低了开 发的成本,另一方面又可以提高开发产品的效率。并且还可以在 Linux 社区中获得支持,用 户只需向邮件列表发一封邮件,即可获得作者的支持。(2)可应用于多种硬件平台 Linux 可支持 X86、PowerPC、ARM、XSCALE、MIPS、SH、68K、Alpha、SPARC 等多种体系 结构,并且已经被移植到多种硬件平台。这对于经费、时间受限制的研究与开发项目是很有 吸引力的。Linux 采用一个统一的框架对硬件进行管理,同时从一个硬件平台到另一个硬件平 台的改动与上层应用无关。(3)可定制的内核 Linux 具有独特的内核模块机
22、制,它可以根据用户的需要,实时地将某些模块插入到内核 中或者从内核中移走,并能根据嵌入式设备的个性需要量体裁衣。经裁减的 Linux 内核最小 可达到 150KB 以下,尤其适合嵌入式领域中资源受限的实际情况。当前的 2.6 内核加入了许 多嵌入式友好特性,如构建用于不需要用户界面的设备的小占板面积内核选项。(4)性能优异 Linux 系统内核精简、高效和稳定,能够充分发挥硬件的功能,因此它比其他操作系统的 运行效率更高。在个人计算机上使用 Linux,可以将它作为工作站。它也非常适合在嵌入式领 域中应用,对比其他操作系统,它占用的资源更少,运行更稳定,速度更快。(5)良好的网络支持 Linu
23、x 是首先实现 TCP/IP 协议栈的操作系统,它的内核结构在网络方面是非常完整的,并 提供了对包括十兆位、百兆位及千兆位的以太网,还有无线网络、Token ring(令牌环)和 光纤甚至卫星的支持,这对现在依赖于网络的嵌入式设备来说无疑是很好的选择。4.4.C C 语言概述语言概述 C 语言是 Combined Language(组合语言)的中英混合简称。是一种计算机程序设计语 言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编 写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研
24、都需要用到 C 语言,具体应用比 如单片机以及嵌入式系统开发。常州信息职业技术学院 计算机学院Linux 编程基础74.1 C语言简史语言简史 C 语言于 20 世纪 70 年代诞生于美国的贝尔实验室。在此之前,人们编写系统软件主要使 用汇编语言。汇编语言编写的程序依赖于计算机硬件,其可读性和可移植性都比较差。而高 级语言的可读性和可移植行虽然较汇编语言好,但一般不具备低级语言能够直观地对硬件实 现控制和操作而且执行速度快等特点。在这种情况下,人们迫切需要一种既具有一般高级语言特性,又具有低级语言特性的语 言,于是 C 语言就应运而生了。C 语言既可以用来编写系统软件,也可以用来编写应用软件。
25、现在,C 语言已经被广泛应用在除计算机行业外的机械、建筑和电子等各个行业中。C 语言的原型 ALGOL 60 语言(也称为 A 语言),发展历程如下:1.1963 年,剑桥大学将 ALGOL 60 语言发展成为 CPL(Combined Programming Language)语 言。2.1967 年,剑桥大学的 Martin Richards 对 CPL 语言进行了简化,于是产生了 BCPL 语言。3.1970 年,美国贝尔实验室的 Ken Thompson 将 BCPL 进行了修改,并为它起了一个有趣的 名字“B 语言”。意思是将 CPL 语言煮干,提炼出它的精华。并且他用 B 语言写了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 备课 笔记 Linux 编程 基础
限制150内