哈工大计算机系统安全作业1:内核空间与用户空间详解及进程控制函数实践

需积分: 5 4 下载量 113 浏览量 更新于2024-08-04 1 收藏 260KB PDF 举报
本篇作业是关于哈工大计算机系统安全课程的第1次作业,主要探讨了内核空间和用户空间的概念及其在操作系统中的角色。首先,内核空间(KernelSpace)在32位Linux系统中占据大约1GB的空间,它是操作系统的核心区域,负责执行操作系统核心服务和管理受保护的内存。内核空间对所有进程是共享的,具有访问底层硬件和系统资源的权限,这可能导致潜在的安全隐患。为了保护系统的稳定性,内核空间的内容必须受到严格的控制。 用户空间(UserSpace)则对应于非操作系统程序,如普通应用程序,通常占用剩余的3GB空间,这部分空间独立于每个进程,用于存储和执行普通程序。用户空间的内容不包含操作系统程序,仅限于应用程序和它们的执行环境。 作业还要求学生查阅并理解相关的进程控制和文件操作函数,例如`fork()`和`clone()`(包括`clone3()`)等。`fork()`函数用于创建一个新的进程,其返回值在成功时提供新进程的PID,失败时返回-1。`clone()`函数则允许按照指定条件创建子进程,并支持传递PID、子进程TID等信息。这些函数属于系统调用或内核函数,需要关注其参数和使用方法,特别是针对重点函数进行编程练习。 通过这些概念的学习和实践,学生将深入理解操作系统如何管理和隔离内核与用户空间,以及如何通过系统调用来实现进程控制和文件操作的权限管理。这对于理解和确保系统安全至关重要,也是未来软件开发人员必备的基础知识。完成这些练习不仅有助于提升编程技能,还能增强对计算机系统内部构造的理解。