BSD 内核对比 Linux内核?

r00*_*004 24 linux kernel bsd kernel-modules linux-kernel

我想从技术角度了解;BSD Kernel和之间有什么区别Linux Kernel
在 Linux 中,我们可以下载源内核然后patchmakemake modules它。即使我们有多种工具来编辑内核,config例如menuconfig,xconfig和 ... 。
但是我在 BSD 上找不到这么广阔的领域。首先,我可以下载BSD kernel吗?我怎么能配置呢?和 ...

所以我要问的是:(不涉及祖先和词源)

  • Kernel在每种情况下(在)依赖于分布的?
  • 配置Kernel适用于工作的每个和工具的方法?
  • 在每种情况下是否可以完成任何补丁工作?
  • kernel分布范围之外的可用性?( Kernel Sources)?
  • Kernels每种情况下可用的风味( X??BSD/ Linux) 喜欢XEN/Vmware/GEN吗?

der*_*ert 19

嗯,首先,你说 BSD 就好像它们只是一个一样。从技术上讲,我想,它们都源自原始版本——上一次发布是在 1995 年。搜索“4.4-Lite2”会找到多个副本,您可以在维基百科的Berkeley Software Distribution 文章中找到有关它的更多信息。

从它派生出来的是——其中包括*—— FreeBSD、OpenBSD 和 NetBSD。这三个都是开源的,你可以得到它们的源代码。现在说 BSD 的人可能指的是其中之一。

如果你想快速浏览它们,有一个FreeBSD 和 Linux Kernel Cross-Reference。该站点还有其他几个类 Unix 内核。

然而,与作为独立内核项目存在的 Linux 不同,BSD 内核通常是更大项目的一部分——它们不独立于发行版。例如,FreeBSD 内核是 FreeBSD 项目的一部分,并且与发行版的其余部分在同一个 subversion 存储库中维护。

有一些地方使用内核而没有用户空间的其余部分,例如,在Debian 的 kFreeBSD 端口中


*:原始 BSD 的部分内容确实走得很远。例如,您会在各处看到有关软件部分版权为加州大学董事会的注释。其中很多是BSD。例如,如果您阅读 Windows 附带的多页通知,它就在那里。

  • 你的意思是每个`BSD` 发行版都有它自己的`内核`,而不是所有具有相同的`Linux` 发行版吗? (3认同)
  • @r004 是的,每个都有自己的内核。 (2认同)

Ouk*_*uki 10

这是 FreeBSD 特有的,但 NetBSD 的方法和组织是相同的:这涵盖了两个主要的免费 BSD 系统。

获取(整个系统的)源代码非常简单,因为您可以在标准安装期间安装所需的一切(请参阅FreeBSD 安装): 在此处输入图片说明

您还可以通过 git获取整个系统源代码(FreeBSD 内核于 2020 年 12 月移至 git)。

然后复制/编辑内核配置文件

cd /usr/src/sys/<your_arch>/conf
cp GENERIC MYKERNEL
Run Code Online (Sandbox Code Playgroud)

不幸的是,没有像menuconfigor这样的花哨的工具xconfig,但是配置很短而且很容易阅读/修改

vi MYKERNEL
Run Code Online (Sandbox Code Playgroud)

最后,您可以制作并安装您的自定义内核:

make buildkernel KERNCONF=MYKERNEL
make installkernel KERNCONF=MYKERNEL
Run Code Online (Sandbox Code Playgroud)

更多信息: