linux - 使用 Linux Kernel 会支持当前的程序吗?

标签 linux linux-kernel kernel

<分区>

Linux 有很多发行版。然而,它们都有一个共同点:内核。 Linux 程序运行在所有这些平台上。如果我从内核制作一个简约的发行版,当前为 Linux 制作的程序会运行吗?什么定义了分布的差异?我是这方面的初学者,如果这是一个愚蠢的问题,请不要苛刻。谢谢

最佳答案

是的,有警告。

你需要确保你有完整的 C 支持,我的意思是像 glibc 这样的东西已安装或可安装,否则你不能为你的最小安装构建程序。如果您可以在 Linux 上安装和编译 C 程序,那么您实际上可以从头开始构建几乎所有其他东西。

如果您希望能够下载二进制文件并运行它们,这是不同的,二进制文件可能需要它们在构建它们的系统上拥有的共享库。除非您拥有这些库,否则您无法运行您在网上找到的现有二进制文件。

What defines the differences of distributions?

每个分布中都有很多决定性因素。如果我们忽视诸如...

  1. 许可,即 Redhat 与 Debian
  2. 对 GPL/BSD/NonFree 的立场
  3. Debian 与 Ubuntu 的发布时间表
  4. 目标受众,即 Ubuntu 与 Debian

我认为最大的决定性因素是包管理,即 yum/rpm 与 apt/dpkg 以及如何在机器上管理基本配置。这当然是我在更改发行版时使用最多和最想念的东西。内核本身很少出现在我的脑海中,这在一定程度上是它成功的很大一部分。

大多数人从 ISO Linux 之类的东西开始,然后得到一张可引导 CD,但即便如此,您通常也会选择基本发行版。如果您想创建一个基础发行版,那将是一项繁重的工作。看看这个 Linux 家族树的重要信息图

https://en.wikipedia.org/wiki/List_of_Linux_distributions#/media/File:Linux_Distribution_Timeline.svg

如果您查看 Debian/Ubuntu,这些发行版设置的基础设施数量相当惊人。他们有数百万甚至数十亿行代码,所有代码都设计为在他们支持的版本上运行。您也许可以从其中一个获取二进制文件并在 Redhat 上运行它,但除非行星对齐等,否则它可能会失败。有些人认为这实际上是一件坏事

https://en.wikipedia.org/wiki/Ingo_Moln%C3%A1r#Quotes

The basic failure of the free Linux desktop is that it's, perversely, not free enough...

Desktop Linux distributions are trying to "own" 20 thousand
application packages consisting of over a billion lines of code and have created parallel, mostly closed ecosystems around them... The Linux package management method system works reasonably well in the enterprise (which is a hierarchical, centrally planned organization in most cases), but desktop Linux on the other hand stopped scaling 10 years ago, at the 1000 packages limit...

关于linux - 使用 Linux Kernel 会支持当前的程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36659277/

相关文章:

c - 从内核空间写入文件

linux - 我们如何使用命令在 linux redhat 中安装和卸载 gcc?

ruby -/proc目录脚本

linux - 符号链接(symbolic link)将 java 安装到/usr/java/latest

linux - ioremap 是否需要 future 的页面错误

c - Linux 内核 3.16 上的 Moxa RealTTY 模块编译错误

python - IPython 控制台卡在 "Connecting to kernel..."(Spyder v3.2.6、Py 3.6、Windows 10、64x)

linux设备驱动文件操作: it is possible to have race conditions?

linux - net/socket.c 中带有 Printk 的 Tizen 内核镜像无法启动

linux-kernel - 用户空间进程上的Linux内核模块信号被杀死