首页 > 其他分享 >信息安全系统设计与实现(上) 学习笔记1(教材1,2章)

信息安全系统设计与实现(上) 学习笔记1(教材1,2章)

时间:2023-09-09 18:22:06浏览次数:35  
标签:文件 编程 信息安全 笔记 Unix 路径名 Linux 教材 链接

学习笔记1       知识点总结     第一章   《Unix/Linux系统编程》教材第一章中介绍了Unix和Linux系统的基本概念以及编程环境的设置,介绍了系统编程的重要性和目标,旨在强化学生的编程背景知识,特别关注动态数据结构、进程管理、并发编程、定时器、信号处理、文件系统、TCP/IP和网络编程等方面。大致叙述了unix和linux的各世代版本,提供了Unix和Linux操作系统版本的历史概述,目标读者包括那些希望深入了解Unix和Linux系统、系统编程的学生和开发人员,帮助读者了解它们的起源和演变过程,以及它们在计算领域的重要性,同时也讲述了安装虚拟机的具体过程,以及操作时的各种注意事项。介绍了如何将Ubuntu操作系统的映像文件安装到虚拟机软件(如VirtualBox,Vmware)中,使读者能够在Linux中运行相关代码和程序。   自从大一,我便有一个疑惑,那就是为什么要在linux系统中进行各项操作呢?windows不是也行吗?然而,随着本章的学习,我明白了Linux的重要性。首先,它是开源的,允许自由学习和探索系统内部工作原理。其次,Linux更灵活,可根据需求自定义,适用于各种项目。此外,它更稳定、更安全,有庞大的社区支持和丰富的软件生态系统。诸多系统都是建立在linux系统上的,如我们熟悉的ubuntu linux系统,还有其他很多,Debian Linux,还有我学习网络攻防的渗透项目时安装的Kali Linux系统,它们都是在Linux的基础上衍生出来的适合各个方面的系统。   第二章   介绍了常见的Linux文本编辑器,包括vim、gedit、emacs,并提到vim是功能最强大的一个。   阐述了GCC编译器的重要性和多语言支持,以及GCC的编译过程分为预处理、编译、汇编和链接四个阶段。   解释了静态链接和动态链接的区别,包括硬链接和软链接。   讲解了可执行文件的分类,包括内置命令、外置命令、实用程序、用户程序、Shell脚本等。   简要介绍了常用的Linux命令,包括pwd、cd、ls、mkdir、rmdir、touch、mv、rm、ln、find、file/stat、cat、more、less等。   介绍了sudo命令,用于临时提升用户特权级别执行命令。   探讨了vim的三种操作模式:命令模式、插入模式、末行模式。   讲解了a.out文件的内容和程序终止方式。   介绍了C语言的结构体、变量类型、函数调用、汇编代码链接等相关知识。   提供了对链表、树和二叉树的基本理解,包括遍历算法。   最后,讨论了一个编程项目,即Unix/Linux文件系统树模拟器,其中使用二叉树实现了树结构。   对于常见Linux命令,有必要掌握它们的具体意义,因此总结如下:   mkdir路径名:为给定的路径名创建一个新目录。   rmdir路径名:如果目录为空,则删除该目录。   cd [路径名]:将当前工作目录更改为路径名,如果没有路径名则更改为   is [路径名」:列出路径名或当前工作目录的目录内容   pwd:打印当前工作目录的(绝对)路径名。   creat路径名:创建一个FILE节点。   rm路径名:删除FILE节点。   save文件名:将当前文件系统树保存为文件。   reload文件名:从一个文件构造一个文件系统树。   menu:显示有效命令菜单   quit:保存文件系统树,然后终止程序   touch: 创建一个新的空文件或者更新已存在文件的访问和修改时间戳。   ln: 创建链接文件,包括硬链接和软链接。硬链接是多个文件名指向同一数据块,删除一个链接不影响其他链接;软链接是指向另一个文件或目录的符号链接,类似于Windows的快捷方式。   find: 在指定目录中查找文件和目录。可以根据不同的条件搜索文件,如文件名、文件类型、文件大小等。   file/stat: file命令用于查看文件的类型信息,例如判断一个文件是否为文本文件、二进制文件等;stat命令用于显示文件的详细信息,包括文件的权限、大小、创建时间等。   cat: 显示文件的内容,通常用于查看较小的文本文件。   more: 分页显示文件内容,允许用户逐页查看文件,按空格键翻页。   less: 分页显示文件内容,提供更多交互选项,允许用户翻页、搜索、退出等,比more更强大。       这两章的内容涵盖了系统编程的基础知识,包括编译、文本编辑、文件操作、数据结构等,为深入理解系统编程奠定了坚实的基础。同时,对Unix和Linux系统的历史、特点以及开发环境也进行了介绍,有助于理解为什么选择在Linux下进行系统编程。     最大的收获   在第一章中,最有收获的内容是对Unix和Linux系统的历史和演变过程的了解。这章提供了关于这两个操作系统的起源和发展的宝贵信息,让我明白了它们在计算领域的演化和重要性。这个知识点让我深刻认识到为什么选择在Linux环境下进行编程。   至于第二章,其中最有收获的内容是对常见Linux命令的深入了解。学习了mkdir、rmdir、cd、ls、mv、rm、ln、find、file/stat、cat、more和less等命令的具体用途,这些命令是日常系统编程中不可或缺的工具。这些知识点为我提供了处理文件操作和文本编辑的实际技能,为未来的系统编程项目打下了坚实的基础。     苏格拉底挑战过程截图:     文本编辑器知识点:  

 

   常见Linux命令知识点:

 

 

 

  问题与解决思路

  问题1:在学习关于Unix和Linux系统的基本概念时,我曾经感到困惑,不太清楚Unix和Linux之间的区别是什么,以及它们与其他操作系统的关系。

  解决思路:为了解决这个困惑,我首先查阅了相关的教材和在线资料,以了解Unix和Linux的历史和演变过程。我发现,Unix是早期的操作系统,而Linux是基于Unix开发的开源操作系统。Linux在很大程度上受到了Unix的启发,但有自己的内核(Linux内核),并且以开放源代码的方式进行维护和发展。这个理解帮助我明白了它们之间的联系和区别。

 

  问题2:在执行娄老师的代码ls /sr/include/stdio.h时,没有显示出stdio.h的头文件。

  解决思路:经过查询资料,发现改指令是列出位于 /usr/include/ 目录下的名为 stdio.h 的文件。所以,运行 ls /usr/include/stdio.h 的命令实际上是试图列出 /usr/include/ 目录下的一个名为 stdio.h 的文件,以查看文件是否存在或者了解其属性。不过,stdio.h 是一个头文件,而不是一个普通的可执行文件,因此直接运行 ls 命令查看它可能会出错。所以通常会使用文本编辑器而不是 ls 命令。因此我将ls改为了cat 命令查看文件内容,最终解决了该问题。

 

 

  实践过程

 

   具体代码:

hello.c:

#include "hello.h"

void xyy()
{
printf("hello!\n");
}

main.c:

#include "hello.h"

int main(){
xyy();
}

hello.h:

#ifndef ___HELLO_H___
#define ___HELLO_H___
void xyy();
#endif

 

  其他:

  我选择使用Kali Linux系统编写Linux代码的主要原因有以下几点:

 

  1.全面的工具集:Kali Linux是一个专为网络渗透测试和安全应用而设计的Linux发行版,因此它包含了丰富的工具和资源,包括用于系统管理、开发和测试的工具。这使得它成为学习和实践Linux系统编程的理想平台。

  2.稳定性和安全性:Kali Linux基于Debian构建,继承了Debian的稳定性和安全性。

  3.我在大一时装过ubuntu,但之后电脑重装导致系统丢失,但之后学习网络攻防又下载了kali linux,因此我选择了kali而没有使用传统的ubuntu

标签:文件,编程,信息安全,笔记,Unix,路径名,Linux,教材,链接
From: https://www.cnblogs.com/xyydzwjs/p/17689538.html

相关文章

  • Splay学习笔记
    这已经是第三次学习Splay了图片内容转载自yyb的博客二叉搜索树本来是一颗二叉树,但是满足这样的条件:对于一个节点\(x\),满足它的左子树中所有节点的\(val\)都小于\(val_x\),右子树中的所有节点的\(val\)都大于\(val_x\)。那么很显然,我们最希望它(尽可能)是一颗满二......
  • 关于软件架构设计的小笔记
    设计良好的计算机软件应该是易于扩展,同时抗拒修改。这就是著名的开闭原则(OCP)。换句话说,一个设计良好的计算机系统应该在不需要修改的前提下就可以轻易被扩展。其实这也是我们研究软件架构的根本目的。如果对原始需求的小小延伸就需要对原有的软件系统进行大幅修改,那么这个系统......
  • 《信息安全系统设计与实现》第一周学习笔记
    《信息安全系统设计与实现》第一周学习笔记一、知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图第一章关于本书涵盖Unix/Linux的所有基本组件,包括进程管理、并发编程、定时器和时钟服务、文件系统、网络编程和MySQL数据......
  • 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......