如何测试旧的 linux 内核?

How to test old linux kernel?

我们可以通过 'yum update kernel-xxxx'

更改 OS 内核,例如:CentOS

但是,我认为我们不能将内核降级到旧版本。

目的是测试旧内核(例如:0.11、0.96、2.0 ....等)

没有 OS 捆绑包(例如:CentOS),有什么方法可以测试它吗? (特别是我想用 VirtualBox 测试它)

我不确定这是否能 100% 回答您的问题,但我会试一试。
您可以在此处 download/clone linux 内核的旧版本 kernel.org.
The oldest version is 2.6.11 (as far as I found). I hope this meets your expectations.
This source/tarbal needs to be build and installed Tutorial
请小心,很多事情都可能出错,并且可能需要一些时间才能按照您想要的方式进行。我从未在 VM 中尝试过这些步骤,所以我不确定这是否可行。

---编辑---

您可以在存档中找到更旧的内核版本,这里是 link 到 2.4.x Archiv

真正的旧版本仍然可以从 Funet 中找到。例如:

http://ftp.funet.fi/pub/linux/kernel/Historic/old-versions/

我在那天从软盘上安装了 0.95a,但在四分之一个多世纪后无法记住所有细节。重点是:你不需要分发,那些分发要晚得多。而且我敢肯定,最近的发行版不会 运行 使用那些旧内核和 glibcs.

您应该从 bootimage/rootimage 创建一张可启动软盘(或您的 VM 的映像)。无需预编译。我想你会得到 shell 而不是更多,所有你必须单独安装的 GNU 东西。

comp.os.linux usenet 存档中搜索 Linux 常见问题 每月帖子:

https://groups.google.com/forum/#!msg/comp.os.linux/ZbiUmhnkjIY/y_OADLVPxooJ

颠簸。在今晚寻找可用的最旧 sysvinit 的过程中,我有 运行 几个文件(趁热镜像!): https://mirror.math.princeton.edu/pub/oldlinux/Linux.old/bin/tools-old/ notably init.c and sysvinit-2.0. (use mkdir before unpacking.) such versions appear in the release notes for linux-0.95 and the changelog 用于 sysvinit。你需要一个 extra-old gcc 来编译它们。完成后,使用 old-style ext2 分区,并放置在发行说明中的​​ /bin/init 或 /etc/init 位置。确保你有 /dev/console 和 /dev/tty* ;对于早期的内核,文件 init/init.c 执行此功能。如果你想让我自己试试这个,请告诉我。

几年前,我以稍微不同的方式解决了这个问题。我想使用 Windows 上的老式工具来交叉编译和测试旧的 Linux 内核。我的目标是使用不需要 Cygwin 或 WSL 的东西,而是使用 msys 和 MinGW。这个项目的结果在 source forge:

https://sourceforge.net/projects/linux011/

来自我自己的简介: 虽然我可能从 Linux 0.11 开始,但我已经将其扩展到包括 Linux 内核的几个旧版本,您可以从 Windows 和 运行 交叉编译Qemu。我已经设法在 Windows 上获得了旧版本的软件工具 运行ning,因此除了损坏的驱动程序或修改 makefile 以查找内容外,没有重大的侵入性源更改新路径,并在需要时调用适当的工具。

Linux 0.10 是第一个有点可用的 Linux 最古老的版本。虽然它缺少 TCP/IP 之类的东西和强大的文件系统,但它确实提供了一个小的内核大小,非常适合玩弄。您可以轻松地在 Windows、re-compile 上进行更改,并在 'normal' 桌面上测试所有内容。

特点 海湾合作委员会 1.40 海湾合作委员会 2.3.3 海湾合作委员会 2.5.8 二进制实用程序 1.9 汽油 1.38 野牛 1.16

因此,从 windows 开始,以下交叉编译器可以构建工作内核,它甚至包括带有脚本的 qemu 环境 运行 所有旧版本。

没有安装程序,只需解压并编辑“env.cmd”以反映安装目录。从那里你可以查看源代码树和 运行 make,它会从你那里构建内核。在 qemu 目录中有一个 cmd 文件,针对 运行 我设置的每个版本进行交叉编译。

当然,您可以在源代码上使用任何 windows 编辑器,这是我最初的目标,目的是将 Linux 内核开发带给临时 Windows 桌面用户。

工具的源代码也包括在内 我使用 GCC 5 和 msys/Mingw 来构建所有内容。我认为 GCC 7 可以工作,但已经有一段时间了。