首页 > 其他分享 >20201329魏赫学习笔记一

20201329魏赫学习笔记一

时间:2022-09-04 22:47:28浏览次数:80  
标签:魏赫 get int 虚拟机 20201329 系统 笔记 emacs Linux

20201329 信息安全系统设计与实现 学习笔记①

作业信息

作业要求 https://www.mosoteach.cn/web/index.php?c=interaction_homework&m=s_write&clazz_course_id=7C854F82-FB2C-11EC-8539-1C34DA7B3F7C&id=67875A21-1155-45CB-8AF6-9F1BC344A272&order_item=group&status=IN_PRGRS
作业目标 自学教材第1,2章
作业正文 https://www.cnblogs.com/weihehahaha/p/16656370.html

知识点总结:

1. unix&Linux系统:

首先通过网络查询到Linux系统区别于我们常用的Windows系统的区别,内核不同、价格不同、支持软件、操作方式以及文件格式不同。Linux系统以命令行为主,区分大小写。同时,所有以Linux内核为基础开发的系统都称为Linux系统,比如CentOS、Android、Ubuntu、Redhat等。基于这个了解后,在个人的Windows系统主机内需要安装虚拟机来运行Linux系统。

2. 虚拟机:

在个人的Windows主机上安装运行Linux系统需要通过安装虚拟机,这个可以按照网络上的教程来分别安装镜像文件和VMware。

3. Linux系统中的文本编辑器:

vim gedit emacs 三种不同类型的文本编辑器其中gedit、emacs采用GUI并且易于使用。

4. emacs文本编辑器的了解与使用:了解emacs菜单部分的功能

File:打开、插入、保存文件

Edit:查找、替换

Options:配置Emacs操作

Buffers:缓冲区选择和显示

Tools:编译源代码、执行二进制可执行文件和调试

C:自定义编辑c源代码

5. 执行程序开发步骤:

使用文本编辑器创建源文件,用gcc将源文件转换为二进制可执行文件。

了解知道C语言程序中的变量:全局变量局部变量静态变量自动变量寄存器变量

问题解决:

1. 在虚拟机中下载安装并且使用emacs文本编辑器和使用:

Emacs编辑器在Linux系统中使用,因此在虚拟机中打开官网下载,按照官网的操作在终端中输入命令输入密码可以下载。

2. 虚拟机与主机之间复制粘贴的文本内容不能互通:

编辑虚拟机设置--选项--客户机隔离--勾选“启用复制粘贴”--继续运行此虚拟机,但是操作后发现本虚拟机已经勾选,另找其他方法。

3. 将C代码编译成汇编语言出现问题,无法转换:

(134条消息) Ubuntu 编译出现fatal error: bits/libc-header-start.h: No such file or directory_张志翔 ̮的博客-CSDN博客

上网查阅之后发现是环境没有完善造成的,通过执行以下命令来完善编译环境sudo apt-get install gcc-multilib

4. 将汇编语言转换为函数的过程中遇到问题,在终端中不知道输入什么命令转换。

可以生成一个s.o文件之后暂时无法转换

实验内容与截图:

1. 下载安装运行emacs文本编译器:

打开官网下载,按照官网的操作在终端中输入命令输入密码可以下载。

输入要新建的文本命令行,打开Emacs之后进行编辑操作,如图:

2. 执行程序开发:

(1)创建源程序,部分源代码:

t1.c:

int g = 100;
int h;
static int s;
main(int argc, char *argv[])
{
  int a = 1; int b;
  static int c = 3;
  b = 2;
  c = mysum(a,b);
  printf("sum=%d\n",c);
};

t2.c:

extern int g;
int mysum(int x, int y)
{
  return x + y + g;
}

(2)gcc转换二进制可执行文件:生成a,out文件

3. C语言编译为汇编代码:

  • #include <stdio.h>
    extern int B();
    int A(int x,int y)
    {
      int d,e,f;
      d=4;
      e=5;
      f=6;
      f=B(d,e);
    }
    
  • 编译完成后保存出现a.c文件

  • 配置完善gcc编译环境

    sudo apt-get install gcc-multilib
    

  • 在终端中输入命令行:

    cc -m32 -S a.c 
    

    在桌面生成汇编语言文件

