第三周学习笔记 学习计时:共8小时 读书:1 代码:5 作业:1 博客:7 一.学习目标 熟悉Linux系统下的开发环境 熟悉vi的基本操作 熟悉gcc编译器的基本原理 熟练使用gcc编译器的常用选项 5 .熟练使用gdb调试技术 熟悉makefile基本原理及语法规范 掌握静态库和动态库的生成 二.学习资源 教材:第一章,第七章 <嵌入式Linux应用程序开发标准教程>第三章3.1-3.5 课程资料:https://www.shiyanlou.com/courses/413 实验二,课程邀请…
1 Linux命令 2 man命令 1.Terminal(终端) Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如 gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和 eterm,目前我们的实验中的终端程序是 xfce  桌面环境自带的 xfce-terminal.不过要注意的是这里所说的终端(Terminal)和控制台(Console)是有区别的. 在物理机系统上你 [Tab] 使用Tab键来进…
学习计时:共xxx小时 读书: 代码: 作业: 博客: 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等 4. 熟练应用“搜索”进行举一反三的学习   二.学习资源 1. 课程资料:https://www.shiyanlou.com/courses/413   实验一 2. Linux 基础入门:https://www.…
 Linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 二.Linux 与 Windows 到底有哪些不同 1.免费与收费 最新正版 Windows8.1 官方售价 ¥888: Linux 免费或少许费用 2. 软件与支持 Windows 平台:数量和质量的优势,不过大部分为收费软件:由微软官方提供重要支持和服务: Linux 平台:大都为开源自由软件,用户可以修改定制和再发布,由于基…
