2010년 3월 18일 목요일

L4 chapter 4. Capabilities

 Capability systems are used to control access to objects, by restricting access to objects to users who have the requisite tokens or capabilities. Each token or capability also specifies the rights the user has with regards to the object, such as reading, modifying, or copying the capability.
 (Capability systems은 필요한 토큰과 capabilities을 가진 사용자들에게 Object에 접근을 제한함에 의해 Object에 접근을 제어하기 위해서 사용된다. 또한 각 토큰또는 capability는 Object에 대한 user가 가지고 있는 권한을 명세한다. 이를테면 읽고, 수정하고 그리고, 복사하는 capability같은)


A capability space is a collection of tokens that the user has access to. The capability space may be shared with other users, that is all sharing parties have the save access right to the object represented by the capabilities.
(capability space는 사용자가접근할 수 있는 토큰의 집합이다. capability space는 다른 사용자와 함께 공유될 것이다. 이것은 capability들에 의해서 나타나는 object들에 접근할수 있는 같은 권한을 가진  모든 공유 파티들이다.(?))
*have access to : ~에 접근할 수 있다.

OKL4 uses capabilities to manage access control to system resource. In the current version of the API, only thread objects are protected using capabilities. A thread identifiers is a capability to a thread.
(OKL4는 시스템 리소스의 접근제어를 관리하기 위해서 capabilities를 사용한다. 현재 버전의 API는 thread object들만이 capabilities를 사용하여 보호되어 진다. thread identifiers는 thread에 대한 capability이다.)

Capabilities can be used to construct secure systems in which communication between threads can be completely controlled using capabilities and capability space
(Capabilitiy들은 capabilities와 capability  공간을 사용하여 쓰레드간의 통신은 완벽하게 제어되는 것으로 보안시스템을 구축하기 위해서 사용되어질 수 있다.)

1. Capability lists.
 In OKL4, each address space has a single associated capability space. All threads within the address space can access the capabilities within the capability space. A capability space may be shared by zero, one or many address space. A capability space in the current version of OKL4 is implemented as a capability list or clist object. A clist is a first class kernel object and can be operated on using the CapControl system call.
 (OKL4에서 각 주소공간은 하나의 결합된 capability 공간을 가진다. 주소공간내의 모든 쓰레드들은 capability 공간안의 capability들을 접근할 수 있다. 하나의 capability space는 0, 하나 또는 많은 address space에서 공유할 수 있다. 현재 OKL4 버전의 capability 영역은 capability list 또는 clist object로 구현된다. clist는 첫번째 클래스 커널 Object이고 CapControl system call을 사용하여 수행되어질 수 있다.)

 A clist is a container for capabilities and has a number of slots numbered from 0 to n -1 where n is the total number of slots in the clist.
 (clist는 capability들을 위한 컨테이너이고, 0에서부터 n-1로 번호 붙여진 다수의 슬롯들을 가진다. n은 clist안의 모든 slot의 개수)
 Each clist may have a different number of slots and can be created and deleted using the CapControl system call. In each slot of the clist, one capability can be created. Empty lots contain invalid capabilities on which no operations can be performed.
 (각 clist는 다른 수의 슬롯들을 가질지 모르고, CapControl 시스템 콜을 사용하여 생성되어질 수 있고 삭제되어질 수 있다. clist의 각 slot안에는 하나의 capability가 생성될 수 있다. 비어 있는 slot들은 실행되어 질 수 있는 기능이 없는 것에(?) 유효하지 않은 capability들을 포함한다.)

  2. Capability types.
 OKL4 provides several types of capabilities, each of which is decribed below.
 (OKL4는 capability들의 몇몇 type들을 제공한다. 각각의 type은 아래에 기술되어 있다.)

 a. Access capabilities
 Access capabilities are general capabilities which index into either the caller or specified capability list
 (접근 capability들은 caller나 명세된 capability list중 하나를 지시하는 일반적인 capability들이다.)

 b. Physical Memory Segment Resource Capabilities.
 Physical Memory Segment Resource Capabilities are used to provide access to physical memory segment resources owned by the address space of the caller.
 (물리적 메모리 세그먼트 리소스 Capability들은 caller의 주소공간이 가지는 물리적 메모리 세그먼트에 접근을 제공하기 위해서 사용된다.)

 c. Reply Capabilities
 Reply Capabilities are used to allow a thread to reply to particular IPC message.
 (응답 Capability들은 쓰레드에게 특정 메세지의 응답을 허용하기 위해서 사용되어 진다.)

 d. Special Identifiers
 Special Identifiers are used for IPC and other System calls to indicate nilthread, anythread, myself-id and waitnotify.
 (특수한 identifier들은 IPC와 nilthread와 anythread,, myself-id 그리고 waitnotify를 지시하기위한 다른 시스템 호출들을  위해서 사용되어 진다.)

 3. Thread identifier mapping
 A thread identifier is a capability to a thread and may be a thread cap or ipc cap.
 (쓰레드 identifier는 쓰레드를 향한(?) capability이고, thread cap또는 ipc cap일지 모른다.)
 A thread identifier is used by the kernel to lookup the thread object from the client associated with the thread's address space.
 (쓰레드 식별자는 커널이 thread의 주소공간과 결합된 client로 부터 thread object를 찾기 위해서 사용되어진다.)
 The thread number part of the thread identifier is used by OKL4 as the index into the clist. A thread number that falls out side the valid slot range of the clist will reference an invalid capability.
 (쓰레드 식별자의 한 부분인 thread number는 OKL4에 의해서 clist의 색인처럼 사용되어진다. clist의 유효한 슬롯 범위 옆으로 떨어져 나온 thread number는 유효하지 않은 capability를 참조할 것 이다.)

 4. Reply Capability
 A special type of  transient capability also exists. This capability is the reply cap and is part of the capability space but within a clist.
 (일시적인 capability의 특수한 타입 또한 존재한다. 이 capability는 reply cap이고 capability space이 한부분이지만 clist의 한 부부은 아니다.)
 This capability is generated by the kernel during IPC operations and can only be used to reply to threads using IPC.
 (이 capability는 커널에 의해서 IPC 동작을 하는 동안에 생성되어 지고, 단지 IPC를 사용하는 Thread에게 응답하기 위해서 사용되어질 수 있다.)

댓글 없음:

댓글 쓰기