我正在尝试在我的 Debian (squeeze) 机器上安装更新的内核版本,因为我需要它来让我的无线卡正常工作。我的硬盘的一个分区上有 Debian,另一分区上有 Fedora。我正在寻找有关如何执行此操作的简单说明,但我在网上找不到任何地方。任何帮助将不胜感激!我什至想知道是否可以将内核从一个分区复制到下一个分区?
是否可以卸载其文件/目录正在使用的分区?
底层文件和目录位于内存中,因此卸载分区在技术上是安全的(我猜)。
但umount不允许我卸载它。
(谁在拒绝这个操作:umount 还是内核?)
我正在阅读Linux 无线扩展的文档,该文档链接在相关问题中。
它说:
/proc/net/wireless旨在提供系统中每个无线接口的一些无线特定统计数据。该条目实际上是/proc/net/dev提供标准驱动程序统计信息的克隆。
这两个文件的格式完全不同:
/proc/net/dev:
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 13094103 37388 0 0 0 0 0 0 13094103 37388 0 0 0 0 0 0
eth0: 539566809 524165 0 0 0 0 0 0 47595494 365161 0 0 0 0 0 0
tunl0: 0 0 0 0 0 0 0 0 0 0 0 …Run Code Online (Sandbox Code Playgroud) 我了解到这个命令:
echo -e "\a"
Run Code Online (Sandbox Code Playgroud)
在本地系统上触发蜂鸣声,而此命令:
echo -e "\a" >/dev/console
Run Code Online (Sandbox Code Playgroud)
在远程系统上触发蜂鸣声。
为什么是这样?什么是>/dev/console部分在做什么?
为什么echo -e "\a"在远程机器上执行会在本地而不是远程触发哔声?
为什么“echo” - 命令不喜欢 sudo ?
是否有类似 OSI 层的方案?请向我提供一些外部文件。
我对将 stdout/stderr 重定向到文件只有一个基本的了解,但问题更可能是指“Gnu/Linux/Kernel”是如何设计的,以便重新重定向到
“ > /dev/console” 用于解决远程蜂鸣声。
遥控器是否echo "Hello World"需要重定向到 /dev/console ?
我进行了系统调用并重新编译了内核,但是在运行系统调用时它返回了 Killed。因此,为了跟踪它,我使用了 strace,它显示了以下消息:
syscall_0x224(0x7ffda7199738, 0x7ffda7199748, 0x55743750a6d0, 0x7f9f20df7d80, 0x7f9f20df7d80, 0x7ffda7199730) = ?
这是什么意思(不是十六进制,问号)?
出于好奇,我对使用clang和zapcc编译器编译Linux 内核很感兴趣;一次一个。
我找不到要遵循的指南。只有 GCC 被用来编译 Linux 内核。
如何使用其他编译器编译 Linux 内核?
假设我有 10 个进程,例如:
process p0 with PID 1.
process p1 with PID 2.
process p2 with PID 3.
process p3 with PID 4.
process p4 with PID 5.
process p5 with PID 6.
process p6 with PID 7.
process p7 with PID 8.
process p8 with PID 9.
process p9 with PID 10.
Run Code Online (Sandbox Code Playgroud)
当我杀死一个进程时,例如:
kill 7
Run Code Online (Sandbox Code Playgroud)
并且进程 p6 被成功杀死,进程 p5 和 p7 之间为空,当我将 p10 作为进程运行时,内核将 PID 11 分配给 p10。
问题是为什么内核(linux 和 freebsd)分配一个增量 PID 而不是分配 PID 7 给进程 p11?
我在这里特别想知道的是:不管底层硬件如何,Linux 内核如何在所有不同的 PC 上工作。
或者一般来说,无论 PC 硬件配置如何,任何内核(Microsoft 的 NT 内核、mac os 和 Linux)如何在任何 PC 上工作。
为了解释我的疑问,这里有一个场景:与PC-2相比,PC-1的蓝牙、键盘、wifi等配置不同,由不同的制造商开发。为了使所有这些硬件都能正常工作,我猜内核应该有硬件特定的代码来启用这些硬件。我相信内核有设备驱动程序层,它应该启用这些硬件吗?或者它只是从其他地方加载特定于设备的固件?内核中硬件特定代码的确切位置?此外,在清除我的疑问时,我遇到了 HAL、BSP。这些是什么以及这些层在内核中的位置?
如何手动创建 Linux 内核模块依赖项?
例如,在某个时间点,模块 vboxdrv 会自动加载。但是,当发生这种情况时,我也想自动加载模块 vfat (仅作为示例)。
因此,如何创建依赖关系,当模块 1 加载时,它会触发模块 2 的自动加载?
我不需要在启动时使用 initramfs 加载模块,我只是想要 - 这么说 - 这种依赖关系,当 1 被加载时,2 也会被加载。你知道我的意思 ;-)
谢谢
根据我的理解,BIOS 1) 初始化硬件和 2) 跳转到一个位置并将引导加载程序加载到 RAM 中。当 BIOS 初始化硬件时,它必须运行一些例程(即设置适当的寄存器位、延迟等...)。我要问的问题是这些 BIOS 例程是否是:
BIOS 例程是由 Linux Kernel 调用还是 Linux Kernel 驱动程序重新实现了必要的例程?
BIOS 也是用汇编编写的还是某种硬件定义的语言?
kernel ×10
linux ×6
bios ×1
boot ×1
c ×1
compiler ×1
compiling ×1
debian ×1
drivers ×1
firmware ×1
interpreter ×1
linux-kernel ×1
process ×1
remote ×1
scheme ×1
strace ×1
system-calls ×1
unmounting ×1
wifi ×1