学习笔记1

ChatGpt的苏格拉底挑战:

 

有关内核:

linux系统的核心是内核。内核控制着计算机系统的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。

内核主要负责以下4种功能。
·系统内存管理
·软件程序管理
·硬件设备管理
·文件系统管理

 

 有关GCC:

GNU Compiler Collection,编译器集合,能够将源代码转换成机器码

 三个步骤:t1.c—>编译器——>t1.s——>汇编器———>t1.0———>链接器———>a.out

               C源文件              汇编代码文件     目标代码文件/二进制机器码          二进制可执行文件

苏格拉底挑战2:

 

gcc运行时堆栈的使用情况要点总结:

  • 每个函数都会被分配栈帧,用FP(BP)来表示指向当前激活函数的栈帧
  • 为什么采用栈?先进后出,主函数开始读取压栈,再读取指向所调用的函数,执行时从调用的函数开始出栈

 

在下载emacs时使用书上apt-get install命令没用,得用sudo apt install猜测是sudo能获取更高权限的原因,询问gpt后得知结果:

 

两模块链接方式:

  1. gcc main.c hello.c -o main
  2. gcc *.c -o main

long jump

longjmp是一个函数,用于实现非局部跳转。它与setjmp函数一起使用,可以在应用程序中实现跳转到事先设置的位置。

longjmp函数的原型如下:

#include <setjmp.h>
void longjmp(jmp_buf env, int val);

其参数包括一个jmp_buf类型的环境变量(通常为数组类型),用于保存跳转位置的上下文信息,以及一个整数值val,用于指定跳转后setjmp函数的返回值。

要使用longjmp实现跳转,首先需要在要跳转到位置的函数中调用setjmp函数,将当前的上下文信息保存到jmp_buf变量中。然后,在需要跳转到该位置的地方使用longjmp函数完成跳转操作。

 

遇到的问题:

virtualbox虚拟机创建后无法启动,报错:Erorr in supR3HardenedWinReSpawn

链接:https://blog.csdn.net/qq_45730349/article/details/121470304

解决无法启动问题

虚拟光盘下载:

https://ubuntu.com/

https://openeuler.org/zh/

共享文件夹有关:

在创建好共享文件夹后刚开始是能用的,把截图mv到里面后可能因为没有后缀,在本机上查看不了,重启虚拟机后发现更改共享文件夹需要更高权限了,但是在本机上却看不到有东西,目前还未解决,选择小窗虚拟机,光标放在桌面上使用本机截图

 

学习linux系统中的一些笔记(持续更新)

 

posted @ 2023-09-10 17:34  周意凯  阅读(8)  评论(0编辑  收藏  举报