我一直在像 uCOS、ThreadX 这样的嵌入式操作系统中工作。虽然我已经在 Linux 中编写了应用程序,但现在我打算开始学习 Linux 内核。我有几个关于环境的问题。
哪个是最好的发行版,哪个具有易于使用的内核开发工具?(到目前为止,我已经使用过 RHEL 和 Fedora。虽然我对这些很满意,但看起来 Ubuntu 也有内置脚本可以轻松编译内核,例如make_kpkg等)
你能描述内核调试的最佳设置吗?在调试其他嵌入式操作系统时,我使用了串口转储进度、JTAG 等。Linux 内核开发人员使用哪种设置?(我的带串口的测试台 PC 是否足以满足我的需要?如果是,如何配置内核以转储到串口?)我打算将内核消息重定向到串行控制台,该控制台将在我的笔记本电脑中读取。
什么工具最适合调试和跟踪内核代码?如前所述,串行控制台是唯一的方法吗?或者是否存在用于 PC 的任何 IDE/JTAG 类型的接口?
我在 VirtualBox 中使用 Linux 作为来宾操作系统。我从其文件系统中删除了大量文件。现在我想缩小文件系统映像文件 (vdi)。收缩通过压缩文件系统映像在磁盘中具有“空”值的任何位置进行。
似乎一个名为zerofree的应用程序可以将“null”写入文件系统的空闲空间,使其变得稀疏。但是说明说它只适用于 ext2/ext3。我的来宾操作系统上有 ext4。
为什么它不能在 ext 4 上工作(引用的原因是“范围”,但有人可以更清楚地了解它吗)?
如果我将ext 4安装为ext 3然后重新安装为ext 4,它会起作用吗?
任何其他可以在 ext 上做与 zerofree 类似的事情的工具?
是否可以在没有 initrd.img 的情况下启动 linux?我计划将默认驱动程序添加为内核本身的一部分,并完全避免使用 initrd。
哪些模块应该成为内核的一部分而不是可加载模块?
我正在尝试使用rsync将文件夹的内容复制到另一个文件夹。这是我为此使用的命令。
rsync -v -r $folder64/Pictures/* $folder65/Pictures/
Run Code Online (Sandbox Code Playgroud)
这是错误代码。
building file list ... rsync: link_stat "/Volumes/HD/Users/jol/Pictures/*" failed: No such file or directory (2)
done
Run Code Online (Sandbox Code Playgroud)
我在很多包含项目的文件夹中得到了这个。有时,例如,如果我只是在桌面上创建一些东西。
kernel ×2
linux ×2
boot ×1
debugging ×1
development ×1
ext4 ×1
initrd ×1
osx ×1
rsync ×1
sparse-files ×1
virtualbox ×1
wildcards ×1