Date: Mon, 26 May 2003 18:05:25 -0700 (PDT) From: Marcel Moolenaar <marcel@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 31910 for review Message-ID: <200305270105.h4R15PSE033955@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=31910 Change 31910 by marcel@marcel_nfs on 2003/05/26 18:04:37 IFC 31909 Affected files ... .. //depot/projects/ia64/lib/libthr/arch/i386/i386/_setcurthread.c#5 integrate .. //depot/projects/ia64/lib/libthr/arch/ia64/ia64/_curthread.c#5 integrate .. //depot/projects/ia64/lib/libthr/arch/sparc64/sparc64/_setcurthread.c#2 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_create.c#7 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_gc.c#5 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_init.c#5 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_join.c#4 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_private.h#5 integrate .. //depot/projects/ia64/lib/libthr/thread/thr_stack.c#3 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/early-adopter/article.sgml#7 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/common/dev.sgml#11 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/common/intro.sgml#3 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/i386/proc-i386.sgml#5 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/ia64/article.sgml#3 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/ia64/proc-ia64.sgml#3 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/share/sgml/release.dsl#8 integrate .. //depot/projects/ia64/sys/alpha/alpha/busdma_machdep.c#14 integrate .. //depot/projects/ia64/sys/alpha/include/bus.h#9 integrate .. //depot/projects/ia64/sys/amd64/amd64/busdma_machdep.c#2 integrate .. //depot/projects/ia64/sys/amd64/include/bus_dma.h#3 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx.c#11 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx.h#9 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx.reg#10 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx.seq#9 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx_inline.h#9 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx_osm.h#8 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic79xx_pci.c#10 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx.c#11 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx.h#7 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx.reg#7 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx.seq#6 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx_inline.h#6 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx_osm.h#9 integrate .. //depot/projects/ia64/sys/dev/aic7xxx/aic7xxx_pci.c#8 integrate .. //depot/projects/ia64/sys/i386/i386/busdma_machdep.c#17 integrate .. //depot/projects/ia64/sys/i386/include/bus_dma.h#5 integrate .. //depot/projects/ia64/sys/ia64/ia64/machdep.c#71 integrate .. //depot/projects/ia64/sys/ia64/ia64/pmap.c#64 integrate .. //depot/projects/ia64/sys/ia64/ia64/support.s#8 integrate .. //depot/projects/ia64/sys/sparc64/include/bus.h#13 integrate .. //depot/projects/ia64/sys/sparc64/include/iommuvar.h#10 integrate .. //depot/projects/ia64/sys/sparc64/pci/psycho.c#22 integrate .. //depot/projects/ia64/sys/sparc64/sbus/sbus.c#13 integrate .. //depot/projects/ia64/sys/sparc64/sparc64/bus_machdep.c#16 integrate .. //depot/projects/ia64/sys/sparc64/sparc64/iommu.c#16 integrate .. //depot/projects/ia64/tools/tools/tinderbox/tbmaster.pl#11 integrate .. //depot/projects/ia64/usr.bin/usbhidctl/usbhid.c#6 integrate .. //depot/projects/ia64/usr.sbin/pkg_install/info/show.c#12 integrate .. //depot/projects/ia64/usr.sbin/pkg_install/lib/lib.h#9 integrate .. //depot/projects/ia64/usr.sbin/pkg_install/lib/str.c#3 integrate Differences ... ==== //depot/projects/ia64/lib/libthr/arch/i386/i386/_setcurthread.c#5 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/arch/i386/i386/_setcurthread.c,v 1.7 2003/05/23 23:39:31 mtm Exp $ + * $FreeBSD: src/lib/libthr/arch/i386/i386/_setcurthread.c,v 1.8 2003/05/25 22:40:57 mtm Exp $ */ #include <sys/types.h> @@ -87,13 +87,15 @@ } void * -_set_curthread(ucontext_t *uc, struct pthread *thr) +_set_curthread(ucontext_t *uc, struct pthread *thr, int *err) { union descriptor desc; void **ldt_entry; int ldt_index; int error; + *err = 0; + /* * If we are setting up the initial thread, the gs register * won't be setup for the current thread. In any case, we @@ -106,8 +108,11 @@ if (ldt_inited == NULL) ldt_init(); - if (ldt_free == NULL) - abort(); + if (ldt_free == NULL) { + /* Concurrent thread limit reached */ + *err = curthread->error = EAGAIN; + return (NULL); + } /* * Pull one off of the free list and update the free list pointer. ==== //depot/projects/ia64/lib/libthr/arch/ia64/ia64/_curthread.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libthr/arch/ia64/ia64/_curthread.c,v 1.2 2003/05/25 06:49:19 marcel Exp $"); +__FBSDID("$FreeBSD: src/lib/libthr/arch/ia64/ia64/_curthread.c,v 1.3 2003/05/25 22:40:57 mtm Exp $"); #include <sys/types.h> #include <sys/ucontext.h> @@ -48,9 +48,9 @@ } void * -_set_curthread(ucontext_t *uc, struct pthread *thread) +_set_curthread(ucontext_t *uc, struct pthread *thread, int *err) { - + *err = 0; if (uc != NULL) uc->uc_mcontext.mc_special.tp = (uint64_t)thread; else ==== //depot/projects/ia64/lib/libthr/arch/sparc64/sparc64/_setcurthread.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/lib/libthr/arch/sparc64/sparc64/_setcurthread.c,v 1.2 2003/04/03 03:34:50 jake Exp $"); +__FBSDID("$FreeBSD: src/lib/libthr/arch/sparc64/sparc64/_setcurthread.c,v 1.3 2003/05/25 22:40:57 mtm Exp $"); #include <sys/types.h> #include <sys/ucontext.h> @@ -48,9 +48,9 @@ } void * -_set_curthread(ucontext_t *uc, struct pthread *thread) +_set_curthread(ucontext_t *uc, struct pthread *thread, int *err) { - + *err = 0; if (uc != NULL) uc->uc_mcontext.mc_global[6] = (uint64_t)thread; else ==== //depot/projects/ia64/lib/libthr/thread/thr_create.c#7 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_create.c,v 1.7 2003/05/25 08:35:37 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_create.c,v 1.9 2003/05/26 00:37:07 mtm Exp $ */ #include <errno.h> #include <stdlib.h> @@ -116,7 +116,17 @@ new_thread->ctx.uc_stack.ss_sp = new_thread->stack; new_thread->ctx.uc_stack.ss_size = pattr->stacksize_attr; makecontext(&new_thread->ctx, _thread_start, 0); - new_thread->arch_id = _set_curthread(&new_thread->ctx, new_thread); + new_thread->arch_id = _set_curthread(&new_thread->ctx, new_thread, &ret); + if (ret != 0) { + if (pattr->stackaddr_attr == NULL) { + STACK_LOCK; + _thread_stack_free(new_thread->stack, + pattr->stacksize_attr, pattr->guardsize_attr); + STACK_UNLOCK; + } + free(new_thread); + return (ret); + } /* Copy the thread attributes: */ memcpy(&new_thread->attr, pattr, sizeof(struct pthread_attr)); ==== //depot/projects/ia64/lib/libthr/thread/thr_gc.c#5 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_gc.c,v 1.4 2003/05/25 08:31:33 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_gc.c,v 1.5 2003/05/26 00:37:07 mtm Exp $ * * Garbage collector thread. Frees memory allocated for dead threads. * @@ -113,6 +113,7 @@ * the caller to pthread_create() and has not * been destroyed yet: */ + STACK_LOCK; if (pthread->attr.stackaddr_attr == NULL && pthread->stack != NULL) { _thread_stack_free(pthread->stack, @@ -120,6 +121,7 @@ pthread->attr.guardsize_attr); pthread->stack = NULL; } + STACK_UNLOCK; /* * If the thread has not been detached, leave ==== //depot/projects/ia64/lib/libthr/thread/thr_init.c#5 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_init.c,v 1.6 2003/05/25 08:31:33 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_init.c,v 1.7 2003/05/25 22:40:57 mtm Exp $ */ /* Allocate space for global thread variables here: */ @@ -162,6 +162,7 @@ size_t len; int mib[2]; sigset_t set; + int error; struct clockinfo clockinfo; struct sigaction act; @@ -221,7 +222,7 @@ memset(pthread, 0, sizeof(struct pthread)); _thread_initial = pthread; - pthread->arch_id = _set_curthread(NULL, pthread); + pthread->arch_id = _set_curthread(NULL, pthread, &error); /* Get our thread id. */ thr_self(&pthread->thr_id); ==== //depot/projects/ia64/lib/libthr/thread/thr_join.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.5 2003/05/25 08:31:33 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.6 2003/05/26 00:28:49 mtm Exp $ */ #include <errno.h> #include <pthread.h> @@ -82,13 +82,13 @@ _SPINLOCK(&pthread->lock); break; } - THREAD_LIST_UNLOCK; /* Check if the thread was not found or has been detached: */ if (thread == NULL || ((pthread->attr.flags & PTHREAD_DETACHED) != 0)) { if (thread != NULL) _SPINUNLOCK(&pthread->lock); + THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; ret = ESRCH; goto out; @@ -98,6 +98,7 @@ /* Multiple joiners are not supported. */ /* XXXTHR - support multiple joiners. */ _SPINUNLOCK(&pthread->lock); + THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; ret = ENOTSUP; goto out; @@ -112,16 +113,16 @@ /* Keep track of which thread we're joining to: */ curthread->join_status.thread = pthread; - _SPINUNLOCK(&pthread->lock); while (curthread->join_status.thread == pthread) { PTHREAD_SET_STATE(curthread, PS_JOIN); /* Wait for our signal to wake up. */ _thread_critical_exit(curthread); + _SPINUNLOCK(&pthread->lock); + THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; _thread_suspend(curthread, NULL); - /* XXX - For correctness reasons. */ - DEAD_LIST_LOCK; + _thread_critical_enter(curthread); } @@ -133,14 +134,6 @@ if ((ret == 0) && (thread_return != NULL)) *thread_return = curthread->join_status.ret; _thread_critical_exit(curthread); - /* - * XXX - Must unlock here, instead of doing it earlier, - * because it could lead to a deadlock. If the thread - * we are joining is waiting on this lock we would - * deadlock if we released this lock before unlocking the - * joined thread. - */ - DEAD_LIST_UNLOCK; } else { /* * The thread exited (is dead) without being detached, and no @@ -158,6 +151,7 @@ _SPINUNLOCK(&pthread->lock); if (pthread_cond_signal(&_gc_cond) != 0) PANIC("Cannot signal gc cond"); + THREAD_LIST_UNLOCK; DEAD_LIST_UNLOCK; } ==== //depot/projects/ia64/lib/libthr/thread/thr_private.h#5 (text+ko) ==== @@ -31,7 +31,7 @@ * * Private thread definitions for the uthread kernel. * - * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.12 2003/05/25 08:48:11 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.14 2003/05/26 00:37:07 mtm Exp $ */ #ifndef _THR_PRIVATE_H @@ -578,6 +578,14 @@ ; #endif +SCLASS spinlock_t stack_lock +#ifdef GLOBAL_PTHREAD_PRIVATE += _SPINLOCK_INITIALIZER +#endif +; +#define STACK_LOCK _SPINLOCK(&stack_lock); +#define STACK_UNLOCK _SPINUNLOCK(&stack_lock); + /* List of all threads: */ SCLASS TAILQ_HEAD(, pthread) _thread_list #ifdef GLOBAL_PTHREAD_PRIVATE @@ -711,7 +719,7 @@ void _cond_wait_backout(pthread_t); int _find_thread(pthread_t); pthread_t _get_curthread(void); -void *_set_curthread(ucontext_t *, struct pthread *); +void *_set_curthread(ucontext_t *, struct pthread *, int *); void _retire_thread(void *arch_id); void *_thread_stack_alloc(size_t, size_t); void _thread_stack_free(void *, size_t, size_t); ==== //depot/projects/ia64/lib/libthr/thread/thr_stack.c#3 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/thread/thr_stack.c,v 1.2 2003/05/25 08:31:33 mtm Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_stack.c,v 1.3 2003/05/26 00:37:07 mtm Exp $ */ #include <sys/types.h> #include <sys/mman.h> @@ -144,7 +144,7 @@ * Use the garbage collector mutex for synchronization of the * spare stack list. */ - DEAD_LIST_LOCK; + STACK_LOCK; if ((spare_stack = LIST_FIRST(&_dstackq)) != NULL) { /* Use the spare stack. */ @@ -153,7 +153,7 @@ } /* Unlock the garbage collector mutex. */ - DEAD_LIST_UNLOCK; + STACK_UNLOCK; } /* * The user specified a non-default stack and/or guard size, so try to @@ -165,7 +165,7 @@ * Use the garbage collector mutex for synchronization of the * spare stack list. */ - DEAD_LIST_LOCK; + STACK_LOCK; LIST_FOREACH(spare_stack, &_mstackq, qe) { if (spare_stack->stacksize == stack_size && @@ -177,7 +177,7 @@ } /* Unlock the garbage collector mutex. */ - DEAD_LIST_UNLOCK; + STACK_UNLOCK; } /* Check if a stack was not allocated from a stack cache: */ ==== //depot/projects/ia64/release/doc/ja_JP.eucJP/early-adopter/article.sgml#7 (text+ko) ==== @@ -19,24 +19,28 @@ <!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN"> %release; + +<!ENTITY release.4x "4.<replaceable>X</replaceable>"> +<!ENTITY release.5x "5.<replaceable>X</replaceable>"> + ]> <!-- FreeBSD Japanese Documentation Project - $FreeBSD: src/release/doc/ja_JP.eucJP/early-adopter/article.sgml,v 1.6 2003/02/11 18:56:46 rushani Exp $ - Original revision: 1.12 + $FreeBSD: src/release/doc/ja_JP.eucJP/early-adopter/article.sgml,v 1.7 2003/05/26 15:32:33 rushani Exp $ + Original revision: 1.15 --> <article> <articleinfo> - <title>&os; 5.0-RELEASE 初期利用者のための手引き</title> + <title>&os; &release.current; 初期利用者のための手引き</title> <authorgroup> <corpauthor>&os; リリースエンジニアリングチーム</corpauthor> </authorgroup> - <pubdate>$FreeBSD: src/release/doc/ja_JP.eucJP/early-adopter/article.sgml,v 1.6 2003/02/11 18:56:46 rushani Exp $</pubdate> + <pubdate>$FreeBSD: src/release/doc/ja_JP.eucJP/early-adopter/article.sgml,v 1.7 2003/05/26 15:32:33 rushani Exp $</pubdate> <copyright> <year>2002</year> @@ -44,44 +48,56 @@ <holder role="mailto:re@FreeBSD.org">&os; リリースエンジニアリングチーム</holder> </copyright> + + <abstract> + <para>この記事では、&os; &release.current; の現状を + &release.5x; 系列のリリースまたは &os; 一般に不慣れな + 利用者の立場から詳細に述べています。 + リリースエンジニアリングの背景となる事情、 + 新機能のハイライト、初期利用者が直面する可能性のある障害を記載しています。 + また、4-STABLE 開発ブランチの将来のリリース計画と + 既存のシステムをアップグレードするためのヒントをいくつか紹介しています。</para> + </abstract> </articleinfo> <sect1 id="intro"> <title>はじめに</title> - <para>&os; 5.0 は、2 年ぶりに公開される新しいメジャーバージョンです。 + <para>&os; &release.5x; は、2 年ぶりに公開される新しいメジャーバージョンです。 さまざまな新機能に加えて、システムアーキテクチャレベルでの開発も 数多く反映されています。ただしこの進歩は、まだ広く試験されていない 新しいコードが非常に多く導入された結果でもあります。 - そのため、現在の 4.<replaceable>X</replaceable> リリースと比較すると、 - 5.0 は安定性や性能、場合によっては機能性などの点で劣っているかも知れません。</para> + そのため、現在の &release.4x; リリースと比較すると、 + 初期の &release.5x; リリースは安定性や性能、 + 場合によっては機能性などの点で劣っているかも知れません。</para> - <para>&a.re; はこのような理由から、何も考えずに古い - &os; リリースを 5.0 にアップグレードするのは<emphasis>おすすめしません</emphasis>。 - 今までどおりの動作を期待するユーザには特に、当分の間は - 4.<replaceable>X</replaceable> リリース (4.7-RELEASE や次回公開予定の - 4.8-RELEASE など) の利用をおすすめします。そのようなユーザが - 5.<replaceable>X</replaceable> へのアップグレードを考える時期としては、 + <para>&a.re; はこのような理由から、新しいリリースにおいて発生しうる問題を + ユーザが自覚して (そして対処する準備ができて) いない限り、 + 古い &os; リリースを &release.current; にアップグレードするのを + 明確に非推奨としています。 + 特に、今までどおりの動作を期待する慎重なユーザには、しばらくの間は + (4.8-RELEASE のような) &release.4x; リリースで運用することをおすすめします。 + &release.5x; へのアップグレードを考える時期としては、 おそらく 5-STABLE 開発ブランチが作成された後が適当でしょう。 - これは 5.1-RELEASE か 5.2-RELEASE の公開あたりになる見込みです。</para> + これは 5.2-RELEASE の公開あたりになる見込みです。</para> - <para>(&os; 5.0 はいわゆる<quote>卵鶏問題</quote>を抱えています。 - プロジェクトでは皆が可能な限り 5.0-RELEASE - を安定で信頼性の高いものにしようと考えているのですが、 + <para>(&os; &release.5x; はいわゆる<quote>卵鶏問題</quote>を抱えています。 + プロジェクトでは皆が可能な限りリリースを + 安定で信頼性の高いものにしようと考えているのですが、 その安定性と信頼性を得るには、広い範囲での試験、 特にシステムの新しい機能に対する試験が必要です。 しかし、たくさんのユーザにシステムを試験してもらうためには、 実際のところ最初のリリースを作成し、 配布しなければならないのです!)</para> - <para>この文書では、&os; 5.0-RELEASE のインストールと運用における + <para>この文書では、&os; &release.current; のインストールと運用における いくつかの問題点について説明しています。 まず、&os; のリリース工程の概要について解説し、 - 次に &os; 5.0 の特筆すべき新機能のいくつかと、 + 次に &os; &release.current; の特筆すべき新機能のいくつかと、 不注意からユーザが陥りやすいと思われる問題について紹介します。 また、4-STABLE ベースのリリースを使い続けようと考えているユーザ向けに、 今後の 4-STABLE 開発ブランチにおける短期・中期的なプランについても触れます。 - 最後に、4.<replaceable>X</replaceable> システムを 5.0 + 最後に、&release.4x; システムを &release.current; にアップグレードする際の注意点を示します。</para> </sect1> @@ -102,12 +118,12 @@ である程度試験された機能だけが追加されます。 現時点で活発に開発されている STABLE ブランチは 1 つだけです。 そのブランチは <quote>4-STABLE</quote> と呼ばれており、 - &os; 4.<replaceable>X</replaceable> + &os; &release.4x; リリースはすべてこのブランチから作成されました。 このブランチは CVS リポジトリで <literal>RELENG_4</literal> というタグが付けられています。</para> - <para>&os; 5.0 は CURRENT ブランチをベースにしています。 + <para>&os; 5.0 と 5.1 は CURRENT ブランチをベースにしています。 CURRENT ブランチからのリリースは 2 年ぶりです (前回の &os; 4.0 は 2000 年 3 月でした)。</para> @@ -117,29 +133,33 @@ 以前の 2 つの stable ブランチ (3-STABLE および 4-STABLE) は、 それぞれの <quote>x.0</quote> リリースの直後 (それぞれ 3.0 と 4.0) に 作成されていました。しかしこの方法では、 - 新しい STABLE ブランチが作成されてから、 - CURRENT ブランチとその新しいブランチが安定するまでに + 新しい STABLE ブランチが作成される前に、 + CURRENT ブランチが安定する 十分な時間が確保できないという問題があります。</para> <para>そのためリリースエンジニアリングチームは、 各ブランチがそのブランチの持つ性格に対して 比較的安定した状態になったことを確認してから、 CVS リポジトリに 5-STABLE ブランチを作成することを予定しています。 - おそらくブランチが作成されるまでに、5.<replaceable>X</replaceable> + おそらくブランチが作成されるまでに、&release.5x; 系列からリリース版がいくつか公開されるでしょう。 - 5-STABLE ブランチの登場は、5.1-RELEASE か 5.2-RELEASE + 5-STABLE ブランチの登場は、5.2-RELEASE の後あたりになると見込んでいます。</para> <para>&os; リリースエンジニアリング工程に関する詳細は、 <ulink url="http://www.FreeBSD.org/releng/index.html">リリースエンジニアリングのウェブページ</ulink> - および、&os; に含まれている<ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/index.html">リリースエンジニアリング</ulink>という記事をご覧ください。</para> + および、<ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/index.html"><quote>&os; リリースエンジニアリング</quote></ulink> + という記事をご覧ください。 + きたる 5-STABLE 開発ブランチについての特記事項は + <ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/5-roadmap/index.html"><quote>5-STABL 開発ブランチのロードマップ</quote></ulink> + という記事をご覧ください。</para> </sect1> <sect1 id="new"> <title>新機能</title> - <para>&os; 5.0 の大きな魅力の 1 つは、数多くの新機能です。 + <para>&os; &release.5x; の大きな魅力の 1 つは、数多くの新機能です。 これらの新しい機能は、&os; 4-STABLE 開発ブランチには統合できなかった 大きなアーキテクチャレベルの変更も当然ながら含まれています (一方で新しいデバイスドライバやユーザランドユーティリティなど、 @@ -149,7 +169,8 @@ <itemizedlist> <listitem> <para>SMPng: <quote>次世代</quote>に向けた SMP マシン対応です (開発中)。 - 現在は、カーネルにおけるマルチプロセッサの同時実行に部分的に対応しています。</para> + 現在は、カーネルにおけるマルチプロセッサの同時実行に部分的に対応しています。 + この作業は現在進行中です。</para> </listitem> <listitem> @@ -157,7 +178,10 @@ (Kernel Scheduled Entities; KSE) は、スケジューラアクティベーション (Scheduler Activations) の手法と同様の、 1 個のプロセスが複数のカーネルレベルスレッドを - 持てるようにするための機構です。</para> + 持てるようにするための機構です。この機構を利用して + マルチスレッドのユーザランドプログラムを実現するために、 + (実験的な) <filename>libkse</filename> ライブラリと + <filename>libthr</filename> ライブラリが提供されています。</para> </listitem> <listitem> @@ -168,7 +192,7 @@ <listitem> <para>GCC: コンパイラツールチェインが GCC 2.95.<replaceable>X</replaceable> ベースのものから、 - GCC 3.2.1 に更新されました。</para> + GCC 3.2.2 に更新されました。</para> </listitem> <listitem> @@ -190,7 +214,11 @@ <listitem> <para>UFS2: UFS2 オンディスクフォーマットが新たに追加されました。 - これは、ファイル単位での拡張属性と巨大なファイルに対応しています。</para> + これは、ファイル単位での拡張属性と巨大なファイルに対応しています。 + また、UFS2 は &man.newfs.8; のデフォルトのフォーマットになりました。 + pc98 を除くすべてのプラットフォームにおいて、 + &man.sysinstall.8; はデフォルトで + UFS2 のファイルシステムを作成します。</para> </listitem> <listitem> @@ -199,14 +227,14 @@ </itemizedlist> - <para>さらに詳しい新機能のリストは、&os; 5.0 - のリリースノートに書かれています。</para> + <para>さらに詳しい新機能のリストは、&os; &release.prev; と + &os; &release.current; のリリースノートに書かれています。</para> </sect1> <sect1 id="drawbacks"> <title>初期リリースを使う上での欠点</title> - <para>&os; 5.0 には説明したような新機能が追加されているのですが、 + <para>&os; &release.5x; には説明したような新機能が追加されているのですが、 問題があったり、意図どおりに動かないという部分もいくつか存在します。 これはほとんどの場合、多くの機能がまだ開発中であることに起因したものです。 次に、問題のある部分のいくつかをまとめたリストを示します。</para> @@ -215,7 +243,9 @@ <listitem> <para>たとえば、上の新機能リストにある SMPng や KSE など、 - 開発がまだ終わっていない機能が多くあります。</para> + 開発がまだ終わっていない機能が多くあります。 + これらの機能はテストと実験用途には向いているものの、 + 製品品質には達していないかもしれません。</para> </listitem> <listitem> @@ -237,6 +267,14 @@ </listitem> <listitem> + <para>利用者と保守担当者が不足しているため、 + &os; ベースシステムの一部が破綻状態に陥りました。 + これら (の使われないことの多い機能) は現在削除されています。 + 特筆すべき事例に、a.out 形式の実行ファイルの生成、 + XNS ネットワーキング対応、X-10 コントローラドライバが挙げられます。</para> + </listitem> + + <listitem> <para>&os; 4.0 で正しく動作していた多くの ports/packages が、 &os; 5.0 では構築できなくなったり、 正しく動作しなくなったりしています。 @@ -245,8 +283,8 @@ </listitem> <listitem> - <para>&os; 5.0 は CURRENT から 2 年ぶりにリリースされたものです。 - これはその多くの新機能が、一般向けに広く公開される初めての機会になります。 + <para>&os; &release.5x; の多くの新機能が、 + 一般向けに広く公開される初めての機会になります。 カーネルは、(SMPng などの) このような新機能によって、 大きく変更されています。</para> </listitem> @@ -263,7 +301,7 @@ &os; 5.0 は、このような -STABLE ブランチの持つ安定性を持っていません (訳注: &os; 5.0 への新機能追加は、「安定した後に統合」という -STABLE ブランチの慣習に則っていないという意味です)。 - (5-STABLE 開発ブランチは、5.1-RELEASE もしくは 5.2-RELEASE + (5-STABLE 開発ブランチは、5.2-RELEASE の後あたりに作成される予定です)。</para> </listitem> @@ -272,14 +310,14 @@ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/index.html">ハンドブック</ulink> と <ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/faq/index.html">FAQ</ulink> - のような文書は &os; 5.0 + のような文書は &os; &release.5x; までに加えられた最近の変更を反映していないかもしれません。</para> </listitem> </itemizedlist> <para>このようにシステムの安定性に影響する欠点が多くあることから、 - 5.<replaceable>X</replaceable> 系列が十分に安定するまでの間、 + &release.5x; 系列が十分に安定するまでの間、 リリースエンジニアリングチームは、 現在の機能性・安定性を重要視するサイトやユーザに対して 4-STABLE ブランチから公開されるリリース版を利用することを推奨しています。</para> @@ -289,25 +327,25 @@ <title>4-STABLE ブランチに対する今後の予定</title> <para>&os; 5.0 が公開されても、4-STABLE ブランチの開発が終了するわけではありません。 - このブランチからは少なくとも 1 回、4.8-RELEASE が公開されます。 - 4.8-RELEASE の公開は、現時点では 2003 年 3 月 1 日の予定です。</para> - - <para>執筆時点では、リリースエンジニアリングチームは - 4-STABLE ブランチからの (4.8 以降の) リリースの公開について、 - はっきりとした計画を持っていません。ただし、4.9-RELEASE、あるいは - 4.10-RELEASE の公開は十分にありえます。4-STABLE ブランチからの - 将来のリリースは、いくつかの要素が絡んできます。 + 実際に、&os; 4.8-RELEASE は 5.0-RELEASE の + 2 ヵ月後の 2003 年 4 月に公開されました。 + このブランチからは、最低でももう 1 回のリリース、 + すなわち 4.9-RELEASE が公開されるでしょう + (現在は 2003 年の夏を予定しています)。 + 4.10-RELEASE が公開される可能性についても同様です。 + 4-STABLE ブランチからの将来のリリースは、いくつかの要素が絡んできます。 最も重要なのは、5-STABLE ブランチの作成と、その安定性です。 CURRENT が 5-STABLE ブランチを作成できるほどに安定していなかった場合、 リリースは 4-STABLE ブランチから作成することになるでしょう。 また 4-STABLE には、4-STABLE ブランチからの最終リリースが 告知されるまで、開発者の判断とリリースエンジニアリングの - ポリシに基づいて HEAD から新機能が統合されます。</para> + ポリシに基づいて <literal>HEAD</literal> から新機能が統合されます。</para> - <para>ある程度ですが、リリースエンジニアリングチームは、 + <para>ある程度ですが、リリースエンジニアリングチームは + 開発者コミュニティと同様にプロジェクト全体として、 将来の 4-STABLE リリースに対するユーザのニーズを考慮するつもりです。 ただしそのニーズは、リリースエンジニアリング作業に必要な労力・資源 - (人的資源、計算機資源、ミラーアーカイブ容量) + (特に開発者の時間、計算機資源、ミラーアーカイブ容量) に見合ったものである必要があるでしょう。</para> <para>&a.security-officer; は &os; ウェブサイトの @@ -321,11 +359,11 @@ </sect1> <sect1 id="upgrade"> - <title>アップグレードの際の注意点</title> + <title>&os; &release.4x; からアップグレードする際の注意点</title> <para>この節では現在 &os; システムを利用している方向けに、 - &os; 4.<replaceable>X</replaceable> システムを - 5.<replaceable>X</replaceable> システムにアップグレードする際の + &os; &release.4x; システムを + &release.5x; システムにアップグレードする際の 注意点について説明します。 &os; をアップグレードする場合は、アップグレードしたいバージョンの リリースノートと errata 文書を読むこと、また、 @@ -339,15 +377,18 @@ <quote>すべてをバックアップして、再フォーマット、再インストールし、 最後にバックアップを展開</quote>することでしょう。 この方法は、互換性がなかったり、古くて使えない実行ファイルや - 設定ファイルによって、新しいシステムが汚染される問題を回避することができます。</para> + 設定ファイルによって、新しいシステムが汚染される問題を回避することができます。 + また、新規にファイルシステムを作成することによって、 + デフォルトフォーマットである + UFS2 の新機能の恩恵を受けることができます。</para> <para>現時点の &man.sysinstall.8; のバイナリアップグレード機能は、 メジャーバージョンをまたぐアップグレードに対して 十分に試験されていません。 そのため、この機能を使うことはおすすめできません。 特に、バイナリアップグレードは - &os; 4.<replaceable>X</replaceable> に存在して - &os 5.0 に存在しないファイルをシステムに数多く残します。 + &os; &release.4x; に存在して + &os; &release.5x; に存在しないファイルをシステムに数多く残します。 これらの古いファイルは何らかの問題を引き起こす可能性があります。</para> <para>i386 および pc98 プラットフォームの 4-STABLE では、 @@ -372,7 +413,7 @@ カーネルではなく、通常の <literal>GENERIC</literal> カーネルが 使用できるという点があげられるでしょう。 理論的には、Microsoft Windows NT 4 インストール CDROM - が起動できるシステムなら、&os; 5.0 CDROM も動作するはずです。</para> + が起動できるシステムなら、&os; &release.5x; CDROM も動作するはずです。</para> </sect2> <sect2> @@ -404,8 +445,8 @@ もインストールするようになっていますので、 この変更に気づくユーザはごく一部でしょう。</para> - <para>基本的に、従来の 4.<replaceable>X</replaceable> - で使っていた実行ファイルは 5.<replaceable>X</replaceable> でも動作します。 + <para>基本的に、従来の &release.4x; + で使っていた実行ファイルは &release.5x; でも動作します。 ただし、これには <filename>compat4x</filename> 配布物がインストールされていることが必要です。 つまり、古い ports を使うことは<emphasis>おそらく</emphasis>可能です。</para> @@ -418,16 +459,43 @@ このディレクトリをリネームしておくと良いでしょう。 こうしないと、(特に C++ プログラムで) コンパイラが古いヘッダと 新しいヘッダを混ぜて使用してしまい、おかしな結果になる可能性があります。</para> + + <para><filename>MAKEDEV</filename> がもはや提供されなくなり、 + また必要なくなりました。 + FreeBSD &release.5x; は、必要に応じてデバイスノードを自動的に作成する + デバイスファイルシステムを利用しています。 + 詳細は &man.devfs.5; をご覧ください。</para> + + <para>UFS2 が + &man.newfs.8; を利用して作成するファイルシステムの + デフォルトのディスクフォーマットになりました。 + また、pc98 を除くすべてのプラットフォームにおいて、 + &man.sysinstall.8; がディスクラベル作成画面で作成する + デフォルトのファイルシステムになりました。 + &os; &release.4x; は UFS1 のみを認識する (UFS2 は認識しません) ので、 + &release.5x; と &release.4x; + の両方がアクセスする必要のあるディスクパーティションは + UFS1 で作成しなければならないことに注意してください。 + これは &man.newfs.8; の <option>-O1</option> オプションを利用するか + &man.sysinstall.8; のディスクラベル作成画面で指示することで + 指定することができます。 + このような状況は、単一のマシンで + &os; &release.5x; と &os; &release.4x; + の双方を起動するシステムでしばしば発生します。 + ディスクフォーマット間のファイルシステムを変換する方法は + (バックアップして、ファイルシステムを再度作成し、 + バックアップを展開する以外に) 存在しないことに注意してください。</para> + </sect2> </sect1> <sect1 id="summary"> <title>まとめ</title> - <para>&os; 5.0 には魅力的な機能がたくさん含まれています。 + <para>&os; &release.current; には魅力的な機能がたくさん含まれています。 しかし現時点では、それがすべての皆さんの期待に応えられるものではないかも知れません。 この文書では、リリースエンジニアリングの背景と - 5.<replaceable>X</replaceable> 系列の特筆すべき新機能の一部について、 + &release.5x; 系列の特筆すべき新機能の一部について、 初期リリースを使う上でのいくつかの欠点についてとりあげました。 また、将来の 4-STABLE 開発ブランチの計画と、 初期リリースを利用する人向けのアップグレードのヒントも説明しています。</para> ==== //depot/projects/ia64/release/doc/ja_JP.eucJP/hardware/common/dev.sgml#11 (text+ko) ==== @@ -28,13 +28,13 @@ this file to fix "missed" conversions are likely to break the build. - $FreeBSD: src/release/doc/ja_JP.eucJP/hardware/common/dev.sgml,v 1.12 2003/04/26 19:48:15 hrs Exp $ - Original revision: 1.143 + $FreeBSD: src/release/doc/ja_JP.eucJP/hardware/common/dev.sgml,v 1.13 2003/05/26 15:32:33 rushani Exp $ + Original revision: 1.155 --> <sect1 id="support"> <sect1info> - <pubdate>$FreeBSD: src/release/doc/ja_JP.eucJP/hardware/common/dev.sgml,v 1.12 2003/04/26 19:48:15 hrs Exp $</pubdate> + <pubdate>$FreeBSD: src/release/doc/ja_JP.eucJP/hardware/common/dev.sgml,v 1.13 2003/05/26 15:32:33 rushani Exp $</pubdate> </sect1info> <title>対応ハードウェア</title> @@ -94,7 +94,10 @@ <para>Promise Fasttrak-33, -66, -100, -100 TX2/TX4, -133 TX2/TX2000</para> </listitem> <listitem> - <para>Promise Ultra-33, -66, -100, -133 TX2/TX2000</para> + <para>Promise SATA150 TX2/TX4 シリアル ATA/150</para> + </listitem> + <listitem> + <para>Promise Ultra-33, -66, -100, -133 TX2/TX2000/TX4000</para> </listitem> <listitem> <para>ServerWorks ROSB4 ATA33</para> @@ -842,10 +845,12 @@ </itemizedlist> </para> - <para arch="i386,alpha,pc98,sparc64">LSI Logic Fusion/MP + <para arch="i386">IBM / Adaptec ServeRAID シリーズ (ips ドライバ)</para> + + <para arch="i386,alpha,pc98,sparc64,ia64">LSI Logic Fusion/MP architecture Fiber Channel controllers (mpt ドライバ) <itemizedlist> - <listitem> + <listitem arch="i386,alpha,pc98,sparc64"> <para>LSI FC909, FC929</para> </listitem> <listitem> @@ -1602,16 +1607,19 @@ <para>Billionton USB100, USB100LP, USB100EL, USBE100</para> </listitem> <listitem> - <para>Corega Ether FEther USB-TX, FEther USB-TXS</para> + <para>Corega Ether FEther USB-T, FEther USB-TX, FEther USB-TXS</para> </listitem> <listitem> <para>D-Link DSB-650, DSB-650TX, DSB-650TX-PNA</para> </listitem> <listitem> + <para>Elecom LD-USBL/TX</para> + </listitem> + <listitem> <para>Elsa Microlink USB2Ethernet</para> </listitem> <listitem> - <para>I/O Data USB ETTX</para> + <para>I-O Data USB ETTX</para> </listitem> <listitem> <para>Kingston KNU101TX</para> @@ -1620,7 +1628,10 @@ <para>LinkSys USB10T, USB10TA, USB10TX, USB100TX, USB100H1</para> </listitem> <listitem> - <para>Melco Inc. LUA-TX, LUA2-TX</para> + <para>Melco LUA-TX, LUA2-TX</para> + </listitem> + <listitem> + <para>Planex UE-200TX</para> </listitem> <listitem> <para>Siemens Speedstream</para> @@ -1700,6 +1711,19 @@ </itemizedlist> </para> + <para arch="i386,pc98">RealTek RTL8150 ベースの USB Ethernet NIC + (&man.rue.4; ドライバ) + + <itemizedlist> + <listitem> + <para>GREEN HOUSE GH-USB100B</para> + </listitem> + <listitem> + <para>Melco LUA-KTX</para> + </listitem> + </itemizedlist> + </para> + <para arch="i386,pc98">ASIX Electronics AX88172 ベースの USB Ethernet NIC (&man.axe.4; ドライバ) @@ -1877,7 +1901,7 @@ <listitem> <para>Intel Pro/100 S デスクトップ、サーバ、デュアルポートサーバアダプタ</para> </listitem> - <listitem> + <listitem arch="i386,ia64"> <para>多くの Intel 製マザーボードに内蔵されている Ethernet NIC</para> </listitem> <listitem arch="pc98"> @@ -1980,16 +2004,16 @@ <listitem arch="i386,alpha"> <para>3C575TX/575B/XFE575BT/575C/656/656B/656C (Cardbus)</para> </listitem> - <listitem arch="i386,alpha"> + <listitem arch="i386"> <para>Dell Optiplex GX1 内蔵の 3C918</para> </listitem> - <listitem arch="i386,alpha"> + <listitem arch="i386"> <para>Dell On-board 3C920</para> </listitem> - <listitem arch="i386,alpha"> + <listitem arch="i386"> <para>Dell Precision 内蔵の 3C905B</para> </listitem> - <listitem arch="i386,alpha"> + <listitem arch="i386"> <para>Dell Latitude ラップトップドッキングステーションに内蔵されている 3C905-TX</para> </listitem> @@ -2138,12 +2162,12 @@ <listitem> <para>SysKonnect SK-9D21 および 9D41</para> </listitem> - <listitem> + <listitem arch="i386"> <para>DELL PowerEdge 2550 サーバに内蔵されている Gigabit Ethernet NIC</para> </listitem> - <listitem> - <para>IBM x235 server に内蔵されている gigabit Ethernet NIC</para> + <listitem arch="i386"> + <para>IBM x235 server に内蔵されている Gigabit Ethernet NIC</para> </listitem> </itemizedlist> </para> @@ -2644,73 +2668,76 @@ </itemizedlist> </para> - <para arch="i386">PCI ベースのマルチポートシリアルボード (&man.puc.4; + <para arch="i386,ia64">PCI ベースのマルチポートシリアルボード (&man.puc.4; ドライバ) <itemizedlist> - <listitem> + <listitem arch="i386"> <para>Actiontech 56K PCI</para> </listitem> - <listitem> + <listitem arch="i386"> <para>Avlab Technology, PCI IO 2S および PCI IO 4S</para> </listitem> - <listitem> + <listitem arch="i386"> <para>Comtrol RocketPort 550</para> </listitem> - <listitem> + <listitem arch="i386"> <para>Decision Computers PCCOM 4-port シリアルおよびデュアルポート RS232/422/485</para> </listitem> - <listitem> >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305270105.h4R15PSE033955>
