【问题标题】:is it possible to write system level code in vala是否可以在 vala 中编写系统级代码
【发布时间】:2012-01-29 16:46:52
【问题描述】:

是否可以在 Vala 中编写系统级源代码。 像小型微内核操作系统一样吗? 还是在 Linux 内核中用于模块或设备驱动程序?

【问题讨论】:

    标签: operating-system driver kernel vala


    【解决方案1】:

    从技术上讲,是的,但实际上它可能不太实用。

    人们以前在 Vala 中编写过内核模块,但 AFAIK 并不严重。其实几年前有人写过Multiboot kernel using Vala

    您可以通过使用 posix 配置文件(通过 --profile posix)来绕过对 GLib 的依赖,但它往往有点错误并且不支持许多功能,包括很多使编程的东西在 Vala 是一次愉快的经历。

    【讨论】:

      【解决方案2】:

      我不这么认为。 Vala 绑定到 GObjectGlib gtype 类型系统(在 GTK 内部)——包括它的 reference count based memory management。 Linux 内核使用不同的(即使概念上相似)内存管理。在您的微内核操作系统中,您需要提供一个。

      【讨论】:

      • 一些更正。正如我在下面所说,您可以使用 posix 配置文件绕过 GLib(包括 GObject)。此外,Vala 可以在没有引用计数的情况下使用(存在许多非引用计数代码的绑定,包括 POSIX 和 Linux 内核的绑定)。此外,glib 不是“在 GTK 内部”... GTK+ 依赖于 GLib,并且它们的社区很接近,但 GLib(以及 GObject 和 GIO)与 GTK+ 无关。例如,Clutter 是一个基于 GLib/GObject 但不依赖于 GTK+ 的竞争 UI 工具包。
      • 这取决于你所说的 Gtk,对我来说它是分布在 gtk.org 上的一组软件(所以包含 libglib、libatk、libpango、libgtk...)
      【解决方案3】:

      对上述答案的一些更新:posix 配置文件已从 0.17.4 版的 vala 代码库中删除,因为它未被维护。 Here 是公告。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-04
        • 1970-01-01
        • 2014-01-21
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多