[转帖](整理)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)超过[用途]的个数,则剩余 ...
随机推荐
- codevs 2010 求后序遍历x
题目描述 Description 输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列. 输入描述 Input Description 共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串, ...
- HDU 5818 Joint Stacks ——(栈的操作模拟,优先队列)
题意:有两个栈A和B,有3种操作:push,pop,merge.前两种都是栈的操作,最后一种表示的是如果“merge A B”,那么把B中的元素全部放到A中,且满足先入后出的栈原则. 分析:显然,我们 ...
- (十一)C语言之选择结构
- 20165207 Exp9 Web安全基础
目录 20165207 Exp9 Web安全基础 一.实验过程 1.环境配置 2.代理工具burpsuite 2.1 Http proxies -> Use the intercept 3.sq ...
- 关于wordpress文章分类显示404错误的解决办法。
闲来无事,在虚拟主机上装了一个wordpress尝试自己搭一个博客玩一下,发现文章分类一直显示404错误,网上查了好久,终于找到解决方法,其实很简单,只要将分类的别名改成英文的就解决了,分类中不能包含 ...
- LeetCode 230. 二叉搜索树中第K小的元素(Kth Smallest Element in a BST)
题目描述 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 示例 1: 输入: roo ...
- Docker安装ElasticSearch 版本7.1.1
一.Docker 部署 ElasticSearch 1.从仓库中查找所有ElasticSearch的镜像 [root@iZwz99dhxbd6xwly17tb3bZ app]# docker sear ...
- MIL/SIL/PIL/HIL/VIL
MIL:Model in the loop 模型在环,对模型在模型的开发环境下(如SIMULINK)进行仿真,通过输入一系列的测试用例,验证模型是否满足设计的功能需求.验证控制算法模型是否准确地实现了 ...
- eclipse svn is already locked解决方案
转: eclipse svn is already locked解决方案 2017年05月15日 22:21:54 Aaron莫言 阅读数:5867 版权声明:本文为博主原创文章,未经博主允许不得 ...
- 小D课堂 - 零基础入门SpringBoot2.X到实战_汇总
第1节零基础快速入门SpringBoot2.0 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_1.SpringBoot2.x课程介绍和高手系 ...