coLinux에서 네트웍을 설정하는 방법은 여러가지 옵션이 있다. 그 중 여기서 목표로 하는 네트웍 설정은 다음 그림과 같다. 인터넷은 D-Link DI-624를 통해 연결되고 D-Link router는 DHCP server를 실행하고 있다. 윈도우와 coLinux를 설치한 노트북은 fast ethernet(VIA Rhine II)로 연결되어 있고 router의 DHCP server에서 192.168.0.100을 할당받았다. (아래 그림에서 빨간색 블럭이 실제 네트웍 인터페이스이고 보라색 블럭은 가상 인터페이스이다. 실선 화살표는 실제 네트웍 케이블이고 점선 화살표는 가상의 네트웍 케이블을 나타낸다. 그리고 당연히 coLinux OS와 Hosting OS인 윈도우는 같은 기계에서 실행되고 있다.)


200807011630.jpg

이 방식으로 네트웍 설정을 하려면 coLinux를 설치한 다음 WinPcap (The Windows Packet Capture Library)도 다운받아 설치해 줘야 한다.

coLinux를 설치하고 나면 디렉토리에 다음의 파일이 설치된다.


cl1.png

이 중에 example.conf 파일을 원하는 이름으로 복사해준다. 여기서는 colinux.conf 로 예를 들기로 하겠다.

c:\coLinux> copy example.conf colinux.conf

파일을 복사 한 다음 colinux.conf를 에디터에서 열어준다.

기본적으로 아래 화면에서 색이 칠해진 부분을 자신에게 맞게 변경해주면 된다.
cl2.png

위의 색이 칠해진 부분을 자신이 다운받아 압축을 풀은 루트파일 시스템, 스왑파일 이름으로 바꿔준다. 여기서는 루트파일 시스템으로 Ubuntu-7.10.ext3.2gb.fs를 사용하고 있다.


cl3.png

위의 화면의 아랫 부분이 네트웍 설정에 필요한 내용이다. 여기서는 (가상) 네트웍 카드를 2개 사용해서 첫번째는 TAP을 사용해서 coLinux-windows와의 통신 전용으로 사용하고 두번째는 WinPcap을 사용해서 coLinux가 인터넷을 억세스하는데 사용할 것이다.

위와 같이 변경해 주었으면 파일을 저장하고 에디터를 종료한다.

그리고 아래와 같은 배치파일을 만들어 준다.


cl4.png

윈도우의 네트웍 커넥션에 보면 coLinux를 설치할 때 이미 설치된 가상 TAP-Win32 adapter가 보인다.

cl5.png

이 TAP-Win32 adapter의 속성(properties)로 가서 'Internet Protocol (TCP/IP)'를 더블클릭해서 아래 그림과 같은 Internet Procotol (TCP/IP) Properties 윈도우에서 아래와 같이 IP, Subnet mask를 설정해 준다. 단 Default gateway는 빈칸으로 놔둬야 한다.

IP address: 192.168.37.10 (여기서 서브넷 37은 임의로 정한 것이다. 이미 사용하고 있다면 사용하지 않는 다른 서브넷으로 변경해도 된다. 단 윈도우의 TAP-Win32 adapter와 coLinux의 eth0는 같은 서브넷 번호를 사용해야 한다.)

IP address: 192.168.37.10

Subnet mask: 255.255.255.0

cl6.png

IP 설정이 끝났다면 Local Area Connection2 Properties 윈도우에서 'Advanced' 탭을 선택해서 Windows Firewall의 'Settings...'를 눌러준다.


cl7.png

파이어월 설정에서 Local Area Connection 2에 대해서는 파이어월을 중단시켜준다.

cl8.png


여기까지 끝났으면 도스 프롬프트에서 아까 만들어 준 배치파일(cl.bat)을 실행해서 coLinux를 실행시켜 준다.


cl9.png

