GNU Hurd是什么?

GNU Hurd是GNU项目对Unix内核的替代。它是在Mach微内核上运行的服务器的集合实现文件系统、网络协议、文件访问控制和由Unix内核或类似内核实现的其他功能内核(如Linux)。更详细的信息.

GNU Hurd项目的任务是什么?

我们的任务是创建一个适用于对于日常使用可行的GNU操作系统,并为用户和程序提供对其计算环境。我们的任务解释了.

下载最新的稳定版本在这里浏览Git存储库.



新闻

你好!欢迎来到新的qoth。这个qoth涵盖了新的有趣的GNU/Hurd2024年第一季度的发展!细节。

Etienne Brateau修改了要使用的控制台-客户端xkbcommon而不是xkb的x11扩展支持,这大大提高了键盘布局覆盖率!

弗拉维奥·克鲁兹也参与了将GDB移植到64位赫德,已实现setcontext/getcontext/makecontext/swapcontex()在里面格利布、和实现的子进程资源会计.后者实现获取RUSAGE(RUSAGE_CHILDREN,)并填充与儿童相关的中的数据时间().

他修复了perl测试套件赫德和他还发布了RFC以增强跟踪公用事业,他用它将RPC格式移植到64位。

Flavio也有一些修复在这里,在这里,在这里,在这里、和在这里.

Damien Zammit进行了一些修复,包括用APIC固定控制台启用,配线GNU Mach以支持ACPI第2版,固定com上的波特率端口,将Hurd移植到AMDCPU(WIP),添加HPET(高精度计时器)还致力于制作ext2fs(外部2fs) 默认情况下使用xattr存储翻译人员.

Damien还致力于更多SMP修复在这里,在这里,在这里,在这里,在这里、和在这里. 赫德目前在BSP上以SMP模式引导。Damien编写了一个测试程序,可以运行一个AP上的任务.

谢尔盖·布加耶夫修补的binutils支持GNU/Hurd onA拱64、和他写了一些补丁让赫德更容易移植在这里,在这里、和在这里,

谢尔盖还发布了一个相当大的他的AArch64的RFC补丁系列港口写入:

MIG似乎很有效(多亏了弗拉维奥的所有努力!)。我正在使用与x86_64上的消息ABI相同,到目前为止还没有发现任何问题-编译器错误/失败的静态断言(关于结构大小等等)以及由于未对准的访问而导致的硬件错误。

他还提到“硬件加固功能(BTI、MTE、PAC)包括目前“没有得到真正的支持”,但我想在未来支持他们。"塞缪尔合并许多的 属于 这个 补丁.

在谢尔盖后来的glibc补丁系列中,他写道AArch64端口进步写的:

上次,GNU Mach没有AArch64端口,因此唯一的测试我在Linux上运行了一个简单的静态链接可执行文件然而,GDB帮助我发现并解决了一些问题。然而,从那以后,我一直(有人可能会说,是坚持不懈地)致力于填补缺失的部分,即移植GNU Mach(在重要帮助下&Luca D.)的贡献。我很高兴地报告,我们现在有一个GNU Mach的实验端口,构建并在AArch64上工作!尽管如此听起来令人印象深刻,请注意关于它的各种事情都是非常基本的,证明是概念状态,而不是认真生产;还有Mach是一个小内核(实际上是一个微内核),它是根据一开始(早在80年代)是可移植的,所以大多数“业务逻辑”功能(虚拟内存、IPC、任务/线程/调度程序)是显式的建筑独立性。尽管存在可怕的“WIP证明概念”状态,但已经足够了Mach中运行用户代码、处理异常和系统调用,与MMU交互以实现所有预期的虚拟内存语义、调度/切换任务和线程等。此外,所有GNU Mach的用户空间自检都通过了!这意味着有足够的东西让我试着跑步它上的glibc,令人惊讶的是我的简单测试可执行文件我之前在Linux上用GDB测试过的同一个,只是在实际中工作过Mach,而无需对glibc进行任何其他更改side,甚至重新编译它。但我并没有就此止步,我得到了几个赫德核心服务器工作!即,这些是ext2fs、exec、startup、auth和proc服务器。除ext2fs外,它们都是动态链接的;ld个aarch64.so.1成功地定位并映射程序本身及其所需的依赖关系,以及代码和数据中的Mach页面从ext2fs访问页面时,对程序,正如人们所期望的那样。