Linux基础 1.Linux命令 command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数 选项(options)或参数(arguments) 选项是调整命令执行行为的开关,选项不同决定了命令的显示结果不同. 参数是指命令的作用对象. 2. man命令 man是manul的缩写 帮助文档 3.cheat 命令 cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序. 它提供显示Linux命令使用案例…
第十章 系统级I/O 10.1 Unix I/O 一个Unix文就是一个m个字节的序列 Unix:将设备映射为文件的方式,允许Unix内核引出一个简单低级的应用接口 能够使得所有输入输出都能以一种统一且一致的方式来执行: (1)打开文件 Unix外壳创建的每个进程开始时都有三个打开的文件:标准输入,标准输出,标准错误 (2)改变当前的文件位置 对于每个进程开始的文件,内核保持着一个文件位置,初始值为0 (3)读写文件 一个读操作就是从文件拷贝n>0个字节到存储器,从当前文件位置开始,然后将k增加…
2017-2018-1 20155239 <信息安全系统设计基础>第五周学习总结+mybash的实现 mybash的实现 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 首先通过man命令了解fork.exec和wait 命令行输入:man fork 命令行输入:man exec 命令行输入:man wait 伪代码 while(1) { fgets(命令行输入): if(内置的shell命令) {…
20155216 2017-2018-1 <信息安全系统设计基础>第二周课堂练习补交 课堂测试3:行断点的设置 运行截图: 未完成原因:课前未安装 cgdb 具体步骤: 1.输入命令:gcc hello.c -g -o test,出现可运行文件test. 2.输入命令:cgdb test,进入调试过程. 3.利用"b 行号 断点条件"设置行断点,输入start运行至断点位置,输入r后输入p p,显示参数值. 课堂测试4:静态库 运行截图: 未完成原因:没有认真学习第七章内容…
2017-2018-1 20155307 <信息安全系统设计基础>第三周学习总结 教材学习内容总结 无符号数和有符号数的特性,数字如何表示,IEEE标准,浮点数格式.(我感觉我把课下测试做完之后已经把书翻了一遍了) 教材学习中的问题和解决过程 (一个模板:我看了这一段文字 (引用文字),有这个问题 (提出问题). 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验). 但是我还是不太懂,我的困惑是(说明困惑).[或者]我反对作者的观点(提出作者的观点,自己的观点,…
2017-2018-1 20155337<信息安全系统设计基础>第5周学习总结 教材学习内容总结 不论我们是在用C语言还是用JAVA或是其他的语言编程时,我们会被屏蔽了程序的机器级的实现.机器语言不需要被编译,可以直接被CPU执行,其执行速度十分 快.但是机器语言的读写性与移植性较高级语言低.高级语言被编译后便成为了汇编语言,汇编语言十分接近机器语言.之后汇编代码会转化为机器语言.虽然现代 的编译器能帮助我们将高级语言转化为汇编语言,解决了不少问题,但是对于一个严谨的程序员来说,需要做到能够阅…
20145307<信息安全系统设计基础>第五周学习总结PT2: 教材学习内容总结 之前有第一部分学习总结: http://www.cnblogs.com/Jclemo/p/5962219.html 以下为第二部分 执行汇编命令:gcc –s xxx.c –o xxx.s反汇编命令:objdump –d xxx 64位处理器得到32代码的命令:gcc –m32 –s xxx.c Ltme: 1.三种操作数: 立即数:常数值.表示为$c标准表示的整数. 寄存器:表示某个寄存器的内容. 存储器:根据…
20145307陈俊达<信息安全系统设计基础>第5周学习总结 教材学习内容总结 X86寻址方式经历三代: DOS时代的平坦模式,不安全,原因是没有区分用户空间和内核空间 8086的分段模式: IA32的带保护模式的平坦模式 程序编码命令 gcc是Linux上默认的编译器,gcc -01 告诉编译器使用第一级优化.优化等级越高,程序运行的越快,编译时间越长,用调试工具调试程序越困难.但是,从得到程序性能方面考虑,第二级优化被认为是较好的选择. 汇编器将汇编代码转换成二进制目标代码,目标代码是机器…
20145314郑凯杰<信息安全系统设计基础>第5周学习总结 part B 在前四天的学习中,我主要对课本知识进行了总结,在本周后三天的学习过程中,我进行实践并截图. http://www.cnblogs.com/5314zkj/p/5958665.html 教材学习内容总结 教材第三章 上一次的博客中已经涵盖了很多知识了,今天主要做到补充及实践: ①操作数的三种类型: 立即数,也就是常数值. 在ATT格式的汇编代码中,立即数的书写方式是""后跟一个用标准C表示法表示的整数…
20155228 2017-2018-1 <信息安全系统设计基础>第六周学习总结&课下作业 教材学习内容总结 异常及其种类 异常可以分为四类:中断(interrupt) ,陷阱(trap).故障(fault)和终止(abort ) 中断是异步发生的,是来自处理器外部的I/U设备的信号的结果.硬件中断不是由任何一条专门的指令造成的,从这个意义上来说它是异步的.硬件中断的异常处理程序常常称为中断处理程序(interrupt handler) 陷阱是有意的异常,是执行一条指令的结果.就像中断…
20155326 2017-2018-1 <信息安全系统设计基础>第1次学习及课堂总结myod 虚拟机之前出了一些问题,然后我重新弄了一个新的虚拟机. 先在虚拟机里面安装了git. 安完以后在终端用命令行建立了我的系统设计这门课的专用文件夹,里面包含src.res.lib等六个文件夹来存放我的代码. 将statistics脚本放在了文件夹下,以方便统计c代码行数. 在这些准备中我用到的命令行有: ls 查看文件 cd 打开,进入 tab 补全目录 mkdir 新建文件夹 rm 删除文件夹 Ct…
2018-2019-1 20165212 <信息安全系统设计基础>第八周学习总结 一.知识点总结 1.三种并发方式 构造并发程序的方法有三种: 进程 线程 I/O多路复用 进程:用内核来调用和维护,有独立的虚拟地址空间,显式的进程间通信机制. 线程:运行在一个单一进程上下文中的逻辑流.由内核进行调度,共享同一个虚拟地址空间. I/O多路复用:应用程序在一个进程的上下文中显式地调度控制流.逻辑流被模型化为状态机. 2.C/S编程模型 客户端和服务器都是进程,C/S编程模型由一个服务器进程和一个或…
20155337 2017-2018-1 <信息安全系统设计基础>第二周课堂实践+myod 因为在课上已经提交了四个实验,还欠缺最后一个实验,反省一下自己还是操作不熟练,平时在课下应该多多练习linux的命令训练. 实践一 每个* .c一个文件,每个*.h一个文件,文件名中最好有自己的学号 用Vi输入图中代码,并用gcc编译通过 在Vi中使用K查找printf的帮助文档 提交vi编辑过程截图,要全屏,包含自己的学号信息 截图 在课堂实践一中,我们应该把所有的文件放在一个新的自己创建的文件夹里,…
20145314郑凯杰<信息安全系统设计基础>第9周学习总结 PART B 明确教材学习目标 注意每个系统调用的参数.返回值,会查帮助文档 阅读教材,完成课后练习(书中有参考答案),考核:练习题把数据变换一下 学习视频,掌握两个重要命令: man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用 grep -nr XXX /usr/include :查找宏定义,类型定义 教材中相关代码运行.思考一下,读代码的学习方法见「代码驱动的程序设计学习」. 代码重点:课…
20145314郑凯杰<信息安全系统设计基础>第7周学习总结 part B 上篇博客反思与深入 首先根据本周第一篇博客,娄老师给我的评论,我开始进行局部性的深入研究: 分为两个步骤,一是知识点深入,二是用实践深入: ①知识点 1.局部性有两种形式:时间局部性(temporal locality)和空间局部性(spatial locality).在一个具有良好时间局部性的程序中,被引用过一次的存储器位置很可能在不远的将来再被多次引用:在一个具有良好空间局部性的程序中,如果一个存储器位置被引用了一…
Y86模拟器的安装 由于本人的电脑有些问题,在安装的时候忽然断电导致之前的成果都没有截图. 1.安装bison和flex词法分析工具 sudo apt-get install bison flex tk 2.下载sim, http://csapp.cs.cmu.edu/public/students.html 在Linux终端输入tar -xvf sim.tar,进行解压 3.图形界面需要安装Tcl/Tk sudo apt-get install tcl8.5-dev tk8.5-dev tcl…
2017-2018-1 20155320 <信息安全系统设计基础>第四周学习总结(课堂实践补交+myhead与mytail实现) 课堂实践内容 1 参考教材第十章内容 2 用Linux IO相关系统调用编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件名,通过命令行传入,不要让用户输入文件名 不要把代码都写入main函数中 要分模块,不要把代码都写入一个.c中 5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息…
20145314郑凯杰<信息安全系统设计基础>第八周复习总结 Part A 学习知识点内容总结 复习线索:http://group.cnblogs.com/topic/73069.html 第一章重要知识点总结 本章思路: 搜索能力: man: man -k (等价于apropos) cheat find locate which whereis apt-cache search Linux简介 Linux 就是一个操作系统,也就是系统调用和内核那两层 Linux核心命令 Linux中命令格式…
20145224&20145238 <信息安全系统设计基础>第二次实验 课程:信息安全系统设计基础 班级:1452 姓名:陈颢文 荆玉茗 学号:20145224 20145238 指导教师:娄嘉鹏 实验日期:2016.11.10 实验时间:10:00-12:30 实验序号:2 实验目的与要求: 1.熟悉 linux 开发环境,学会基于 S3C2410 的 linux 开发环境的配置和使用. 2.使用linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下…
2017-2018-1 20155326 <信息安全系统设计基础>第四周学习总结及myod改进版的补交 学习内容 补充完成课上没有完成的内容 学习教材附录A,第十章内容 参考别出心裁的Linux系统调用学习法,学习视频,掌握两个重要命令: man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用 grep -nr XXX /usr/include :查找宏定义,类型定义 完成head,tail的使用,相关API的分析,伪代码,产品代码,测试代码的编写(3分)…
2017-2018-1 20155214 <信息安全系统设计基础> 第9周课下测试-mypwd(深入版) 题目要求: 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 在第9周学习总结中,我直接调用了系统调用getcwd()输出当前绝对路径.这次我尝试用c语言实现它的功能. 函数原型 #include <unistd.h> char *getcwd(char *buf, size_t size);…
2017-2018-1 20155222 <信息安全系统设计基础>第10周 Linux下的IPC机制 IPC机制 在linux下的多个进程间的通信机制叫做IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方法.在linux下有多种进程间通信的方法:半双工管道.命名管道.消息队列.信号.信号量.共享内存.内存映射文件,套接字等等.使用这些机制可以为linux下的网络服务器开发提供灵活而又坚固的框架. 以上内容引用自CSDN 共享内存 共享内存是在多个…
2017-2018-1 20155330 <信息安全系统设计基础>第10周课堂测试&课下作业 stat命令的实现-mysate 学习使用stat(1),并用C语言实现 提交学习stat(1)的截图 man -k ,grep -r的使用 伪代码 产品代码 mystate.c,提交码云链接 测试代码,mystat 与stat(1)对比,提交截图 STAT(1)学习 使用man 1 stat命令查看 使用man -k stat | grep 2查找相关函数 man 2 stat查看stat函…
2017-2018-1 20155232 <信息安全系统设计基础>第四周学习总结以及课上myod练习补充博客 课上myod练习 1 参考教材第十章内容 2 用Linux IO相关系统调用编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件名,通过命令行传入,不要让用户输入文件名 不要把代码都写入main函数中 要分模块,不要把代码都写入一个.c中 5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息 在第一次尝试在我…
已经到了11月,学期过半,而<信息安全系统设计基础>这门课也要到了期中考试了.所以,我在这里,对前半个学期的最基础的知识,做一个复习 复习计划分为两步,本次为Linux命令,下次计划复习git与vim相关指令 本周学习内容在另一篇博客20145234黄斐<信息安全>第七周学习总结上 Linux命令 1.常用小技巧 tab 补全命令.补全目录.补全命令参数 Ctrl+c 终止当前运行的程序,但不结束终端 Ctrl+d 结束输入或退出终端 Ctrl+s 暂停当前程序,任意键恢复 Ctr…
# 2017-2018-1 20155232 <信息安全系统设计基础>第十周课堂测试(ch06)补交 上课时完成测试后在提交的时候,没有提交成功,进行补交. 1.下面代码中,对数组x填充后,采用直接映射高速缓存,所有对x和y引用的命中率为() A 1 B 1/4 C 1/2 D 3/4 正确答案: D 解析:p431----缓存命中:当程序需要第(k+1)层的数据对象d的时候,首先会在第k层找d:如果d刚好缓存在第k层,那么就叫做缓存命中:反之,不命中,在填充了之后,对于x和y数组,只有在引用…