首页 > 其他分享 >《信息安全系统设计与实现》第一周学习笔记

《信息安全系统设计与实现》第一周学习笔记

时间:2023-09-09 16:45:23浏览次数:38  
标签:gcc 第一周 信息安全 笔记 插入 Unix Linux 文本 out

《信息安全系统设计与实现》第一周学习笔记

一、知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图

第一章

  • 关于本书
    • 涵盖Unix/Linux的所有基本组件,包括进程管理并发编程定时器时钟服务文件系统网络编程MySQL数据库系统
  • 系统编程的作用
    • 有效利用系统资源来开发应用软件
    • 以便在操作系统、嵌入式系统、数据库系统、数据挖掘、人工智能、计算机网络、网络安全、分布式和并行计算等计算机科学/工程领域继续深造
  • 本书目的
    • 强化学生的编程背景知识
    • 动态数据结构的应用
    • 进程概念和进程管理
    • 并发编程
    • 定时器和定时功能
    • 信号、信号处理和进程间通信
    • 文件系统
    • TCP/IP和网络编程
  • 关于Unix
    • AT&T Unix
    • Berkeley Unix
    • HP Unix
    • IBN Unix
    • Sun Unix

可以看出,大多数Unix系统都是专有的,并且与特定的硬件平台相关联。

  • 关于Linux
    • Debian Linux
    • Ubuntu Linux
    • Linux Mint
    • 基于RPM的Linux
    • Slackware Linux
  • 虚拟机上的Linux
    • VirtualBox
    • VMware
    • Parallels Desktop(我使用的)
  • Ubuntu Linux系统管理
    • 用户账户
      在终端上输入 vi /etc/passwd
    • 添加新用户
      在终端上输入 sudo adduser username,我创建一个名为wq的用户

      可以看到,passwd文件中最后一行多出了叫wq的用户
    • sudo命令

