Lots2Talk
2011. 7. 28. 15:58
2011. 7. 28. 15:58

맛있는 핫도그 ㅋ
Lots2Talk
2011. 3. 16. 00:31
2011. 3. 16. 00:31
1. Process Management : Namespace 내용
Namespace의 기본 개념을 번역함.
Namespace concept (Professional Linux kernel architecture)
2. namespace 실습
// 검색을 해봤는데, 와닿을 만한 예제를 찾지 못했다. 검색어를 잘못 선정했나..
// unshare() 함수 사용의 예제 임.
Reference site :
http://glandium.org/blog/?p=217
http://www.debian-administration.org/articles/628
unshare() system call로 새로운 namespace를 만들고 확인해보는 실습이다.

위의 소스를 살짝 설명을 하자면,
일단 unshare system call은 root permission이 없으면 수행을 하지 못한다. 현재 실행하고 있는 UID의 값이 root(UID == 0)가 아니면 실행을 중단한다.
shell 에서 (geteuid 는 effective uid 값을 가져오는 함수임)
$ man 2 geteuid
하면 자세한 정보가 나온다.
일단 root permission으로 실행되었다면, unshare system call에 CLONE_NEWNS flag와 함께 호출한다. 새로운 namespace를 생성하는 과정임(현재 process에서 fork 하여 생성된 child process인 경우에만 아래의 코드를 실행한다.)
코드를 구현하고,
$ gcc -o newns newns.c (위의 소스 파일 이름이 newns.c 이다)

위의 terminal의 명령 순서를 설명하면,
나의 경우에 ~/work/namespace/ 하위에 first와 second file을 만들고 각각 first 에는 "FIRST" 문자열을 second 에는 "SECOND" 문자열을 기록 해두었다.
$ sudo ./newns 를 통해 새로운 namespace를 만들고
$ mount -n --bind second first
(참고로, mount 의 --bind 옵션은 심볼릭 링크 파일을 파일로 인식하는 FTP 에서 링크 대신 마운트를 시킴으로써 링크와 비슷한 역할을 할 수 있도록 하는 것이다.)
$ cat first
first 파일의 내용을 보면 "SECOND"라고 나온다. 하지만 또 다른 터미널을 하나 더 연 다음에,
같은 디렉토리로 이동 후 같은 파일의 내용을 보면,
<another terminal>
$ cat first
FIRST
라고 나온다.
Namespace의 간단한 예제 이며, 조금 더 참고하거나 해볼 만한 예제가 있다면 올리도록 할 것이다.
Lots2Talk
2011. 3. 16. 00:13
2011. 3. 16. 00:13
VMware Server version을 깔고 screen size 조정 및 vmware와 host 간에 copy & paste(사실 이게 가장 불편하다.) 같은 것들이 되려면, vmware-tools를 설치해야 한다.
OS 는 ubuntu 10.10 이다.
그럴려고 install vmware tools 를 클릭해서 CD가 mount되면 VMware...tar.gz 를 복사하고 압축불면, 인스톨 script를 실행한다. 물론,
https://help.ubuntu.com/community/VMware/Server 이 사이트를 참조해서 kernel header 설치를 해주었다.
$ sudo apt-get install build-essential linux-headers-`uname -r`
하지만,
The directory of kernel headers (version @@VMWARE@@ UTS_RELEASE) does not match
your running kernel (version 2.6.35-22-generic). Even if the module were to
compile successfully, it would not load into the running kernel.
에러가 뜨길래, /usr/src/ 디렉토리를 보니, linux-headers-2.6.35.22 와 linux-headers-2.6.35.22-generic 만 있었다. 그래서 install tool이 요구하는데로 /usr/src/linux/include 를 맞춰주기 위해 위의 디렉토리를 linux로 링크 해줬다.
물론 /usr/src/ 하위에 디렉토리는 결국 같은 거니깐,
$ cd /usr/src
$ sudo ln -s /usr/src/headers-2.6.35.22-generic linux
를 해줬음에도 불구하고 또!!! error가 나는 것이다.
검색을 하다보니, VMware workstation 7.1.3 버전 부터는 알아서 해준다는 말이 있긴한데 더 검색을 해보았다.
다른 해결책이 있었다. ubuntu 10.10 을 설치했다면, apt-get 으로 vmware tools를 설치 할 수 있는 것이다. ㅋ
명령어는,
$ sudo apt-get install --no-install-recommends open-vm-dkms
$ sudo apt-get install open-vm-tools
$ sudo reboot
요렇게 해주면, vmware에서 내가 가장 원하던 copy & paste 가 잘된다!