Cooperative Linux Console이라는 윈도우가 열리면서 리눅스 부팅 시퀀스가 표시된다. 로그인 화면이 나오면 root로 로그인 해 준다. login id, password 둘 다 'root'를 사용하면 된다. 로그인 한 다음 에디터에서 '/etc/network/interfaces' 파일을 열어서 아래와 같이 수정해 준다.

eth1은 dhcp를 사용할 것이지만 기본 상태에서는 dhcp resolver가 없기 때문에 일단 static으로 인터넷에 연결해서 dhcp resolver를 설치한 다음에 다시 dhcp를 사용하도록 변경해 줄 것이다.


cla.png

또한 /etc/resolv.conf 파일도 다음과 같이 변경해 준다.

cld.png

변경을 마치고 파일을 저장한 다음 인터페이스를 멈췄다가 다시 활성화 시키거나 coLinux를 reboot시키고 나서 ifconfig를 해 보면 다음과 같이 나타나야 된다.


clb.png

ping 명령을 사용해서 각각의 인터페이스가 제대로 동작하는지 확인해 볼 수 있다.

clc.png

정상적으로 동작하는게 확인 되었으면 apt-get 명령어를 사용해서 dhcp resolver(여기서는 'pump'를 사용)를 다운받아 설치해 준다.


cle.png

dhcp resolver를 설치한 다음 /etc/network/interfaces 파일에서 eth1에 관한 부분을 (dhcp를 사용하도록) 변경해준다.


clf.png

파일 변경이 끝났으면 coLinux를 재부팅 하거나 ifdown eth1, ifup eth1 명령을 순서대로 사용해서 인터페이스를 비활성화 시켰다가 다시 활성화 시켜주면 된다. 아래 화면이 ifconfig의 결과인데 위에 static을 사용할 때는 ip를 강제로 192.168.0.105로 지정해 줬는데 이번에는 dhcp 서버에서 ip를 받아왔기 때문에 192.168.0.101로 할당된 걸 볼 수 있다.

clg.png

Posted by nautes

애플은 Mac OS X v10.4 Tiger에서부터 launchd라는 프로그램을 사용하기 시작했다. launchd는 애플이 개발하여 공개한 open source service management framework으로 전통적인 유닉스에서 사용되는 /etc/rd, cron, xinetd, init.d의 기능을 통합해서 제공해준다.
좀 더 자세한 소개는 애플 사이트의 Getting started with launchd 를 참조하면 된다.

여기서는 launchd의 다양한 기능들 중에 cron을 대치하는 기능을 설정하는 법을 설명하겠다.

launchd를 제어하기 위해서는 launchctl을 이용하면 된다.
xml로 된 configuration파일을 작성해서 .plist 확장자를 붙인 다음 해당 디렉토리에 저장해준다.
관리자가 아닌 경우 자신의 홈 디렉토리(~) 아래의 Library/LaunchAgents 에 저장해주면 된다.

* 각각의 경우에 따른 .plist 파일 저장 위치
     ~/Library/LaunchAgents         Per-user agents provided by the user.
/Library/LaunchAgents Per-user agents provided by the administrator.
/Library/LaunchDaemons System wide daemons provided by the administrator.
/System/Library/LaunchAgents Mac OS X Per-user agents.
/System/Library/LaunchDaemons Mac OS X System wide daemons.

.plist 파일의 상세한 내용은 애플 사이트의 man pages 를 참조하면 된다.

여기서는 일단 간단한 예로 설명하기로 하겠다.

$ /usr/bin/python /Users/abcd/bin/checkmail.py

위의 명령을 1분(60초)마다 한번씩 실행해서 메일이 왔는지 확인하고 싶은 경우

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>check_mail</string>
<key>OnDemand</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python</string>
<string>/Users/abcd/bin/checkmail.py</string>
</array>
<key>StartInterval</key>
<integer>60</integer>
</dict>
</plist>

---
실행할 명령에 argument가 없으면

<key>ProgramArguments</key>
<array>
<string>프로그램 이름</string>
</array>

같이 해 주면 되지만 argument가 있는 경우 각각의 argument를 다음과 같이 별개의 element로 구분해서 넣어줘야 한다.