请务必阅读他的公告电子邮件.

谢尔盖还宣布基于Hurd的新Alpine发行版(它)当前没有名称)。他的目标是增加另一个赫德发行版,这将迫使赫德使用不同的软件,并有望修复更多漏洞。Alpine Linux通常也运行最新的软件,所以这个新的Hurd分发对象将是那些喜欢生活在流血边缘的人。他写道:

我已经移植了许多Alpine包来用(目前是i386)GNU构建Mach、Hurd和glibc取代了Linux和musl。如果您想要具体数量:截至昨天,我有299个可安装包;这个当然,源包的数量要比这个数量少几倍。不过,这包括curl、ncurses、nano、native binutils等&gcc&mig、libffi、openrc、openssl、util-linux、busybox、apk-tools、,…当然还有gnumach、hurd(具有libdaemon、,分开,…),和glibc。重要的是,所有这些干净的引导使用他们提供的脚本/bootstrap.sh脚本;这也是有点像Flávio的脚本,但它使用了真正完整的Alpine例如GCC的包定义(由我为glibc/Hurd修补支架)。在内核和libc之上,情况仍与上游一样Alpine:系统启动(将启动-我还没有尝试过)busyboxinit&OpenRC,并使用busybox作为其基本用户区。GNU(全球导航单元)Bash等软件也可以安装。

这个新的Hurd发行版目前没有邮件列表、irc室或网站。如果你感兴趣为了帮助Sergei进一步开发它,请发送电子邮件bug-hurd@gnu.org。

卢卡·达里兹补充道用户空间测验,其中与qemu合作。我们目前在GNU/Linux主机上测试qemu中的Hurd。他还描述了如何他目前使用64位赫德.如果你想试试64位的赫德,也许你应该遵循这个建议在qemu。

Manolo de Medici制作了一个WIP补丁系列模拟器赫德.

我组织了一个迟到的GNU/Hurd圣诞派对。我们有6或7个与会者,这真是太棒了!我无法记录事件,所以也许我们应该试着在第二季度末再见面。如果你愿意想帮我计划/组织/参加这样的聚会,请发邮件给我bug-hurd@gnu.org。

如果你想测试你最喜欢的软件包对Hurd和有助于使整个GNU系统可用于更广泛的范围请告诉我有多少人检查贡献页面.


这个GNU赫德是GNU项目对Unix内核的替代。它是一个在Mach微内核上运行以实现文件的服务器集合系统、网络协议、文件访问控制和其他功能由Unix内核或类似内核(如Linux)实现。更多详细的.

GNU马赫数是GNU Hurd系统所基于的微内核。提供了一种进程间通信(IPC)机制,Hurd使用该机制定义以分布式多服务器方式实现的接口传统操作系统内核提供的服务。更多详细的.

你好!欢迎使用新的qoth。这个qoth涵盖了新的有趣的GNU/Hurd2023年第4季度的发展!详细信息。

Samuel Thibault修复了gcc的Hurd默认馅饼添加了静态饼图支持.他还添加了一个什么命令到GNU Mach的内核调试器,它可以确定地址指向(堆栈?端口?一些卡洛克?…)。他还补充道hurd-amd64支持通用控制中心.

塞缪尔要求赫德团队建立一个连续的集成,因此,当开发人员更改代码时,他们可以确定他们没有打碎任何东西。事实证明赫德支持几种不同的环境:32位、64位、32-on-64位、ACPI、,非ACPI、SMP、非SMP、Xen等。显然Flavio有个人的CI公司,但它是以Debian独立的方式设置的。如果你对帮助赫德项目建立CI,然后请联系!

Luca Dariz致力于添加一些简单的GNU Mach用户空间测试.有了工作正常的MiG,GNU/Linux机器可以在GNU中运行makecheckMach源代码,它将启动qemu以确保32位(PAE和非PAE),32在64位,完全64位GNU Mach工作。我们目前在GNU/Linux上进行此测试,因为qemu不在赫德。

