当我lspci -k使用 3.2.0-29-generic 内核在我的 Kubuntu 上做一个时,我可以看到这样的东西:
01:00.0 VGA compatible controller: NVIDIA Corporation G86 [Quadro NVS 290] (rev a1)
Subsystem: NVIDIA Corporation Device 0492
Kernel driver in use: nvidia
Kernel modules: nvidia_current, nouveau, nvidiafb
Run Code Online (Sandbox Code Playgroud)
有一个内核驱动程序nvidia和内核模块nvidia_current,nouveau,nvidiafb。
现在我想知道内核驱动程序和内核模块之间可能有什么区别?
我知道如果我想编译我自己的 Linux 内核,我需要 Linux 内核头文件,但它们到底有什么用?
我发现下面/usr/src/似乎有几十个 C 头文件。但是它们的目的是什么,它们不是直接包含在内核源代码中吗?
我试图强制新创建的用户在第一次使用 ssh 登录时更改密码。出于安全原因,我想给他一个安全密码,直到他第一次登录。到目前为止,我做了以下工作:
useradd -s /bin/bash -m -d /home/foo foo
passwd foo
Run Code Online (Sandbox Code Playgroud)
这样做chage -d 0 foo只会给我Your account has expired; please contact your system administratorssh 登录的错误。
当我设置我的 Debian 6 时,我想知道,除了我知道密码的 root 用户之外,还有哪些用户可以通过 SSH 登录我的系统?
当我安装 Apache 2 时,会创建一个名为 www-data 的用户。该用户是否有权通过 SSH 登录我的系统?但是,如果 www-data 有一些默认密码,每个人都可以登录,这对我来说似乎不太可能。
哪里有允许用户通过 SSH 登录我的系统的列表?在 ssh 配置文件中找不到任何内容。
可以禁用 Debian Linux 上的 IPv6 堆栈,尤其是 Wheezy 吗?如果是这样,我怎么知道它是否在系统上被禁用?
我只是想知道为什么要kill -9 0结束我的 tty 控制台会话?
PID 0 到底是什么,它没有列在ps aux?
根据lsmod命令的手册页显示“当前加载了哪些内核模块”。
我编写了一个脚本,用于modinfo显示实际使用的内核对象 (.ko) 文件:
#!/bin/sh
for i in `lsmod | awk '{print $1}' | sed -n '1!p'`; do
echo "###############################$i###############################"
echo ""
modinfo $i
echo ""
echo ""
done
Run Code Online (Sandbox Code Playgroud)
现在我发现modinfo nvidia显示以下输出:
ERROR: modinfo: could not find module nvidia
大家对此有什么解释吗?
我正在寻找 GRUB2 最终跳转到内核代码并因此在 x86 系统上移交执行的代码行?我猜它在一个汇编程序文件中,因为这是非常低架构的东西。我查看了源文件,在boot.S 的第 455 行/grub-core/boot/i386/pc/*.S找到了一个JMP,但可能是内存中 GRUB2 内核的地址,而不是 linux 内核。kernel_address
任何具有汇编和 GRUB2 知识的人都可以帮助我吗?
当我在 Linux Box 上时,我使用 bash 作为 shell。现在我想知道 bash 如何处理 ELF 文件的执行,即当我输入 ./program 并且 program 是一个 ELF 文件时。我搜索了 bash-4.3.tar.gz,似乎没有某种幻数解析器来确定文件是否为 ELF,也没有找到 exec() 系统调用。
整个进程如何运作?bash 如何将 ELF 的执行传递给操作系统?
我正在寻找一种无需 initramfs 即可启动现有 linux 内核的方法。根据此链接,只需编辑/boot/grub2/grub.cfg. 但是如果我尝试这个配置
menuentry 'Fedora Linux, no initramfs' {
set root='hd0,msdos1'
linux /vmlinuz-3.3.4-5.fc17.i686.PAE rootfstype=ext4 root=/dev/sda2 rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=True KEYTABLE=us rd.luks=0 LANG=en_US.UTF-8
}
Run Code Online (Sandbox Code Playgroud)
引导过程在内核尝试挂载 initramfs 时因内核崩溃而停止。我是否必须在编译过程中告诉我不需要 initramfs?我发现的唯一配置选项CONFIG_INITRAMFS_SOURCE是已经设置为CONFIG_INITRAMFS_SOURCE="".
我知道有一个类似的问题,但它缺乏如何在实践中做到这一点的解释。