第二章

  • 文本编辑器
    -vim
    • i:插入模式,插入文本

    • a:插入模式,追加文本
      退出插入模式,按ESC。命令模式下,输入“:”进入末行模式,将文本保存为文件或退出vim

    • :w:写入(保存文件)

    • :q:退出vim

    • :wq:保存并退出

    • :q!:不保存更改,强制退出

    • emacs
      以下是我关于使用emacs和gdb工具进行调试的实践过程

      1. 编写源代码

      2.创建makefile(emacs makefile

      3. compile

      4.设置断点

      5. 调试窗口

    • gedit

  • 程序开发步骤
    • 创建源文件
    • 用gcc把源文件转换成二进制可执行文件
    • gcc
      以下是关于程序开发知识点的苏格拉底挑战:




    • 全局变量
    • 局部变量
    • 静态全局变量
    • 非静态全局变量
    • 自动变量
    • 寄存器变量
    • 易失性变量
      以下是关于gcc三个步骤的苏格拉底挑战:



  • 程序执行过程
    在类Unix操作系统中,在sh命令行a.out one two three执行a.out文件,以标记字符串作为命令行参数。
    为执行命令,sh创建一个子进程并等待改子进程终止。子进程运行时,sh使用a.out文件执行新的执行映像
    • 读取a.out文件头
      Total_Size = _brk + stackSize
      e.g main()
    • sh从总大小中分配一个内存区给执行映像
    • sh放弃旧映像,开始执行新映像
    • 执行从crt0.o开始,调用main(),将argc和argv作为参数传递给main(),可以写成
      int main(int argc, char *argv[]){ … }
  • 程序终止
    • 正常终止:如果程序执行成功,main()最终会返回到crt0.out,调用库函数exit(0)(系统调用)来终止进程
    • 异常终止:遇到错误,如无效地址,非法指令,越权等;按下ctrl+C可以产生硬件中断;用kill -s signal_number pid #signal_number=1 to 31向通过pid识别的目标进程发送信号
  • C语言中的函数调用
    • long jump
    • C语言程序与汇编代码的链接
      • gcc生成的汇编代码
        • 入口代码
        • 函数体代码
        • 退出代码
  • 链接库
    • 动态链接库
      gcc -c -fPIC mysum.c
      gcc -shared -o libmylib.so my sum.o
      gcc t.c -L -lmylib
      export LD_LIBRARY_PATH=./
      a.out
    • 静态链接库
      gcc -c mysum.c
      ar rcs libmylib.a mysum.o
      gcc -static t.c -L. -lmylib
      a.out
  • makefile
  • GDB调试工具(实践过程已列出,此处不再赘述)

遇到的问题

vim的插入文本和追加文本有什么区别(即输入i和输入a的区别是什么?)
解答过程

  • GPT:

在vim中,插入文本和追加文本的区别在于光标的位置不同。
当你使用插入文本时,新添加的文本将会插入到光标所在位置之前,而原有的文本将会被移动到插入文本之后。
当你使用追加文本时,新添加的文本将会追加到光标所在位置之后,而原有的文本不会被移动。
你可以使用 i 命令来进入插入模式,在光标所在位置之前添加新的文本;使用 a 命令来进入插入模式,在光标所在位置之后追加新的文本。
随后又去试了一下,解决了这个问题。

  • 模块实践过程
    运行结果和文件路径如下:

    文件已上传:hello

标签:gcc,第一周,信息安全,笔记,插入,Unix,Linux,文本,out
From: https://www.cnblogs.com/wangqi3206/p/17689718.html

相关文章

  • qemu中的glib库api试用--Apple的学习笔记
    一,前言qemu中有些glib库的api,我想学习试用下。二,编译及调试1.     使用glib库后编译报错,缺少头文件root@ubuntu:/work/study#gcct1.c-ot1t1.c:2:18:fatalerror:glib.h:Nosuchfileordirectory#include<glib.h>^compilationterminated.2.......
  • 虚化及信息安全学习历程--Apple的学习笔记
    一,前言先做了一个基本方向的定义,然后我就开始玩qemu,基于qemu做二次开发。在学习qemu的过程中主要学习hypervisor,然后再学习信息安全相关内容。二,过程记录tbd三,新路历程2023/09/01:开学咯,之前的blog我写了5年,由于不好用,所以我换了blog同时也换了新的学习大方向,正好再来一个5年。 ......
  • 20211325 2023-2024-1 《信息安全系统设计与实现(上)》第一周学习笔记
    202113252023-2024-1《信息安全系统设计与实现(上)》第一周学习笔记一、任务要求任务详情自学教材第1,2章,提交学习笔记(10分),评分标准如下1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)......
  • 从cnblogs转到知乎写笔记,从评论中向大家学习
    Friday,June24,2022,11:29:29AM从cnblogs转到知乎写笔记,从评论中向大家学习本来是想把知乎账号的一句话介绍改成上面这句话的,但是在手机或者电脑上不同日期、时间尝试改了几次,都提示系统维护中。这简单的改个自我介绍都如此麻烦,让我不由得怀疑这可能不是技术问题,而是某种......
  • PCL学习笔记 | PCL的安装
    可选择自己需要的版本下载https://github.com/PointCloudLibrary/pcl/tags。我选择的是PCL1.12下载标黄的两个文件。"PCL-1.12.0-AllInOne-msvc2019-win64.exe"是PointCloudLibrary(PCL)的一个全包版本,特定为MicrosoftVisualStudio2019(MSVC2019)和64位Windows系统构建的。......
  • 【刷题笔记】45. Jump Game II
    题目Givenanarrayofnon-negativeintegers nums,youareinitiallypositionedatthefirstindexofthearray.Eachelementinthearrayrepresentsyourmaximumjumplengthatthatposition.Yourgoalistoreachthelastindexintheminimumnumberofju......
  • Boost.Asio网络库 学习笔记
    Asio网络库学习笔记Boost官网:https://www.boost.org/Boost库许可证://CopyrightJoeCoder2004-2006.//DistributedundertheBoostSoftwareLicense,Version1.0.//(SeeaccompanyingfileLICENSE_1_0.txtorcopyat//https://www.boos......
  • Python学习笔记:pandas.Series.str.split分列
    split()方法通过指定分隔符对字符串进行切分,返回分割后的字符串列表  pandas.str.split分列Series.str.split(pat=None,expand=False)  返回分割后的Series ......
  • 【笔记】在线凸优化 - Ch1. Introduction
    1.1TheOnlineConvexOptimizationSetting在线凸优化Onlineconvexoptimization(OCO),是一个带有博弈论、统计学习、凸优化的新玩意给出如下问题叙述:考虑一种博弈游戏,回合制,第\(t\in[T]\)回合,先由玩家从决策集\({\calK}\in\mathbb{R}^n\)中选择一个决策\({\bfx}......
  • 【笔记】机器学习基础 - Ch6. Kernel Methods
    6.1Introduction继续从二分类模型出发,实际情况中样本通常不是线性可分的一种思路是增大特征空间的维度,也就是加入原本特征的组合,即一个从\(\calX\)到更高维\(\mathbb{H}\)的非线性映射\(\Phi:\calX\to\mathbb{H}\),从而在\(\mathbb{H}\)可能变得线性可分;尽管SVM对有......