.\" Translated 2006-08-10 by Yuichi SATO <ysato444@yahoo.co.jp>, LDP v2.36
.\"
.TH UNSHARE 2 2010-09-10 "Linux" "Linux Programmer's Manual"
-.SH ̾Á°
-unshare \- ¥×¥í¥»¥¹¼Â¹Ô¥³¥ó¥Æ¥¥¹¥È¤Î°ìÉô¤òʬΥ¤¹¤ë
-.SH ½ñ¼°
+.SH 名前
+unshare \- プロセス実行コンテキストの一部を分離する
+.SH 書式
.nf
-.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */"
+.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */"
.\" Actually _BSD_SOURCE || _SVID_SOURCE
.\" See http://sources.redhat.com/bugzilla/show_bug.cgi?id=4749
.B #include <sched.h>
.sp
.BI "int unshare(int " flags );
.fi
-.SH ÀâÌÀ
+.SH 説明
.BR unshare ()
-¤ò»È¤¦¤È¡¢¥×¥í¥»¥¹¤Ï¾¤Î¥×¥í¥»¥¹¤È¸½ºß¶¦Í¤·¤Æ¤¤¤ë
-¼Â¹Ô¥³¥ó¥Æ¥¥¹¥È¤Î°ìÉô¤òʬΥ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
-¼Â¹Ô¥³¥ó¥Æ¥¥¹¥È¤Î°ìÉô¡¢¤¿¤È¤¨¤Ð¥Þ¥¦¥ó¥È̾Á°¶õ´Ö (mount namespace)
-¤Ê¤É¤Ï¡¢¿·¤·¤¤¥×¥í¥»¥¹¤ò
+を使うと、プロセスは他のプロセスと現在共有している
+実行コンテキストの一部を分離することができる。
+実行コンテキストの一部、たとえばマウント名前空間 (mount namespace)
+などは、新しいプロセスを
.BR fork (2)
-¤Þ¤¿¤Ï
+または
.BR vfork (2)
-¤ò»È¤Ã¤ÆÀ¸À®¤·¤¿¤È¤¤Ë¡¢°ÅÌۤΤ¦¤Á¤Ë¶¦Í¤µ¤ì¤ë¡£
-°ìÊý¡¢²¾ÁÛ¥á¥â¥ê¤Ê¤É¤Ï¡¢
+を使って生成したときに、暗黙のうちに共有される。
+一方、仮想メモリなどは、
.BR clone (2)
-¤ò»È¤Ã¤Æ¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¤È¤¤Ë¡¢ÌÀ¼¨Åª¤Ë¶¦Í¤¹¤ë¤³¤È¤òÍ×µá¤Ç¤¤ë¡£
+を使ってプロセスを生成するときに、明示的に共有することを要求できる。
.BR unshare ()
-¤Î¼ç¤ÊÍøÍÑË¡¤Ï¡¢¥×¥í¥»¥¹¤¬¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¤³¤È¤Ê¤¯¡¢
-¶¦Í¼Â¹Ô¥³¥ó¥Æ¥¥¹¥È¤òÀ©¸æ¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£
+の主な利用法は、プロセスが新しいプロセスを生成することなく、
+共有実行コンテキストを制御することである。
.I flags
-°ú¤¿ô¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ê¡¢
-¼Â¹Ô¥³¥ó¥Æ¥¥¹¥È¤Î¤É¤ÎÉôʬ¤Î¶¦Í¤ò²ò½ü¤¹¤ë¤«¤òɽ¤¹¡£
-¤³¤Î°ú¤¿ô¤Ï¡¢°Ê²¼¤ÎÄê¿ô¤Î 0 ¸Ä°Ê¾å¤Î OR ¤Ç»ØÄꤹ¤ë:
+引き数はビットマスクであり、
+実行コンテキストのどの部分の共有を解除するかを表す。
+この引き数は、以下の定数の 0 個以上の OR で指定する:
.TP
.B CLONE_FILES
.BR clone (2)
.B CLONE_FILES
-¥Õ¥é¥°¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤¹¡£
-¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¥Æ¡¼¥Ö¥ë¤ò¶¦Í¤µ¤»¤º¡¢
-¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï¾¤Î¥×¥í¥»¥¹¤È¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¶¦Í¤·¤Ê¤¯¤Ê¤ë¡£
+フラグの効果を取り消す。
+ファイルディスクリプタテーブルを共有させず、
+呼び出し元プロセスは他のプロセスとファイルディスクリプタを共有しなくなる。
.TP
.B CLONE_FS
.BR clone (2)
.B CLONE_FS
-¥Õ¥é¥°¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤¹¡£
-¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à°À¤ò¶¦Í¤µ¤»¤º¡¢
-¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï¾¤Î¥×¥í¥»¥¹¤È¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¡¦
-¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¡¦umask °À¤ò¶¦Í¤·¤Ê¤¯¤Ê¤ë¡£
+フラグの効果を取り消す。
+ファイルシステム属性を共有させず、
+呼び出し元プロセスは他のプロセスとルートディレクトリ・
+カレントディレクトリ・umask 属性を共有しなくなる。
.BR chroot (2),
.BR chdir (2),
.BR umask (2)
-¤Ë±Æ¶Á¤¹¤ë¡£
+に影響する。
.TP
.B CLONE_NEWNS
.\" These flag name are inconsistent:
.\" CLONE_NEWNS does the same thing in clone(), but CLONE_VM,
.\" CLONE_FS, and CLONE_FILES reverse the action of the clone()
.\" flags of the same name.
-¤³¤Î¥Õ¥é¥°¤Ï
+このフラグは
.BR clone (2)
.B CLONE_NEWNS
-¥Õ¥é¥°¤È\fIƱ¤¸\fR¸ú²Ì¤ò»ý¤Ä¡£
-¥Þ¥¦¥ó¥È̾Á°¶õ´Ö¤ò¶¦Í¤»¤º¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï
-¾¤Î¥×¥í¥»¥¹¤È¤Ï¶¦Í¤·¤Ê¤¤¸ÇͤÎ̾Á°¶õ´Ö¤Î¥³¥Ô¡¼¤ò»ý¤Ä¡£
-¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢
+フラグと\fI同じ\fR効果を持つ。
+マウント名前空間を共有せず、呼び出し元プロセスは
+他のプロセスとは共有しない固有の名前空間のコピーを持つ。
+このフラグを指定すると、
.B CLONE_FS
-¤â°ÅÌۤΤ¦¤Á¤Ë»ØÄꤵ¤ì¤ë¡£
+も暗黙のうちに指定される。
.\" As at 2.6.16, the following forced implications also apply,
.\" although the relevant flags are not yet implemented.
.\" If CLONE_THREAD is set force CLONE_VM.
.\" longer shares its virtual address space with any other process.
.PP
.I flags
-¤Ë 0 ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢
+に 0 が指定された場合、
.BR unshare ()
-¤Ï²¿¤â¹Ô¤ï¤Ê¤¤¤Î¤Ç¡¢
-¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¹Ô¥³¥ó¥Æ¥¥¹¥È¤Ï¡¢²¿¤âÊѹ¹¤µ¤ì¤Ê¤¤¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£
-¼ºÇÔ¤·¤¿¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¤Æ¡¢
+は何も行わないので、
+呼び出し元プロセスの実行コンテキストは、何も変更されない。
+.SH 返り値
+成功した場合は 0 が返される。
+失敗した場合は \-1 が返されて、
.I errno
-¤Ë¤Ï¥¨¥é¡¼¤ò¼¨¤¹Ãͤ¬ÀßÄꤵ¤ì¤ë¡£
-.SH ¥¨¥é¡¼
+にはエラーを示す値が設定される。
+.SH ã\82¨ã\83©ã\83¼
.TP
.B EINVAL
.I flags
-¤ËÉÔÀµ¤Ê¥Ó¥Ã¥È¤¬»ØÄꤵ¤ì¤¿¡£
+に不正なビットが指定された。
.TP
.B ENOMEM
-¸Æ¤Ó½Ð¤·¸µ¤Î¥³¥ó¥Æ¥¥¹¥È¤Î¤¦¤Á¶¦Í¤ò²ò½ü¤¹¤ëɬÍפ¬¤¢¤ëÉôʬ¤ò¥³¥Ô¡¼¤¹¤ë¤¿¤á¤Ë¡¢
-½½Ê¬¤Ê¥á¥â¥ê¤¬³ÎÊݤǤ¤Ê¤«¤Ã¤¿¡£
+呼び出し元のコンテキストのうち共有を解除する必要がある部分をコピーするために、
+十分なメモリが確保できなかった。
.TP
.B EPERM
.I flags
-¤Ë
+に
.B CLONE_NEWNS
-¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ËÆø¢
+が指定されたが、呼び出し元プロセスに特権
.RB ( CAP_SYS_ADMIN
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬¤Ê¤«¤Ã¤¿¡£
-.SH ¥Ð¡¼¥¸¥ç¥ó
+ケーパビリティ) がなかった。
+.SH バージョン
.BR unshare ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¥«¡¼¥Í¥ë 2.6.16 ¤ÇÄɲ䵤줿¡£
-.SH ½àµò
+システムコールは Linux カーネル 2.6.16 で追加された。
+.SH 準拠
.BR unshare ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇͤǤ¢¤ë¡£
-.SH Ãí°Õ
+システムコールは Linux 固有である。
+.SH 注意
.BR clone (2)
-¤Ç¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤·¤¿¤È¤¤Ë¶¦Í¤µ¤ì¤ëÁ´¤Æ¤Î¥×¥í¥»¥¹Â°À¤ò¡¢
+で新しいプロセスを生成したときに共有される全てのプロセス属性を、
.BR unshare ()
-¤Ë¤è¤Ã¤Æ¶¦Í¤Î²ò½ü¤¬¤Ç¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£
-Æäˡ¢¥«¡¼¥Í¥ë 2.6.16 ¤Ë¤ª¤¤¤Æ¤Ï¡¢
+によって共有の解除ができるわけではない。
+特に、カーネル 2.6.16 においては、
.BR unshare ()
-¤Ë
+に
.BR CLONE_SIGHAND ,
.\" However, we can do unshare(CLONE_SIGHAND) if CLONE_SIGHAND
.\" was not specified when doing clone(); i.e., unsharing
.\" FIXME . check future kernel versions (e.g., 2.6.17)
.\" to see if CLONE_VM gets implemented.
.B CLONE_VM
-¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤¹¤¿¤á¤Î¥Õ¥é¥°¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
+の効果を取り消すためのフラグが実装されていない。
.\" However, as at 2.6.16, we can do unshare(CLONE_VM) if CLONE_VM
.\" was not specified when doing clone(); i.e., unsharing
.\" virtual memory is permitted if we are not actually
.\" sharing virtual memory. mtk
-¤³¤ì¤é¤Îµ¡Ç½¤Ï¡¢É¬ÍפǤ¢¤ì¤Ð¾ÍèÄɲ䵤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
+これらの機能は、必要であれば将来追加されるかもしれない。
.\"
.\"9) Future Work
.\"--------------
.\"be incrementally added to unshare without affecting legacy
.\"applications using unshare.
.\"
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
.BR clone (2),
.BR fork (2),
.BR vfork (2),