<key>ProgramArguments</key>
<array>
<string>프로그램 이름</string>
<string>argument 1</string>
<string>argument 2</string>
....
</array>

<key>StartInterval</key>
<integer>시간간격(초)</integer>

빨간색 부분은 Tiger(v10.4)에서만 사용할 수 있고 Leopard(v10.5)에서는 저 부분을 아래와 같이 바꿔줘야 한다.

<key>KeepAlive</key>
<false/>
---

위의 내용을 ~/Library/LaunchAgents 에 check_mail.plist 라는 이름으로 저장한 경우 터미널을 열고

$ launchctl load ~/Library/LaunchAgents/check_mail.plist

를 쳐 주거나 맥을 재부팅 시키면 바뀐 내용이 적용된다.

지금까지 설명한 방식은 전통적인 유닉스 환경에서 vi를 사용하는 방식이고 사용자 편의성을 최고로 생각하는 맥OS답게 이미 사용자가 쉽게 launchd configuration을 만들거나 수정할 수 있는 어플리케이션도 나와 있다.

사용자 삽입 이미지

Lingon은 launchd의 configuration파일을 에디팅하거나 만들어주는 소프트웨어로 xml이나 plist의 문법을 몰라도 손 쉽게 launchd를 설정할 수 있게 해 준다. 물론 오픈소스 소프트웨어로 여기에서 다운받을 수 있다.
위에 보이는 화면은 베이직 모드로 일반적인 설정을 손 쉽게 할 수 있게 해 주는 모드고 전문가 모드에서는 텍스트 입력 화면에서 각 xml element를 직접 쳐 넣을 수 있다.

Posted by nautes

윈도우를 오래 사용하다 보면 이것저것 다양한 드라이버와 부팅시 실행되는 파일들이 많아지면서 부팅시간이 느려지는걸 느낄 수 있다. 윈도우를 종료할때도 마찮가지로 느려지는 것도 있고 열려있는 어플리케이션이 많으면 각각을 바로 종료시켜 버리는게 아니고 몇초씩 기다리기 때문에 심한 경우 몇분씩 걸리기도 한다.
그래서 윈도우의 시작과 종료를 빠르게 할 수 있는 방법을 알아보겠다.

먼저 시동의 경우 BootVis라는 프리웨어를 이용하면 된다. XP에서만 사용할 수 있는 소프트웨어로 원래 마이크로소프트에서 만들었지만 프리웨어로 된 BootVis는 부팅이 느린 시스템의 문제를 해결하는데 유용하다. BootVis는 윈도우 startup을 분석하고 부팅하면서 로딩하는 드라이버와 자동실행되는 프로그램을 추적해서 부팅을 느리게 해 주는 프로세스가 어떤것인지 보여준다.

사용자 삽입 이미지


사용법도 간단해서 일단 설치한 다음 'Trace'메뉴 옵션중에 하나를 선택하면 BootVis는 자동으로 컴퓨터를 재시동시키고 startup과정을 추적해서 결과를 분석해준다. BootVis가 자동으로 부팅과정을 최적화하게 할수도 있지만 좀 더 세부적으로 최적화하고 싶으면 BootVis로 분석해서 시간을 많이 잡아먹는 프로그램들 중에 확실하게 필요하지 않은 것들을 msconfig를 이용해서 비활성화 시켜버리면 된다.



사용자 삽입 이미지



bootvis.msi

BootVis Download


윈도우 종료의 경우는 실행창을 이용하면 된다.
윈도우에서 Start(시작)->Run(실행)을 선택하면 아래의 그림과 같은 창이 뜨면 shutdown -f -t 0 을 입력해주면 된다. 이렇게 하면 다른 프로세스들을 기다리지 않고 바로 시스템을 종료시켜 버리기 때문에 매우 빠르게 시스템을 종료할 수 있다.

사용자 삽입 이미지

Posted by nautes

이전버튼 1 이전버튼