[转帖](整理)GNU Hurd项目详解
Hurd原本是要成为GNU操作系统的真正内核,然而它从未真正降临人间。Linus Torvalds曾经写过,如果GNU kernel在1991年春天发布,他不会启动Linux项目。GNU操作系统项目始于1984年,在Linux出现之前它有7到8年的时间创造出一个可用的内核,然而它的开发进程,不时被频繁的改变中断。Richard Stallman为了无止境寻找完美内核,而忘记了HURD的原本目的:能用的操作系统。


Richard Stallman(RMS)在1983年9月建立了GNU项目,当时没人相信他能创建一个类似UNIX的完整操作系统,但十分固执的RMS没有改变他的伟大目标。在内核诞生之前,前期的工作已经陆续完成,如编辑器、编译器、bash、make、autoconf和emacs等都已经开发了出来。但RMS在开发GNU Emacs时的遭遇对整个项目产生深远影响。
RMS听说了名叫“Free University Compiler Kit(简称VUCK)”的编译器,于是写信给作者询问是否可以在GNU中使用,结果作者傲慢的回信称,大学也许“免费(Free)”,但编译器要收费。RMS于是创造了GCC。在此期间RMS改变了GNU项目背后的哲学概念,强调了自由软件的意义,并将其写入GPL许可证中。
这一变化对HURD项目的影响是:内核必须发布到公有领域…HURD最初取名为Alix,这一名字来自RMS的“恋人”,不过内核架构师Thomas Bushnell更偏爱HURD这个名字,它是“HIRD of Unix Replacing Daemons”的间接递归缩写….GNU项目与卡内基梅隆大学达成协议,于1991年5月正式宣布HURD项目,它将基于卡内基梅隆大学的Mach微内核。但在当年的4月,Torvalds已经开始酝酿Linux项目。
Hurd 简介
GNU Hurd 是 GNU 工程中取代 Unix 的核心。 Hurd 是一组运行在 Mach 微内核上的服务器,用来实现 Unix 或其他核心(如 Linux)实现了的文件系统、网络协议、及文件访问控制等其他功能。
目前,Hurd 运行在 IA32 系统上。未来 Hurd 应该,而且可能会被移植到其他硬件系统或微内核上。
Hurd 的优点
Hurd 不是一个已知的最先进的内核,但它有一些诱人的特点:
它是自由软件
任何人在遵守 GNU General Public License (GPL) 的条件下,都可以使用、修改或重新发布它。它的兼容性
Hurd 提供了一个熟悉的编程和用户环境。对於所有的意图和目的来说,Hurd 都是一个现代的类 Unix 的内核。 Hurd 使用了 GNU C 库,而此库的开发紧紧追踪 ANSI/ISO、BSD、POSIX、Single Unix、SVID 及 X/Open 等标准。可持续发展的构造
与其他流行的内核软件不同,Hurd 拥有面向对象的结构,这就使得它不断发展而不用改变当前的设计。这种结构将有助於完成 Hurd 主要的重设计和修改而不必完全重写代码。它的规模很大
Hurd 实现了强有力的多线程,以便它在单处理器和对称多处理器上都可以高效运行。 Hurd 的接口设计成允许透明网络组的共有,但这个特性尚未实现。它是可扩展的
对於学习怎样成为一个内核黑客或者在内核技术中实现新想法来说, Hurd 是一个有吸引力的平台。系统的每一个部分都设计成可修改和扩展的。它是稳定的
在开发和测试新的 Hurd 内核组件时,可能不需重新启动机器(即使是意外的)。运行自己的内核组件不会妨碍其他用户,而且这并不需要特殊的系统权限。由於这种设计,扩展内核的程序是安全的:除非他们认可这种改动或者你是系统管理员,否则你的修改不可能影响到其他用户。它已经存在
Hurd 是正在工作中的真实的软件。不是一个研究项目或提案。你可以开始使用并开发它,而根本不必等待。
Hurd 的含义
据 Thomas Bushnell,BSG,Hurd 的主设计师所述:
『Hurd』代表『Hird of Unix-Replacing Daemons』,而『Hird』又代表了『Hurd of Interfaces Representing Depth』。据我所知,这里,我们拥有了第一个以一对双关语命名的软件。
此工程的重要地位
今天,Hurd 与 GNU Mach 微内核、GNU C 库和其他 GNU 系统中的 GNU 以及非 GNU 程序一起,提供了一个相当完整且可用的操作系统。因为还有许多错误和未完成的特性,所以 Hurd 还不能用作生产。然而,它应该为更深入的开发和非关键性程序的使用提供了一个良好的基础。
GNU 系统 (也称作 GNU/Hurd) 完全是自我包含的(你可以使用 GNU 自身编译它的所有部分)。你可以并行运行若干个 Hurd ,甚至可以用在另一个 Hurd 上运行的的 gdb 来调试某一 Hurd 上运行的关键服务。你可以运行 X 窗口系统,使用它的应用程序和 Apache 等高级服务器应用程序。
反过来看,对块设备(如声卡)和其他设备的支持大部分还处在短缺之中。即使提供了 POSIX 接口,一些额外的接口,像 POSIX 共享内存或旗语等都仍在开发之中。
所有这些适用於目前正在开发的版本,而不是上次的发布(0.2)。我们鼓励每一个感兴趣的人试用最新的开发版,并将反馈信息发送给 Hurd 的开发者。
GNU Hurd官方主页:http://www.gnu.org/software/hurd/
GNU Hurd开发版下载:http://ftp.debian-ports.org/debian-cd/hurd-i386/L1/
参考资料:http://en.wikipedia.org/wiki/GNU_Hurd
[转帖](整理)GNU Hurd项目详解的更多相关文章
- Redis 配置文件 redis.conf 项目详解
Redis.conf 配置文件详解 # [Redis](http://yijiebuyi.com/category/redis.html) 配置文件 # 当配置中需要配置内存大小时,可以使用 1k, ...
- Mac下Intellij IDea发布Web项目详解一
Mac下Intellij IDea发布Web项目详解一 Mac下Intellij IDea发布Java Web项目(适合第一次配置Tomcat的家伙们)详解二 Mac下Intellij IDea发布J ...
- eclipse里面构建maven项目详解(转载)
本文来源于:http://my.oschina.net/u/1540325/blog/548530 eclipse里面构建maven项目详解 1 环境安装及分配 Maven是基于项目对象模 ...
- Mac下Intellij IDea发布Java Web项目详解五 开始测试
测试前准备工作目录 Mac下Intellij IDea发布Web项目详解一 Mac下Intellij IDea发布Java Web项目(适合第一次配置Tomcat的家伙们)详解二 Mac下Intell ...
- JAVA Eclipse使用Maven构建web项目详解(SSM框架)
tips: 启动项目后,welcome-file的链接即为测试用例 部署maven web项目 Eclipse使用Maven构建web项目详解 pom.xml添加webapp依赖: <depen ...
- 利用Intellij+MAVEN搭建Spring+Mybatis+MySql+SpringMVC项目详解
http://blog.csdn.net/noaman_wgs/article/details/53893948 利用Intellij+MAVEN搭建Spring+Mybatis+MySql+Spri ...
- tomcat通过tomcat 安装根目录下的conf-Catalina-localhost目录发布项目详解
tomcat通过conf-Catalina-localhost目录发布项目详解 Tomcat发布项目的方式大致有三种,但小菜认为通过在tomcat的conf/Catalina/localhost目 ...
- [转帖]Windows注册表内容详解
Windows注册表内容详解 来源:http://blog.sina.com.cn/s/blog_4d41e2690100q33v.html 对 windows注册表一知半解 不是很清晰 这里学习一下 ...
- Usage、Usage Minimum和Usage Maximum项目详解
(1)一个产生多个数据域(Report Count>1)的主项目之前有一个以上的[用途]时,每个[用途]与一个数据域依次对应,如果数据域个数(Report Count)超过[用途]的个数,则剩余 ...
随机推荐
- monkeyrunner操作多个设备的例子
# -*- coding: utf-8 -*- from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice from com.an ...
- Hibernate 5 发行组件下载
Hibernate 项目小组提供了一系列发布组合(bundles),这些发布组合发布在 SourceForge 文件发布系统中.这些发布的包有 TGZ 和ZIP 格式. 每一个发布组合包含有 JAR ...
- Confluence 6.15 附件(Attachments )宏
附件宏显示添加到一个页面中的所有文件列表. 同时附件宏允许用户(用户需要具有正确的权限)来进行下面的操作: 直接从列表中上传一个文件到页面 编辑附件属性和标签 删除一个附件文件(这个将会删除文件的所有 ...
- YY的GCD【luoguP2257】
题目大意 有至多\(10000\)组询问,问\(1 < i \leqslant N \leqslant 10000000, 1 < j \leqslant M \leqslant 1000 ...
- BZOJ 4042 Luogu P4757 [CERC2014]Parades (树形DP、状压DP)
题目链接 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=4042 (Luogu) https://www.luogu.org/prob ...
- MQTT 连接服务端失败,报错客户机未连接(32104)
和同事协同开发项目,在启动项目时偶尔报错连接不到MQTT 服务器. 原因是两个人开发同一个项目,连接MQTT时配置的 client-id 相同,在使用一个client-id连接到MQTT服务器后,再使 ...
- 2018-2019-2 20165215《网络对抗技术》Exp9 :Web安全基础
目录 实验目的及内容 实验过程记录 一.Webgoat安装 二. 注入缺陷(Injection Flaws) (一)命令注入(Command Injection) (二)数字型注入(Numeric S ...
- 初识 Premiere
本记录基于Premiere Pro CC 2015.3,编号不连贯,以视频编号为准,对应视频没有有用信息的没有记录. 1.3 基本工作界面和预设工作区 将面板独立出来:按住Ctrl拖动窗口 将关闭的面 ...
- Java-内存模型(JSR-133)
Java 内存模型(Java Memory Model,JMM)看上去和 Java 内存结构(JVM 运行时内存结构)差不多,但这两者并不是一回事.JMM 并不像 JVM 内存结构一样是真实存在的,它 ...
- Anaconda 改为国内镜像的方法
Anaconda的conda 特别好用 但如果用国外的镜像,慢的出奇 可以改为了国内镜像会好很多 conda config --add channels https://mirrors.tuna.ts ...