这是关于常见的做法。我有一个包含 linux 内核的 git 存储库。现在我想构建这个 linux 内核。我应该复制 git 存储库外的源代码,然后构建内核吗?或者,我应该在 git 存储库本身内部运行构建吗?我担心在构建过程中创建的许多文件,我认为不应该包含在 git 存储库中。
我是一名程序员,我研究了软件、硬件和假突袭,但我无法理解假突袭如何与操作系统 (Linux) 通信?我的意思是这涉及哪个软件层或驱动程序?
我正在尝试在 Fedora 21 上安装 VMware。我已经安装了内核头文件:
sudo yum install kernel-headers-`uname -r`
Run Code Online (Sandbox Code Playgroud)
我收到以下消息:
Package kernel-headers-3.18.5-201.fc21.x86_64 already installed
Run Code Online (Sandbox Code Playgroud)
但是,没有任何内容/usr/src/kernels:
$ ls /usr/src
$ debug kernels
$ ls /usr/src/kernels/
$
Run Code Online (Sandbox Code Playgroud)
我想有些东西已经改变了,我找错了地方。
Fedora 21 中的内核头文件在哪里?
我可以理解 的输出strace route -n,但route真的读取任何文件/proc来获取路由表吗?此外,如果路由和 IP 地址存储在 下/proc,为什么不strace显示正在访问的文件?
root@xxxx:/etc/postfix# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.21.58.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0
0.0.0.0 10.21.58.1 0.0.0.0 UG 100 0 0 eth0
Run Code Online (Sandbox Code Playgroud)
编辑,经过更多研究:
似乎route 确实读取了/proc:下的文件,特别是/proc/net/route. 那么,路由信息是如何到达那里的呢?
有什么方法可以让我在终端中看到所有系统资源的使用情况,就像我们在 windows 平台下看到的那样Resource Monitor。我可以分别查看 Linux 下的每个资源使用情况,但我需要并行显示所有资源,以便我可以比较每个进程的使用情况。
大家好,我是 linux 内核编译的新手,所以我有一些问题:通过编译 linux 内核,我们是否构建了一个完全独立的操作系统,它不依赖于任何 linux 发行版?
如果是的话......好吧,当我想使用 initramfs 命令创建 initrd 文件时,为什么要添加一些有关我正在运行的 linux 解构(我正在运行 Ubuntu 10.4)的信息?
我应该如何编译并将模块添加到我编译的 linux 中,我应该把它们放在哪里?
这是我一直在做的事情的总结:
1.获取内核源代码(3.4.1)并使用“make all”命令编译它(我使用我当前的linux .config)
在我的记忆棒上安装 grub
把编译好的 bzImage 放到记忆棒的 /boot 目录下
使用“initramfs”命令创建initrd文件并将其也放入/boot。
使用记忆棒启动我的电脑并进入 grub> 终端
使用 "root (hd0,0)" ; "内核/boot/bzImage"; “initrd /boot/initrd.img”,然后“boot”命令启动。
在出现错误后进入(initramfs)终端,指出找不到“/lib/modules/3.4.1/modules.dep”文件!!!
我究竟做错了什么 ?
几天来,我试图让 ZFS-on-Linux 在 Debian 7 上工作,但该模块不想编译:
# dpkg-reconfigure zfs-dkms
------------------------------
Deleting module version: 0.6.3
completely from the DKMS tree.
------------------------------
Done.
Loading new zfs-0.6.3 DKMS files...
Building only for 2.6.32-openvz-042stab090.5-amd64
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
Run Code Online (Sandbox Code Playgroud)
当然,安装了头文件和源代码:
# uname -r
2.6.32-openvz-042stab090.5-amd64
# dpkg -l | grep 2.6.32-openvz-042stab090.5-amd64
ii linux-headers-2.6.32-openvz-042stab090.5-amd64 1 amd64 Header files related to Linux kernel, specifically,
ii linux-image-2.6.32-openvz-042stab090.5-amd64 1 amd64 Linux kernel …Run Code Online (Sandbox Code Playgroud) 为什么 Linux 启动顺序是这样组织的?
开机 + BIOS 运行硬件初始化和自检、LILO/GRUB 等......但为什么它是这样组织的?
我说它主要用于调试目的是否正确?
我的设备的内核包含许多其他设备和情况的文件,我的设备无法使用。内核携带所有文件,并且比我的设备文件大得多。
这是什么原因?为什么不删除不必要的文件并使用更小的内核?
我必须在 Arch Linux 安装(在 Virtualbox 中)上设置网络连接,我需要知道我正在使用哪些网络接口。我如何在不使用的情况下做到这一点ifconfig?
我是 Ubuntu 的新手。我想向我添加一些变量PATH- 我正在使用以下步骤:
打开终端窗口。
键入以下命令:
export GOROOT=/home/linux/go/hg
export GOOS=linux
export GOARCH=386
export GOBIN=/home/linux/go/bin
export PATH=$PATH:$GOBIN
Run Code Online (Sandbox Code Playgroud)当我在终端窗口中键入以下命令时:
env | grep '^GO'
Run Code Online (Sandbox Code Playgroud)
表明:
GOBIN=/home/linux/go/bin/
GOARCH=386
GOROOT=/home/linux/go/hg
GOOS=linux
Run Code Online (Sandbox Code Playgroud)
我在终端窗口中尝试了以下命令:
gedit ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
并在文件末尾粘贴以下几行:
GOROOT=/home/linux/go/hg
GOOS=linux
GOARCH=386
GOBIN=/home/linux/go/bin
Run Code Online (Sandbox Code Playgroud)
问题是env没有在PATH. 也许我使用错误的命令来存储路径,或者将我的路径变量存储在错误的文件中?
有人可以指导我将上述变量PATH永久存储在何处以及如何存储吗?
我正在linux下用sfdisk创建一个分区。创建分区后,我想创建一个文件系统。
这会因 mkfs.ext3 找不到分区而失败:
echo ",,L" | sfdisk $DEVICE
mkfs.ext3 $PARTITION
Run Code Online (Sandbox Code Playgroud)
但这有效:
echo ",,L" | sfdisk $DEVICE
sleep 1
mkfs.ext3 $PARTITION
Run Code Online (Sandbox Code Playgroud)
我怀疑,在 udev 有机会创建设备节点之前,内核需要一些时间来更新它的内部数据结构,或者我的脚本再次被调度。
如何准确等待设备节点创建完成?对于每个恒定时间,可能有一个系统处于负载状态,而这个时间不够用。