4.用汇编代码实现函数:

  • 汇编语言文件s.s

  • 	.global get_esp, get_ebp
    get_esp:
    	movl %esp, %eax
    	ret
    get_ebp:
    	movl %ebp, %eax
    	ret
    	
    

心得感悟:

其实刚接触这本书有些迷茫,对于虚拟机里的一些操作有些反抗,但是跟着书本里的步骤和代码一步步进行,遇到卡壳的的=地方如果上网查询解决不了的话可以和同学舍友一起讨论,效率更高一些。因为时间的关系,在目前学习的过程中进度只暂时进行到书本第37页,剩下的还需要更多的时间来学习解决。
最大的收获就是在虚拟机终端中使用命令行来操作解决一些程序运行和结束,知道了更多的代码知识,理清楚了之前一直没有搞懂的Linux系统到底是个什么玩意儿。
以后还要更加努力的看书学习和代码编程。

标签:魏赫,get,int,虚拟机,20201329,系统,笔记,emacs,Linux
From: https://www.cnblogs.com/weihehahaha/p/16656370.html

相关文章

  • 第一周学习笔记
    任务知识点归纳以及自己最有收获的内容(3分)问题与解决思路(2分)实践内容与截图,代码链接(3分)...(知识的结构化,知识的完整性等,提交markdown文档,使用openeuler系统等)(2分)知识......
  • 20201322陈俊池 学习笔记1
    一、知识点归纳第一章:引言1.3本书目标(1)强化学生的编程背景知识(2)动态数据结构的作用(3)进程概念和进程管理(4)并发编程(5)定时器和定时功能(6)信号、信号处理和进程间通信(7......
  • 笔记day06
    上周内容回顾后续项目中需要用到前端、后端、数据库三方面知识所以课程中涵盖了三方面内容MySQL基本操作基本SQL语句字段类型字段约束外键约束表查询......
  • 《Unix/Linux系统编程》第一、二章学习笔记
    第一章引言让我最有收获的内容:1.8关于UnixUnix是一种通用操作系统。开发者:肯·汤普森(KenThompson)和丹尼斯·里奇(DennisRichie)诞生日期:20世纪70年代早期经典书目......
  • 20201305学习笔记1
    第一章引言总述:在第一章刚开始这本书引入了Linux系统,告诉了我们Linux系统的发展历程和它的一些运行模式,他的版本,其中最主要讲的就是unbuntuLinux版本,讲了他的一些常用......
  • 《Unix/Linux系统编程》学习笔记1
    《Unix/Linux系统编程》学习笔记1第一章引言1、本书目标强化学生的编程背景知识:编程语言->编程开发动态数据结构应用:C结构、指针、链表、链树进程概念和进程管理并......
  • Mybatis学习笔记(三)——Mybatis执行sql的两种方式
    这部分内容前边简单提过了,之前写第一个Mybatis示例时用的就是第一种方式。本节主要介绍MyBatis执行SQL语句的两种方式和它们的区别。MyBatis有两种执行SQL语句的方......
  • 第一次读书笔记
    总结:第一二单元总的来说是在描述Linux系统中c语言的重要性,以及在其中的一些使用技巧。其中C语言数据结构中的数据结构,就是Linux文件系统构建起来的基础。第一章主要包含......
  • 学习笔记1
    一、学习笔记第一章1.Unix  Unix是20世纪70年代初出现的一个操作系统,除了作为网络操作系统之外,还可以作为单机操作系统使用。Unix作为一种开发平台和台式操作系统获......
  • 第一二章学习笔记
    第一章引言本章简单介绍了Unix的历史,包括贝尔实验室开发的Unix早期版本、AT&TSystemV以及Unix的其他版本,如BSD、HPUX、IBMAIX和Sun/SolarisUnix。此外,还介绍了Linux......