许多人在赫德的新产品上工作x86_64位支持.设置了64位debian构建,我们可以引导chroot!这个还建立了hurd-amd64想要建造的基础设施。我们有在64位赫德(Samuel)的基础上可靠构建软件包揭开并修复程序泄漏.

弗拉维奥·克鲁兹改进的GNU马赫数工控机通过重新排序机器名称类型字段以字节对齐消息名称消息_大小。他还创建了补丁系列以回避消息调整大小x86_64码.他还删除了非类型的mach RPC代码.GNU Mach使用类型化IPC。Hurd可以支持类型化和非类型化,但赫德似乎只使用类型化RPC。所以它似乎最好删除任何非类型化的RPC代码。

谢尔盖·布加耶夫补充道GNU马赫进入再销售支持.本质上,Mach并不总是能够合并以下两个vm条目彼此紧挨着,这使ext2、bash等速度减慢。谢尔盖允许GNU Mach在常见情况下合并条目,这在很大程度上例如,帮助ext2fs。

谢尔盖也在研究移植瓢虫网站浏览器给赫德。本文作者使用网络冲浪网站浏览器对赫德的影响像维基百科这样的简单网站,但它严重影响了javascript的使用网站,这使得许多网站无法使用。如果谢尔盖是移植成功瓢虫然后是赫德用户可以开始使用Github这样的网站!值得注意的是有人应该更新Firefox浏览器港口作为好。

谢尔盖也开始了将赫德转移到AArch64!虽然端口到RISC-V可能更令人兴奋,但值得一提的是AArch64更成熟。有趣的是谢尔盖已经能够为AArch64构建Hurd服务器了!正常情况下,按顺序要运行二进制文件,可以将GNU Mach移植到AArch64。幸运的是我们,他求助于GDB,直接运行了一个“Hello World”Hurd AArch64Linux上的二进制文件!这有助于他在路上修复一些错误。我们仍然需要定义ABI并完成GNU Mach端口,但是是令人兴奋的消息!

Tobias Platen启动将GNU Mach移植到电源9.

所以如果你想测试你最喜欢的软件包对Hurd和有助于使整个GNU系统可用于更广泛的范围请告诉我有多少人检查贡献页面.


这个GNU赫德是GNU项目对Unix内核的替代。它是一个在Mach微内核上运行以实现文件的服务器集合系统、网络协议、文件访问控制和其他功能由Unix内核或类似内核(如Linux)实现。更多详细的.

GNU马赫数是GNU Hurd系统所基于的微内核。提供了一种进程间通信(IPC)机制,Hurd使用该机制定义以分布式多服务器方式实现的接口传统操作系统内核提供的服务。更多详细的.

你好!欢迎来到新的qoth。这个qoth涵盖了新的有趣的GNU/Hurd2023年第三季度的发展!细节。

Joan Lledo修改了PCI仲裁程序以防止映射I/O区域文件夹。他之前发送了一些补丁来实现映射区域和ROM文件使用mmap()然而酒吧区域可以表示内存或I/O空间,并且应该只允许内存映射。自I/O以来钢筋只包含I/O地址,他继续阻止I/O区域的映射文件夹. The下一步是通过pci-arbiter公司。他计划添加一个新的RPC来检查权限和电话i386_io_perm_create()。然后返回结果端口。

我们的谷歌代码暑期学生Vedant Tewari决定移植rust,防锈移植工作正在取得良好进展。构建过程有点复杂摇摇晃晃的,Debian使用的是旧版本的rust。结账生锈的拉力请求这就增加了赫德支持!

塞缪尔致力于设置PAE公司,这最终将使我们在32位上使用超过4GB的RAM赫德!它对X86_64体系结构也很有用。他还修复了果冻生成。

塞缪尔本季度的工作效率令人难以置信X86_64型一点端口更加稳定。他修好了64位数的赫德PIE公司建造,他得到了吉特工作在64位端口上!虽然有一些吉特测验都失败了X86_64个和32位端口。他修复了格利布建造,其中包括修复pmap_删除pmap_保护.他发现那个堆芯倾倒目前正在造成问题在64位端口上,他暂时鼓励人们禁用堆芯倾倒。Samuel修复了一些网络问题和adpkg(千磅/千克)问题对于64位端口。很难发现问题所在,因为调试工具还没有移植到64位端口。他为锁定添加了一些帮助程序来修复一些错误,他鼓励其他人开发人员帮助他修复X86-64的调试工具。看起来大多数开发人员目前正在运行64位的Hurd虚拟机而不是实际硬件。

