热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

内存映像

转自:http:bbs.chinaunix.netthread-2021818-1-1.htmlLinux下程序转化成进程的步骤:1)内核将程序读入内存

转自:http://bbs.chinaunix.net/thread-2021818-1-1.html

 Linux下程序转化成进程的步骤:
   1) 内核将程序读入内存,并为程序分配一定的内存空间;
   2) 内核为进程分配一个PID,还有其他一些相关资源;
   3) 内核为进程保存PID和相应的状态信息,把进车功能放入到运行队列中等待运行。
   基本上也就这3个步骤了。下面顺便记记进程的内存映像:
   
   首先,什么叫做内存映像呢? 进程的内存映像,指的是内核在内存中如何存放可执行程序文件。注意了,这里的可执行程序文件和内存映像是有区别的,,具体是:
   1) 可执行程序是位于硬盘上的,而内存映像位于内存上;
   2) 可执行程序没有堆栈,因为只有当程序被加载到内存上的时候才会分配相应的堆栈
   3) 可执行程序是静态的,因为它还没运行,但是内存映像是动态的,数据是随着运行过程改变的;
   
   Linux下的内存映像布局一般有如下几个段(从低地址到高地址):
   1) 代码段: 即二进制机器代码,代码段是只读的,可以被多个进程共享;
   2) 数据段: 存储已初始化的变量,包括全局变量和初始化了的静态变量;
   3) 未初始化数据段: 存储未被初始化的静态变量,也就是BSS段;
   4) 堆: 用于存放动态分配的变量;
   5) 栈: 用于函数调用,保存函数返回值,参数等等;

转:https://www.cnblogs.com/crane-practice/p/3640164.html



推荐阅读
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 本文介绍了如何查看PHP网站及其源码的方法,包括环境搭建、本地测试、源码查看和在线查找等步骤。 ... [详细]
  • 本文详细探讨了使用Python3编写爬虫时如何应对网站的反爬虫机制,通过实例讲解了如何模拟浏览器访问,帮助读者更好地理解和应用相关技术。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • WCF类型共享的最佳实践
    在使用WCF服务时,经常会遇到同一个实体类型在不同服务中被生成为不同版本的问题。本文将介绍几种有效的类型共享方法,以解决这一常见问题。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本文将深入探讨 iOS 中的 Grand Central Dispatch (GCD),并介绍如何利用 GCD 进行高效多线程编程。如果你对线程的基本概念还不熟悉,建议先阅读相关基础资料。 ... [详细]
  • 本文旨在探讨信息安全专业的职业规划路径,结合个人经历和专家建议,为即将毕业的学生提供实用的指导。 ... [详细]
  • 本文介绍了如何通过安装 rpm 包来使用 resize2fs 和 ext2online 工具进行系统文件的扩容。提供了详细的步骤和注意事项。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 本文详细介绍了STM32中RTC TAMPER引脚如何用于入侵检测,并解释了其工作原理和注意事项。当TAMPER引脚上的信号发生变化(取决于备份控制寄存器BKP_CR的TPAL位),会触发入侵检测事件,导致数据备份寄存器内容被清除。 ... [详细]
  • 在使用Eclipse进行调试时,如果遇到未解析的断点(unresolved breakpoint)并显示“未加载符号表,请使用‘file’命令加载目标文件以进行调试”的错误提示,这通常是因为调试器未能正确加载符号表。解决此问题的方法是通过GDB的`file`命令手动加载目标文件,以便调试器能够识别和解析断点。具体操作为在GDB命令行中输入 `(gdb) file `。这一步骤确保了调试环境能够正确访问和解析程序中的符号信息,从而实现有效的调试。 ... [详细]
author-avatar
C3calm_daidai_649
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有