从启动(指键盘输入./hello或./hi开始)到上述两个可执行文件执行完毕,操作系统大致要做哪些工作?访问到哪些硬件资源?
时间: 2023-03-13 15:00:49 浏览: 70
操作系统要执行一系列步骤,以便从启动到上述两个可执行文件执行完毕。首先,操作系统会访问硬件资源,包括处理器,内存,磁盘驱动器和I/O设备,确定系统的配置。之后,操作系统会加载和链接必要的设备驱动程序,以便能够正确访问硬件资源。然后,操作系统会加载和初始化必要的系统程序,以便能够正确执行用户命令。最后,操作系统会加载并执行上述两个可执行文件,以完成任务。
相关问题
bash: ./hello: 无法执行二进制文件:可执行文件格式错误
这个错误可能是由于可执行文件不是针对当前的 CPU 架构编译导致的。例如,如果你在 x86 架构的计算机上编译了针对 ARM 架构的可执行文件,就会出现这个错误。
要解决这个问题,需要重新编译针对当前 CPU 架构的可执行文件。如果你不确定应该针对什么 CPU 架构编译,可以在终端中输入以下命令查询:
```
uname -m
```
该命令会输出当前计算机的 CPU 架构。例如,在 x86 架构的计算机上,它会输出 `x86_64`。
接着,你需要使用针对当前 CPU 架构的编译器重新编译可执行文件。例如,如果你在 x86 架构的计算机上编译 C 语言程序,可以使用以下命令重新编译:
```
gcc -o hello hello.c
```
该命令会使用当前系统上的 gcc 编译器,并将编译结果输出到 `hello` 可执行文件中。然后,你可以在终端中使用 `./hello` 命令执行该可执行文件。
./hello: cannot execute binary file: Exec format error
当你在Linux系统中执行一个二进制文件时,出现"./hello: cannot execute binary file: Exec format error"的错误信息,这通常意味着你正在尝试执行一个不适用于你的操作系统或架构的二进制文件。这可能是由于以下几个原因导致的:
1. 二进制文件不适用于你的操作系统:确保你下载或编译的二进制文件与你的Linux操作系统版本兼容。不同的Linux发行版和版本可能使用不同的二进制文件格式。
2. 二进制文件不适用于你的架构:确保你下载或编译的二进制文件与你的硬件架构兼容。常见的架构包括x86、x86_64、ARM等,你的系统架构通常可以通过使用命令"uname -m"来查看。
3. 二进制文件损坏或不完整:如果你已经确定二进制文件适用于你的操作系统和架构,请确保文件没有损坏或不完整。你可以尝试重新下载或重新编译二进制文件。
请确保你的二进制文件适用于你的操作系统和架构,并且没有损坏或不完整。如果问题仍然存在,可能需要进一步调查和排除其他可能的原因。