본문 바로가기

STUDY/ㄴ LINUX

MMU를 직접 제어하는 COLINUX Ver 0.6.3 +Gentoo


COLINUX Ver 0.6.3 설치및 사용법( Gentoo Based )관련하여 정리한 문서입니다.
흔히들 PC1대에서 윈도우와 리눅스를 공존하게 하기위헤 Vmware를 많이 쓰고
있습니다. Vmware보다 가볍고 Native Thread로 작동시키고 가볍고 더욱 빠른
리눅스를 M$ 윈도우에서 X-windows를 가동시켜 개발하고자 본작업을 하였고
관련 문서를 작성하였습니다. 무엇보다 매력적인것은 MMU를 직접 제어한다 점이...


COLINUX Ver 0.6.3 설치및 사용법( Gentoo Based )
===============================================
Last modified by invain (Geun Sik, Lim) at 2005.07.15


2004.04.20 : colinux 를 Kernel 2.4.X 대로 Debian 처음설치
2005.03.05 : Kernel 2.6.X로 개발버젼 설치
2005.03.20 : colinux 를 Debian Root-FS-Image로 Gnome설치
2005.07.15 : X-winodws를 Gnome이 무거워서 Xfce4라는 Window manager로 변경
2005.07.30 : colinux에 Gentoo Linux , Xfce4를 설치


* 소개

나. 정의: (Windows의 Process로 작동하는 리눅스 커널(Windows Daemon Program))
Windows OS에서 Linux OS를 Process형태로 띄울 수 있게 만드는 프로젝트인
CoLinux(Cooperative Linux)는 이스라엘의 21살(당시) 청년인 단 아로니가 몇몇
일본엔지니어와 함께 이끌고 있는 CoLinux 프로젝트는 윈도우와 리눅스가 컴퓨터
하나에서 공존하려는 목표로 진행한 공개 소스 프로젝트임.

가. 목적:
Linux Kernel을 윈도우 고유 프로그램(Native Windows Thread)처럼 동작시키는데 목적을
두고 있으며, Linux는 Windows안에서 고유 프로그램으로서 돌아가게 됨.

나. 특징(장점):
겉으로 보기엔 vmware같은 가상머신으로 보이지만 기존것과는 확연히 다르다.
Linux Kernel은 Native Window Thread로 돌아가고, MMU를 직접 Control함으로써
Native Linux와 비슷한 속도를 보인다. 또한, 리눅스에서 쓰는 Binary Format과
똑같은 Format을 사용하기 때문에 Code의 수정없이 사용이 가능하다.

다. 단점:
주요한 결점은 성능에 있다고 할 수 있다. X Application들의 성능은 좋지 않지만,
최근 H/W의 급진적 발전으로 큰 불편없이 사용할 만 하다. 일반적인 Application들은
진짜 리눅스에서 돌아가는 것 처럼 속도가 나온다. coLinux는 아직 개발상태이며,
잘 작동되기도 하지만, 아직 지원되지 않는 부분이 많이 존재한다.

아직 X 윈도우는 동작하지 않으므로 윈도우쪽에서 Cygnus X11을 띄운 다음에 네트워크로
X 응용 프로그램을 수행해야 하며, 디스크 공유는 네트워크 드라이브를 잡는 형식으로 가능.

라. 필자 사용후기
colinux를 이용하여 Debian , Gentoo , Fedora Core 1를 설치 및 사용해 본결과 속도면에서
VMWARE보다는 colinux를 사용하는 것이 상당히 매력적이었음.


* 전체 설치 순서 요약
colinux 설치  ----> network 설정 ----> xwindow 설정 ----> 개발/사용

* 필자의 설치 환경
PC  : Samsung Sense V30 NoteBook
OS  : Window XP Professional SP2
CPU : Mobile Intel Pentium 3GHz
RAM : 512MB (메모리 관리를 위해 Windows PC에 Memturbo 설치 권장.)
VGA : Nvidia Geforce MX4
Colinux : Colinux Ver 0.6.3

-------[젠투리눅스이미지를 사용하는 예]----------------------------------------------

■1. colinux 다운로드 및 설치

  다운로드: http://sourceforge.net/project/showfiles.php?group_id=98788
           http://www.colinux.org


■2. Root File System 이미지 옮기기
  ( 필자는 Gentoo Image를 설치시 다운로드 선택하였음.)
  C:\Program Files\coLinux\Gentoo-colinux-stage3-x86-2004.3.bz2 이미지 압축해제.
  Gentoo-colinux-stage3-x86-2004.3 --- 이동 ---> c:\colinux\ 디렉토리로 이동시킴.

  참고) 루트파일시스템이미지는 sourceforge.net에서 Debian3.0r0 , Gentoo , Fedora Corea1다운가능.
        Gentoo Linux ---> Gentoo-colinux-stage3-x86-2004.3.bz2 (압축해제시 2G)
        Debian Linux ---> Debian-3.0r0.ext3.1gb.bz2 (압축해제시 800M)
        Fedora Linuex---> Fedora Core 1
       

■3. Colinux XML 환경화일 편집
 
  ----------------[C:\Program Files\coLinux\default.colinux.xml 파일편집 ]-------------
<?xml version="1.0" encoding="UTF-8"?>
<colinux>
  <block_device index="0" path="\DosDevices\C:\coLinux\Gentoo-colinux-stage3-x86-2004.3" enabled="true" />
  <bootparams>root=/dev/cobd0</bootparams>
  <image path="vmlinux" />
  <memory size="64" />
  <network index="0" type="tap" name="TAP" />
