操作系统基础(一)
文章目录
- 操作系统基础(一)
- 1、操作系统架构概述
- 2、用户模式与内核模式
- 3、进程
- 4、系统调用
- 5、对象和句柄
我们想要逆向的程序几乎从来不会在真空中执行。相反,程序通常在正在运行的操作系统(例如 Linux、Windows 或 macOS)的上下文中运行。因此,了解这些操作系统如何向程序公开服务、系统内存和硬件隔离的基本原理,对于正确理解程序最终运行时的行为至关重要。
1、操作系统架构概述
不同的操作系统通常以截然不同的方式运行,但令人惊讶的是,普通程序运行的执行环境通常有很多相似之处。例如,即使底层实现和语义在不同平台之间略有不同,内核模式和用户模式之间的区别,以及对内存访问、调度和系统服务调用机制的区别往往相对较小。
在本节中,我们将快速了解一些基本的操作系统概念。虽然这里主要关注 Linux,但许多相同的基本概念可以应用于您在逆向工程时可能遇到的其他操作系统。操作系统基础知识
2、用户模式与内核模式
在对程序二进制文件进行逆向工程之前,了解程序在 Linux 操作系统中的运行环境非常重要。Armv8-A CPU 为操作系统提供了至少两种执行模式。操作系统内核使用的特权模式称为内核模式,而用户程序使用的非特权模式称为用户模式。在 Armv8-A 架构中,内核模式代码和用户模式代码之间的区别由硬件强制执行。在用户模式下运行的程序运行在非特权异常级别 0 (EL0),而操作系