Linux系统应用编程 --- 虚拟地址空间的理解

简介: Linux系统应用编程 --- 虚拟地址空间的理解

1. 操作系统会为每个进程分配0-3G的虚拟空间,3G-4G是留给内核空间的

2. 假设物理内存为2G,那个操作系统如何给每个进程分配内核空间和用户空间?

1、为什么不同进程的内核空间可以共用?

因为应用层是无法修改内核空间的内容的

2、操作系统是怎么管理内存空间的?

(1)虚拟内存映射表,按照page去管理内存的,1page = 4096bytes

所以我们在malloc内存的时候,如果先malloc2000字节,在malloc 3000字节,就会分配两个page,造成内存浪费,所以应该按照4096的整数倍去分配内存

(2)操作系统还可以给每个page分配不同的属性,R/W属性。

比喻 char *str = "hello",不能够去修改*str的值,因为"hello"就存放在只读数据段。

3. 0-3G的用户空间里面都放了什么

4. 用户空间环境变量

libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时要用extern声明。

 

1. #include <stdio.h>
2. int main(void)
3. {
4. extern char **environ;
5. int i;
6. for(i=0; environ[i]!=NULL; i++)
7. printf("%s\n", environ[i]);
8. return 0;
9. }

 

目录
打赏
0
0
0
0
20
分享
相关文章
Linux系统中的cd命令:目录切换技巧
踏过千山,越过万水,人生就是一场不断前行的旅程,总充满了未知与挑战。然而,“cd”命令如同你的旅伴,会带你穿梭在如棋盘一般的文件系统中,探索每一处未知。希望你能从“cd”命令中找到乐趣,像是掌控了一种络新妙的魔法,去向未知进发,开始你的探索之旅。
87 24
|
6天前
|
Linux系统下快速批量创建和删除文件的方法
总的来说,使用shell脚本来批量处理文件是一种非常强大的工具,只要你愿意花时间学习和实践,你会发现它能大大提高你的工作效率。
53 19
Linux系统之su命令的基本使用
Linux系统之su命令的基本使用
67 2
Linux系统之su命令的基本使用
在Ubuntu Linux系统下如何搭建并安装EDK2
以上就是在Ubuntu Linux系统下搭建并安装EDK2的过程。这个过程可能会有些复杂,但只要按照步骤一步步来,应该不会有太大问题。如果在过程中遇到任何问题,都可以在网上找到相应的解决方案。希望这个指南能对你有所帮助!
59 17
在Linux服务器中遇到的立即重启后的绑定错误:地址已被使用问题解决
总的来说,解决"地址已被使用"的问题需要理解Linux的网络资源管理机制,选择合适的套接字选项,以及合适的时间点进行服务重启。以上就是对“立即重启后的绑定错误:地址已被使用问题”的全面解答。希望可以帮你解决问题。
82 20
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
118 27
|
1月前
|
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
146 10
|
2月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
131 24
Linux系统之whereis命令的基本使用
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
25000多字详细讲解,深度剖析权限管理核心。从基础权限到复杂的特殊权限,逐一拆解,无论你是零基础小白还是经验丰富的运维人员,都能在这里找到提升技能的关键知识,全面掌握 Linux 权限管理。还不快来看看?
|
1月前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
172 8
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等