</colinux>

주의: 1. Gentoo-colinux-stage3-x86-2004.3 루트파일시스템이며 경로 존재확인요망
     2. initrd.gz 는 임베디드환경이이 아니기때문에 생략할것.
     3. name="TAP"이라고 지정시 TAP-Win32 Adapter의 "로컬영역연결2"을 "TAP"로
        이름바꾸기를 해야 eth0이 잘 잡힘.
------------------------------------------------------------------------------------

■5. 네트웍 설정
  [탐색기] - [제어판] - [네트웍 연결] 메뉴에서 인터넷 연결이 되어 있는 랜카드(망)을
  오른쪽 마우스로 클릭하우 [속성]을 선택한후, [고급]탭의 "네트워크설정마법사"를
  선택하여 다음-다음-다음을 눌러  최종적으로 [확인]을 눌러 설정함.

  또는, [탐색기] - [제어판]->[네트워크 연결]에서 여러분의 인터넷 연결을 클릭한 뒤,
  New TAP Network 연결을 CTRL+Clik 한 후, 마우스 오른쪽 버튼을 클릭하고,
  "브리지로 연결(Bridge connections)"을 선택.


■4. Colinux Daemon 실행
  C:\Program Files\coLinux>colinux-daemon.exe -c default.colinux.xml [Enter]
  - root 초기암호: root
 
  #> ifconfig
  #> ifconfig eth0 192.168.0.153 netmask 255.255.255.0
  #> route add default gateway 192.168.0.1
  #> echo "nameserver 211.189.127.5" > /etc/resolv.conf
  #> ping yahoo.co.kr
 
  참고) 부모컴퓨터에서 시작-실행-ping 192.168.0.153을 해보자.

■5. Xwindows사용을 위한 VNC설정 및 VNC 서버 가동
  #> emerge sync
  #> env-update && source /etc/profile
  #> emerge tightvnc ( 대략 5시간 소요 )

  #> cp /mnt/etc/X11/xorg.conf  /etc/X11/
     (필자는 Fedora Core 4의 xorg.conf파일을 복사하였음.)

  #> cd ~
  #> mkdir .vnc
  #> nano .vnc/xstartup
     startxfce4 &
  #> chmod 744 .vnc/xstartup
  #> ACCEPT_KEYWORDS="~x86" emerge xfce4  (대략 7시간 소요, X-Windows에 사용될 Window Manager 설치)
  #> nano /root/vncserver.sh
     vncserver -geometry "1024x768" -depth 16
  #> chmod  755 /root/vncserver.sh
  #> /root/vncserver.sh
     (처음 접속시 vnc viewer로 접속시 사용할 암호 입력 )


■6. VNC Client로 Xwindows 접속 및 개발(사용)
  -http://www.realvnc.com/download.html 에 접속하여  vnc viewer 다운로드
  -Server항목에 192.168.0.153:1 을 입력하여 접속하여 사용

  참고) 가. IP Address     :  #>ifconfig로 확인가능
        나. Session Number :  #>ls ~/.vnc로 확인 가능

  -vncviewer는 XFCE4데스크탑을 보여줌. - 이제 맘껏 즐기세요~~~


■ Tip: debian 사용자를 위한 설정 예제

  #> apt-get update
  #> apt-get upgrade
    # in /etc/apt/sources.list rename "stable" lines to "testing"
  #> sed -e 's/stable/testing/g' /etc/apt/sources.list > /tmp/sources.list
    \mv /tmp/sources.list /etc/apt/sources.list
  #> apt-get update
  #> apt-get install apt less
  #> apt-get update
  #> apt-get -y dist-upgrade 
      ( 필자는 모든 질문에 대해 디폴드 답변을 선택하였음.)
  #> apt-get clean
  #> apt-get update
  #> apt-get -y install x-window-system-core vncserver fluxbox xterm
      ( 필자는 모든 질문에 대해 디폴드 답변을 선택하였음.)
  #> mkdir ~/.vnc && echo -e '#!/bin/bash\nfluxbox &' > ~/.vnc/startupx
  #> apt-get clean
  #> vncserver  # this will ask for a VNC display password the first time


■ 개발자의 환경에 따른 프로그램들 선택시 참고 사항
  - 진짜 유닉스를 원한다 ----------------------------------------------> 리눅스, *BSD 설치
  - 진짜 유닉스를 원하는데 설치할데가 없다. 돈도 있고 PC도 빵빵하다 ---> vmware
  - 진짜 유닉스를 원하는데 설치할데가 없다. 돈은 없다 -----------------> coLinux
  - 유닉스 쉘만 원한다 ------------------------------------------------> cygwin
  - 재배포 가능한 Win32 프로그램을 유닉스같은 환경에서 개발하고 싶다 --> mingw
  - 유닉스 프로그램을 혼자 쓰게 윈도 환경에서 빌드해보고 싶다 ---------> cygwin
  - 난 grep이나 wget같은 단순 유틸리티만 있으면 된다 ------------------> gnu-win32, unixutils
  - NFS를 써야 겠다 ---------------------------------------------------> Windows Services for Unix (Omni NFS Series )
  - System V 환경에 익숙하다 ------------------------------------------> Windows Services for Unix
  - X 클라이언트 창을 윈도에서 불러내고 싶다. 돈은 없다 ---------------> cygwin X서버, X-Deep/32
  - X 클라이언트 창을 윈도에서 불러내고 싶다. 돈은 있다 ---------------> Xmanager

이상.