可以使用Vala编写系统级代码吗?

3

在Vala中编写系统级源代码是否可行? 例如用于小型微内核操作系统? 或者用于在Linux内核中编写模块或设备驱动程序?

3个回答

5
从技术上讲,是可以的,但实际上可能不太实用。
以前有人用Vala编写过内核模块,但据我所知没有什么真正严肃的东西。实际上,几年前有人使用Vala编写了一个使用Vala的Multiboot内核
您可以通过使用posix配置文件(传递--profile posix)来避免对GLib的依赖性,但它往往会有一些错误,并且不支持许多功能,包括使在Vala中编程成为愉快体验的很多东西。

3
我不这么认为。ValaGObjectGlib gtype 类型系统(在 GTK 中)相关联,包括其 基于引用计数的内存管理。Linux 内核使用不同的(即使概念上类似的)内存管理。在您的微内核操作系统中,您需要提供一个。

1
一些更正。如我下面所述,您可以通过使用posix配置文件来规避GLib(包括GObject)。此外,Vala可以在没有引用计数的情况下使用(存在许多非引用计数代码的绑定,包括POSIX和Linux内核的绑定)。此外,GLib并不是“在GTK+内部”... GTK+依赖于GLib,它们的社区紧密相连,但GLib(以及GObject和GIO)并不与GTK+捆绑在一起。例如,Clutter是一种基于GLib/GObject的竞争UI工具包,但不依赖于GTK+。 - nemequ
这取决于你如何称呼Gtk,对我来说它是在gtk.org上分发的软件集合(因此包含libglib、libatk、libpango、libgtk等)。 - Basile Starynkevitch

1

以上回答的一些更新:posix配置文件已在vala代码库中删除,版本为0.17.4,因为它未得到维护。这里是公告。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接