何谓虚拟存储器linux系统如何支持虚存,Linux操作系统应用导学20131126.pps

20131126,Follow me!,作业讲评,4.3执行shell脚本的方式主要是哪些? 要点:bash输入重定向;脚本名作为bash参数;权限设为可执行文件。 4.4 将主提示符改为用户的主目录名 PS1=“$HOME“ 4.5 说明三种引号的作用有什么区别 要点:双引号普通显示字符;单引号都作为普通字符;倒引号命令替换。,5.3什么是进程?什么是线程?Linux系统中的进程有哪些状态?如何获取系统中各进程的状态 ? 1)要点:进程是一个动态概念,程序的一次运行活动,是系统中的动态实体,是系统分配各种资源、进行调度的基本单位。 2)要点:进程中指令的不同执行路线。 3) 就绪、阻塞、运行; 4)”如何获取系统中各进程的状态 ?“此题不做要求,超出所教范畴, 但可以回答 “使用ps命令”或“在windows下打开任务管理器”,5.8Linux系统一般采用哪种文件系统? ext, ext2 ,ext3,ext4 掌握主要使用的是ext2,ext3 5.14何谓虚拟存储器 ,Linux系统如何支持虚存? 要点:逻辑地址空间;4G寻址范围;请求页面;交换分区 参考教材5.4.1和5.4.2以及上课PPT,自行总结。,编写一个shell脚本,判断所给参数是否为一个目录。 如果目录存在,就列出目录内的子目录和文件,否则就现在“该目录不存在!” 解:复习上次课的PPT第一季中的16、17页,查阅教材表4.4找到哪个参数是判断是不是目录的。 在PPT16页里脚本中作修改,把原来判断 是不是一个文件(用 –f )改成判断是不是一个目录(用 –d ) 并修改echo 后的相应的显示信息。 列出目录内的子目录和文件,用ls –l 即可。,订正作业时间,修改和重新运行脚本。 适当的记录。 思考题的要点记录和在书上作标记。,CH6,Linux给我们的远远不止是命令行输入命令来操作,也远远不是在鼠标界面下推箱子和玩方块。 除了鼠标图形界面和命令行交互(SHELL脚本可以看成是命令行的优化集成), 还有第3种使用方式---编程方式。 通过编写程序来使用Linux是最高效、最直接的方式。 编程,是驾驭任何一个操作系统的终极魔 法,在windows下也是一样。Let’s go!,Linux是一个优秀的编写应用程序的平台。 我们以后学习嵌入式系统的开发就要用到。切记! 首先来学习Linux提供的开发编程工具。,6.1gcc,Linux由C语言编写出来,所以在Linux下编程首选C语言。 首先学习编程过程中的一些文件的文件类型(表6.1),掌握.c、.i、.h、.s、.o,gcc是一个编译系统,把写好的源程序编译成可执行程序的过程如图6.1 注意,我们熟悉的语法错误检查中编译阶段执行。 复习预处理的概念。 练习:在图6.1上把.c、.i、.s、.o标记在产生它的阶段上。,.c,.i,.s,.o,实践:编写一个完整的简单C语言源程序文件,内容童鞋们自定。学习gcc的-E和-o用法,见表6.2. 视频演示中 gcc -E test1.c 预处理,结果显示在屏幕上; gcc -E test1.c -o test1.i 把预处理结果写入test1.i 内。,运用 gcc –S 生成汇编语言文件 .s ,见表6.3,查看汇编文件内容。,gcc –c 命令生成目标文件.o ,见表6.3 gcc test1.o –o test1 ,链接、生成执行文件test1 设置好环境变量PATH后可以直接运行test1.,至此,gcc编译系统的各步骤及各步骤生成的文件,文件的内容,都应该掌握了。,6.2 gdb程序调试工具,程序中的错误可按性质分为三种: (1)编译错误,即语法错误。 (2)运行错误。 (3)逻辑错误。 查找程序中的错误,诊断其准确位置,并予以改正,这就是程序调试。 程序调试分为人工查错与机器调试。 本节只要求掌握gdb是什么,有什么功能。,6.3 程序维护工具make,一个软件交付用户使用后,还要进行长期的维护工作。 维护包括修改、升级、添加新功能等等。 一个软件中包含的程序文件、数据文件非常多,维护一次就要执行大量的gcc命令,效率非常低。 make就是用来高效率地完成维护工作的。,make是一个命令,它负责执行一个文本文件makefile makefile 里面写的都是规则,编译的规则。 示例: 先写两个有关联的.c文件,a.c和b.c 再写一个简单的makefile文件并运行。 修改a.c,再运行makefile观察执行过程的不同。,先看这个makefile文件: prog: a.o b.o //prog是最终的可执行文件,由a.o b.o 两个目标文件链接而成。 gcc a.o b.o -o prog //执行这个gcc命令可以生成 prog文件。gcc可以对两个.o文件一起操作。 a.o:a.c //a.o文件由a.c生成。 gcc -c a.c //执行这个gcc命令,从a.c直接生成a.o文件 b.o:b.c gcc -c b.c //同上,不解释。 clean: rm *.o //clean段落,删除所有的.o目标文件。,视频演示中的这些文件均已编写好,所以用cat命令展示,童鞋们需要用vi自己写。 a.c 和 b.c 是相互关联的。 编写makefile时切记注意,每一个gcc命令行必须用TAB开头,gcc命令行的文字颜色是酱紫色时才表示书写正确!! 参见P200 倒数第二行!!,下面运行makefile文件,只要输入命令make即可,会自动搜索当前目录下的makefile。屏幕会显示执行过程。记下执行过程!(很重要!),生成的prog文件可以直接运行,前提是已设置好PATH环境变量。PATH设置一次即可。,下面,再次执行make看看,有什么后果?,接下来对a.c做一个小的修改,b.c不动。 然后执行make,仔细观察执行过程,和前面的过程比较,看有什么不同? (很重要!),结论: 当a.c,b.c都编写好,执行make,两个源文件都被编译(都执行了gcc命令行)。 当a.c,b.c没有修改过,执行make,显示“prog是最新的”,即不做任何更新,不做任何操作(不执行gcc命令行)。 当只有a.c修改过,执行make,只做a.c 的编译,再把a.o和原有的b.o链接生成新的prog。b.c文件不做编译。,大家想一想, make这么做,是不是“有选择地”完成软件版本的更新? 当一个软件有成百上千的文件时,这样做的效率是不是非常高? 参阅并标注P199: “程序维护往往是一个。。。”段落6~7行; “make的主要功能是,。。”段落第一句。,makefile文件的格式 P200 倒数第二段。 每一个“:”段落就是一条规则。 加深实践: 阅读并理解P200 例6.1及后面的第一个段落。(灰常重要!),难点释疑: 第二行中的 –L/home/mqc/lib –lm 参阅P186 表6.5 -L指明链接过程中用到的库文件的路径; -l 指明该库文件的文件名(去掉lib前缀后的文件名) 库文件名以lib作为前缀,后缀名.so,本学习环节完成后才能做本次课的作业: 【习题6.9】 写在文本文件中上传,方法同前次课作业。,

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值