Luca Dariz合并了补丁系列对于 这个 64 一点 港口.

Sergey已实施地图_ EXCL并提供地图_固定_替代位置映射_ RYFIXED作为的别名(MAP_FIXED|MAP_EXCL)以及其他甲基丙烯酸甲酯工作。他解释道:

地图_固定定义为以静默方式替换位于的任何现有映射正在映射的地址范围。然而,这是危险的,而且只有很少想要的行为。

各种Unix系统为地图_固定.

  • SerenityOS和Linux提供地图_固定_替代位置。如果地址空间已经包含请求范围内的映射,Linux返回EEXIST公司.SerenityOS返回埃诺姆,但这是一个错误,因为地图_固定_替代位置实现旨在与Linux。

  • DragonFly BSD、NetBSD和OpenBSD提供映射_ RYFIXED,但有不同的语义。DragonFly BSD返回ENOMEM公司如果要求范围已包含现有映射。NetBSD不返回错误,但如果请求的范围包含映射。OpenBSD的行为相同,但也注意,这是默认行为,即使没有映射_ RYFIXED(赫德的情况也是如此)。

由于赫德更靠近BSD一侧,因此补充道地图_ EXCL作为请求不替换现有行为的主API映射。声明地图_固定_替代位置映射_ RYFIXED作为的别名(MAP_FIXED|MAP_EXCL),所以任何现有的软件检查这些宏中的任何一个都会选中它们自动。为了与Linux兼容,请返回EEXIST公司如果映射已存在。

Damien Zammit通过光盘.尽管正如他解释的那样,它有一些问题:

Netdde在运行时出现错误ifdown/dev/eth0同时运行rumpusbdisk转换器,因为两个设备共享相同的IRQ。

Damien还负责赫德的SMP支持(他的大部分SMP贡献基于Almudena Garcia的早期工作):

  • 他扭动了一下GNU马赫数调度程序,他合并了 GNU马赫数 提交.

  • 他添加了一个全部显示运行GNU Mach内核调试器命令。

  • 他还GNU中改进的SMP马赫通过将struct处理器存储在percpu区域并避免昂贵的cpu_number(cpu编号)每次呼叫当前处理器(),以及从percpu区域中的偏移量获取cpunumber。进一步可以通过使用其他percpu区域进行改进。它未经测试在64位上。

  • Damien还教GNU Mach使用x86 CPUID指令获取这个中央处理器身份证件提高速度。他减少了获取CPUID所需的时间。他做到了速度快100倍!

  • 他提到一些 问题:60%的情况下,在启用SMP的情况下启动32位Hurd失败启动(有时明显卡在光盘中)。什么时候启动时,它不是特别稳定,很可能会崩溃。

基本上,SMP工作正在进行,但尚未做好准备生产使用。他最近的工作使非SMP更快Hurd,启用SMP且只有一个内核,看起来相对稳定(但速度较慢行李箱).这个支持32位SMP的Hurd可能很快就会与非SMP的速度一样快赫德.最终,启用SMP的赫德将比非SMP赫德更快。

弗拉维奥·克鲁兹将机器名称类型长度,从16到8字节。他还简化了整个64位RPCABI公司,删除中的“孔”机器名称类型机器名称类型长度,其中防止可能泄漏到用户空间。

一些赫德人与《b学院讨论将Linux的最新文件系统移植到Hurd;对话记录.虽然大多数赫德开发商认为可以移植给赫德队的教练们都同意,这将很难转移很难维护。目前没有Hurd开发商计划或正在将bcachef移植到Hurd。但也许你想这么做?

所以如果你想测试你最喜欢的软件包对Hurd和有助于使整个GNU系统可用于更广泛的范围请告诉我有多少人检查贡献页面.


