腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
为什么
Linux
有两个
数据
段
,一个用于用户模式,另一个用于内核模式?
linux
、
linux-kernel
Linux
有(除了其他部分)一个用户
数据
段
和一个内核
数据
段
。但是内核
数据
段
仍然可以从用户模式访问,因为用户
数据
段
浏览 0
提问于2019-04-06
得票数 3
2
回答
加载
时ELF重定位
c
、
linux
、
loader
、
elf
我正在
Linux
下编写一个简单的用户空间ELF
加载
器(为什么?为了“好玩”)。目前我的
加载
器非常简单,只
加载
包含位置无关代码的静态链接的ELF文件。通常,当一个
程序
被内核的ELF
加载
程序
加载
时,它被
加载
到它自己的地址空间中。这样,
数据
段
和代码
段
可以
加载
到ELF
段
中指定的正确虚拟地址。然而,在我的例子中,我通过mmap向内核请求地址,可能会也可能得
浏览 2
提问于2009-08-28
得票数 21
回答已采纳
1
回答
如何在MBR中双引导FreeBSD和PC-BSD -与GRUB2?
boot
、
freebsd
、
grub2
、
dual-boot
、
grub
我在MBR中安装了GRUB2,它(GRUB)使用
Linux
安装(/boot/grub等)中的
数据
。 FreeBSD和PC各自在分区中都有自己的第二阶
段
引导
加载
程序
。Solaris在其分区中有自己的GRUB安装(它充当第二阶
段
的引导
加载
程序
,使我能够在不同的Solaris内核之间进行选择)。
Linux
和CentOS是由MBR中的GRUB引导的。引导*BSD似乎是三个阶段的进程:MBR-
加载
程
浏览 0
提问于2014-10-09
得票数 1
3
回答
正在尝试实现exe ()
c
、
unix
为了进行测试,我使用了一个返回argc的简单
程序
。
程序
是静态链接的。return argc;0000000000005680 g F .text 0000000000000010 main所有这些
程序
都是我的,我学会了编程。重点是hello
程序
只包含指令,并且很容易在内存中找到它: call和
浏览 0
提问于2020-01-02
得票数 2
3
回答
嵌入式
Linux
启动阶段
linux
、
embedded
、
embedded-linux
、
u-boot
我想系统化我的U/
linux
知识。在每个嵌入式平台中至少需要2个引导
加载
程序
阶段是真的吗?或者跟随的过程会有所不同? 第二阶
段
引导
加载
程序
(可以是memory )存储在RW闪存中。这个U可以定制和
浏览 8
提问于2011-09-26
得票数 11
回答已采纳
1
回答
启动时是否将整个静态
程序
加载
到内存中?
c
、
linux
、
windows
、
macos
、
assembly
在Mac、Windows、
Linux
、iOS等典型的计算机上,当用户启动
程序
/二进制/应用
程序
时,
程序
的静态部分是否总是在开始执行之前全部
加载
到内存中?这是否包括
程序
中的所有
数据
段
(如字符串和任何其他嵌入的BLOB
数据
)?假设我将一个巨大的图像文件嵌入到二进制文件中(例如,在__DATA
段
中)。这些图像
数据
会在启动时全部
加载
到内存中吗?
浏览 5
提问于2015-07-30
得票数 17
回答已采纳
2
回答
什么是链接器,什么是动态链接中的
加载
程序
?
shared-library
、
dynamic-linking
、
ld
任何
Linux
程序
都可以通过调用execve函数来调用
加载
程序
,我们将在8.4.6节中详细描述该函数7.10动态链接到共享库之后,我们将把它链接到图7.7中的示例
程序
:
linux
相反,the链接器复制一些重新定位和符号表信息,这些信息将允许在
加载
时解析对libvector.so中代码和
数据
的引用。The动态链接器然后fi通过执行以下重定位来确定the链接任务: 将libc.so的文本和
数据
重新定位到某个内存<
浏览 0
提问于2020-09-27
得票数 -1
1
回答
字符串常量存储在内存中的哪里?
c++
在C++
程序
中,常量
数据
存储在哪里,特别是字符串常量?我提出这个问题,是因为在以下问题中: 这样,您的常量是真正的(不仅仅是形式上的)常量,没有分配,没有异常的可能性,也没有双重内存使用。而且在大多数情况下,它看起来和闻起来都像一根绳子。
浏览 9
提问于2016-11-04
得票数 0
1
回答
装载机的作用
c
、
loader
在
linux
机器上
加载
进程时,
加载
程序
的作用是什么?它是只创建虚拟地址空间,还是做其他一些事情,比如设置堆栈指针、将BSS
段
初始化为零等等。还是C运行时库与它有关?
浏览 3
提问于2014-12-26
得票数 2
回答已采纳
1
回答
理解
Linux
中的动态库
加载
c++
、
c
、
linux
、
shared-libraries
我试图从这里1开始理解
Linux
中的动态库
加载
,并想澄清这个概念。具体来说,当在
Linux
环境中的进程中
加载
动态库时,它将在地址空间的任意点
加载
。现在,库有一个代码
段
和一个
数据
段
。代码
段
的地址不是预先定义的,所以它是0x0000000,而对于
数据
段
,一些数字被定义为地址。 但是这里有一个诀窍,这个
数据
段
的地址实际上不是真正的地址。实际上,无论
加载
浏览 4
提问于2014-03-20
得票数 2
回答已采纳
3
回答
程序
如何知道bss段位于何处?
c
、
memory-management
据我所知,x86为指向代码、
数据
和堆栈
段
的指针(而不是bss)和堆
段
提供了专用寄存器。计算机是如何记住这些片段在哪里的?特别是堆,因为bss是直接在
数据
之后,但是堆经常放在不同的位置在内存中。
浏览 7
提问于2017-05-10
得票数 3
回答已采纳
2
回答
为什么偏移操作符返回一个巨大的偏移量,而变量位于.data
段
的开头?
assembly
、
x86-64
、
masm
如果偏移操作符应该返回变量从其包围
段
开始的距离,那么为什么返回的偏移量总是很大?在下面的示例中,变量num是.data
段
中的第一个变量。它不是必须在0偏移吗?
浏览 2
提问于2020-05-18
得票数 0
回答已采纳
1
回答
是否所有
程序
代码都
加载
到内存的text\code
段
\
段
中
c
、
memory
、
operating-system
、
segment
我的问题是
程序
什么时候第一次
加载
到内存中。我很难理解这里到底发生了什么。如果两个进程可以共享同一组指令,这是否意味着每个进程在其虚拟内存空间中都有单独的代码
段
?
浏览 1
提问于2013-05-20
得票数 11
回答已采纳
1
回答
Linux
进程地址空间的解释?
linux
在
linux
中,每个进程都有地址空间,当创建子进程时,这个地址空间将被exec()系统调用覆盖。我想知道的是这个地址空间由什么组成?地址空间中将包含什么类型的信息?
浏览 1
提问于2013-03-18
得票数 0
回答已采纳
1
回答
为什么.bss部分映射到比对象文件中报告的bss更小的进程?
linux
、
memory
、
linux-kernel
、
shared-libraries
、
elf
我查看了进程的/proc/PID/map文件,并计算了
加载
库的bss部分的大小。链接器是否能够确定bss中的某些变量对于特定的
加载
可执行文件来说并不是必需的?如果是的话,是如何做到的?
浏览 5
提问于2014-08-12
得票数 3
回答已采纳
1
回答
可以显示文本和
数据
段
的调试器
debugging
、
memory
我感兴趣的是查看
加载
程序
的整个虚拟内存;我知道Visual可以向我展示堆栈和堆,但是是否有一个工具(在Windows或
Linux
上)可以用于查看给定断点上的完整内存布局和文本、
数据
以及堆栈和堆
段
的大小?编辑: 我没有立即找到一个工具,让我看到什么是包含在
数据
和文本段。这个工具将允许我查看堆栈中出现的
数据
和变量以及
数据
段
中保存的
数据
。
浏览 3
提问于2016-11-27
得票数 2
2
回答
二进制
程序
中的内存地址如何在运行时指向内存中的正确位置?
memory
、
compilation
、
operating-system
、
executable
、
machine-code
根据我所理解的,当您编译一个
程序
(例如,一个C
程序
)时,编译器接受您的代码并以二进制格式输出可执行
程序
(即目标arch的机器代码)格式。在这个二进制文件中,您将得到指向内存中的地址的指令,以从
程序
的其他部分
加载
数据
/指令。 考虑到这个
程序
将在任意位置
加载
到内存中,
程序
如何知道这些内存地址是什么?他们是如何设置/计算的?例如,当二进制文件第一次将内存
加载
到内存中时,二进制文件是否只具有内存位置的占位
浏览 5
提问于2020-03-21
得票数 0
回答已采纳
1
回答
移动第三个分区可能会阻止os的启动。
boot
、
partition
、
embedded
、
gparted
我有一个唤醒图像文件的ARM嵌入式
Linux
系统。rootfs分区太大了,我想缩小它。2048 206847 204800 100M c W95 FAT32 (LBA) /dev/loop0p2 206848 12789759 12582912 1G 83
Linux
浏览 0
提问于2021-03-10
得票数 0
回答已采纳
2
回答
汇编
程序
代码\\指令内存映射如何更改?
c
、
x86
、
gdb
、
elf
、
objdump
/hello是c中的一个简单的echo
程序
。$ objdump -f ./hello 现在在gdb中
加载
这个二进制文件。Reading symbols from ./hello...
浏览 0
提问于2019-01-21
得票数 3
回答已采纳
2
回答
现代操作系统中的内存分段
operating-system
、
virtual-memory
、
memory-segmentation
在学习操作系统(主要是以
Linux
作为参考)时,我发现有几点在我所研究的材料中没有得到很好的解释。
加载
到内存中的
程序
经常被描述为被分成文本、
数据
、堆栈等
段
,即使在
Linux
这样的操作系统中,虚拟内存纯粹基于分页。是不是仅仅是
程序
,而不是内存本身被称为分段?如果是这样的话,我觉得这个术语令人困惑。我看到可以在
Linux
中使用'sbrk‘调用来实现malloc,该调用增加了
数据
段
的大小。再问一次,这个“
浏览 1
提问于2012-02-27
得票数 8
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
记录下Windows2008服务器转Linux无法加载数据盘的情况
好程序员知识点精讲 大数据之Linux
玩转双系统安装,这10个知识盲区要扫除
为什么需要动态链接?
编译、链接、装载
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券