+
95
-

请问用户空间和内核空间有什么区别?

请问用户空间和内核空间有什么区别?

网友回复

+
15
-

用户空间就是用户进程所在的内存区域,相对的,内核空间就是操作系统占据的内存区域。

用户进程和系统进程的所有数据都在内存中。

是谁来划分内存空间的呢?在电脑开机之前,内存就是一块原始的物理内存,什么也没有,开机加电,系统启动后,就对物理内存进行了分。

当然,这是系统的规定,物理内存条上并没有划分好的地址和空间范围,这些划分都是操作系统在逻辑上的划分。不同版本的操作系统划分的结果都是不一样的。

为什么要划分用户空间和内核空间呢?当然是有必要的。操作系统的数据都是存放于内核空间的,用户进程的数据是存放于用户空间的。这是第一点,不同的身份,数据放置的位置必然不一样,否则大混战就会导致系统的数据和用户的数据混在一起,系统就不能很好的运行了,分开来存放,就让系统的数据和用户的数据互不干扰,保证系统的稳定性,分开存放,管理上很方便,而更重要的是,将用户的数据和系统的数据隔离开,就可以对两部分的数据的访问进行控制。这样就可以确保用户程序不能随便操作系统的数据,这样防止用户程序误操作或者是恶意破...

点击查看剩余70%

+
15
-

早期操作系统是不区分内核空间和用户空间的,但是应用程序能访问任意内存空间,如果程序不稳定常常把系统搞崩溃,比如清除操作系统的内存数据。后来觉得让应用程序随便访问内存太危险了,就按照CPU 指令的重要程度对指令进行了分级,指令分为四个级别:Ring0~Ring3 (和电影分级有点像),linux 只使用了 Ring0 和 Ring3 两个运行级别,进程运行在 Ring3 级别时运行在用户态,指令只访问用户空间,而运行在 Ring0 级别时被称为运行在内核态,可以访问任意内存空间。 用户态的程序不能随意操作内核地址空间,这样对操作系统具有一定的安全保护作...

点击查看剩余70%

我知道答案,我要回答