第三周学习笔记

学习计时:共8小时

读书:1

代码:5

作业:1

博客:7

一、学习目标

  1. 熟悉Linux系统下的开发环境
  2. 熟悉vi的基本操作
  3. 熟悉gcc编译器的基本原理
  4. 熟练使用gcc编译器的常用选项
    5 .熟练使用gdb调试技术
  5. 熟悉makefile基本原理及语法规范
  6. 掌握静态库和动态库的生成

二、学习资源

  1. 教材:第一章,第七章

  2. 《嵌入式Linux应用程序开发标准教程》第三章3.1-3.5

  3. 课程资料:https://www.shiyanlou.com/courses/413 实验二,课程邀请码:W7FQKW4Y

  4. Vim编辑器:https://www.shiyanlou.com/courses/2

  5. Linxu系统编程:https://www.shiyanlou.com/courses/24,实验2、3、4

  6. 教学视频:http://pan.baidu.com/s/1kTHxOFl ,可以参考第十个视频

三、学习方法

  1. 进度很重要:必须跟上每周的进度,阅读,练习,问答,项目。我会认真对待每一位同学,请你不要因为困难半途而废。

  2. 问答很重要:遇到知识难点请多多提问,这是你的权利更是您对自己负责的义务。问答到博客园讨论小组:http://group.cnblogs.com/103791/
  3. 实践很重要:解决书中习题,实践书中实例,完成每周项目,才算真的消化了这本好书。通过实验楼环境或自己安装的虚拟机在实践中进行学习
  4. 实验报告很重要:详细记录你完成项目任务的思路,获得老师点评和帮助自己复习。学习完成后在博客园中(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)的更多相关文章

  1. 20135328信息安全系统设计基础第一周学习总结(Linux应用)

    学习计时:共xxx小时 读书: 代码: 作业: 博客: 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用Linux中用户管理命令/ ...

  2. LINUX信息安全系统设计基础第二周学习总结

    1 Linux命令 2 man命令 1.Terminal(终端) Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如 gnome-terminal ...

  3. LINUX信息安全系统设计基础第一周学习总结

     Linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 二.Linux 与 Window ...

  4. 20135234mqy-——信息安全系统设计基础第二周学习总结

    Linux基础 1.Linux命令 command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数 选项(options)或参数(argument ...

  5. 20135234mqy-——信息安全系统设计基础第九周学习总结

    第十章 系统级I/O 10.1 Unix I/O 一个Unix文就是一个m个字节的序列 Unix:将设备映射为文件的方式,允许Unix内核引出一个简单低级的应用接口 能够使得所有输入输出都能以一种统一 ...

  6. 2017-2018-1 20155239 《信息安全系统设计基础》第五周学习总结+mybash的实现

    2017-2018-1 20155239 <信息安全系统设计基础>第五周学习总结+mybash的实现 mybash的实现 使用fork,exec,wait实现mybash 写出伪代码,产品 ...

  7. 20155216 2017-2018-1 《信息安全系统设计基础》第二周课堂练习补交以及Myod的实现

    20155216 2017-2018-1 <信息安全系统设计基础>第二周课堂练习补交 课堂测试3:行断点的设置 运行截图: 未完成原因:课前未安装 cgdb 具体步骤: 1.输入命令:gc ...

  8. 2017-2018-1 20155307 《信息安全系统设计基础》第san周学习总结

    2017-2018-1 20155307 <信息安全系统设计基础>第三周学习总结 教材学习内容总结 无符号数和有符号数的特性,数字如何表示,IEEE标准,浮点数格式.(我感觉我把课下测试做 ...

  9. # 2017-2018-1 20155337《信息安全系统设计基础》第5周学习总结+mybash

    2017-2018-1 20155337<信息安全系统设计基础>第5周学习总结 教材学习内容总结 不论我们是在用C语言还是用JAVA或是其他的语言编程时,我们会被屏蔽了程序的机器级的实现. ...

随机推荐

  1. Effective Java 02 Consider a builder when faced with many constructor parameters

    Advantage It simulates named optional parameters which is easily used to client API. Detect the inva ...

  2. Java主要有那几种文件类型?各自的作用是什么

    1.源代码.java程序员编译的源代码. 2..class  字节码文件 jvm实现跨平台的中间编译文件. 3.jar包 讲字节码文件打包好,便于查找和使用.

  3. SSH 端口映射(一)

    转载:http://blog.csdn.net/a351945755/article/details/21785647,http://blog.csdn.net/gaoming655/article/ ...

  4. IE11的API变化

    IE11已经登录Win8.1,它的API有了很大变更 一.User-agent字符串的更改 IE10的是 Mozilla/5.0 (compatible; MSIE 10.0; Windows NT ...

  5. python ljust,rjust,center,zfill对齐使用方法

    字符串在输出时的对齐:S.ljust(width,[fillchar]) #输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格. S.rjust(width,[fillcha ...

  6. zookeeper适用场景:如何竞选Master及代码实现

    问题导读:1.如何利用zookeeper保证集群Master可用性和唯一性?2.zookeeper竞选Master包含哪些过程?3.zookeeper竞选Master机制利用了zk哪些特性? 在zoo ...

  7. Bellman-Ford算法解决单源最短路问题

    #include<stdio.h> #include<stdlib.h> #include<stdbool.h> #define max 100 #define I ...

  8. 多人操作sqlite3数据库冲突问题解决方法

    问题描述:sqlite3数据放置在某一台电脑的某个共享文件夹下,操作数据库的应用程序安装在同一局域网下的很多台电脑上,由于存在多人同时使用该应用程序,所以存在多人同时操作数据库的情况.经过测试发现,最 ...

  9. uva 572 oil deposits——yhx

    Oil Deposits  The GeoSurvComp geologic survey company is responsible for detecting underground oil d ...

  10. Dubbo架构设计详解(转自shiyanjun.cn)

    Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模 ...