20135328信息安全系统设计基础第二周学习总结(vim、gcc、gdb)
第三周学习笔记
学习计时:共8小时
读书:1
代码:5
作业:1
博客:7
一、学习目标
- 熟悉Linux系统下的开发环境
- 熟悉vi的基本操作
- 熟悉gcc编译器的基本原理
- 熟练使用gcc编译器的常用选项
5 .熟练使用gdb调试技术 - 熟悉makefile基本原理及语法规范
- 掌握静态库和动态库的生成
二、学习资源
教材:第一章,第七章
《嵌入式Linux应用程序开发标准教程》第三章3.1-3.5
课程资料:https://www.shiyanlou.com/courses/413 实验二,课程邀请码:W7FQKW4Y
教学视频:http://pan.baidu.com/s/1kTHxOFl ,可以参考第十个视频
三、学习方法
进度很重要:必须跟上每周的进度,阅读,练习,问答,项目。我会认真对待每一位同学,请你不要因为困难半途而废。
- 问答很重要:遇到知识难点请多多提问,这是你的权利更是您对自己负责的义务。问答到博客园讨论小组:http://group.cnblogs.com/103791/
- 实践很重要:解决书中习题,实践书中实例,完成每周项目,才算真的消化了这本好书。通过实验楼环境或自己安装的虚拟机在实践中进行学习
实验报告很重要:详细记录你完成项目任务的思路,获得老师点评和帮助自己复习。学习完成后在博客园中(http://www.cnblogs.com/)把学习过程通过博客发表,博客标题“信息安全系统设计基础第二周学习总结”
四、学习任务
(提示:请将要求学生完成的任务、测验或思考题列在此处)
1.教材第一章,第七章学习:阅读并消化教材内容(有部分考试内容)
2.《嵌入式Linux应用程序开发标准教程》第三章3.1-3.5的学习(本周大部分考试内容都从这出,特别是与教材重复内容)
3.完成实验并发Blog
练习vimtutuor 至少一遍
使用vim 输入以下代码,联系使用“K”查找帮助文档:
-
练习gcc编译运行代码。
练习gdb调试代码 。
把上述代码中除了main函数外的代码制作成一个静态库math.a和一个共享库math.so。
编写makefile,让代码编译,上述静态库和共享库的使用自动化。
五、后续学习预告(可选):
教材第二章《信息的表示和处理》
六、学习过程
本笔记次编辑使用有道云笔记录入,博客园的输入界面不友好,且在意外发生时会发生不可估计的后果
-Markdown学习地址
首先应该感谢一下Markdown这个神奇的语言,据我的了解很多同学在学习上所花的时间,或者说在消磨兴趣和耐心的过程中,往往不是因为枯燥无味的代码,而是令人蛋疼的博客园,每一张图片都要上传的感觉简直是叫一个爽字了得,不说自己做的屏幕截图,光是想把要求里的图片粘贴进来就够你忙活半天了!Markdown很好的解决了我的这个问起码解决了一半的问题,先赞。
1.vim的学习过程
-
vim键位表
-简明 Vim 练级攻略
-七个高效的文本编辑习惯(以Vim为例)(视频)
-所需即所获:像 IDE 一样使用 vim
-VIM教程与学习资料汇总
vim初步练习之后还是不太习惯,这个需要时间来练习,就像五笔,虽然五笔我也并没有学会。
2.gcc
在这里,从源文件到目标文件的转化是由编译器的驱动程序完成的:
gcc -o hello hello.c
GNU CC(简称为gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译。
- 预处理:gcc –E hello.c –o hello.i;gcc –E调用cpp
- 编 译:gcc –S hello.i –o hello.s;gcc –S调用ccl
- 汇 编:gcc –c hello.s –o hello.o;gcc -c 调用as
链 接:gcc hello.o –o hello ;gcc -o 调用ld
编译过程比较难记,我们简化一下,前三步,GCC的参数连起来是“ESc”,相应输入的文件的后缀是“iso”,这样记忆起来就容易多了。学习GCC的另外一个重点是:参考教材《深入理解计算机系统》 7.6,7.10节,学习静态库,动态库的制作。
这个在后面的学习中会涉及。
七、遇到的问题及解决
·vim在实验楼环境下按esc是退出全屏,并不能退到编辑模式。
·学习教程中以复制图片地址直接出现图片的形式并没有出现。
这个问题时因为-的格式中[]中没有文字提示它才会直接链接到图片
八、其他
之前的时间亏欠的太多,因为补考的缘故落了一部分的学习,这个原因让我没有按时完成任务的样子显得更可笑,但我肯定不会放弃,慢慢坚持,慢慢补旧账,成绩是一两个星期的,学到的才是自己的。
20135328信息安全系统设计基础第二周学习总结(vim、gcc、gdb)的更多相关文章
- 20135328信息安全系统设计基础第一周学习总结(Linux应用)
学习计时:共xxx小时 读书: 代码: 作业: 博客: 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令/ ...
- LINUX信息安全系统设计基础第二周学习总结
1 Linux命令 2 man命令 1.Terminal(终端) Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如 gnome-terminal ...
- LINUX信息安全系统设计基础第一周学习总结
Linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 二.Linux 与 Window ...
- 20135234mqy-——信息安全系统设计基础第二周学习总结
Linux基础 1.Linux命令 command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数 选项(options)或参数(argument ...
- 20135234mqy-——信息安全系统设计基础第九周学习总结
第十章 系统级I/O 10.1 Unix I/O 一个Unix文就是一个m个字节的序列 Unix:将设备映射为文件的方式,允许Unix内核引出一个简单低级的应用接口 能够使得所有输入输出都能以一种统一 ...
- 2017-2018-1 20155239 《信息安全系统设计基础》第五周学习总结+mybash的实现
2017-2018-1 20155239 <信息安全系统设计基础>第五周学习总结+mybash的实现 mybash的实现 使用fork,exec,wait实现mybash 写出伪代码,产品 ...
- 20155216 2017-2018-1 《信息安全系统设计基础》第二周课堂练习补交以及Myod的实现
20155216 2017-2018-1 <信息安全系统设计基础>第二周课堂练习补交 课堂测试3:行断点的设置 运行截图: 未完成原因:课前未安装 cgdb 具体步骤: 1.输入命令:gc ...
- 2017-2018-1 20155307 《信息安全系统设计基础》第san周学习总结
2017-2018-1 20155307 <信息安全系统设计基础>第三周学习总结 教材学习内容总结 无符号数和有符号数的特性,数字如何表示,IEEE标准,浮点数格式.(我感觉我把课下测试做 ...
- # 2017-2018-1 20155337《信息安全系统设计基础》第5周学习总结+mybash
2017-2018-1 20155337<信息安全系统设计基础>第5周学习总结 教材学习内容总结 不论我们是在用C语言还是用JAVA或是其他的语言编程时,我们会被屏蔽了程序的机器级的实现. ...
随机推荐
- nim3取石子游戏 (威佐夫博弈)
http://www.cnblogs.com/jackge/archive/2013/04/22/3034968.html 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有 ...
- (甲)PAT-1001
1001. A+B Format (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B Calculate a + b and output the sum ...
- 安装和配置JDK,并给出安装、配置JDK的步骤。
1.从orcal网站下载安装包. 2.安装目录不要有汉字或空格 3.配置环境变量,增加·JAVA_HOME=jdk的全路径,修改path+%JAVA_HOME%\bin;%JAVA_HOME%\jre ...
- Java中读取properties资源文件
一.通过ResourceBundle来读取.properties文件 /** * 通过java.util.resourceBundle来解析properties文件. * @param String ...
- redis动态修改参数配置
./redis-cli -h 10.10.10.11 -p 6401 save # 保存当前快照 # 列出所有当前配置 config get * # 查看指定配置 config get ...
- hdu 1398 Square Coins(简单dp)
Square Coins Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Pro ...
- function [ binary,decimal ] = num2binary16( number )
function [ binary,decimal ] = num2binary16( number ) %The IEEE 754 standard specifies a binary16 as ...
- MIT jos 6.828 Fall 2014 训练记录(lab 5)
源代码参见我的github: https://github.com/YaoZengzeng/jos File system perliminaries 我们开发的是一个单用户的操作系统,只提供了足够的 ...
- 【Android UI设计与开发】5.底部菜单栏(二)使用Fragment实现底部菜单栏
既然 Fragment 取代了TabActivity,当然 TabActivity 的能实现的菜单栏,Fragment 当然也能实现.主要其实就是通过菜单栏的点击事件切换 Fragment 的显示和隐 ...
- AD批量创建用户
实验环境:Windows Server 2008R 2 由于测试需要,需要创建数百个用户,手动创建当然不可取,此时需要批量创建,操作记录如下 1 首先将要批量创建的人员信息导入到一个csv文件中,表中 ...