我尝试在.S程序中使用.c文件中定义的变量。
在.c文件中:
const int var = 10;
在.S文件中:
.extern var
LDR lr, _VAR
_VAR: .word var
它可以被编译。但在执行时,出现错误消息“无法修改应用程序的文本部分;对于位置无关的可执行文件,请使用GCC选项-fPIE”。
交叉编译工具为arm-v7-linux-uclibceabi-gcc。目标是手臂皮质R4。
".extern“不能这样用吗?
谢谢,西米斯。
我正在通过ssh访问另一个ununtu linux系统。
现在,当我要更改该系统中任何文件的权限时,它会显示
chmod: changing permissions of `Android.mk': Read-only file system
chmod: changing permissions of `system_init.cpp': Read-only file system
我尝试使用sudo并以root身份登录,但仍然不明白为什么我无法更改该文件的权限。
我在一个嵌入式Linux平台上工作。在我们的平台中,只有root用户。现在我们想引入一些安全选项,比如
1. Low Privileged user.
2. Allowing to run only executables from a particular location(only read permission).
3. Use Linux Containers
我们已经设法使用/etc/passwd文件添加了一个低权限用户。但我不知道怎么做剩下的。在linux系统中有没有更好的实现安全性的选择?任何文档或链接都是非常感谢的。
Linux需要一个可写的文件系统才能正常工作吗?我只是在运行一个非常简单的初始化程序。目前我没有挂载任何分区。内核已将根分区挂载为只读。只要我坚持使用mallocs、readline和text to standard out (puts),Linux是否被设计为能够与只读文件系统一起运行,或者Linux是否需要一个可写的文件系统才能执行标准的文本输入和输出?
我这样问是因为我似乎得到了内核的恐慌和对堆栈的抱怨。我现在不想运行一个有用的系统。我已经在另一个分区上有一个有用的系统。我试着让它尽可能简单,这样我就可以在添加额外的复杂性之前完全理解事情。
我运行的是一个相当标准的x86-64桌面。