这个GNU赫德是GNU项目对Unix内核的替代。它是一个在Mach微内核上运行以实现文件的服务器集合系统、网络协议、文件访问控制和其他功能由Unix内核或类似内核(如Linux)实现。更多详细的.

GNU马赫数是GNU Hurd系统所基于的微内核。提供了进程间通信(IPC)机制,Hurd使用该机制定义以分布式多服务器方式实现的接口传统操作系统内核提供的服务。更多详细的.

Debian GNU/Hurd 2023发布!细节。

Debian GNU/Hurd团队非常高兴地宣布Debian GNU/Hurd 2023发布.

这是Debian稳定运行时Debian“sid”的快照“书呆子”发布(2023年6月),因此主要基于相同的内容来源。这不是正式的Debian版本,但它是正式的Debian GNU/Hurd公司端口释放。

阅读公告电子邮件.


这个GNU赫德是GNU项目对Unix内核的替代。它是一个在Mach微内核上运行以实现文件的服务器集合系统、网络协议、文件访问控制和其他功能由Unix内核或类似内核(如Linux)实现。更多详细的.

GNU马赫数是GNU Hurd系统所基于的微内核。提供了一种进程间通信(IPC)机制,Hurd使用该机制定义以分布式多服务器方式实现的接口传统操作系统内核提供的服务。更多详细的.

Debian GNU/Hurd 2021发布!细节。

Debian GNU/Hurd团队非常高兴地宣布Debian GNU/Hurd 2021发布.

这是Debian稳定运行时Debian“sid”的快照“靶心”发布(2021年8月),因此它主要基于相同的来源。这不是正式的Debian版本,但它是正式的Debian GNU/Hurd公司端口释放。

阅读公告电子邮件.


这个GNU伤害是GNU项目对Unix内核的替代。它是一个在Mach微内核上运行以实现文件的服务器集合系统、网络协议、文件访问控制和其他功能由Unix内核或类似内核(如Linux)实现。更多详细的.

GNU马赫数是GNU Hurd系统所基于的微内核。提供了一种进程间通信(IPC)机制,Hurd使用该机制定义以分布式多服务器方式实现的接口传统操作系统内核提供的服务。更多详细的.

旧的新闻条目可以在新闻档案.对于赫德开发者的思考共享的日志.这个@最近的更改页面列出了此网站的最新更改。


贡献

那么,你有兴趣为GNU Hurd项目做出贡献吗?欢迎!我们非常鼓励每一项贡献。请阅读我们的详细的关于如何贡献的建议.

查看我们的源存储库用于源代码。

访问GNU/Hurd系统

我们提供我们的账户公共赫德拳击手,还有几个GNU/Hurd分配允许QEMU公司仿真。


获取帮助

有几个不同的常见问题列表.有许多IRC渠道和几个不同的邮件列表带有可搜索的档案。

在邮件列表或IRC上提问之前,请首先尝试使用搜索引擎回答自己的问题并阅读介绍信息。如果你这样做了,却找不到答案问题,请随时在邮件列表或IRC上提问。


跑赫德

Hurd最实用的分布是Debian提供的。有关它的更多信息,请访问Debian GNU/Hurd网站.

除此之外,还有各种方式运行GNU/Hurd系统。其中三个是

这些网页是赫德可用性的生动证明,因为在上渲染Debian GNU/Hurd公司系统。


当前状态

最新的GNU版本包括赫德0.9,马赫数1.8、和金属惰性气体(MIG)1.8 (发行说明), 2016-12-18.

赫德是由一些志愿者在业余时间.该项目欢迎任何援助你可以提供.许多关键领域仍然急需移植和开发专业知识。

功能系统可安装在双引导配置中。开发系统目前主要基于Debian GNU/Hurd公司港口Debian项目.

除了这个Wiki,相关项目的社区资源主要集中在gnu.org网站,的邮件列表、和IRC渠道.

如果您想了解赫德项目中当前的讨论,请查看这个错误邮件列表档案. 如果你想看看目前的编码工作,你可以去我们的源存储库.

有关更多详细信息,请阅读我们在GNU Hurd的现状.

优势与挑战

GNU Hurd操作系统设计提供优势,但发现了新的挑战也是。


这些页面由伊基维基.

有关此网站及其创建方式的更多信息,请访问树脂.