From 20a22829ce555fd72532b4572112c7a8b6e18c29 Mon Sep 17 00:00:00 2001 From: 764582402 <764582402@web> Date: Wed, 6 Apr 2016 03:23:51 +0200 Subject: translate to Chinese --- microkernel/mach/gnumach.mdwn | 109 ++++++++++++++++++++---------------------- 1 file changed, 51 insertions(+), 58 deletions(-) (limited to 'microkernel') diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn index 88aa1432..6b32b852 100644 --- a/microkernel/mach/gnumach.mdwn +++ b/microkernel/mach/gnumach.mdwn @@ -7,82 +7,75 @@ document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation -License|/fdl]]."]]"""]] +License|/fdl]].translator:zlc;email:764582402@qq.com"]]"""]] -GNU Mach is the microkernel upon which a GNU Hurd system is based. It provides -an Inter Process Communication (IPC) mechanism that the Hurd uses to define -interfaces for implementing in a distributed multi-server fashion the services -a traditional operating system kernel provides. +GNU Mach 是一款微内核, GNU Hurd 系统基于此微内核构建。其提供了进程间通信机制 +(Inter Process Communication,IPC),通过该机制将Hurd实现为分布式多服务器, +Hurd据此实现接口,从而实现传统操作系统提供的服务。 -It is maintained by the Hurd developers for the GNU project and remains -compatible with [[Mach]] 3.0. +GNU Mach 作为 GNU Project 由 Hurd开发人员进行维护,并和 [[Mach]] 3.0 保持兼容。 -The majority of GNU Mach's [[device_driver]]s are from Linux 2.0. They were -added using glue code, i.e., a Linux [[emulation]] layer in Mach. +GNU Mach 主要的 [[设备驱动(device_drivers)]] 来自 Linux 2.0。这些驱动依靠 +Mach 中的 Linux [[emulation]] 层运行。 -GNU Mach runs on x86 machines. See the -[[hardware_compatibility_list]] and information about -[[ports]] to other architectures. +GNU Mach 运行在 x86 机上。详细信息参见 +[[硬件兼容列表(hardware_compatibility_list)]],还有关于[[移植(ports)]]到其 +他架构上的信息。 -The latest release is [[GNU Mach 1.6|news/2015-10-31-releases]]. +最新版本:[[GNU Mach 1.6|news/2015-10-31-releases]]。 -# Advantages of GNU Mach -GNU Mach is not the most advanced [[microkernel]] known to the planet, nor is -it the fastest or smallest, but it has a rich set of [[interface]]s and some -features which make it useful as the base of the [[Hurd]] system. +# GNU Mach 的优点 - * **it's free software** - - Anybody can use, modify, and redistribute it under the terms of the - [[GNU_General_Public_License_(GPL)|gpl]]. +GNU Mach 不是世界上已知最先进的 [[微内核(microkernel)]],也不是最小、最快的, +但是其拥有作为 [[Hurd]] 系统基础的,丰富的 [[接口(interfaces)]] 以及特性。 - * **it's built to survive** - - As a [[microkernel]], GNU Mach doesn't implement a lot of the features - commonly found in an operating system, but only the bare minimum that is - required to implement a full operating system on top of it. This means - that a lot of the operating system code is maintained outside of GNU Mach, - and while this code may go through a complete redesign, the code of the - microkernel can remain comparatively stable. - - * **it's scalable** + + * **是开放源码的** - Mach is particularly well suited for SMP and network cluster techniques. - Thread support is provided at the kernel level, and the kernel itself takes - advantage of that. Network transparency at the [[IPC]] level makes - resources of the system available across machine boundaries (with NORMA - IPC, currently not available in GNU Mach). + 任何人在 [[GNU_General_Public_License_(GPL)|gpl]] 的授权下,都可以对其使用 + ,修改,并且二次发布。 - * **it exists** + * **是易于维护的** - The Mach microkernel is real software that works Right Now. It is not a - research or a proposal. You don't have to wait at all before you can start - using and developing it. Mach has been used in many operating systems in - the past, usually as the base for a single UNIX server. In the GNU system, - Mach is the base of a functional multi-server operating system, the - [[Hurd]]. + 作为一款 [[微内核(microkernel)]],GNU Mach 没有实现太多其他操作系统都有的 + 特性,而是仅仅实现了一个用于在其上实现完整的操作系统的,所需特性的最小集 + 合。这意味着操作系统大量的代码将剥离 GNU Mach,在其外部进行维护;当这些代码 + 需要重构的时候,微内核的代码仍能保持稳定的兼容性。 + + * **是可于扩展的** + Mach 能非常良好的支持 SMP 和网络集群技术。提供内核级的线程支持,并且内核本 + 身都因此受益。在 [[IPC]] 层的网络透明使得系统可以提供机器边界的资源 + (目前 GNU Mach 不对NORMA IPC提供支持)。 -# Booting + * **是实际存在的** -To actually use the kernel and boot the GNU operating system, you need a boot -loader. Not all boot loaders are capable to boot the GNU system, you need one -that supports the multiboot standard. The bootloader of the GNU system is -[[GNU_GRUB|grub]], which supports a broad range of operating systems including -GNU/Hurd. + Mach 微内核是真实存在的,并且现在就可以使用。其不是一个研究或者倡议。用户不 + 需要等待,现在就可以开始使用并开发它。Mach 在过去曾经被用在很多操作系统中, + 通常作为一个独立 UNIX 服务器的基础。在 GNU 系统,Mach 作为一个使用的多服务 + 器操作系统([[Hurd]])的基础。 -# Development +# 启动 - * [[Reference_Manual]] - * [[Building]] - * [[Debugging]] - * [[Boot_Trace]] - * [[Memory_Management]] +想要实际的使用这个内核并引导 GNU 操作系统,用户需要一个启动引导程序 +(boot loader)。不是所有的启动引导程序都能启动 GNU 操作系统,用户需要一个支持 +多重引导启动标准(multiboot standard)的启动引导程序。 GNU 操作系统可使用 +[[GNU_GRUB|grub]],其支持非常多的操作系统,包括 GNU/Hurd。 + + +# 开发 + + * [[参考手册(Reference_Manual)]] + * [[构建(Building)]] + * [[调试(Debugging)]] + * [[启动跟踪(Boot_Trace)]] + * [[内存管理(Memory_Management)]] * [[Continuation]]s - * [[Preemption]] - * [[Projects]] - * [[Rules]] + * [[抢占(Preemption)]] + * [[项目(Projects)]] + * [[规则(Rules)]] * [[Open Issues|tag/open_issue_gnumach]] + -- cgit v1.2.3 From 3313a02e7fd3123f24880a8a8aad61644a1119ad Mon Sep 17 00:00:00 2001 From: 764582402 <764582402@web> Date: Wed, 6 Apr 2016 03:48:10 +0200 Subject: translate to Chinese ,v2 --- microkernel/mach/gnumach.mdwn | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'microkernel') diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn index 6b32b852..67cd6525 100644 --- a/microkernel/mach/gnumach.mdwn +++ b/microkernel/mach/gnumach.mdwn @@ -7,7 +7,7 @@ document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation -License|/fdl]].translator:zlc;email:764582402@qq.com"]]"""]] +License|/fdl]]."]]"""]] GNU Mach 是一款微内核, GNU Hurd 系统基于此微内核构建。其提供了进程间通信机制 (Inter Process Communication,IPC),通过该机制将Hurd实现为分布式多服务器, @@ -15,12 +15,10 @@ Hurd据此实现接口,从而实现传统操作系统提供的服务。 GNU Mach 作为 GNU Project 由 Hurd开发人员进行维护,并和 [[Mach]] 3.0 保持兼容。 -GNU Mach 主要的 [[设备驱动(device_drivers)]] 来自 Linux 2.0。这些驱动依靠 +GNU Mach 主要的设备驱动[[device_drivers]] 来自 Linux 2.0。这些驱动依靠 Mach 中的 Linux [[emulation]] 层运行。 -GNU Mach 运行在 x86 机上。详细信息参见 -[[硬件兼容列表(hardware_compatibility_list)]],还有关于[[移植(ports)]]到其 -他架构上的信息。 +GNU Mach 运行在 x86 机上。详细信息参见硬件兼容列表[[hardware_compatibility_list]],还有关于移植[[ports]]到其他架构上的信息。 最新版本:[[GNU Mach 1.6|news/2015-10-31-releases]]。 @@ -28,18 +26,17 @@ GNU Mach 运行在 x86 机上。详细信息参见 # GNU Mach 的优点 -GNU Mach 不是世界上已知最先进的 [[微内核(microkernel)]],也不是最小、最快的, -但是其拥有作为 [[Hurd]] 系统基础的,丰富的 [[接口(interfaces)]] 以及特性。 +GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是最小、最快的, +但是其拥有作为[[Hurd]]系统基础的,丰富的接口[[interfaces]]以及特性。 * **是开放源码的** - 任何人在 [[GNU_General_Public_License_(GPL)|gpl]] 的授权下,都可以对其使用 - ,修改,并且二次发布。 + 任何人在[[GNU_General_Public_License_(GPL)|gpl]]的授权下,都可以对其使用,修改,并且二次发布。 * **是易于维护的** - 作为一款 [[微内核(microkernel)]],GNU Mach 没有实现太多其他操作系统都有的 + 作为一款微内核 [[microkernel]],GNU Mach 没有实现太多其他操作系统都有的 特性,而是仅仅实现了一个用于在其上实现完整的操作系统的,所需特性的最小集 合。这意味着操作系统大量的代码将剥离 GNU Mach,在其外部进行维护;当这些代码 需要重构的时候,微内核的代码仍能保持稳定的兼容性。 @@ -47,7 +44,7 @@ GNU Mach 不是世界上已知最先进的 [[微内核(microkernel)]],也 * **是可于扩展的** Mach 能非常良好的支持 SMP 和网络集群技术。提供内核级的线程支持,并且内核本 - 身都因此受益。在 [[IPC]] 层的网络透明使得系统可以提供机器边界的资源 + 身都因此受益。在[[IPC]]层的网络透明使得系统可以提供机器边界的资源 (目前 GNU Mach 不对NORMA IPC提供支持)。 * **是实际存在的** @@ -55,7 +52,7 @@ GNU Mach 不是世界上已知最先进的 [[微内核(microkernel)]],也 Mach 微内核是真实存在的,并且现在就可以使用。其不是一个研究或者倡议。用户不 需要等待,现在就可以开始使用并开发它。Mach 在过去曾经被用在很多操作系统中, 通常作为一个独立 UNIX 服务器的基础。在 GNU 系统,Mach 作为一个使用的多服务 - 器操作系统([[Hurd]])的基础。 + 器操作系统[[Hurd]]的基础。 # 启动 @@ -68,14 +65,17 @@ GNU Mach 不是世界上已知最先进的 [[微内核(microkernel)]],也 # 开发 - * [[参考手册(Reference_Manual)]] - * [[构建(Building)]] - * [[调试(Debugging)]] - * [[启动跟踪(Boot_Trace)]] - * [[内存管理(Memory_Management)]] + * 参考手册[[Reference_Manual]] + * 构建[[Building]] + * 调试[[Debugging]] + * 启动跟踪[[Boot_Trace]] + * 内存管理[[Memory_Management]] * [[Continuation]]s - * [[抢占(Preemption)]] - * [[项目(Projects)]] - * [[规则(Rules)]] + * 抢占[[Preemption]] + * 项目[[Projects]] + * 规则[[Rules]] * [[Open Issues|tag/open_issue_gnumach]] + +本页翻译:zlc:764582402@qq.com,不足之处请谅解,改进之处请邮件联系。 + -- cgit v1.2.3 From 00bcfff2fe2769bc7780a57af44763cb7eaa90e9 Mon Sep 17 00:00:00 2001 From: 764582402 <764582402@web> Date: Wed, 6 Apr 2016 03:52:45 +0200 Subject: translate to Chinese,v2.1 --- microkernel/mach/gnumach.mdwn | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'microkernel') diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn index 67cd6525..60256dda 100644 --- a/microkernel/mach/gnumach.mdwn +++ b/microkernel/mach/gnumach.mdwn @@ -9,14 +9,11 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] -GNU Mach 是一款微内核, GNU Hurd 系统基于此微内核构建。其提供了进程间通信机制 -(Inter Process Communication,IPC),通过该机制将Hurd实现为分布式多服务器, -Hurd据此实现接口,从而实现传统操作系统提供的服务。 +GNU Mach 是一款微内核, GNU Hurd 系统基于此微内核构建。其提供了进程间通信机制(Inter Process Communication,IPC),通过该机制将Hurd实现为分布式多服务器,Hurd据此实现接口,从而实现传统操作系统提供的服务。 GNU Mach 作为 GNU Project 由 Hurd开发人员进行维护,并和 [[Mach]] 3.0 保持兼容。 -GNU Mach 主要的设备驱动[[device_drivers]] 来自 Linux 2.0。这些驱动依靠 -Mach 中的 Linux [[emulation]] 层运行。 +GNU Mach 主要的设备驱动[[device_drivers]] 来自 Linux 2.0。这些驱动依靠Mach 中的 Linux [[emulation]] 层运行。 GNU Mach 运行在 x86 机上。详细信息参见硬件兼容列表[[hardware_compatibility_list]],还有关于移植[[ports]]到其他架构上的信息。 @@ -26,8 +23,7 @@ GNU Mach 运行在 x86 机上。详细信息参见硬件兼容列表[[hardware_c # GNU Mach 的优点 -GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是最小、最快的, -但是其拥有作为[[Hurd]]系统基础的,丰富的接口[[interfaces]]以及特性。 +GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是最小、最快的,但其拥有作为[[Hurd]]系统基础的,丰富的接口[[interfaces]]以及特性。 * **是开放源码的** @@ -57,10 +53,7 @@ GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是 # 启动 -想要实际的使用这个内核并引导 GNU 操作系统,用户需要一个启动引导程序 -(boot loader)。不是所有的启动引导程序都能启动 GNU 操作系统,用户需要一个支持 -多重引导启动标准(multiboot standard)的启动引导程序。 GNU 操作系统可使用 -[[GNU_GRUB|grub]],其支持非常多的操作系统,包括 GNU/Hurd。 +想要实际的使用这个内核并引导 GNU 操作系统,用户需要一个启动引导程序(boot loader)。不是所有的启动引导程序都能启动 GNU 操作系统,用户需要一个支持多重引导启动标准(multiboot standard)的启动引导程序。 GNU 操作系统可使用[[GNU_GRUB|grub]],其支持非常多的操作系统,包括 GNU/Hurd。 # 开发 @@ -78,4 +71,3 @@ GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是 本页翻译:zlc:764582402@qq.com,不足之处请谅解,改进之处请邮件联系。 - -- cgit v1.2.3 From 586714d1311eed2aef9ebca2ccebf52a0bbbb45a Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 19 Apr 2016 01:44:56 +0200 Subject: Revert "translate to Chinese,v2.1" This reverts commit 00bcfff2fe2769bc7780a57af44763cb7eaa90e9. --- microkernel/mach/gnumach.mdwn | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'microkernel') diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn index 60256dda..67cd6525 100644 --- a/microkernel/mach/gnumach.mdwn +++ b/microkernel/mach/gnumach.mdwn @@ -9,11 +9,14 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] -GNU Mach 是一款微内核, GNU Hurd 系统基于此微内核构建。其提供了进程间通信机制(Inter Process Communication,IPC),通过该机制将Hurd实现为分布式多服务器,Hurd据此实现接口,从而实现传统操作系统提供的服务。 +GNU Mach 是一款微内核, GNU Hurd 系统基于此微内核构建。其提供了进程间通信机制 +(Inter Process Communication,IPC),通过该机制将Hurd实现为分布式多服务器, +Hurd据此实现接口,从而实现传统操作系统提供的服务。 GNU Mach 作为 GNU Project 由 Hurd开发人员进行维护,并和 [[Mach]] 3.0 保持兼容。 -GNU Mach 主要的设备驱动[[device_drivers]] 来自 Linux 2.0。这些驱动依靠Mach 中的 Linux [[emulation]] 层运行。 +GNU Mach 主要的设备驱动[[device_drivers]] 来自 Linux 2.0。这些驱动依靠 +Mach 中的 Linux [[emulation]] 层运行。 GNU Mach 运行在 x86 机上。详细信息参见硬件兼容列表[[hardware_compatibility_list]],还有关于移植[[ports]]到其他架构上的信息。 @@ -23,7 +26,8 @@ GNU Mach 运行在 x86 机上。详细信息参见硬件兼容列表[[hardware_c # GNU Mach 的优点 -GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是最小、最快的,但其拥有作为[[Hurd]]系统基础的,丰富的接口[[interfaces]]以及特性。 +GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是最小、最快的, +但是其拥有作为[[Hurd]]系统基础的,丰富的接口[[interfaces]]以及特性。 * **是开放源码的** @@ -53,7 +57,10 @@ GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是 # 启动 -想要实际的使用这个内核并引导 GNU 操作系统,用户需要一个启动引导程序(boot loader)。不是所有的启动引导程序都能启动 GNU 操作系统,用户需要一个支持多重引导启动标准(multiboot standard)的启动引导程序。 GNU 操作系统可使用[[GNU_GRUB|grub]],其支持非常多的操作系统,包括 GNU/Hurd。 +想要实际的使用这个内核并引导 GNU 操作系统,用户需要一个启动引导程序 +(boot loader)。不是所有的启动引导程序都能启动 GNU 操作系统,用户需要一个支持 +多重引导启动标准(multiboot standard)的启动引导程序。 GNU 操作系统可使用 +[[GNU_GRUB|grub]],其支持非常多的操作系统,包括 GNU/Hurd。 # 开发 @@ -71,3 +78,4 @@ GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是 本页翻译:zlc:764582402@qq.com,不足之处请谅解,改进之处请邮件联系。 + -- cgit v1.2.3 From 95287b2d6f44da85a4bbb466433357d2c5d494fd Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 19 Apr 2016 01:45:01 +0200 Subject: Revert "translate to Chinese ,v2" This reverts commit 3313a02e7fd3123f24880a8a8aad61644a1119ad. --- microkernel/mach/gnumach.mdwn | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'microkernel') diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn index 67cd6525..6b32b852 100644 --- a/microkernel/mach/gnumach.mdwn +++ b/microkernel/mach/gnumach.mdwn @@ -7,7 +7,7 @@ document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation -License|/fdl]]."]]"""]] +License|/fdl]].translator:zlc;email:764582402@qq.com"]]"""]] GNU Mach 是一款微内核, GNU Hurd 系统基于此微内核构建。其提供了进程间通信机制 (Inter Process Communication,IPC),通过该机制将Hurd实现为分布式多服务器, @@ -15,10 +15,12 @@ Hurd据此实现接口,从而实现传统操作系统提供的服务。 GNU Mach 作为 GNU Project 由 Hurd开发人员进行维护,并和 [[Mach]] 3.0 保持兼容。 -GNU Mach 主要的设备驱动[[device_drivers]] 来自 Linux 2.0。这些驱动依靠 +GNU Mach 主要的 [[设备驱动(device_drivers)]] 来自 Linux 2.0。这些驱动依靠 Mach 中的 Linux [[emulation]] 层运行。 -GNU Mach 运行在 x86 机上。详细信息参见硬件兼容列表[[hardware_compatibility_list]],还有关于移植[[ports]]到其他架构上的信息。 +GNU Mach 运行在 x86 机上。详细信息参见 +[[硬件兼容列表(hardware_compatibility_list)]],还有关于[[移植(ports)]]到其 +他架构上的信息。 最新版本:[[GNU Mach 1.6|news/2015-10-31-releases]]。 @@ -26,17 +28,18 @@ GNU Mach 运行在 x86 机上。详细信息参见硬件兼容列表[[hardware_c # GNU Mach 的优点 -GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是最小、最快的, -但是其拥有作为[[Hurd]]系统基础的,丰富的接口[[interfaces]]以及特性。 +GNU Mach 不是世界上已知最先进的 [[微内核(microkernel)]],也不是最小、最快的, +但是其拥有作为 [[Hurd]] 系统基础的,丰富的 [[接口(interfaces)]] 以及特性。 * **是开放源码的** - 任何人在[[GNU_General_Public_License_(GPL)|gpl]]的授权下,都可以对其使用,修改,并且二次发布。 + 任何人在 [[GNU_General_Public_License_(GPL)|gpl]] 的授权下,都可以对其使用 + ,修改,并且二次发布。 * **是易于维护的** - 作为一款微内核 [[microkernel]],GNU Mach 没有实现太多其他操作系统都有的 + 作为一款 [[微内核(microkernel)]],GNU Mach 没有实现太多其他操作系统都有的 特性,而是仅仅实现了一个用于在其上实现完整的操作系统的,所需特性的最小集 合。这意味着操作系统大量的代码将剥离 GNU Mach,在其外部进行维护;当这些代码 需要重构的时候,微内核的代码仍能保持稳定的兼容性。 @@ -44,7 +47,7 @@ GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是 * **是可于扩展的** Mach 能非常良好的支持 SMP 和网络集群技术。提供内核级的线程支持,并且内核本 - 身都因此受益。在[[IPC]]层的网络透明使得系统可以提供机器边界的资源 + 身都因此受益。在 [[IPC]] 层的网络透明使得系统可以提供机器边界的资源 (目前 GNU Mach 不对NORMA IPC提供支持)。 * **是实际存在的** @@ -52,7 +55,7 @@ GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是 Mach 微内核是真实存在的,并且现在就可以使用。其不是一个研究或者倡议。用户不 需要等待,现在就可以开始使用并开发它。Mach 在过去曾经被用在很多操作系统中, 通常作为一个独立 UNIX 服务器的基础。在 GNU 系统,Mach 作为一个使用的多服务 - 器操作系统[[Hurd]]的基础。 + 器操作系统([[Hurd]])的基础。 # 启动 @@ -65,17 +68,14 @@ GNU Mach 不是世界上已知最先进的微内核[[microkernel]],也不是 # 开发 - * 参考手册[[Reference_Manual]] - * 构建[[Building]] - * 调试[[Debugging]] - * 启动跟踪[[Boot_Trace]] - * 内存管理[[Memory_Management]] + * [[参考手册(Reference_Manual)]] + * [[构建(Building)]] + * [[调试(Debugging)]] + * [[启动跟踪(Boot_Trace)]] + * [[内存管理(Memory_Management)]] * [[Continuation]]s - * 抢占[[Preemption]] - * 项目[[Projects]] - * 规则[[Rules]] + * [[抢占(Preemption)]] + * [[项目(Projects)]] + * [[规则(Rules)]] * [[Open Issues|tag/open_issue_gnumach]] - -本页翻译:zlc:764582402@qq.com,不足之处请谅解,改进之处请邮件联系。 - -- cgit v1.2.3 From 1e8d71e3fe009302711a10f075ce2409e8d98a38 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 19 Apr 2016 01:45:06 +0200 Subject: Revert "translate to Chinese" This reverts commit 20a22829ce555fd72532b4572112c7a8b6e18c29. --- microkernel/mach/gnumach.mdwn | 109 ++++++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 51 deletions(-) (limited to 'microkernel') diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn index 6b32b852..88aa1432 100644 --- a/microkernel/mach/gnumach.mdwn +++ b/microkernel/mach/gnumach.mdwn @@ -7,75 +7,82 @@ document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation -License|/fdl]].translator:zlc;email:764582402@qq.com"]]"""]] +License|/fdl]]."]]"""]] -GNU Mach 是一款微内核, GNU Hurd 系统基于此微内核构建。其提供了进程间通信机制 -(Inter Process Communication,IPC),通过该机制将Hurd实现为分布式多服务器, -Hurd据此实现接口,从而实现传统操作系统提供的服务。 +GNU Mach is the microkernel upon which a GNU Hurd system is based. It provides +an Inter Process Communication (IPC) mechanism that the Hurd uses to define +interfaces for implementing in a distributed multi-server fashion the services +a traditional operating system kernel provides. -GNU Mach 作为 GNU Project 由 Hurd开发人员进行维护,并和 [[Mach]] 3.0 保持兼容。 +It is maintained by the Hurd developers for the GNU project and remains +compatible with [[Mach]] 3.0. -GNU Mach 主要的 [[设备驱动(device_drivers)]] 来自 Linux 2.0。这些驱动依靠 -Mach 中的 Linux [[emulation]] 层运行。 +The majority of GNU Mach's [[device_driver]]s are from Linux 2.0. They were +added using glue code, i.e., a Linux [[emulation]] layer in Mach. -GNU Mach 运行在 x86 机上。详细信息参见 -[[硬件兼容列表(hardware_compatibility_list)]],还有关于[[移植(ports)]]到其 -他架构上的信息。 +GNU Mach runs on x86 machines. See the +[[hardware_compatibility_list]] and information about +[[ports]] to other architectures. -最新版本:[[GNU Mach 1.6|news/2015-10-31-releases]]。 +The latest release is [[GNU Mach 1.6|news/2015-10-31-releases]]. +# Advantages of GNU Mach -# GNU Mach 的优点 +GNU Mach is not the most advanced [[microkernel]] known to the planet, nor is +it the fastest or smallest, but it has a rich set of [[interface]]s and some +features which make it useful as the base of the [[Hurd]] system. -GNU Mach 不是世界上已知最先进的 [[微内核(microkernel)]],也不是最小、最快的, -但是其拥有作为 [[Hurd]] 系统基础的,丰富的 [[接口(interfaces)]] 以及特性。 - - - * **是开放源码的** + * **it's free software** - 任何人在 [[GNU_General_Public_License_(GPL)|gpl]] 的授权下,都可以对其使用 - ,修改,并且二次发布。 + Anybody can use, modify, and redistribute it under the terms of the + [[GNU_General_Public_License_(GPL)|gpl]]. - * **是易于维护的** + * **it's built to survive** - 作为一款 [[微内核(microkernel)]],GNU Mach 没有实现太多其他操作系统都有的 - 特性,而是仅仅实现了一个用于在其上实现完整的操作系统的,所需特性的最小集 - 合。这意味着操作系统大量的代码将剥离 GNU Mach,在其外部进行维护;当这些代码 - 需要重构的时候,微内核的代码仍能保持稳定的兼容性。 - - * **是可于扩展的** - - Mach 能非常良好的支持 SMP 和网络集群技术。提供内核级的线程支持,并且内核本 - 身都因此受益。在 [[IPC]] 层的网络透明使得系统可以提供机器边界的资源 - (目前 GNU Mach 不对NORMA IPC提供支持)。 - - * **是实际存在的** + As a [[microkernel]], GNU Mach doesn't implement a lot of the features + commonly found in an operating system, but only the bare minimum that is + required to implement a full operating system on top of it. This means + that a lot of the operating system code is maintained outside of GNU Mach, + and while this code may go through a complete redesign, the code of the + microkernel can remain comparatively stable. + + * **it's scalable** + + Mach is particularly well suited for SMP and network cluster techniques. + Thread support is provided at the kernel level, and the kernel itself takes + advantage of that. Network transparency at the [[IPC]] level makes + resources of the system available across machine boundaries (with NORMA + IPC, currently not available in GNU Mach). - Mach 微内核是真实存在的,并且现在就可以使用。其不是一个研究或者倡议。用户不 - 需要等待,现在就可以开始使用并开发它。Mach 在过去曾经被用在很多操作系统中, - 通常作为一个独立 UNIX 服务器的基础。在 GNU 系统,Mach 作为一个使用的多服务 - 器操作系统([[Hurd]])的基础。 + * **it exists** + + The Mach microkernel is real software that works Right Now. It is not a + research or a proposal. You don't have to wait at all before you can start + using and developing it. Mach has been used in many operating systems in + the past, usually as the base for a single UNIX server. In the GNU system, + Mach is the base of a functional multi-server operating system, the + [[Hurd]]. -# 启动 +# Booting -想要实际的使用这个内核并引导 GNU 操作系统,用户需要一个启动引导程序 -(boot loader)。不是所有的启动引导程序都能启动 GNU 操作系统,用户需要一个支持 -多重引导启动标准(multiboot standard)的启动引导程序。 GNU 操作系统可使用 -[[GNU_GRUB|grub]],其支持非常多的操作系统,包括 GNU/Hurd。 +To actually use the kernel and boot the GNU operating system, you need a boot +loader. Not all boot loaders are capable to boot the GNU system, you need one +that supports the multiboot standard. The bootloader of the GNU system is +[[GNU_GRUB|grub]], which supports a broad range of operating systems including +GNU/Hurd. -# 开发 +# Development - * [[参考手册(Reference_Manual)]] - * [[构建(Building)]] - * [[调试(Debugging)]] - * [[启动跟踪(Boot_Trace)]] - * [[内存管理(Memory_Management)]] + * [[Reference_Manual]] + * [[Building]] + * [[Debugging]] + * [[Boot_Trace]] + * [[Memory_Management]] * [[Continuation]]s - * [[抢占(Preemption)]] - * [[项目(Projects)]] - * [[规则(Rules)]] + * [[Preemption]] + * [[Projects]] + * [[Rules]] * [[Open Issues|tag/open_issue_gnumach]] - -- cgit v1.2.3 From 79586834089f2938b9e78dfb319d07edcad64ecd Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 20 Apr 2016 01:03:34 +0200 Subject: document how to profile the kernel --- microkernel/mach/gnumach.mdwn | 1 + microkernel/mach/gnumach/profiling.mdwn | 31 +++++++++++++++++++++++++++++++ open_issues/profiling.mdwn | 4 +--- 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 microkernel/mach/gnumach/profiling.mdwn (limited to 'microkernel') diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn index 88aa1432..ba970a03 100644 --- a/microkernel/mach/gnumach.mdwn +++ b/microkernel/mach/gnumach.mdwn @@ -79,6 +79,7 @@ GNU/Hurd. * [[Reference_Manual]] * [[Building]] * [[Debugging]] + * [[Profiling]] * [[Boot_Trace]] * [[Memory_Management]] * [[Continuation]]s diff --git a/microkernel/mach/gnumach/profiling.mdwn b/microkernel/mach/gnumach/profiling.mdwn new file mode 100644 index 00000000..5b3f5e0b --- /dev/null +++ b/microkernel/mach/gnumach/profiling.mdwn @@ -0,0 +1,31 @@ +[[!meta copyright="Copyright © 2016 +Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +Here is some guide to profile the GNU Mach kernel uses for a userland process. + +[[!toc levels=2]] + +First, it needs to be enabled: since this will leak kernel addresses to userland, it is not enabled by default. Pass `--enable-kernelsample` to the `./configure` invocation, and rebuild the kernel. + +Then you need to get the start and end of the text portion of the kernel: + + nm gnumach | grep " _start$" + nm gnumach | grep " etext$" + +And you need to patch glibc to use these start and end instead of the userland starts and ends: in `glibc/csu/gmon-start.c`, in the `__monstartup` call, replace `TEXT_START` and `&etext` with the start and end addresses obtained above. Rebuild libc (`make lib` is enough). Install `csu/gcrt[01].o` in `/usr/lib/i386-gnu/`. + +Now, you can rebuild your application with `-pg`, run it (for translators, use `settrans -a`, work with it, and use `settrans -fga` to terminate it nicely), you will get a `gmon.out` file. Normally you would just run `gprof application` to get the profiling, but here we need to get symbols from the kernel: + + nm -n gnumach > /tmp/list + +and then we can run `gprof -S /tmp/list application`, and the kernel profiling will show up. + +You will probably notice that `spl0` will show up a lot, more precisely the `sti` instruction. This is because all the kernel code running with interrupts disabled can't be profiled, and will be accounted for on that instruction (which triggers the profiling interrupts which should have happened while the interrupts were disabled). diff --git a/open_issues/profiling.mdwn b/open_issues/profiling.mdwn index e7dde903..57e3bedf 100644 --- a/open_issues/profiling.mdwn +++ b/open_issues/profiling.mdwn @@ -18,9 +18,7 @@ done for [[performance analysis|performance]] reasons. * [[hurd/debugging/rpctrace]] * [[gprof]] - - Should be working, but some issues have been reported, regarding GCC spec - files. Should be possible to fix (if not yet done) easily. + * [[profiling GNU Mach|microkernel/mach/gnumach/profiling]] * [[glibc]]'s sotruss -- cgit v1.2.3