我想知道从中断返回(RTI)和从子程序返回(RTS)之间的区别.这两者是否相同或两者之间有什么区别?
我想知道是否有任何理由在代码中最小化系统调用的使用以及不使用系统调用的替代方法,可以说使用API但api依次使用系统调用
这是真的吗?
我在一次采访中被问到“联盟可以自我引用吗?”
我知道struct可以自我参考,但我真的很困惑union。我在一本教科书中读到 union 可以自我引用,但它没有对这个主题进行更多说明。
任何人都可以确认是否union 是或不能够自我引用?
我在面试中被问到如何使用GDB在C程序中调试分段错误.
我告诉他们我们可以用-g选项编译我们的程序,因为它将调试信息添加到二进制文件中并且可以读取核心转储文件但是然后面试官告诉我他们是否有3到4个文件一起编译但是其中一个导致分段错误那么怎么办我们在GDB中调试?
我们正在尝试将linux映像加载到我们位于特定位置的DRAM中,DRAM结束地址为0x80000000,我们从启动日志中了解到"mem device ending address是0x80000000".我们正在加载地址为"0x5000000"的图像并且在图像中的variuos部分加载到某个大于"0x80000000"的地址之前,从引导日志再次获得eaxmple
loading section to address 0xc5000000 from file position 0x1000, size is 0x5ac13e
Run Code Online (Sandbox Code Playgroud)
什么意思是"从文件位置0x1000"在上面的行.
加载的第一部分是.text部分,下面是我们的部分标题的vmlinux图像转储
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .text PROGBITS c5000000 001000 5ac13e 00 AX 0 0 4096
[ 2] .notes NOTE c55ac140 5ad140 000168 00 AX 0 0 4
[ 3] __ex_table PROGBITS c55ac2b0 5ad2b0 000fe0 00 A 0 0 4
[ 4] .rodata PROGBITS c55ae000 …Run Code Online (Sandbox Code Playgroud) 我知道我可以使用 dmesg 命令获取 Linux 启动日志,但不知道当我的系统刚启动时如何获取 U-boot 的启动日志。我也尝试过 Go-ogling,但我得到的只是到处都是 dmesg 参考。
另外我不确定U-boot中的CRM是什么?我在基于 ARM 的目标板上。
我正在尝试基于 Board 在 AARCH64 上编译“mrc”和“mcr”指令,但我看到以下错误消息
tmp/ccqOHmrK.s: Assembler messages:
/tmp/ccqOHmrK.s:43: Error: unknown mnemonic `mrc' -- `mrc p15,0,x0,c14,c3,1'
/tmp/ccqOHmrK.s:53: Error: unknown mnemonic `mrc' -- `mrc p15,0,x2,c14,c3,0'
Run Code Online (Sandbox Code Playgroud)
我尝试查看内核源代码 /arch/arm64,但没有模拟就没有使用过 mcr&&mrc。
这是一些语法问题吗?
我有一个在 Docker 中运行的应用程序需要运行 Huge-page。现在我尝试了以下相同的命令集。
CMD ["mkdir", "-p" ,"/dev/hugepages"]
CMD ["mount" ,"-t", "hugetlbfs" , "none", "/dev/hugepages"]
CMD ["echo 512" ,">" ,"/proc/sys/vm/nr_hugepages"]
CMD ["mount"]
Run Code Online (Sandbox Code Playgroud)
但是我没有看到从 mout 命令安装了 Hugepages,为什么?
任何人都可以指出我,是否有可能做到?
我们有一个没有ELF头的Linux内核二进制文件,我们的引导加载程序将根据来自ELF头的计算加载内核映像(早期的QNX内核映像有ELF头),但由于我们的Linux内核映像没有一个ELF头,我们的引导加载程序拒绝将此内核映像加载到内存中.
由于某些原因,我们没有更改引导加载程序代码的选项,因此我们唯一的选择是将ELF标头插入具有特定入口点的Linux BIN文件中.
实现它的方法是什么?
我正在尝试运行从 GAS 风格获取的指令,但是当我将此指令移植到 intel 风格时,出现如下错误:
"error: parser: instruction expected"
Run Code Online (Sandbox Code Playgroud)
我尝试了各种组合,例如 REP movsl、REP loadsl,但都给出了相同的问题,任何人都可以告诉这个正确的命令相当于 x86 中的 REP stosl
linux-kernel ×5
assembly ×3
bootloader ×3
c ×2
linux ×2
arm64 ×1
docker ×1
elf ×1
gcc ×1
gdb ×1
intel-syntax ×1
system-calls ×1
u-boot ×1
unions ×1
x86 ×1