自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 2023-2024-1 20232824《Linux内核原理与分析》第十三周作业

本实验中,将感受到linux capability功能在访问控制上的优势,掌握使用Capability达到遵守最小权限原则的目的,并分析linux中基于Capability访问控制的设计。

2023-12-13 14:32:01 918 1

原创 2023-2024-1 20232824《Linux内核原理与分析》第十二周作业

系统监控的重要性:一旦我们的系统上线并开始运行,我们自然希望它能保持稳定可靠,避免宕机、无响应或运行缓慢的情况。但这不是简单开启电源后就能实现的。因此,我们需要不断监视系统的运行状况,及时发现并解决问题。对于系统和网络管理员来说,每天监控和调试 Linux 系统的性能问题是一项繁重的任务。确保系统正常启动并持续稳定运行绝非易事。以下是一些 Linux 系统监控命令的简要介绍。

2023-12-09 22:23:44 842

原创 2023-2024-1 20232824《Linux内核原理与分析》第十一周作业

系统访问控制示意图:在Linux系统中,我们所有的操作实质都是在进行进程访问文件的操作。我们访问文件需要先取得相应的访问权限,而访问权限是通过Linux系统中的安全模型获得的。对于Linux系统中的安全模型,我们需要知道下面两点Linux系统上最初的安全模型叫DAC, 全称是,翻译为自主访问控制。后来又增加设计了一个新的安全模型叫MAC, 全称是, 翻译为强制访问控制。注意,MAC和DAC不是互斥的,DAC是最基本的安全模型,也是通常我们最常用到的访问控制机制是Linux必须具有的功能, 而MAC。

2023-12-03 11:58:22 986 1

原创 2023-2024-1 20232824《Linux内核原理与分析》第十周作业

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。ESXi中,所有虚拟化功能都在内核中实现;Xen中,内核仅实现CPU与内存虚拟化,I/O虚拟化与调度管理由主机上启动的第一个负责管理的虚拟机实现;

2023-11-24 10:06:20 941 1

原创 2023-2024-1 20232824《Linux内核原理与分析》第九周作业

Linux进程调度基于分时和优先级,包括用户态和内核态的进程。内核线程是只有内核态的特殊进程,代表中断处理和其他内核任务。整体执行过程可描述为从运行的用户态进程X切换到用户态进程Y。内核线程可以主动调度而无需中断上下文切换,通过schedule()函数和宏实现上下文切换,其中switch_to用于关键上下文切换。这一结构允许灵活而高效的进程管理和调度。

2023-11-18 11:04:43 71 1

原创 2023-2024-1 20232824《Linux内核原理与分析》第八周作业

在本次实验中,我们深入探讨了Linux内核如何装载和启动一个可执行程序的过程。这一探究包括了编译和链接、动态链接、exec*库函数以及相关的系统调用等多个方面。通过实际练习、调试和详细分析,我对可执行程序的装载和运行时动态链接过程有了更深入的理解。在使用GDB跟踪sys_execve系统调用函数的过程中,我进一步加深了对Linux系统如何加载和启动程序的认识。这一实验提供了宝贵的机会,让我更全面地了解了操作系统中关键的程序执行流程。

2023-11-12 14:51:52 54 1

原创 2023-2024-1 20232824《Linux内核原理与分析》第七周作业

1、阅读理解 task_struct 数据结构 2、分析 fork 函数对应的内核处理过程 sys_clone,理解创建一个新进程如何创建和修改 task_struct 数据结构 3、使用 gdb 跟踪分析一个 fork 系统调用内核处理函数 sys_clone ,验证自己对 Linux 系统创建一个新进程的理解, 特别关注新进程是从哪里开始执行的?为什么从那里能顺利执行下去?即执行起点与内核堆栈如何保证一致。 4、根据本周所学知识分析 fork 函数对应的系统调用处理过程1、首先重新编译LinuxKern

2023-11-05 13:11:40 57

原创 2023-2024-1 20232824《Linux内核原理与分析》第六周作业

在本次实验中,我运用了 GDB 调试工具,对 Linux 内核中的两个系统调用函数,即 getpid 进行了深入分析。这一过程使我更深刻地理解了系统调用的执行过程,包括用户空间和内核空间之间的切换、参数传递、系统调用号的解析等重要步骤。通过仔细的调试和对寄存器状态的观察,我成功地捕获了系统调用的执行步骤。随后,我将这些步骤绘制成了流程图,以更清晰、直观的方式呈现了系统调用的执行过程。这个实验让我更深入地理解了操作系统内核的基本运行原理。

2023-10-28 19:16:23 57

原创 2023-2024-1 20232824《Linux内核原理与分析》第五周作业

系统调用是用户态进程访问硬件的一种方式,它通过中断(int 0x80)由用户态进入内核态。当一个用户态程序进行系统调用的时候,CPU进入内核态并执行内核函数。在这个实验中,我们学习了如何使用两种不同的方法(库函数 API 和内嵌汇编代码)来执行相同的系统调用getpid以获取进程的 PID。这个实验帮助我们了解了两种方法的异同以及如何在C代码中与汇编代码相互配合。使用库函数 API:我们首先使用了库函数getpid()来获取进程的 PID。

2023-10-22 10:53:22 63 1

原创 2023-2024-1 20232824《Linux内核原理与分析》第四周作业

通过本次实验,我获得了对Linux内核的启动过程的更深入理解。这个过程包括了从引导加载器的启动,到函数的执行,再到init进程的启动。我了解了内核是如何初始化硬件、内存管理、中断处理、进程调度等关键组件的。这个实验帮助我更清晰地认识了Linux内核的内部工作,为深入研究和理解Linux操作系统的底层提供了坚实的基础。

2023-10-15 09:55:02 60 1

原创 2023-2024-1 20232824《Linux内核原理与分析》第三周作业

接下来配合chatgpt学习并完成实验内容:上述代码为构建和启动一个自定义的Linux内核。首先,它删除任何先前构建的内核相关文件,然后应用一个补丁文件来修改内核源代码。接下来,它配置内核选项,然后编译内核。最后,它使用QEMU虚拟机来启动新编译的内核。这个过程旨在允许用户自定义内核,以满足特定需求或测试新功能。执行make后发现新的内核已经准备就绪。

2023-10-06 13:36:02 45 1

原创 2023-2024-1 20232824 《Linux内核原理与分析》 第二周作业

1、使用vim test1.c命令打开vim编辑器,以test1.c为名创建文件2、编写一个简单的程序后,使用:wq保存并退出编译。3、执行反汇编命令得到test1.s文件,删除所有.开头的行得到纯汇编代码即:4、通过和ChatGPT深入了解代码及相关知识请详细解释上述汇编代码。gf和main。

2023-09-24 18:16:02 68 1

原创 2023-2024-1 20232824《Linux内核分析与原理》第一周作业

Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。命令作用ls查看当前文件夹下的内容pwd查看当前所在文件夹cd[目录名]切换文件夹touch[文件名]如果文件不存在,新建文件mkdir[目录名]创建目录rm[文件名]删除指定文件clear清屏。

2023-09-17 11:50:10 82 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除