새우의 세상사

원문 링크 : 리눅스가 데스크톱에 오르지 못하는 이유


리눅스가 데스크톱에 오르지 못하는 이유

서버 분야에서 리눅스를 비롯한 프리 또는 오픈소스 소프트웨어의 득세는 이미 잘 알려져 있다. 웹 서버, 이메일 서버 등 네트워크 에지에서 그리고 데이터센터에서 그렇다. 그러나 과연 데스크톱에서의 리눅스는 어떨까?

리눅스 데스크톱 패키지는 이제 보다 많은 기능을 담고 있으며 패키지도 더 좋아지고 있다. 현재의 리눅스 데스크톱 패키지의 사양과 가격은 최소한 오픈소스로의 전환을 고려할 만한 가치는 있다.

많은 기업에 있어서 이는 충분한 의미가 있다. MS 윈도우 비스타는 아직 갈 길이 멀고, 윈도우 XP는 최신 서비스 팩을 설치해도 수많은 악성코드의 목표가 되고 있다.

쓸만한 리눅스 패키지는 현재 완전한 사무실용 패키지와 이메일, 캘린더 소프트웨어, 그리고 인스턴트 메시징과 같은 추가 기능도 제공한다. 모든 것은 무료이거나 최악의 경우 가격은 윈도우 XP 정도다.

저항이 가장 큰 사용자 데스크톱

브리스토 카운슬과 같은 대형 사용자들은 윈도우 컴퓨터에 MS 오피스를 대체하기 위해 오픈오피스나 스타오피스와 같은 오픈소스 애플리케이션을 사용한다. 또한 MS IE 대신 파이어폭스를 사용한다. 파리시는 공공 서버를 리눅스로 전환하고 있으며 데스크톱에 파이어폭스와 오픈오피스를 사용하고 있다.

그러나 데스크톱 운영체제를 리눅스로 대체하는데는 보다 높은 저항이 있다. 영국 정부가 지원하는 오픈소스 아카데미는 PC를 씬 클라이언트 솔루션 사용을 위한 터미널로 전환한 입스위치 근처의 오웰 스쿨을 예로 든다. 한편 버밍햄 카운슬은 오픈소스 아카데미와 부수상실이 지원하는 시험판을 운용하고 있다. 이는 리눅스 데스크톱의 유용성을 평가하기 위한 것이다.

비록 버밍햄 카운슬의 IT 관리자인 레스 팀스는 시험 평가가 잘 진행되고 있다고 말했지만 최종 결과는 2006년 2월이 돼야 나올 것이다. 그리고 공공 도서관에 있는 40대의 PC는 리눅스로 대체됐다.

MS 윈도우 vs. 리눅스 운영체제

지디넷의 경험에 바탕한다면 문제는 리눅스 운영체제의 구성요소나 이들의 구성방식에 있지 않다. 우리는 기본적인 사무실 소프트웨어 플랫폼으로써 MS 윈도우에 도전할 준비가 돼 있는지 리눅스 데스크톱 들을 비교했다.

리뷰는 모두 동일한 방식을 사용했다. 표준 하드웨어 플랫폼에서 소프트웨어를 설치하고 기존 인프라(주로 MS)가 있는 경우 이와의 연동을 위한 기본 기능이 있는지 점검했다. 중요한 기능에는 익스체인지와의 이메일과 캘린더 연결, 네트워크 프린터 연결 지원, 인스턴트 메시징 지원, 패치와 업그레이드를 항상 최신으로 유지하기 위한 소프트웨어 업데이트가 포함된다.

또한 지원의 가용성과 가격도 검토했다. 그리고 데스크톱과 랩톱 모두에서 리눅스 배포판들을 시험했다.

설치

리눅스 배포판 설치는 윈도우 설치와 다르지만 비교적 쉽다는 면에서 유사하다. 또한 윈도우 설치와 마찬가지로 일반 사용자가 아니라 IT 부서원이 하게 된다.

리눅스 설치에 있어서 크게 다른 점은 한두 가지가 있다. 우선 리눅스 배포판은 PC에서 하나의 운영체제가 설치돼 있다고 예상한다. 소프트웨어는 하드 드라이브 파티션을 제안하며 이미 존재하는 윈도우 시스템을 보존한다. 이렇게 되면 듀얼-부트 PC를 갖게 되며 전원을 켤 때 OS를 선택할 수 있다. 물론 리눅스로 전환한다면 듀얼 부트 PC를 공식화할 필요는 없다.

일부 설치 프로그램은 파티션을 쉽게 도와주지 못할 수 있다. 테스트 배포판 중 수세의 YaST2 설정도구가 두드러졌다. 설명이 잘 돼 있고 잘못된 선택에서 빠져나올 수 있게 하며 좋은 반응과 조언을 준다. 불행하게도 테스트 결과 최고의 배포판이라고 여겨진 우분투(Ubuntu)의 경우 설치 프로그램이 가장 안 좋았다.

인스톨 프로그램이 동작하기만 한다면 부가기능으로 리눅스 선택을 할 필요는 없다. 결국 사용시간에 비해 설치시간은 매우 짧기 때문이다.

당신 회사의 필요에 맞도록 데스크톱을 전환하려면 우분투를 먼저 진지하게 검토하는 것이 좋다. 그리고 설치시에 특정 하드웨어를 설정해야 한다.

설치 프로그램은 관리자가 윈도우의 사용자 인터페이스에 해당하는 데스크톱 환경을 선택할 것을 요구한다. 그놈과 KDE가 주요 선택 대상이다. 또한 애플리케이션을 선택하도록 하며 오픈오피스에서 사용될 파일포맷과 같은 것들도 물어본다.

설치 프로그램은 또한 운영체제의 보안을 설정한다. 관리자가 파워유저를 위한 루트 패스워드를 입력하도록 요구하며 최소한 한 명의 사용자(특권이 낮은)를 입력할 것도 요구한다.

YaST2는 또한 패스워드가 충분히 풀기 어렵게 입력될 것을 요구한다. 우분투는 임의의 패스워드를 설정하고 최초의 사용자에게 관리 태스크를 할 수 있도록 함으로써 파워유저라는 개념을 던져버린다. 따라서 윈도우 사용자들이 보다 익숙한 좀 느슨한 환경을 제공한다.

도구

대부분의 경우 제품들은 아래의 것들을 모두 담은 채 출시된다. 하나라도 없다면 다운로드를 통한 설치도 쉬울 것이다. 그러나 도구가 이미 있다면 그리고 잘 통합되어 있다면 시간과 노력이 훨씬 덜 들게 된다. 특히 패키지 내부의 다양한 애플리케이션을 위한 패치와 업그레이드 설치를 위한 업데이트 서비스가 있다면 좋다.

다음은 우리가 주목한 주요 구성요소이다.

그놈 사용자 인터페이스

윈도우와 유사하지만 덜 복잡하다는 면에서 맥과 유사하다. 버밍햄의 테스트 프로젝트의 경우 각 사용자는 각 데스크톱 환경 사용에 이틀씩을 할당 받았는데 사용자들은 KDE 환경보다 그놈을 선택했다고 레스 팀스는 말했다. MS 환경의 열기, 닫기, 최소화에 익숙한 사용자들은 그놈을 바로 사용할 수 있다.

오픈오피스 생산성 스위트

리눅스에서 가장 인기 높은 생산성 스위트이다. 워드나 RTF 파일로 문서를 저장할 수 있다. MS 오피스에 친숙한 사용자들은 즉각적으로 이를 사용할 수 있다. 일부 배포판은 오픈오피스의 메뉴 옵션 설정이 워드 메뉴와 유사하도록 만들어서 놀라운 결과를 가져올 때도 있다. "오픈오피스를 사용하는 일부 사용자는 이것이 MS 애플리케이션이 아닌 줄 모른다"고 팀스는 말했다.

에볼루션 이메일/캘린더/주소록

MS 아웃룩과 너무 닮아서 재교육이 필요 없고 무엇을 사용하는지 잊어버리는 경우가 많다. 이미 사용자들이 주소록을 갖고 있다면 v카드 혹은 CSV(comma-separated variable) 파일의 형태로 아웃룩에서 받아올 수 있다. 대부분의 사용자를 위해 이는 IT 부서에서 해줄 수 있다.

CNET의 기술 팀원들은 상당기간 데스크톱용으로 다양한 리눅스 버전을 사용해 왔으며 익스체인지 이메일과 캘린더를 에볼루션을 통해 사용해왔다. 이들은 종종 잘 되지 않는 것에는 회의 초청장에 대한 답장의 복사본 전송과 같은 난해한 기능이 있다고 말한다. 이런 기능은 사용자들이 원하지 않을 수도 있다.

게임(GAIM) 인스턴트 메시징

게임 클라이언트를 통해 주요 IM 서비스를 모두 접근할 수 있으며 테스트한 모든 리눅스 배포판은 게임을 포함했다. 지디넷 UK의 일부 직원은 윈도우에서 이미 게임을 사용해 다양한 동료와 클라이언트가 사용하는 IM 소프트웨어를 통합하고 있었다. 동시에 야후!와 AOL IM 서비스의 광고도 차단하고 있었다. 따라서 이들에게 리눅스로의 전환은 훨씬 쉬웠다.

프린터 지원

대부분의 배포판은 네트워크 프린터가 추가되는 것을 허용하며 문서의 직접 프린트도 허용한다.(맨드리바에서 네트워크 추가가 가장 어려워 보인다.)

관리와 지원

관리와 지원은 일부에게 중요한 기능이다. 레드햇과 노벨 리눅스 데스크톱과 같은 리눅스 배포판은 연간 지원 계약에 기반해 판매된다. 이는 예측할 수 있는 비용을 제공하며 전화로 지원받을 수 있다는 편리함도 제공한다.

팀스는 "지원은 중요하지만 노벨이나 레드햇과 같은 회사를 통할 필요는 없다. 오픈소스 컨소시엄은 우분투와 같은 배포판을 지원하는 사람들의 긴 목록을 보유하고 있다. 오픈소스와 관련된 다양한 컨설팅 서비스를 제공하는 공동체가 있다. 다양한 중소기업으로부터 훌륭한 서비스를 제공 받은 경험이 있다. 이들 회사는 다른 방법으로 알 수는 없었을 것이다. 좋은 것은 누구도 독점하지 않는다는 것"이라고 말했다.

버밍햄은 연간 라이선스 옵션을 포기했으며 지원계약이 포함된 노벨의 리눅스 데스크톱 대신 SuSE 9.3 데스크톱을 선택했다. 그러나 노벨 브랜드 제품이 그의 시험이 진행도중에 나왔기 때문에 이는 시기상의 문제였다.

똑같이 중요한 것은 회사내부의 관리이다. 리눅스 운영체제의 업데이트 기능은 접근이 가능하고 커스텀화도 가능해야 한다. 따라서 기업내의 데스크톱에 업데이트가 적용될 수 있어야 한다.

젠웍스 데스크톱 관리 제품을 통합하는 노벨의 레드 카펫은 이런 측면에서 두드러진다. 그러나 다른 리눅스 버전도 자동관리 기능을 제공한다.

비 윈도우 애플리케이션

리눅스의 전망이 좋지만 아직 윈도우를 완전히 버릴 준비는 안돼 있다. 한가지 이유가 있다. 내가 의존하고 있는 윈도우 프로그램과 유틸리티이다. 일부는 노력을 하면 리눅스 버전을 받을 수 있으나 질긴 잡초를 잘 보면 뿌리가 엉킨 경우가 많다.

다음은 내가 윈도우를 아직 사용하는 이유다. 일부는 리눅스를 위한 대안이 분명히 존재할 것이다. 그러나 아직 찾지 못했다.

스카이프를 사용한다. 비록 스카이프가 물론 리눅스에서 제공되기는 한다. 맨드리바 리눅스에서 제공되며 다른 리눅스에서도 다운로드와 설치가 쉽다. 그러나 주소록과 메시지에서 자동으로 통화를 가능하게 하는 아웃룩용 스카이프 툴바도 사용한다. 내가 알기로는 에볼루션을 위한 스카이프 툴바는 아직 존재하지 않는다.

블루투스를 이용해 소니에릭슨 휴대폰에서 소니 에릭슨 자체 소프트웨어를 사용해 약속 스케줄을 동기화한다. 아웃룩과 잘 동작하며 PC에서만 사용가능하다.

보이프버스터(Voipbuster)와 같은 다른 IP 전화 서비스는 PC용 클라이언트만 제공되는 경우가 많다.

또한 아웃룩용의 룩아웃을 사용한다. 거대한 .pst 파일에서 메시지와 약속을 신속하게 찾아주는 훌륭한 프로그램이다. 에볼루션은 조직화가 더 잘돼 있고 이와 같은 애드온이 필요 없을 수도 있다. 장기간 사용한 후 이를 알아낼 수 있을 것이다.

구글 데스크톱과 사이드바는 윈도우 전용이다. 그놈은 비글 프로젝트를 통해 곧 비슷한 기능을 제공할 것이다.

원격 스토리지. 공유와 백업을 위해 넷기어 스토리지 센트럴 박스를 갖고 있다. 윈도우 소프트웨어만 지원된다. 또한 스마트싱크로 이 박스와 동기화하는데 이 소프트웨어도 윈도우 전용이다.

더 큰 기업에서는 아마도 더 많은 윈도우 기반 프로그램이 사용되고 있을 것이다. 예를 들어 지방 정부에서는 주택 검사나 등급부여 등의 업무를 위해 다양한 특수 소프트웨어를 사용할 수 있다.

레스 팀스는 소프트웨어 개발자들이 서버와 마찬가지로 클라이언트 애플리케이션도 리눅스 버전을 만들도록 독려한다고 말한다. 그러나 동시에 윈도우 애플리케이션 수행을 위한 다른 방법도 있다.

팀스는 "시험 운용을 했으며 와인에서 애플리케이션 수행에 어려움이 없었다"라고 말했다. 와인 윈도우 에뮬레이터는 포직스 호환 운영체제를 수행하는 x86 기종에서 윈도우 API를 제공한다.

다른 가능성은 시트릭스와 같은 것을 사용해 서버에서 애플리케이션을 수행하고 이를 터미널 윈도우로 연결하는 것이다.

MS 윈도우 관성을 벗자

윈도우 애플리케이션 수행은 이 프로젝트의 범위를 벗어나지만 기업들의 데스크톱이 윈도우에서 벗어나려면 반드시 다뤄야만 하는 주제다. 현재 윈도우 기반 애플리케이션을 꼭 필요로 하지 않는다고 해도 미래에 이는 바뀔 수 있다.

리눅스 데스크톱은 윈도우에 도전할 준비가 돼 있지만 IT 관리자들이 결정을 내려야 한다. 리눅스는 무료일 수 있지만 윈도우는 PC를 구매할 때 이미 들어있다.

리눅스 데스크톱을 작동시키고 윈도우를 끄는 데는 추가의 일이 필요하지만, MS 세계에 우리를 가둬놓고 있는 주요 요인은 점점 더 관성이 아닌가 하는 생각이다.

 내용출처 : ZDNet Korea

Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요

$sudo apt-get install build-essential

위와 같이 우분투 계열에서는 sudo로 모든걸 해결한다.
그래도 정 루트 권한을 득하고 싶다면

$sudo su

를 사용하던가

$sudo passwd

를 해서 root패스를 설정한 뒤 su로 루트 권한을 가지면 된다.

Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요

원문 링크 : 리눅스/유닉스 에디터 'vi' (3) - ex 명령어 익히기


ex 명령어 익히기

ex 명령어의 기본형식

:k,l command m - (범위지정) (명령어) (명령이 수행될 위치)

:k,l command
m
:1,10 co 50 1 줄 부터 10 줄 까지를 50 줄 이후로 복사
:34,50 d 34 줄 부터 50 줄 까지 삭제
  :100,150 m 10 100 줄 부터 150 줄까지를 10 줄 이후로 옮김
  :.,$ d 현재줄부터 끝까지 지우기
  :.,+20 co -4 현재줄부터 20줄을, 4줄 위에 복사하기
  :-,+ t 0 위, 아래로 한줄(총 3줄)씩을, 문서 맨위에 복사하기
  :/pattern/ d pattern 이 들어있는 줄 지우기
  :/pattern/ -nd pattern 이 들어있는 줄로부터 n 번째 윗줄 지우기
  :/pattern/ +nd pattern 이 들어있는 줄로부터 n 번째 아랫줄 지우기
  :/p1/, /p2/ d p1 이 들어있는 줄부터, p2 가 들어있는 줄까지 지우기
  :.,/pa/ m 23 현재줄부터 pa 이 들어있는 줄까지, 23번줄 이후로 옮기기
g 옵션 붙이기 :g/pattern 파일전체에서 마지막으로 pattern 이 쓰여진 줄로 가기
  :g/pattern/ p 파일전체에서 pattern 이 있는줄 보여주기
  :g/pattern/ nu 파일전체에서 patterm 이 있는줄을 번호와 함께 보여주기
  :60,124 g/pa/ p 60,124 줄 사이에서 pa 이 들어있는줄 보여주기
저장 및 종료 :w 저장하기
  :q 종료하기
  :wq 저장하고 종료하기
  :x 저장하고 종료하기 (:wq 와 동일)
  :w! 강제로 저장하기 (read-only 로 열었을경우)
  :q! 편집한 내용을 저장하지 않고 종료하기
  :w new_filename new_filename으로 저장하기
  :w %.new 현재파일 이름에 .new 를 붙여서 새로운 파일로 저장
  :230,$ w filename 230 줄부터 끝줄까지 filename으로 저장하기
  :.,580 w filename 현재줄부터 580줄까지 filename으로 저장하기
  :1,10 w new_filename 1줄부터 10줄까지 new_filename으로 저장하기
  :340,$ w >>new_file 340줄부터 끝줄까지 new_file에 추가하기
읽기 :r[ead] filename 현재위치에 filename 읽어들이기
  :r /usr/local /data 현재위치에 /usr/local/data 읽어들이기
  :185 r /usr/ local/data 185줄 이후에 /usr/local/data 읽어들이기
  :$ r /usr/local/data 맨끝줄 이후에 /usr/local/data 읽어들이기
  :0 r /usr/local/data 맨윗줄에 /usr/local/data 읽어들이기
  :/pa/ r /usr/local/data pa 이 존재하는 줄에 /usr/local/data 읽어들이기
다중편집하기 vi file1 file2 file3 :args 편집중인 파일목록 보여주기
  :n[ext] 다음 파일로 넘어가기
  :prev[ious] 이전파일로 돌아가기
  sc/ESC/g BX가 있는줄 찾아서 Esc 를 ESC 로 바꾸
  :% s/editer/editor/g 처음줄부터 마지막줄까지, editer 를 editor 로 바꾸기
  :g/editer/ s//editor/g 위와 동일("s/" 다음에 인자가 없어서 윗줄과 같은효과
Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요

원문 링크 : 리눅스/유닉스 에디터 'vi' (2) - VI 활용


VI 활용

커서 움직이기

글자 단위 이동 k 위쪽으로
  j 아랫쪽으로
  h 왼쪽으로
  l 오른쪽으로
줄 단위 이동 ^ 줄의 맨앞으로 (빈칸무시)
  0 줄의 맨앞으로
  $ 줄의 맨뒤로
  % 짝을 이루는 기호 확인하기
  + 다음줄의 첫번째 글자로
  - 윗줄의 첫번째 글자로
  n| 현재줄의 n 번째 열로 (n은 임의의 숫자)
  H 화면상에 처음줄로
  M 화면상의 중간줄로
  L 화면상의 마지막줄로
  nH 화면상의 처음줄로부터 n 줄 밑으로
  nL 화면상의 마지막줄로부터 n 줄 위로
  G 맨 마지막줄로 (go)
  nG n 번째줄로
  gg 맨 마지막줄로
  ngg n 번째줄로
  n n 번째줄로
단어 단위 이동 w 한단어 오른쪽으로 (word)
  b 한단어 왼쪽으로 (back)
  e 현재 단어의 끝으로 이동 (end)
  E 현재 단어의 끝으로 이동 (구두점 무시 - 영문자에 해당 - ? . !.)
  ) 다음 문장의 시작으로
  ( 이전 문장의 시작으로
  } 다음 문단의 시작으로
  { 이전 문단의 시작으로
  ]] 다음 섹션의 시작으로
  [[ 이전 섹션의 시작으로
화면단위 이동 Control - F 한화면 밑으로 이동
  Control - B 한화면 위로 이동
  Control - D 반쪽화면 밑으로 이동
  Control - U 반쪽화면 위로 이동
  Control - E 커서는 현재위치 그대로 화면만 한줄씩 위로 이동
  Control - Y 커서는 현재위치 그대로 화면만 한줄씩 아래로 이동
  z 커서의 위치와 함께, 화면상의 맨위로
  nz n번 라인을 화면상의 맨위로
  z. 커서의 위치와 함께, 화면상의 중간으로
  z- 커서의 위치와 함께, 화면상의 맨아래로
  ## Control - G 현재 편집문서의 정보 보여주기
  ## Control - L 화면 재표시 (글자가 깨졌을경우)
  ## Control - R 화면 재표시 (글자가 깨졌을경우) 편집하기 복사, 붙이기, 합치기

편집하기

복사, 붙이기,
합치기
y : 복사하기
yy 한줄복사
  2yy 두줄복사
  nyy n줄 복사 (n 은 임의의숫자)
  yw 한단어 복사
  y2w 두단어 복사
  y$ 그줄 끝까지 복사
  y0(y^) 그줄 처음까지 복사
  yG 문서의 끝까지 복사
  Y 한줄복사 (yy 와 동일)
마지막 명령어의
반복
. 마지막에 수행한 명령어를 반복한다.
2. 명령어를 2번 반복한다.
  p : 붙이기
  p 아래로(오른쪽으로) 붙이기
  2p 아래로(오른쪽으로) 두번 붙이기
  P 위로(왼쪽으로) 붙이기
  2P 위로(왼쪽으로) 두번 붙이기
  J : 두줄 합치기
  J 현재줄을 윗줄에 붙이기 (두줄 합치기)
  3J 세줄합치기
지우기, 복구
하기, 바꾸기
d : 지우기
dd 한줄지우기
  2dd 두줄지우기
  ndd n줄지우기 (n 은 임의의숫자)
  dw 한단어 지우기
  d2w 두단어 지우기
  d$ 그줄 끝까지 지우기
  d0(d^) 그줄 처음까지 지우기
  dG 문서 끝까지 지우기
  D 그줄 끝까지 지우기(d$ 와 동일)
  u : 복구하기
  u 한번복구하기
  2u 두번복구하기
  c : 바꾸기
  cc 한줄바꾸기
  2cc 두줄바꾸기
  ncc 여러줄 바꾸기 (n 은 임의의숫자)
  cw 한단어 바꾸기
  ce 한단어 바꾸기 (공백 제외)
  c2w 두단어 바꾸기
  c$ 그줄 끝까지 바꾸기
  c0(c^) 문서 끝까지 바꾸기
  C 그줄 끝까지 바꾸기 (c$ 와 동일)
  r : 한글자 바꾸기
  r 한글자 바꾸기
  2r 두글자 바꾸기 (r 명령어는 insert 모드로 바뀌지 않는다.)
  R : 바꾸면서 덮어 쓰기
  s : )한글자 지우고 insert 모드로 (cl 와 동일)
  - S : 한줄지우고 insert 모드로 (cc 와 동일)
  ~ : 대문자 <-> 소문자 바꾸기 (영문자에만 해당)
  지우기와 바꾸기의 차이점은 바꾸기 명령어 후에 vi 편집모드로 바뀐다.
찾기 /pattern pattern라는 단어 찾기 (위에서 아래로)
  ?pattern pattern라는 단어찾기 (아래로 위에서)
  / : 찾기반복 - 위에서 아래로
  n : 찾기반복 - 위에서 아래로
  ? : 찾기반복 - 아래에서 위로
  N : 찾기반복 - 아래에서 위로
  fx : 현재줄에서 x문자 찾기 (x 는 한개의 글자)
  Fx : 현재줄에서 반대방향으로 x문자 찾기 (x 는 한개의 글자)
  tx : 현재줄에서 x문자를 찾아서 바로전에 커서놓기
  Tx : 현재줄에서 반대방향으로 x문자를 찾아서 바로후에 커서놓기
  ; : 현재줄에서 한글자 찾기반복
  ' : 현재줄에서 한글자 찾기반복 (반대방향으로)
찾기와 편집
명령의 응용
d/simple simple 이라는 단어가 나올때까지 지우기
d/^scully 줄의 맨앞에 scully 라는 단어가 나올때까지 지우기
  y/yahoo yahoo 라는 단어가 나올때까지 복사하기 편집모드 지정하기
  i : insert 현재커서위치
  10i* * 문자를 10개 집어넣기
  25i=- =- 를 25개 반복하기
  I : 현재커서가 위치한 줄의 맨처음에
  a : append 현재커서위치 바로 다음에
  A : 현재커서가 위치한 줄의 맨끝에
  o : open 현재커서위치 바로 아래줄에
  O : Open 현재커서위치 바로 윗줄에 위치 기억하기
  mx : mark 현재의 커서위치를 x 라는 문자로 기억
  `x : 기억된 x 위치로 이동
  `` : 이동하기 전의 위치로 (제자리)
  'x : 기억된 x 위치의 맨 앞으로 이동
  '' : 이동하기 전 위치의 맨앞으로 이동 버퍼 이용하기
  "xyy : x 라는 이름의 버퍼에 한줄 복사 하기
  "xp : x 라는 이름의 버퍼에 저장된 내용을 붙이기
잠시 쉬었다
가기
:= 현재 줄번호 보여주기
:/pattern/ = pattern 이 위치한 줄번호 보여주기
Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요

원문 링크 : 리눅스/유닉스 에디터 'vi' (1) - VI 기초 개념 잡기


VI 기초 개념 잡기

커서 움직이기

글자 단위 이동 k 위쪽으로
  j 아랫쪽으로
  h 왼쪽으로
  l 오른쪽으로
줄 단위 이동 ^ 줄의 맨앞으로 (빈칸무시)
  0 줄의 맨앞으로
  $ 줄의 맨뒤로
  % 짝을 이루는 기호 확인하기
  + 다음줄의 첫번째 글자로
  - 윗줄의 첫번째 글자로
  n| 현재줄의 n 번째 열로 (n은 임의의 숫자)
  H 화면상에 처음줄로
  M 화면상의 중간줄로
  L 화면상의 마지막줄로
  nH 화면상의 처음줄로부터 n 줄 밑으로
  nL 화면상의 마지막줄로부터 n 줄 위로
  G 맨 마지막줄로 (go)
  nG n 번째줄로
  gg 맨 마지막줄로
  ngg n 번째줄로
  n n 번째줄로
단어 단위 이동 w 한단어 오른쪽으로 (word)
  b 한단어 왼쪽으로 (back)
  e 현재 단어의 끝으로 이동 (end)
  E 현재 단어의 끝으로 이동 (구두점 무시 - 영문자에 해당 - ? . !.)
  ) 다음 문장의 시작으로
  ( 이전 문장의 시작으로
  } 다음 문단의 시작으로
  { 이전 문단의 시작으로
  ]] 다음 섹션의 시작으로
  [[ 이전 섹션의 시작으로
화면단위 이동 Control - F 한화면 밑으로 이동
  Control - B 한화면 위로 이동
  Control - D 반쪽화면 밑으로 이동
  Control - U 반쪽화면 위로 이동
  Control - E 커서는 현재위치 그대로 화면만 한줄씩 위로 이동
  Control - Y 커서는 현재위치 그대로 화면만 한줄씩 아래로 이동
  z 커서의 위치와 함께, 화면상의 맨위로
  nz n번 라인을 화면상의 맨위로
  z. 커서의 위치와 함께, 화면상의 중간으로
  z- 커서의 위치와 함께, 화면상의 맨아래로
  ## Control - G 현재 편집문서의 정보 보여주기
  ## Control - L 화면 재표시 (글자가 깨졌을경우)
  ## Control - R 화면 재표시 (글자가 깨졌을경우) 편집하기 복사, 붙이기, 합치기

편집하기

복사, 붙이기,
합치기
y : 복사하기
yy 한줄복사
  2yy 두줄복사
  nyy n줄 복사 (n 은 임의의숫자)
  yw 한단어 복사
  y2w 두단어 복사
  y$ 그줄 끝까지 복사
  y0(y^) 그줄 처음까지 복사
  yG 문서의 끝까지 복사
  Y 한줄복사 (yy 와 동일)
마지막 명령어의
반복
. 마지막에 수행한 명령어를 반복한다.
2. 명령어를 2번 반복한다.
  p : 붙이기
  p 아래로(오른쪽으로) 붙이기
  2p 아래로(오른쪽으로) 두번 붙이기
  P 위로(왼쪽으로) 붙이기
  2P 위로(왼쪽으로) 두번 붙이기
  J : 두줄 합치기
  J 현재줄을 윗줄에 붙이기 (두줄 합치기)
  3J 세줄합치기
지우기, 복구
하기, 바꾸기
d : 지우기
dd 한줄지우기
  2dd 두줄지우기
  ndd n줄지우기 (n 은 임의의숫자)
  dw 한단어 지우기
  d2w 두단어 지우기
  d$ 그줄 끝까지 지우기
  d0(d^) 그줄 처음까지 지우기
  dG 문서 끝까지 지우기
  D 그줄 끝까지 지우기(d$ 와 동일)
  u : 복구하기
  u 한번복구하기
  2u 두번복구하기
  c : 바꾸기
  cc 한줄바꾸기
  2cc 두줄바꾸기
  ncc 여러줄 바꾸기 (n 은 임의의숫자)
  cw 한단어 바꾸기
  ce 한단어 바꾸기 (공백 제외)
  c2w 두단어 바꾸기
  c$ 그줄 끝까지 바꾸기
  c0(c^) 문서 끝까지 바꾸기
  C 그줄 끝까지 바꾸기 (c$ 와 동일)
  r : 한글자 바꾸기
  r 한글자 바꾸기
  2r 두글자 바꾸기 (r 명령어는 insert 모드로 바뀌지 않는다.)
  R : 바꾸면서 덮어 쓰기
  s : )한글자 지우고 insert 모드로 (cl 와 동일)
  - S : 한줄지우고 insert 모드로 (cc 와 동일)
  ~ : 대문자 <-> 소문자 바꾸기 (영문자에만 해당)
  지우기와 바꾸기의 차이점은 바꾸기 명령어 후에 vi 편집모드로 바뀐다.
찾기 /pattern pattern라는 단어 찾기 (위에서 아래로)
  ?pattern pattern라는 단어찾기 (아래로 위에서)
  / : 찾기반복 - 위에서 아래로
  n : 찾기반복 - 위에서 아래로
  ? : 찾기반복 - 아래에서 위로
  N : 찾기반복 - 아래에서 위로
  fx : 현재줄에서 x문자 찾기 (x 는 한개의 글자)
  Fx : 현재줄에서 반대방향으로 x문자 찾기 (x 는 한개의 글자)
  tx : 현재줄에서 x문자를 찾아서 바로전에 커서놓기
  Tx : 현재줄에서 반대방향으로 x문자를 찾아서 바로후에 커서놓기
  ; : 현재줄에서 한글자 찾기반복
  ' : 현재줄에서 한글자 찾기반복 (반대방향으로)
찾기와 편집
명령의 응용
d/simple simple 이라는 단어가 나올때까지 지우기
d/^scully 줄의 맨앞에 scully 라는 단어가 나올때까지 지우기
  y/yahoo yahoo 라는 단어가 나올때까지 복사하기 편집모드 지정하기
  i : insert 현재커서위치
  10i* * 문자를 10개 집어넣기
  25i=- =- 를 25개 반복하기
  I : 현재커서가 위치한 줄의 맨처음에
  a : append 현재커서위치 바로 다음에
  A : 현재커서가 위치한 줄의 맨끝에
  o : open 현재커서위치 바로 아래줄에
  O : Open 현재커서위치 바로 윗줄에 위치 기억하기
  mx : mark 현재의 커서위치를 x 라는 문자로 기억
  `x : 기억된 x 위치로 이동
  `` : 이동하기 전의 위치로 (제자리)
  'x : 기억된 x 위치의 맨 앞으로 이동
  '' : 이동하기 전 위치의 맨앞으로 이동 버퍼 이용하기
  "xyy : x 라는 이름의 버퍼에 한줄 복사 하기
  "xp : x 라는 이름의 버퍼에 저장된 내용을 붙이기
잠시 쉬었다
가기
:= 현재 줄번호 보여주기
:/pattern/ = pattern 이 위치한 줄번호 보여주기
Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요

원문 링크 : 리눅스/유닉스 에디터 'pico'


리눅스/유닉스 에디터 'pico'

홈페이지를 만들기 위해 HTML 에디터 프로그램으로 나모와 프런트 페이지등을 많이 사용하듯이 유닉스 시스템에서는 pico 나 vi 와 같은 편집기 프로그램을 많이 사용합니다.
편집기는 telnet 으로 서버에 로긴후 pico 또는 vi 라고 입력하기만 하면 되고 그중 PICO 편집기는 별도의 도움말이 필요 없을 정도로 하단의 Help 메뉴를 보면서 쉽게 사용하실 수 있습니다.
아래는 편집기 프로그램중 가장 많이 사용되고 가장 기본적인 VI 에디터에 대한 명령어에 대한 안내와 pico에 대한 설명입니다.
가급적 유닉스 기반 시스템에 익숙하지 않은 초보자라면 pico 편집기를 사용하실 것을 권하며 보다 다양한 기능을 복잡한 편집기를 원하실 경우에는 vi 를 사용하시면 됩니다.

PICO 사용법

pico 를 불러낼 땐 telnet 으로 로긴한 상태에서 pico 라고만 타이핑하시면 됩니다.
또는 직접 파일을 편집하려면 pico filename 이라고 하시면 됩니다. 그럼, pico 의 화면이 나타납니다.
왼쪽위에 pico 의 버젼이 나타나고 중간에는 편집하고 있는 파일이름이 그리고 오른쪽위 에는 처음에는 아무 것도 안 나타나다 가 글을 쓰기 시작하면 'Modified'라고 나타납니다.
Modified 란 현재의 설정 상태에서 "변경되었다" 라는 뜻입니다. 처음 파일을 불러올 때와는 어떻게든 변경이 되었다라는 표시 입니다. 그리고 화면의 하단에 보시면 몇가지 단축키에 대한 설명이 나옵니다.
pico 의 단축키를 하나씩 따라 해보도록 합시다.

먼저 ^G(Ctrl + G) 글쇠는 "도움말보기" 입니다.
Pico Help Text 라고 해서 pico 에 대한 간단한 설명이 나옵니다.

피코는 pine 메일 프로그램과 이용방법이 아주 비슷하며 간단하고 쓰기 편한 문서에디터를 위해 디자인되었습니다.
제일 상단의 라인은 피코 프로그램의 버젼을 나타냅니다.
현재의 파일을 편집하셨다면 그 변경된 내용은 아직 저장되지 않았으며 타이핑된 내용들은 현재 커서위치에서 자동적으로 버퍼로 삽입이 됩니다.
편집명령과 옆에 있는 화살 표 글쇠에 의한 커서이동은 특수한 ctrl 글쇠 조합에 의해 피코에게 전달됩니다.
'^' 표시는 'Ctrl(콘트롤)'글쇠를 나타내고 'CTRL'글쇠로 나타내기도 합니다.
따라서 Ctrl+q 글쇠는 '^Q' 로 나타납니다. 아래의 단축키는 피코에서 사용가능 한 것입니 다.

도움말 보기

현재의 상태에서 '^G'를 누르면 도움말 화면이 나타납니다.
'^V'를 누르면 다음페이지로 넘어가고(PageDown) '^Y'를 누르면 앞화면으로(PageUp) 갑니다.
도움말 에서 빠져나오시려면 '^X' (Ctrl 키를 누른 상태에서 X를 누르시면 됩니다.)

커서이동

상/하/좌/우 화살표 글쇠와 페이지 업다운 글쇠로도 이동이 됩니다.
그러나 다음과 같이 사용하셔도 됩니다.

^F 현재 커서있는데서 한글자 앞으로 가기
^B 한글자 뒤로 가기
^P 한줄위로 가기
^N 현재 줄의 처음으로 가기
^A 현재 줄의 마지막으로 가기
^V 한 쪽 앞으로 가기
^Y 한 쪽 뒤로 가기

편집기능

^W 파일내에서 특정 글자를 검색하는 키입니다. 이 글쇠를 누르시면 'search :' 라고 나옵니다.
이 부분에 찾기 원하시는 글자를 타이핑한후 엔터를 치면 해당 글자가 있을 경우는 커서가 해당 검색에로 이동이 되고 없을 경우에는 Not Found 라고 나옵니다.
^L 화면다시 보여주기(리플레쉬
^D 현재 커서 위치의 글자 지우기. 리눅스에서는 del 글쇠가 작동하지 않습니다.
이때는 백스페이스를 이용할 수도 있지만 본 명령어를 이용하실 수 있습니다. ^^
현재 커서가 있는 위치부터 블럭설정시작. 이걸 착각하기 쉬운데 'Ctrl + 6' 글쇠를 누르면 블럭설정이 됩니다. 화살표로 조정하시고요. '6'글쇠위에보면 '^'표시가 되어있습니다.
^K 블럭으로 선택된 문장 자르기. 붙이기를 하기 위해서 먼저 원하는 만큼 잘라야 합니다. 블럭을 설정않고 이 글쇠를 누르면 현재 커서 가 있는 한 줄만 자릅니다. ^U 붙이기. 커서를 원하는 데로 옮겨 놓고 이 글쇠를 누르면 그곳에 붙여 집니다. ^I 현재 위치에서 Tab 문자 넣기
^T 영어 스펠링 체크하기
^C 현재 커서위치에 대한 정보
^J 문단을 정렬하는 기능입니다.

파일관련작업

^R 현재 커서위치에 외부파일 끼워넣기. 이 글쇠를 누르면 선택할 수 있는 글쇠가 나타납니다.
'^G'는 이 명령에 대한 간단한 설명보기 이고 '^T'는 파일 이름을 잘 모를 때 파일들이 있는 곳에 가서 찾을 수 있습니다.
그 파일 위에서 엔터를 찍으면 그 위치에 그 파일의 내용이 삽입됩니다. '^C'는 당연히 명령취소입니다.
^O 현재 버퍼를 파일로 저장.
^X 피코 끝내기
Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요

원문 링크 : Mac OS X를 x86으로! ( PearPC 와 Vmware 를 이용한 설치)


Mac OS X를 x86으로! ( PearPC 와 Vmware 를 이용한 설치)

1. 준비물

인용:
PearPC 프로그램 (PPC)
PearPC 용 3GB 이미지 파일 (3gbImage.rar)
Vmware 5.0.0
Apple OSX x86 DeveloperKit Install DVD 의 원본 이미지 파일 (AppleOSXx86DeveloperKitInstallDVD.iso)
darwin x86 의 이미지 파일 (darwinx86-801.iso)
x86 에 설치를 위한 패치 파일의 이미지 파일 (Stuff.iso)
[옵션] Native 설치를 위한 여분의 하드디스크

2. PearPC 를 이용하여 원본 OSX x86 설치하기

인용:
(PearPC 가 D:\PPC\PPC.EXE 에 설치되어있고 ISO 파일 3종 셋이 D:\ 에 위치한 상태에서 설명합니다)

2.1 준비하기
인용:
다운받은 PPC 폴더를 적당한 위치에 카피해주세요 ( ex> D:\PPC\ )
3gbImage.rar 파일의 압축을 풀어 적당한 위치에 카피해주세요 ( ex> D:\Tiger.img )
Apple OSX x86 DeveloperKit Install DVD 의 원본 이미지 파일을 적당한 위치에 카피해주세요 ( ex> D:\AppleOSXx86DeveloperKitInstallDVD.iso )
darwin x86 의 이미지 파일을 적당한 위치에 카피해주세요 ( ex> D:\darwinx86-801.iso )
x86 에 설치를 위한 패치 파일의 이미지 파일을 적당한 위치에 카피해주세요 ( ex> D:\Stuff.iso )

2.2 PPC.CFG 파일 손보기
인용:
pci_ide0_slave_image = "D:\AppleOSXx86DeveloperKitInstallDVD.iso" -> 가지고 계신 DVD 이미지 파일의 경로로 수정해주세요
prom_driver_graphic = "D:\PPC\video.x" -> PPC 가 설치된 폴더의 video.x 파일의 경로 입니다 본인의 설치 상태에 맞게 수정해주세요
pci_ide0_master_image = "D:\Tiger.img" -> 3gbImage.rar 파일의 압축을 풀어서 생성된 이미지 파일의 경로입니다 본인의 설치 상태에 맞게 수정해주세요

2.3 PPC 를 실행하여 원본 OSX x86 설치하기
인용:
PPC 를 실행하기 위해서는



시작 > 실행 > cmd + enter 로 command 모드로 들어가 PPC 가 설치된 경로로 이동합니다
경로로 이동하신후 PPC PPC.CFG 로 PearPC 를 실행해주세요

실행을 하면 아래와 같은 부팅메뉴가 나옵니다.



이때 partition 2 of 'cdrom0' (DiscRecording 2.1.8f3/Apple_HFS) 메뉴를 선택해주세요

OSX x86 DVD 로 부팅하겠다는 뜻 입니다

아래와 같이 애플로고가 나오면 일단 OSX x86 DVD 로의 부팅은 성공한것입니다



이제 조금 오래 (?) 기다려주시면 아래와 같은 화면이 나오면서 본격적으로 설치를 시작합니다



설치에 관한 설명은 따로 하지 않겠습니다.
설치를 진행하다보면 하드 용량이 부족하다고 하면서 Custom Install on "Untitled" 라고 나오며 인스톨할 파트들을 선택해주는 메뉴가 나옵니다.
이때 Printer Drivers, Additional Fonts 그리고 Xcode Tools 를 체크를 풀어주시면 3기가 용량에 맞게 인스톨이 됩니다



위에 그림처럼 체크를 풀어주셨으면 Install 버튼을 눌러 인스톨을 시작합니다
인스톨이 시작되면 DVD 를 체크 하는 팝업이 뜨는데 본인의 DVD 이미지가 정상적이라고 생각되어지면 Skip 버튼을 눌러 취소시킬수 있습니다.

자 인스톨이 다 끝날때까지 만화책이나 한권 보고 계세요~

인스톨이 끝나면 자동으로 리부팅이되며 이때 PearPC 는 종료 됩니다
이때 OSX x86 이 설치되면 Tiger.img 파일은 잘 보관해주세요

앞으로 할일은 Vmware 를 이용하여 하드 이미지에 설치 또는 Native 설치를 하는 법을 설명해 드리겠습니다

3. Vmware 를 이용하여 Darwinx86 설치하기
인용:
이제 Vmware 를 이용하여 Darwinx86 을 설치 해보겠습니다

3.1 드라이브 이미지 만들기 또는 Native 로 설치하기 위한 하드 선택하기
인용:


Vmware 를 실행하신후 File > New > Vitual Machine 을 선택해주세요



다음을 누르시고



Select the Appropriate Configuration 이 나오면 Custom 을 선택해주시고 다음을 눌러주세요



Select a Vitual Machine Format 이 나오면 New - Workstation 5 를 선택하신후 다음을 눌러주세요



Select a Guest Operating System 이 나오면 Other 를 선택하신후 Version 에서도 Other 를 선택해주신후 다음을 눌러주세요



처럼 나오면 Virtual machine name 에는 원하는 이름을 적으시면 되고 Location 은 그냥 두셔도 되고 아무 위치나 선택해주셔도 됩니다
단 Native 로 설치하실분은 Native 로 설치하실 하드디스크의 위치만 아니면 상관없습니다
단순한 프로파일의 위치니 기본값을 그대로 사용하시는걸 권장합니다



메모리 실정 부분인데 하드디스크 이미지에 설치하실분은 원하는 만큼 메모리를 늘려주시면 되고 Native 로 설치하실분은 별로 의미 없는 작업이니 그냥 256 메가로 두고 다음을 눌러주세요



이부분은 네트웍에 관계된 부분인데 기본 설정값인 Use bridged networking 으로 설정 합니다
하드디스크 이미지에 설치하실분은 OSX x86 에서 Vmware 의 랜에뮬을 지원안하는듯 합니다 네트웍은 포기하셔야할것 같습니다
Native 로 설치하실분은 위의 셋팅이 의미가 없습니다 그냥 다음을 눌러주세요



스카시 어댑터의 방식을 설정해주는 셋팅인데 그냥 Buslogic 으로 두고 다음을 눌러주세요



이부분에서 하드디스크 이미지에 설치하실분과 Native 로 설치하실분의 셋팅이 갈라집니다

하드디스크 이미지에 설치하는 법 부터 설명 드리겠습니다

- 하드디스크 이미지에 설치하기

Create a new virtual disk 를 선택하신후 다음을 눌러주세요



하드디스크 타잎을 IDE 로 선택하고 다음을 눌러주세요



디스크 이미지의 용량 (기본 4.0) 을 선택하신후 Allocate all disk space now 를 선택해주시고 다음을 눌러주세요
(Split disk into 2GB files 는 체크하지 말아주세요)



하드디스크 이미지가 생성될 경로를 선택해주시고 마침을 눌러주세요
이제 하드디스크 이미지가 생성되는 프로세스 바가 나타나고 모든 작업이 완료되면 셋팅이 완료 됩니다.

- Native 로 설치하기



Native 로 설치하실분은 Create a new virtual disk 를 선택하시지 마시고
Use a physical disk 를 선택하신후 다음을 눌러주세요

경고 문구가 나오고 하드디스크 디바이스를 설정하는 메뉴가 나옵니다



Device 에서 하드디스크를 선택해주세요
대부분의 경우 PhysicalDrive0 이 윈도우가 설치된 하드이고 PhysicalDrive1 번이 여분의 하드일것입니다
하드디스크가 여러개가 있다면 0, 1, 2, 3 이렇게 순서대로 나오겠죠
자신이 원하는 하드디스크 드라이브를 선택해주세요
만약 하드디스크를 여러개 달고 계시고 어느걸 선택해야할지 모르시겠는분은 컴퓨터를 끄시고 메인 하드와 Native 로 설치할 하드디스크만 남겨두고 부팅하시면 대부분 1번이 여분의 하드디스크가 될것입니다.
Usage 에서는 Use entire disk 를 선택해주시고 다음을 눌러주세요



하드디스크 정보를 저장할 vmdk 파일이 생성될 위치를 선택해주셔야 하는데 절대 Native 로 설치할 하드디스크에는 생성하지 말아주세요
위치를 선택하신후 Advaced 버튼을 눌러주세요



Virtual device node 를 선택해주셔야 하는데 위에 그림 처럼 Hard Disk 0 / CD-ROM 0 이라고 나와있는 위치가 아닌 다른곳으로 설정해주시고 마침을 눌러주시면 됩니다

이제 생성된 Virtual 머신을 가지고 Dawin 을 설치 합니다



위 그림에서 CD-ROM 을 더블 클릭해서



darwinx86-801.iso 의 경로를 지정해준후 OK 를 눌러주세요

이후 초록색 플레이버튼을 눌러 Vmware 를 실행시켜줍니다

이때 Windows - 드라이브 준비되지 않음 이라는 경고 문구가 나오는데 그냥 무시하시고 취소를 눌러주시면 됩니다

부팅시 Vmware 로고가 나오면 ESC 를 눌러 부팅메뉴에서 CD 드라이브 부팅을 선택해주세요



부팅이 완료되면

The following devices are avaliable for installation:
1. VMware Virtual IDE Hard Drive @ disk0 (4.0 GB)
Enter 'shell' to drop into a shell
Which device would you like to install Darwin onto?

Darwin 을 어디에 설치할것인지 물어봅니다
1 이라고 치고 엔터를 치시면 됩니다

For partitioning the disk, you have the following choices:
1) Auto-partition the disk (Destroys all disk contents)
2) Manually partition the disk using fdisk
*3) Use existing partitions
Choice:

* 는 처음에 하드디스크 이미지에 설치할때는 안보이지만 Native 로 설치할때는 보입니다

2 번을 누르고엔터

Starting fdisk
The signature for this MBR is invalid.
Would you like to initialize the partition table? [y]

y 를 누르고 엔터

Enter 'help' for information
fdisk:*1>

이 나오면

fdisk:*1> auto hfs + 엔터
fdisk(17) malloc: *** Deallocation of a pointer not malloced: 0x100010; this could be a double free(), or free() called whith the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug
fdisk:*1> update + 엔터
Machine code updated.
fdisk:*1> write + 엔터
Writing MBR at offset 0.
fdisk: 1> quit + 엔터

The following partitions are avalilabe:
/dev/disk0s1
Which will be the root partition?
/dev/disk0s1 + 엔터
Using:
/dev/disk01s1 as the root partition
WARNING: answering yes here will destroy all data on the partition
Would you like to do a clean install? (yes/no)yes + 엔터
Desired Volumename: lemolemo + 엔터 (OSX 에서 사용될 하드디스크의 이름)
Creating Filesystem on /dev/disk0s1
error: nknown filesystem type:
Aborting the installation
Press enter to reboot

* 여기서 하드디스크 이미지에 설치하시는 분은 위와 같은 에러를 보실수 있습니다

Native 로 설치시에는

The following partitions are avalilabe:
/dev/disk0s1
Which will be the root partition?
/dev/disk0s1 + 엔터
Using:
/dev/disk01s1 as the root partition
Choose the filesystem type from the following.
hfs) HFS+ (journald) filesystem
ufs) UFS filesystem
Filesystem type: hfs + 엔터
WARNING: answering yes here will destroy all data on the partition
Would you like to do a clean install? (yes/no)yes
Desired Volumename: lemolemo + 엔터 (OSX 에서 사용될 하드디스크의 이름)

이제 다윈이 설치 됩니다

* 하드디스크 이미지에 설치하시는 분들은 엔터를 누르시고 재부팅을 하신후 (재부팅시에도 esc 키를 눌러 CD-Rom 으로 부팅 하셔야 합니다)
부팅이 완료되면 다시 처음부터 물어봅니다
처음과 똑같이 답을 해주고 아래 질문이 나오면

For partitioning the disk, you have the following choices:
1) Auto-partition the disk (Destroys all disk contents)
2) Manually partition the disk using fdisk
3) Use existing partitions
Choice: 3 + 엔터

The following partitions are avalilabe:
/dev/disk0s1
Which will be the root partition?
/dev/disk0s1 + 엔터
Using:
/dev/disk01s1 as the root partition
Choose the filesystem type from the following.
hfs) HFS+ (journald) filesystem
ufs) UFS filesystem
Filesystem type: hfs + 엔터
WARNING: answering yes here will destroy all data on the partition
Would you like to do a clean install? (yes/no)yes
Desired Volumename: lemolemo + 엔터 (OSX 에서 사용될 하드디스크의 이름)

이제 Darwin 이 설치 됩니다

모든 파일들의 Uncompressing 이 끝나면

Updating mkext cache
Creating root user
Password: 원하는 패스워드를 입력후 엔터
Verifying - Password: 한번더 입력후 엔터
Set computer name (Bonjour hostname): lemolemo + 엔터 (원하는 이름을 치고 엔터를 쳐주세요)
Configuring emacs
Installation of the base system is now complete.
You may:
1) add a user to the new system
2) Reboot
3) Spawn a shell
Your Choice: 2 + 엔터

여기까지 하시면 다시 Vmware 화면으로 돌아옵니다


4. 설치된 Darwinx86 에 추가적인 패치 및 OSX x86 파일로 교체하기

인용:
이제는 CD-Rom 에 Stuff.iso 파일을 삽입(?) 시킨후 다시 녹색 플레이 버튼을 눌러 Vmware 를 실행해주세요
이때 또 아까와 같은 에러메세지가 나오는데 계속을 눌러 주시면 됩니다

다시 또 Vmware 로고 화면이 나오면 esc 키를 눌러 이제는 하드 디스크로 부팅을 해주시면 됩니다



부팅이 완료되면

Darwin/BSD (lemolemo.local) (console)

Login: root + 엔터
Password: 아까입력한 암호 + 엔터
Aug 22 20:44:48 lemolemo login: ROOT LOGIN (root) ON console
Welcome to Darwin!
lemolemo:~ root#

라고 나옵니다

아래와 같이 입력해주세요

lemolemo:~ root# cd ../.. + 엔터 (맨 하위 디렉토리로 이동)
lemolemo:/ root# mkdir mnt + 엔터 (Stuff.iso 를 마운팅 하기위한 임시 폴더 생성)
lemolemo:/ root# mkdir stuff + 엔터 (Stuff.iso 이미지의 파일들을 저장하기위한 임시 폴더 생성)
lemolemo:/ root# mount -t cd9660 /dev/disk1s0 /mnt + 엔터

* 만약 여기서 mount_cd9660: No such file or directory 라는 에러가 나온다면 disk1s0 을 disk2s0 또는 disk3s0 식으로 변경해서 마운팅 해보세요

에러가 나오지 않으면 마운팅이 된것입니다

lemolemo:/ root# cd mnt + 엔터 (마운팅된 CD-Rom 에 접근)
lemolemo:/mnt root# ls + 엔터 (마운팅된 내용 확인)
CoreGraphics ditto oah750d (이 3개의 파일이 ls 시에 나타나야 합니다)
lemolemo:/mnt root#

이제 mnt 디렉토리의 파일을 임시로 생성한 stuff 디렉토리에 카피합니다

lemolemo:/mnt root# cp -RLv oah750d /stuff/ + 엔터
oah750d -> /stuff/oah750d
lemolemo:/mnt root# cp -RLv ditto /stuff/ + 엔터
ditto -> /stuff/ditto/

만약 설치하시는 분의 CPU 가 SSE3 를 지원하면 여기까지만 진행해주시면 되고요

그렇지 않은 경우에는

lemolemo:/mnt root# cp -RLv CoreGraphics /stuff/ + 엔터 (SSE3 패치)
CoreGraphics -> /stuff/CoreGraphics

까지 카피해주세요

*SSE3 지원하는 분은 하시지 않아도 됩니다

모든 파일의 카피가 완료 되면

lemolemo:/mnt root# shutdown -h now + 엔터

명령으로 셧다운을 시켜줍니다

자자 여기까지 진행하셨으면 이제 최종 단계가 남았습니다

아까 하드디스크 이미지에 설치하실분과 Native 로 설치하실분 모두 Other.vmdk 파일을 생성하셨을 껍니다
이제 그 파일을 복사한후 새로운 이름으로 변경합니다
절대 원본 파일은 수정하시 마시고 새로운 이름으로 변경한 사본 - Other.vmdk 파일을 텍스트 에디터 (메모장 등) 로 불러옵니다

아마 디스크이미지에 설치하시는 분은
RW 8388608 FLAT "파일이름.vmdk" 0

그리고 Native 로 설치하시는분은

RW 60036480 FLAT "\\.\PhysicalDrive1" 0

대충 이런 부분이 있을껍니다
아래와 같이 변경 해주시고 저장해주세요

RW 6290928 FLAT "D:\Tiger.img" 0

여기서 D:\Tiger.img 는 아까 최초 PearPC 로 인스톨한 OSX x86 을 가지고 있는 이미지 파일입니다

수정이 완료 되었으면

다시 Vmware 로 가셔서 Edit vitual machine settings 를 클릭하신후

Hard Disk 선택하신후 Add 버튼을 눌러주세요

Add Hardware Wizard 가 실행되면

Hardware types: 에서 Hard Disk 를 선택하신후 다음을 눌러주세요



Use an existing virtual disk 를 선택하신후 다음을 눌러주세요

Select an Existing Disk 라고 나오면 아까 복사하고 수정한 "사본 - Other.vmdk" 파일을 찾아서 선택한후 마침을 눌러주세요

모든 작업이 완료되면 OK 버튼을 눌러주세요

하드디스크가 추가된걸 확인하시고 이제 CD-Rom 에서 Stuff.iso 파일 대신 darwinx86-801.iso 파일을 삽입(?) 시켜준후 녹색 플레이버튼을 눌러 Vmware 를 실행시켜 줍니다

또 에러가 나오면 무시하시고 계속 버튼을 눌러주세요

여기서는 CD-Rom 으로 부팅하실 필요가 없습니다

그냥 두면 알아서 하드디스크 (Darwin이 깔린) 로 부팅이 됩니다

Login: root
Password: 아까 설정한 패스워드

로 로그인을 해주세요

이제 아래와 같이 따라해주세요

lemolemo:~ root# cd ../.. + 엔터

lemolemo:/ root# cd stuff + 엔터

lemolemo:/stuff root# cp -RLv oah750d /Volumes/Untitled/usr/libexec/oah + 엔터 (여기서 Untitled 는 아까 PearPC 에서 OSX x86 을 인스톨 하실때 설정 하드디스크 이름 입니다)
oah750d -> /Volumes/Untitled/usr/libexec/oah

*lemolemo:/stuff root# cp -RLv CoreGraphics /Volumes/Untitled/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/ + 엔터
(* SSE3 지원 CPU 를 가지신분은 절대 하시지 마세요 ^^ SSE2 지원 CPU 분들을 위한 패치입니다)

lemolemo:/stuff root# cp -RLv /Volumes/Untitled/System/Library/PrivateFrameworks/Bom.framework /System/Library/PrivateFrameworks + 엔터

lemolemo:/stuff root#: mount -t cd9660 /dev/disk2s0 /mnt + 엔터 (아까와 마찬가지로 에러가 뜨면 적절히 변경 해주세요)

lemolemo:/stuff root# cp -RLv /mnt/System/Library/Extensions/ApplePS2Controller.kext /Volumes/Untitled/System/Library/Extensions + 엔터 (PS2 방식의 키보드와 마우스를 위한 드라이버 입니다)

lemolemo:/stuff root# ./ditto -rsrc /Volumes/Untitled / + 엔터 (이 작업은 시간이 좀 오래걸리는 작업입니다)

lemolemo:/stuff root# cd .. + 엔터
lemolemo:/ root# DiskUtil repairPermissions / + 엔터
lemolemo:/ root# mv /var/db/netinfo/local.nidb /var/db/netinfo/local.nidb.bad + 엔터 (에러가 나올수 있습니다)
lemolemo:/ root# rm /var/db/.AppleSetupDone + 엔터 (에러가 나올수 있습니다)
lemolemo:/ root# shutdown -h now

자 이제 모든 설치가 완료 되었습니다.

디스크이미지에 설치하신분은 그냥 부팅하시면 되고

Native 로 설치하신분은 chain0 파일을 C:\ (부팅되는 윈도우가 설치된 하드디스크) 에 복사하신후

boot.ini 파일을

---
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /noexecute=optin /fastdetect
C:\chain0="Mac OS X X86"
---

처럼 C:\chain0="Mac OS X X86" 이라는 줄만 한줄 추가해주면 멀티 부팅이 가능합니다

이상 허접하지만 OSX x86 설치 방법을 설명해드렸습니다

다음에는 이렇게 복잡한 방법이 아닌 부팅되는 DVD 를 만들어 Windows 처럼 부팅 DVD 로 부팅후 설치하는 법을 설명해드리겠습니다

여기까지 lemolemo 군 이었습니다
Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요

[펌] 부요 리눅스

2007.08.02 21:32 : 컴퓨터
국내 리눅서들의 기대를 한 몸에 받고 있는 부요가 드디어 그 실체를 드러냈다. 1여년의 개발기간 끝에 나온 부요는 그동안 리눅스 발전의 저해 요인이었던 호환성, 신뢰성을 가장 중요한 테마로 잡았다. 이를 바탕으로 국내 엔트리급 시장부터 엔터프라이즈 시장까지 범용적으로 확대할 계획이라고 밝혔다. 앞으로 국내 리눅스의 표준으로 자리 잡게 될 부요에 대한 모든 것을 준비했다.

정부는 2004년 이후 공개 소프트웨어 활성화 지원 정책을 강력히 추진하고 있다. 우리나라 뿐 아니라 여러 유럽 국가들도 30여개 이상의 공개 소프트웨어 기술 개발 프로젝트와 활용 촉진을 위한 프로젝트를 수행하고 있으며, 중국은 국가안보 확립과 기술 자립국 실현이라는 정책적 목표 아래 공개 소프트웨어 개발과 도입 확산에 적극적으로 정책을 마련하고 있다. 일본 역시 공개 소프트웨어를 소프트웨어 분야의 핵심기술로 인식하고 중앙정부와 지방자체단체, 특히 홋가이도, 나하시, 기후현, 스모토시가 가장 활발한 정책을 펼치고 있다. 이처럼 정부 차원의 공개 소프트웨어 활성화 지원 정책이 계속되고 있음에도 불구하고 국내 리눅스 시장은 여전히 정체되고 있다. 그 이유는 무엇일까.

리눅스로 대표되는 공개 소프트웨어 산업이 우리나라에서 활성화되지 않는 이유는 다음 세 가지이다. 첫째, 이미 개발되어 공개된 8만 여개의 공개 소프트웨어와 개발 중인 10여만 개의 공개 소프트웨어 가운데 어떤 것을 골라 써야 하는지, 그 고른 것이 과연 제대로 쓸 수 있는지를 알 수 없기 때문이다. 또 다양한 공개 소프트웨어의 조합으로 이루어진 최종 솔루션 사이에 호환성이 문제가 된다. 둘째, 공개 소프트웨어 사용자에 대한 효과적인 기술지원이 없기 때문이다. 국내 리눅스 업체의 규모가 작아서 전국적인 지원이 불가능하고 무엇보다도 주인 없는 공개 소프트웨어에 대한 사용자들의 불안감이 여전히 존재하여 사용하기를 주저하고 있다. 마지막으로 공개 소프트웨어를 사용하더라도 외국 리눅스 업체의 제품을 사용하는 것이다.

이상의 문제점인 호환성 결여, 신뢰성·안정성 미흡을 해결하기 위해 국내 관련 기업과 소프트웨어진흥원 그리고 한국전자통신연구원(ETRI)가 협력체를 이뤘다. 먼저 국내 표준 규격을 제정하고 그 규격에 맞고 외국 제품에 비해 성능과 기능이 떨어지지 않는 표준 공개 소프트웨어 컴퓨팅 플랫폼(Booyo, 부요로 명명함)을 개발하는 것이 목표이다. 그리고 부요를 기반으로 만든 국내 제품을 공인인증기관이 철저한 검사를 통해 인증하여 국산 제품 간의 호환성을 유지하며, 공공기관 사용자를 위해 전국적인 기술지원 네트워크를 구성하여 부요에서 발생하는 고객지원 업무체제를 구축하는 것이다.

부요 규격 개발을 위한 추진체계로는 관련 기업 협력체, 공개 소프트웨어 기반의 솔루션 발굴을 위한 국내 대학, 부요 표준화를 위한 TTA 및 OSDL(Open Source Development Lab.), 한중일 OSS (CJK Open Source SW) 활성화 포럼 단체 등으로 구성된다.

이러한 부요 규격인 자국의 표준 운영체제 플랫폼 기술을 확보함으로써 국내 ISV 솔루션 개발의 용이성과 특정 SW 사용에 의한 독과점 방지를 통한 공정경쟁 환경 조성 및 소비자 선택권 확대 등의 효과를 기대하며, 최근 논의되고 있는 한중일 3국의 기술협력으로 제3의 글로벌 제품 개발에 있어 우리나라도 주도적인 역할을 수행할 수 있다는 점이다.

날아오르는 펭귄을 상징
공개 소프트웨어 활성화 장애 요인을 제거하기 위해 국제산업 표준을 근간으로 하는 국내 표준 컴퓨팅 규격인 부요의 등장은 이처럼 남다른 의미를 가졌다. 부요라는 단어 역시 그러한 의미를 살리기 위해 결정된 이름이다. 우리나라 민요 가운데 까투리 사냥에서 중간에 까투리를 풀 섶에서 나와 날아오르도록 놀라게 하는 소리가 있다. 남쪽 지방에서는 ‘훠이여’ 북쪽 지방에서는 ‘우여’ 중부 지방에서는 ‘부요’라고 외친다. 즉 부요라는 이름은 리눅스의 희망과 도전 정신을 나타내는 펭귄을 날아오르게 하자는 의성어이다. 부요를 통해 펭귄을 날아오르게 해 리눅스 산업도 크게 일어날 것이라는 희망을 담고 있다. 그래서 부요의 로고도 펭귄이 날아오르는 모습이다. 또한 부요란 말은 한자로 풍요롭다는 의미인 ‘富饒’와 발음이 같아  소프트웨어 산업을 부유하고 넉넉하게 하겠다는 의도도 담겨져 있다.

부요 규격 발전 방향
부요는 데스크탑 규격과 서버 규격으로 구분된다. <그림 1>은 부요의 규격 로드맵이며 이는 <그림 2>의 리눅스 Hype Cycle를 기반으로 계획된 것이다. 리눅스 기술이 지난 몇 년 동안은 1~4 프로세서 환경인 엔트리급 서버 환경에서 발전해 왔지만, 향후에는 성능·기능 개선, 보안 기능 강화로 64비트 프로세서, 8프로세서 이상의 엔터프라이즈급 서버로 중요업무 솔루션을 수행하는 환경에서 발전하게 될 것이다.

기능·성능 향상을 위해서는 OSDL의 CGL(Carrier Grade Linux), DCL(Data Center Linux) 표준 규격을 따라야 한다. 데스크탑의 경우는 제한적인 업무 사용자를 우선적으로 목표하고 점차적으로 윈도우 환경과 같이 일반 사용자를 지원하는 방향으로 설정한다.

부요 개발에 관련되는 국제표준, 워킹그룹과 프로젝트들
부요 규격 개발에 관련되는 국제 표준은 다음과 같다.

◆ LSB(Linux Standard Base) : 프리 스탠다드 그룹 주도하의 리눅스 운영체제와 유틸리티 기능에 대한 표준. 현재 2.0 버전 진행
◆ FHS(Filesystem Hierarchy Standard): 디렉토리 구조나 파일의 위치에 대한 표준으로 애플리케이션 호환성을 보장하기 위함. 현재 2.3 버전 진행
◆ Open I18N(Open Internationalization) : 제품이나 서비스를 특정 지역의 언어나 문화에 맞추는, 즉 현지화 과정을 쉽게 할 수 있도록 규격을 제정
◆ CGL 규격 : OSDL 주도하의 다수의 컴퓨터 및 통신업체가 리눅스를 엔트리/엔터프라이즈급 시스템 등에 활용할 수 있도록 사실상 표준(de-facts standard)으로 리눅스 기능 규격. 버전 3.0까지 제정
◆ DCL 규격 : 리눅스를 중대형 시스템에 적용할 수 있도록 정의한 리눅스 규격으로 2004년 초부터 DCL 1.0 제정을 위해 회원사 모집 및 진행
◆ DTL(DeskTop Linux) 규격 : 데스크탑 기능 규격을 제정하기 위해 2004년 하반기부터 활동 시작
◆ DMTF(Distributed Management Task Force) CIM(Common Information Model)/WBEM 표준 : 시스템 관리의 정보 표준모델 및 기능, 구조에 표준 제정, 2001년부터 활동 본격화
◆ DMTF-UC(Utility Computing) 표준 : DMTF CIM/WBEM 표준 기반으로 유틸리티 컴퓨팅 환경을 구현하기 위한 표준 제정
◆ SA(Service Availability) AIS(Application Interface Spec.) : 차세대 HA 클러스터 기능 규격 제정
◆ SA(Service Availability) HPI(Hardware Platform Interface) : 서버 하드웨어 진단, 관리 규격 제정

또한 부요 규격 개발에 있어 페도라(Fedora) 프로젝트, source forge.net 사이트의 공개 프로젝트들, OSDL의 SIG(Special Interest Group) 프로젝트, KLDP 용어 한글화 프로젝트를 참조하고 있으며, OSDL CGL, DCL, DTL 워킹그룹과 CJK OSS 기술개발 워킹그룹과 표준화 워킹그룹 활동을 병행하고 있다.

부요 데스크탑 개발은 이렇게
부요 데스크탑은 <그림 3>과 같이 오피스, 인터넷 뱅킹과 같은 기업업무용 응용, 멀티미디어 장치 지원, 게임, 개발환경과 같이 일반 사용자를 위한 윈도우 환경을 제공하며, 순수 커널 버전 2.6.10과 시스템 서비스를 구성하는 패키지들로 구성된다. 특히 부요 데스크탑 1.0에서는 기업업무 환경에 초점을 두었는데, 특히 다음과 같은 주된 사항을 고려했다.

◆ LSB(Linux Standard Base) 등 산업 표준 규격을 기반으로 하는 개방형 구조 제공
◆ 기존 대중적인 데스크탑 운영체제 대비 리눅스의 부족 기능 해결
◆ 국내 사용자 환경을 위해 표준 한글 사용 환경과 한글처리 기능을 제공
◆ 설치가 용이하고, 원격 업데이트 지원체제 제공
◆ 데스크탑 환경 개선과 주변 장치 지원
◆ GNOME 기반의 사용자 친화적인 데스크탑 환경 제공
◆ 서버 중심의 리눅스를 데스크탑용으로 가볍고 빠른 데스크탑 환경 제공
◆ 오피스, 인터넷 뱅킹과 같은 기업업무용 환경 제공

 

사용자에게 친화적인 환경 제공
기존의 대중적인 데스크탑 OS 사용자에게 부요 데스크탑 사용시 사용자 친화적인 환경을 제공하기 위해 아이콘, 색감, 메뉴 구성 트리 등 사용 습관 호환성을 제공하고자 한다. 부요 데스크탑 환경은 GNOME 2.10을 기반으로 한다. 복잡하고 정리되지 않은 메뉴 구조를 개선하기 위해 데스크탑 리눅스 표준이라고 할 수 있는 freedesk top. org의 표준 중에 menu-0.9 스펙을 기반으로 구현했다. 메뉴는 하위 3단계로 구성했으며, 중복되는 메뉴를 줄이고 적절하지 않은 위치의 메뉴를 이동시켜 사용자가 원하는 프로그램을 쉽게 찾을 수 있도록 했다. 프로그램 아이콘 이름도 도구 이름과 설명 문구, 예를 들어 GIMP를 GIMP 이미지 편집기로 명명하여 어떤 종류의 응용 프로그램인지를 쉽게 알 수 있도록 했다.

테마와 바탕화면 디자인에서도 사용자에게 친근함을 제공할 수 있는 다양한 부요 전용 테마 패키지 등 전체적으로 통일성을 주었고, 아이콘 역시 친근하고 GNOME과 KDE에서 공동으로 사용할 수 있는 포맷의 아이콘 테마 집합을 제공한다. 또한 Truetype 폰트 환경에서 한글의 경우 작은 크기 문자의 경우 흐리게 출력되는 문제를 해결하기 위해 비트맵 폰트를 내장했다. <화면 1>은 부요 데스크탑 환경을 나타낸다.

부요 데스크탑 기본 문자셋트는 ko_KR이며, 인코딩 환경은 UTF-8이다. UTF-8로의 전환은 세계적인 추세이며 다국어 환경에 최상의 인코딩 환경이기 때문이다. 이 때문에 부요 데스크탑은 대중적인 OS 환경의 CP949 및 이와 호환되는 유닉스, 리눅스 환경에서 EUC-KR 인코딩과 호환되지 않는 문제가 있다.

이러한 문제점을 해결하기 위해 인코딩 변환 작업이 파일 전송 및 파일 편집시 필요하다. FTP로 데이터 이동, 파일 롤러 압축 프로그램을 이용한 경우, Samba(SMB)를 통해 대중적인 데스크탑 OS 네트워크 환경을 통한 데이터 이동 및 웹 브라우저를 통한 데이터 이동 시 파일 호환성 문제를 해결했다. 또한 GNOME 데스크탑 환경에서는 별도의 배터리 관리 프로그램을 통해 전원을 관리한다. 화면보호기 경우는 화면보호기 메뉴를 선택하게 되면 현재 로그인한 사용자의 정보를 파악 후 로그인한 사용자가 루트(root)일 경우 에러 메시지를 보여주고, 루트가 아닌 경우에는 기존의 화면보호기를 실행시켜 줌으로써, 루트 사용자의 보안 경각심을 강화시켰다.

리눅스 데스크탑에서 사용자 인터페이스 측면 중 중요한 부분이 한글 환경이다. 부요 데스크탑에서는 한글 표준화를 제안하고 데스크탑 환경 내 응용 프로그램 이름, 메뉴, 메시지 등에 사용하는 용어들을 통일했다. 또한 키보드 한/영 키를 이용하여 한글과 영어를 전환할 수 있도록 지원하며, 외부 장치를 마운트할 경우 한글 문제를 해결했다. 웹 브라우저에 대한 국내 사용자의 편의를 위해 파이어폭스 한글화도 진행됐다.

더욱 가볍고 빠르게
리눅스는 서버 중심으로 개발됐으며 많은 데몬들을 기본적으로 제공해줘야만 한다. 하지만 데스크탑은 서버와는 달리 낮은 사양, 저장 장치, 메모리 등 기타 하드웨어 측면에서 효율적으로 운영되어야 하며, 멀티미디어, 오피스 등 원격지 중심이 아닌 개인 사용자의 중심에서 서비스들을 제공해야 한다. 또한 서버는 항상 컴퓨터의 전원이 공급되는 반면, 데스크탑은 사용할 때만 시스템을 가동하기 때문에 개인이 사용하고자 하는 순간에 쉽고 빠르게 부팅되길 희망한다. 따라서 리눅스 데스크탑의 최적화 기술로 개인 사용자가 좀 더 쉽고 빠르게 사용할 수 있게 하여 적극적인 리눅스 데스크탑의 이용을 이끌어 내도록 했다. 부요 데스크탑의 최적화 기술은 부트 스플래시(splash) 패치를 적용하여 데스크탑 화면 시작과 종료 시 부팅·종료 화면으로 복잡한 정보 출력을 피하고 그래픽 환경의 부팅을 지원하여 좀 더 사용자 친화적인 화면을 제공했다.

복잡한 정보 출력 제거뿐만 아니라 기존 부팅시 순차적으로 서비스 데몬이 실행됐지만, 병렬 부팅을 지원하도록 해 서비스 데몬을 동시에 실행시켜 부팅 시간을 최소화했다. 그 결과 부요 데스크탑 1.0 개발에 참조됐던 페도라 코어 3 기준 시스템 관련 패키지, 네트워크 관련 패키지 등의 기본적으로 제공되는 서비스 수를 55% 이상 줄였으며, 활성 패키지 수도 50% 정도 줄였다. 즉, 기존의 리눅스 데스크탑 솔루션은 최대한 많은 서비스를 제공하는 반면, 부요 데스크탑에서는 필요한 서비스만을 제공하므로써 효율성을 극대화하고 서비스를 최적화했다.


 

< 표 1>과 <그림 4>는 부요 데스크탑과 타 솔루션간의 패키지 수, 용량, 데몬 수 비교와 설치 및 부팅 시간 비교를 나타낸다. 부요 데스크탑은 부팅 시간을 1분 이내로 지원한다. 부트 최적화뿐만 아니라 커널 컴파일 옵션과 형상 설정을 통해 커널의 서비스 정책 변경과 서버용 기능들을 적용하지 않도록 했다.

부요로 인터넷 뱅킹도 가능
부요 데스크탑에서는 인터넷 뱅킹 업무를 수행할 수 있도록 브라우저 플러그인 모듈을 지원한다. 국내 인터넷 뱅킹 서비스를 위한 웹 컨텐츠는 마이크로소프트(이하 MS)의 인터넷 익스플로러(이하 IE) 위주로 작성되어 리눅스에서는 한글과 페이지 깨짐이 발생한다.

즉 IE에서는 액티브X 기술 기반의 다양한 모듈이 탑재되어 실행 가능하다. 이 액티브X를 사용하여 로그인, 카드 결제, 인터넷 뱅킹 등 많은 기능을 하는 플러그인을 설치하여 사용하고 있다. 이에 대해 부요 데스크탑의 모질라는 XPCOM(Cross-Platform Component Object Model)으로 확장된 기능을 구현해 웹 브라우저에 다양한 플러그인 모듈을 사용할 수 있다.

자연스러운 Cut/Paste 환경 지원
윈도우 환경에서는 Cut/Paste가 일관성있게 동작하고 데이터 교환이 제대로 이루어지지만, X윈도우 환경 하에서는 표준이 없어서 Cut/Paste가 제대로 이루어지지 않는다. 부요 데스크탑에서는 X윈도우 환경 하에서 응용 프로그램끼리 Cut/Paste가 자연스럽게 이루어지면서 데이터 교환을 원활히 할 수 있도록 했다. 이 사업에서 개발되고 있는 클립보드 프로그램 이름은 Bclipboard라 이름붙였다. Bclipboard 구조는 <그림 5>와 같으며, 클립보드 동작에 필요한 주요 요소들은 다음과 같다.

◆ 클립보드 서버 : MS에서는 데이터의 보관을 OS 레벨에서 하지만, X윈도우에서는 응용 프로그램끼리 데이터를 주고받아야 한다. Cut한 응용 프로그램이 종료하면 그 데이터도 따라서 사라지게 된다. 이를 방지하기 위해 응용 프로그램의 종료 뒤에도 데이터를 보관해 주는 서버가 필요하다.
◆ 이력 관리기 : 클립보드 데이터의 히스토리를 보관하고 이를 관리한다.
◆ 클립보드 제어 : X윈도우 환경에서의 클립보드에는 owner와 requestor가 존재하기 때문에 owner와 requestor간 데이터를 제어한다.
◆ 데이터 교환 포맷 : 부요 데스크탑에서는 응용 간 데이터 변환을 위해 XML를 사용한다.

 

기존의 공개 소프트웨어인 Gcm, Klipper, Gclipboard와 BClip board를 <표 2>와 같이 비교해 보았다.


 

USB, 무선 인터넷 자유자재로 사용 가능
부요 데스크탑에서 하드웨어 장치 편이를 개선하기 위해 우선적으로 USB 장치와 노트북 사용자를 위한 무선랜 장치를 고려했다. USB 장치 경우, 대중적인 데스크탑 OS 계열과 유사하게 장치에 대한 관리와 USB 응용 매니저를 자동적으로 수행되도록 했으며, USB 드라이버 업데이트 지원과 USB 장치에 대한 한글 파일명, 고용량 메모리 지원, 쓰기 금지 장치 및 암호가 걸린 메모리 장치를 지원토록 했다. 무선 인터넷 경우도 액세스 포인트 검색, 사용자가 편리하고 쉽게 무선 인터넷을 사용할 수 있도록 자주 사용되는 정보들을 저장하는 기능을 지원하는 무선 인터넷 매니저를 제공한다.

다양한 기능을 통합할 수 있는 개발도구 환경
소프트웨어 통합개발환경(IDE, Integrated Development Environ ment)은 소프트웨어 편집기, 컴파일러, 코드 분석 도구, 테스팅 도구, 디버거 등 서로 다른 기능을 가지는 다양한 도구를 포함해야 한다. 따라서 부요 통합개발환경에서는 각종 개발도구를 기능적으로 포괄하는 IDE 기본 환경에 각종 개발도구를 포함할 수 있는 플러그인 기술, 디버깅을 위한 이벤트 모니터링 기술, 각종 템플릿 지원과 광범위한 개발언어 지원, 한글화 등 사용자 편의성을 향상시키고자 한다.

개발도구는 오픈소스 기반 통합개발도구의 대명사인 이클립스 IDE를 기반으로 코드 기반 검증도구를 플러그인하는 형식을 취한다. 이클립스 IDE는 기본 데스크탑 응용 계층에서 제공하는 JRE 또는 JDK를 이용하여 사용자에게 통합개발도구의 기능을 제공한다. 이클립스 IDE는 자바 기술과 플러그인 기술을 이용하여 기본적으로 이클립스에서 제공하는 자바 프로그램 개발 외에 사용자가 원하는 기능들을 추가할 수 있다. 이와 같은 플러그인 기술을 이용하여 프로그램 개발 과정 중에 발생하는 사용자의 다양한 요구 사항들을 충족할 수 있다. 예를 들면 자바 프로그램 개발 외에 웹, C/C++, UML, GUI 프로그램 개발과 같은 사용자의 요구 사항들을 모두 수용할 수 있다.

이클립스 IDE를 기반으로 한 통합개발도구는 신뢰성과 객관성을 보장하는 프로그램 개발을 위해 소스코드 기반 검증도구를 플러그인한다. 소스코드 기반 검증도구와 이클립스 IDE간의 데이터 통합을 위해 공통으로 사용되는 데이터의 스키마를 정의하고 공유함으로써 이루어진다. 따라서 부요 개발도구에서는 <그림 6>과 같이 XML 저장소를 설계하고 XML 저장소를 기반으로 소스코드 기반 검증 도구 외에 프로그램에 대한 복잡도 분석 도구를 통합한다.

부요 서버 개발은 이렇게
이제부터는 부요 서버에 대해 알아보자. 앞에서 기술한 부요 데스크탑의 사용 환경 개선, 리눅스 데스크탑의 부족한 기능 개선 등 대부분의 특징은 부요 서버에서도 적용되어, 부요에서 데스크탑이나 서버 사용 환경은 동일하다. 그러나 커널에서는 차이점이 있다. 데스크탑의 경우는 빠르고 가벼운 커널로 구성하는 반면, 서버에서는 국제 산업 표준을 만족하고 고성능, 고가용성, 고신뢰성을 보장하면서 엔트리급, 엔터프라이즈급 서버 환경을 안정적으로 지원해야 한다. 따라서 부요 서버는 다음과 같은 개발 목표를 가졌다.

◆ LSB2.0.3, FHS2.3 등 국제 산업 표준 만족
◆ 리눅스 기능 강화를 위한 CGL, DCL 규격 만족
◆ 풍부한 서버 개발 도구 제공
◆ 고부하 지속 환경 및 서버 성능 벤치마킹에서 국외 제품과 동일 기능, 성능 제공
◆ 공개 소프트웨어 기반의 보안, 시스템관리, 서버 가상화, 웹, DBMS 등 솔루션 제공

 

현재 리눅스 커널이 2.6까지 발전해왔지만, 국외 기술 분석지에 따르면 2008~2009년 정도에 유닉스 대비 기능적, 성능적으로 대등한 운영체제가 될 것이라 분석하고 있다. 즉 엔터프라이즈 시장에 리눅스 기술이 적용되기 위해서는 여전히 기능 개선, 구현이 필요하다는 의미이다. 2000년에 설립되어 현재 다수의 대형 소프트웨어 업체가 참여하고 있는 비영리단체 OSDL의 CGL, DCL 규격 명세서는 리눅스 운영체제가 미래에 케리어급 또는 엔터프라이즈급 운영체제로 발전하기 위해 필요한 기능을 요구 사항 형식으로 기술하고 있다. 특히 CGL 경우에는 예전의 독점적인 통신 시스템에서 개방형 구조의 시스템으로 하드웨어가 전환되고 있는 시점에 소프트웨어도 개방형 구조인 리눅스 기술을 적용하기 위해 추가적으로 요구되는 기술을 정의하는 규격 문서이다. 그러나 CGL 규격 명세서는 통신 시스템에 국한된 것이 아니라 서버 시스템이 엔터프라이즈급으로 변모하기 위해서도 필수적인 기능을 정의하고 있다. 따라서 부요 서버에서는 CGL 규격 반영 시 모든 규격을 개발하는 것보다 서버 시스템에 필수적이며 다른 기능과 상호 도움이 되는 것을 선택적으로 개발한다.

이 CGL은 2002년 8월에 CGL 규격 1.0 발표 이후, 현재 CGL 규격 3.1 작업을 진행하고 있다. DCL은 엔터프라이즈급 운영체제로 발전하기 위한 규격을 정의하며, 현재 규격 DCL 1.0까지 작업되어 있다. DCL에서는 CGL에서 정의된 규격 이외에 시스템 확장성과 성능을 우선적으로 하고 있다. 결론적으로 부요 서버는 리눅스 커널 2.6을 기반으로 기능과 성능 향상을 추구하기 위해 CGL, DCL 규격으로 개발되고 있다. <그림 7>은 부요 서버 소프트웨어 구조이다. 리눅스 커널뿐만 아니라 공개 소프트웨어의 웹, 데이터베이스 솔루션 등과 최근에 이슈가 되고 있는 표준 기반 시스템 관리 기술과 서버 가상화 기술도 제공한다. 이들 기술은 이 글의 뒷 부분에서 다시 다룰 예정이다.

부요 서버는 커널 2.6.10을 기반으로 페도라 프로젝트의 서버 서비스 데몬 등의 패키지들로 구성된다. 커널은 네 가지의 작업 방향을 통해 개발된다. 첫 번째 방향은 kernel.org의 공개 커널을 통한 기능의 개선이고, 두 번째는 주요 커널 개발자들의 공식 커널 패치를 이용한 기능 개선이다. 세 번째는 앞의 두 가지 방향으로 개발된 커널에 대한 기능, 성능 및 고부하 시험을 통해 도출된 개선점에 대한 수정이다. 마지막 개발 방향으로 CGL, DCL 규격 명세서를 기반으로 한 자체 분석을 통해 얻어진 부족한 부분에 대한 개발 작업이며, 이 작업을 통해 타제품에서 제공하지 않은 기능을 먼저 제공할 수 있다.

이제부터 부요 서버 커널의 기능을 자세히 알아보자. 일반적인 프로세스 관리, 메모리 관리 및 입출력 관리 측면보다 CGL 2.0 규격 명세서를 기반으로 커널 2.6에 추가·강조된 기능에 대해 표준, 성능과 확장성, 가용성, 편리성, 보안, 관리성 측면으로 구분한다.

국제 표준 기능은 반드시 만족
시스템 개발자나 사용자 모두에게 혼란을 방지하려면 API, 파일 시스템 디렉토리 구조, 소프트웨어 설치 방법과 배포 방법 등을 정의해야 한다. 이를 위해 리눅스 개발 업체들의 주도하에 LSB가 제안됐고, 모든 리눅스 배포판들은 이 표준 인터페이스를 따르고 있다. POSIX에서 정의한 다음과 같은 필수적인 기능도 만족한다.

◆ 다중 쓰레드 수행 중 특별한 지점에서 쓰레드들 사이의 동기화를 위한 Barrier 기능
◆ 다중 쓰레드가 공유 데이터에 대한 접근을 허용하는데 사용되는 스핀락 기능
◆ 프로세스/쓰레드의 스케쥴링 변수 설정 및 정책 방식 설정 기능
◆ 특별한 프로세스/쓰레드 수행 시간을 측정하기 위한 타이머 기능
◆ 특정 클럭에 의해 측정된 시간이 지정된 시점에 도달하거나 지정한 값을 지났을 때 쓰레드에게 알릴 수 있는 기능
◆ 어떤 클럭을 선택할 것인가를 결정하는 기능
◆ 프로세스들이 동일한 주소 공간을 공유하지 않고 통신을 하거나 동작을 동기화할 수 있도록 허용하는 기능
◆ 기존 시그널 함수와 호환성을 유지하면서 응용 프로그램에게 비동기적 시그널 통지가 가능하도록 해주는 향상된 시그널 기능
◆ 공유 자원에 대한 배타적 사용을 지원하는 기능
◆ 프로세스나 쓰레드가 대기 상태로 있는 시간을 설정하는 기능
◆ IPv6 기능
◆ 메모리 자원 로깅 기능

 

또한 부요 서버의 쓰레드는 쓰레드 생성 및 소멸에서 성능 측면에서 우수한 NPTL(Native POSIX Thread Library)을 제공한다. 멀티미디어 응용 서비스 등의 전송을 지원하기 위해 SCTP(Stream Control Transport Protocol)를 제공하는데, 데이터의 순차적인 전달을 비롯해 망 장애에 대비한 복구 기능을 수행할 수 있다.

시스템 성능 향상
커널 2.6부터는 프로세스의 문맥교환을 위한 부하를 감소시킴으로써 스케쥴링 확장성을 제공하는 저부하 스케쥴러(O(1) 스케쥴러)를 제공하여, 다음에 실행할 프로세스를 선택하는데 소요되는 시간이 프로세스의 수에 관계없이 일정하게 처리된다. 이와 함께 선점형 커널을 통해 최적의 스케쥴링을 제공할 수 있다. 하이퍼쓰레딩(Hyper-Threading) 혹은 SMT(Symmetric Multi-Threading)란 하나의 프로세서가 가상적으로 두 개의 프로세서처럼 동작하도록 하는 하드웨어 기술이다. 이 기술은 프로세서가 다수의 쓰레드를 동시에 각각의 프로세서에서 병렬적으로 실행되도록 함으로써 시스템의 성능을 상당히 향상시킬 수 있다. 하이퍼쓰레딩이 활성화되면 운영체제나 사용자의 관점에서 하나의 물리적 프로세서가 두 개의 프로세서로 보인다.

그러나 기존의 리눅스 커널은 하이퍼쓰레딩이 활성화된 프로세서에서 논리적인 두 개의 프로세서를 두 개의 물리적인 프로세서와 같이 취급했다. 즉, 스케쥴러는 논리적인 프로세서와 물리적인 프로세서를 구분할 수 없었다. 이것은 하이퍼쓰레딩 시스템에서 멀티프로세싱의 성능을 최대화하지 못하게 한다. 따라서 부요 서버에서는 하나의 물리적인 프로세서가 두 개의 작업을 처리하고 다른 물리적인 프로세서가 유휴 상태인 물리적인 프로세스의 불균형적인 문제와 하이퍼쓰레딩 환경에서 affinity를 고려하는 HT-aware 스케쥴러를 제공한다. 이 스케쥴러는 계산 위주의 작업, 입출력 위주의 작업 및 혼합형 작업의 벤치마킹 시험을 통해 안정적으로 시스템 성능을 유지시키는 것으로 판별되었다.

또한 프로세스가 실행될 프로세서를 지정하여 특정한 프로세서에서만 실행되도록 하는 process affinity 기능을 제공하는데, 응용 수준에서 사용할 수 있도록 sched_setaffinity, sched_getaffinity 시스템 호출도 지원한다. 메모리 관리 부분에서는 물리 주소를 가상 주소로 변환할 때 모든 페이지 테이블을 검색해야 하는 문제를 개선했으며, 최대 64GB 물리적 메모리와 가변 크기 페이지를 지원한다. 입출력 관리의 경우는 먼저 효율적인 입출력 성능 향상을 위해 기존의 인터럽트 방식에 의한 프로세서 간섭을 최소화하기 위해 인터럽트 방식과 폴링(polling) 방식을 혼합한 NAPI(New API) 인터페이스를 드라이버 개발자에게 제공한다. 이더넷 링크 통합은 분리된 물리적인 네트워크 카드를 논리적으로 통합하여 하나의 카드처럼 사용하도록 하는 기술로 높은 네트워크 대역폭 제공과 안정성을 강화할 수 있다. 통합된 링크들은 하나의 IP 주소와 MAC 주소를 사용한다. 또한 네트워크 성능 향상을 위해 더 큰 IP 프레임, 즉 최대 9,000바이트 크기의 MTU, 사용을 지원한다. 디스크 및 파일에 대한 비동기 입출력 지원과 최대 4096개의 디스크 연결 지원, 소프트웨어 스트라이핑(striping) 기능도 제공한다.

시스템 가용성 향상
부요 서버의 가용성 기능은 대부분 입출력 관리 기능에 해당된다. 앞에서 기술한 이더넷 링크 통합에 따른 네트워크 처리 대역폭 향상뿐만 아니라 일부 네트워크 카드 고장 시에 대기 중인 카드를 대체하여 장애를 극복한다. 이를 위해 동일 IP를 다수 네트워크 인터페이스에 할당하고, 드라이버는 지속적인 네트워크 상태를 감시하고 고장 시 자동으로 대체 인터페이스로 전환할 수 있는 기능을 제공한다. 소프트웨어 방식으로 미러링을 제공하는데, 일반적으로 특정한 컨트롤 카드를 이용한 하드웨어 방식의 미러링을 많이 사용하고 있다. 하지만 비용면에서 휠씬 유리하고 효율성이 좋은 소프트웨어 방식을 제공하므로써 일부 디스크 고장 시에도 모든 데이터를 복원할 수 있다.

CGL 규격 명세서 서버 사용 중에 저장 장치 공간의 부족 등과 같은 이유로 저장 내용의 변동없이 저장 공간의 크기를 변경할 수 있도록 권장하고 있다. 일반적으로 파티션의 크기를 정한 후에 파티션을 확장하려면 그 파티션의 내용을 삭제하고 새로운 파티션을 구성해야 하는데, 이 때 시스템 운영을 정지시켜야 한다. 따라서 이러한 요구사항을 반영하기 위해 논리 볼륨 관리 기능을 제공한다. 볼륨 관리자는 다수의 독립적인 저장 장치를 볼륨이라는 논리적인 하나의 대용량 저장 장치로 관리하여, 볼륨의 생성 등이 시스템을 재기동하지 않고 가능하도록 한다. 또한 시스템이 비정상적으로 재가동될 때 파일 시스템 무결성 검사 과정을 거치지 않고 빠르게 활성화될 수 있는 견고한 파일 시스템들을 지원한다. 입출력 장치에 핫스왑(Hot swap) 기능을 지원한다. CGL 규격 명세서에서는 주로 디바이스 장치에 대한 핫플러그(hot plug) 기능 지원을 요구하고 있으며, DCL의 경우는 메모리, 프로세서 등의 서버 핵심 하드웨어 요소에 대한 핫플러그 지원을 요구하고 있다. 현재 부요 서버에서는 부요 데스크탑과 마찬가지로 USB 장치에 대해서는 시스템 동작 중에 장치 추가·제거, 그에 따른 장치 드라이버 적재와 응용 동작이 자동으로 진행되고, 사용자에게 상태 통보 등의 전달 방식을 개발 완료했다.

소프트웨어 미러링을 통한 저장 장치의 데이터 가용성을 비롯해 저장 장치의 케이블, 버스 등의 하드웨어적인 고장에 대한 대비를 위해 multipath I/O를 지원한다. 즉 이 기능으로 저장 장치 접근 가용성을 높일 수 있는데, <그림 8>과 같이 사용자 수준의 도구와 커널 수준의 DM(Device Mapper) 기능을 구현해야 한다. 현재 이 기능을 사용하는 데는 별 어려움은 없지만, 입출력 path가 다운될 때 상태를 감지하고 대처하는데 다소 많은 시간이 소요되는 등의 개선 사항들이 존재하기 때문에 점차적으로 부요에서 반영할 예정이다.

부요 서버에서는 파일 시스템의 이상 또는 저장 장치의 문제 발생 시 파일시스템 상에 오픈 파일 또는 수행 태스크가 존재하는 상황에서도 그 파일시스템을 강제로 해제할 수 있는 기능을 제공한다. 커널 2.6에서 이 기능을 완전하게 제공하는 배포판이 없기 때문에 여기서 좀 더 자세히 기술하고자 한다. 수많은 파일 작업을 수행하고 있는 도중에 블럭 디바이스나 시스템을 업그레이드를 위해 잠시 파일시스템을 해제해야 한다면, 일반적으로 사용하는 umount는 정상 처리되지 못할 것이며, 사용자는 시스템 재가동 이외에는 다른 대안을 찾을 수 없을 것이다. 이 문제를 해결하기 위해 모든 파일시스템에 적용할 수 있는 force unmount 기능을 개발한다. 다음 4가지 경우 파일시스템 해제 시 기존의 umount는 해당 파일시스템이 busy 상태로 실패하게 된다.

◆ 오픈된 파일이 존재하는 경우
◆ 수행중인 태스크의 바이너리 파일이 존재하는 경우
◆ 태스크의 CWD(Current Working Directory)가 파일시스템 하의 위치로 설정되어 있는 경우
◆ Nested Mounting Filesystem이 존재하는 경우

 

각 경우마다 처리되어야 할 것은 다르지만 전체적인 흐름은 <그림 9>와 같으며 부요에서는 시스템 관리자를 위해 fumount 명령어를 제공한다.

향상된 편리성 제공
편리성 기능은 시스템을 관리하는 편리한 도구, 기능 및 환경과 개발자를 위한 디버깅 환경 등을 포함한다. 일관성 있는 장치 명명 기능을 제공하여 장치가 제거된 후 다른 버스, 슬롯 또는 어댑터에 재설치되더라도 장치명이 동일하도록 유지시켜 주는 persistent device naming 기능을 제공한다. 또한 심각한 손상을 초래한 시스템 이미지로부터 이전의 안정된 이미지로 복구할 수 있는 시스템 이미지 복구 기능을 제공하는데, 주기적으로 또는 운용상의 변경이 생기기 전 시점으로 안정적인 이미지를 관리하여 대처한다. <화면 2>는 시스템 이미지 복구 기능 GUI를 나타낸다.

CGL 규격 명세서에서는 시스템을 운영할 때 발생할 수 있는 원인 파악 분석과 커널 디버깅 기능을 요구하고 있다. 따라서 부요 서버에서는 GUI 기반으로 사용하기 편리하고 강력한 모니터링 및 추적(tracing) 기능을 가지고 있는 도구들을 점차적으로 개발, 이식하고자 한다. 현재까지 지원하고 있는 도구로는 시스템 덤프(dump) 발생 시 일반적인 디버거 사용 방법과 유사하게 명령을 입력하면서 커널 덤프 이미지에 대한 분석을 통해 시스템 다운 원인을 파악하는데 도움을 주는 LKCD(Linux Kernel Crash Dump) 기능을 제공한다. 또한 LKCD는 메모리, 디스크, 네트워크를 통해서 반드시 필요한 부분의 덤프 이미지만을 저장할 수 있으며 다음 시스템 부팅 때 그 내용을 보존한다. 리눅스 커널 디버깅 및 정보를 출력하는데 일반적으로 printk를 많이 사용하는데, printk 작성 후 커널을 컴파일한 다음에 재부팅해야 하는 불편한 점이 있다. 이 문제를 해결하기 위해서 dymanic probes 기능을 제공한다.

개념적으로는 일반적인 디버거의 breakpoint를 설정하는 방식으로 수행될 커널 루틴 주소를 등록할 수 있는 인터페이스를 제공한다. 커널 공간뿐만 아니라 사용자 공간에서도 이 기능을 사용할 수 있도록 인터페이스를 제공한다. 커널이 생성하는 메시지를 기록하여 시스템에서 발생하는 여러 상황들을 명확히 표현할 수 있도록 이벤트 로그(evlog) 기능도 제공한다. 물론 기존에 사용되던 syslog가 존재하긴 하지만, syslog의 체계적이지 못한 로깅 방식은 시스템 개발자나 관리자에게 필요한 정보를 충분히 제공하지 못하기 때문에 새로운 표준을 적용하고자 하는 것이다. 또한 커널 디버거도 지원하며, 소스코드 시험 빈도 정도를 확인할 수 있는 coverage 도구를 제공하여 파일별, 소스 라인별 수행된 정보를 HTML 파일을 생성하여 보여준다.

보안은 CGL 규격 명세서의 기본적인 보안 기능을 만족시킨다. 또한 보안 결함을 발견할 때마다 보안 패치를 적용하는 사후 대응식의 접근을 방지하기 위해 MAC(Mandatory Access Control) 방식의 SELinux(Security-Enhanced Linux) 기능을 제공한다. SELinux는 미국 NSA(National Security Agency) 주도로 이루어진 오픈소스 기반의 프로젝트로, 비교적 최근에 제품으로 활용되고 있지만 오랜 기간에 걸쳐 개발·검증됐다. 데비안, 수세, 레드햇, 젠투(Gentoo) 등의 주요 배포판에서 적용하고 있다.

SELinux 의 보안 정책은 시스템 내의 모든 프로세스가 제한된 도메인에서만 실행되도록 sandbox 개념을 구현한 것이다. 즉 각 프로세스는 자신 도메인에서 자신에게 주어진 최소한의 권한 내에서만 동작하고 다른 프로세스 도메인을 간섭할 수 없다. 따라서 악의적인 사용자에 의해 시스템이 해킹당했다 하더라도 그 피해는 해당 프로세스 내로 제한되고, 피해가 확산되지 않는다. 이러한 보안 정책 설정을 위해 RBAC(Role Based Access Control)와 TE(Type Enforcement)를 결합한 형태의 정책 설정과 여러 개의 정책 설정 파일을 설정해야 한다.

예를 들면 아파치 기반의 웹 서비스의 경우 웹 서비스를 위한 프로세스의 데이터 파일 접근에 대한 정의와 라이브러리 사용에 대한 규칙, 사용자의 접근 제어, 네트워크 포트 등의 접근 정의 등 웹 서비스가 이루어지기 위해 사용되는 서버 자원과 주체 등 모든 부분에 대한 보안 정책을 설정해야 한다. 이러한 보안 정책 파일로 생성된 바이너리 정책 파일은 명령어에 의해 커널에 로드된다. 따라서 SELinux는 기존의 보안 코드 패치 방식이 아닌, 규칙 설정 방식이다. 또한 SELinux의 커널 코드 부분은 기존 방식인 시스템 호출 수준에서의 보안 제어 방식이 아니라 커널 기능 중 보안 확인이 필요한 부분이 설정된 규칙 등에 부합되는지를 확인하기 위해 보안 모듈을 호출하는 방식으로 구현되어 있다.

차세대 클러스터링 기술인 서버 가상화
리눅스 서버 가상화 기술은 인프라 내의 모든 IT 자원을 공개 표준에 기반해 가상화된 자원으로 정의하고 자원 풀을 형성하여 통합 관리할 수 있도록 해준다. 또한 이렇게 가상화된 자원을 각 서비스에 동적으로 할당 혹은 반환하여 자원의 활용도를 향상시키고 가상의 컴퓨팅 환경을 구축할 수 있도록 해준다. 이러한 가상화 기술을 통해 인프라 내 시스템의 성능을 향상시키고 확장성과 안정성을 제공할 수 있다. 더욱이 인프라 내 시스템 자원의 활용도를 극대화시켜 시스템 관리 비용을 줄일 수 있다. 이러한 리눅스 서버 가상화 기술을 <그림 10>과 같이 효과적으로 구현함으로써 최종 사용자들은 물론이고 시스템 관리자들에게도 가상의 리눅스 환경(linux virtual environment)을 제공할 수 있다. 이 리눅스 서버 가상화 기술을 LiVE(Linux Virtual Environment)라고 한다. 부요 서버에서는 <표 3>과 같이 단계적으로 기술을 개발하고자 한다.

1, 2단계는 CGL 규격 명세서 중 리눅스 클러스터링 기능에 관한 것으로 고가용 scalability 클러스터이며, 3단계는 기업 컴퓨팅용의 그리드 시스템을 의미하며 차세대 컴퓨팅 모델인 유틸리티 컴퓨팅 환경, 즉 전기나 수도와 마찬가지로 자유롭고 쉽게 컴퓨팅 지원을 사용할 수 있는 환경의 핵심 기술을 확보하고자 한다. 현재의 부요 서버에서 제공되는 LiVE 기술은 LiVE-HA와 LiVE-C로 나누어진다. LiVE-HA는 시스템 전체의 가용성을 높이고 중단 없이 안정적인 서비스를 제공할 수 있는 HA 클러스터링 지원 기능이다. LiVE-C는 클러스터 내 모든 자원을 통합 관리하여 가상의 단일 시스템 이미지를 제공함으로써 사용자 편이성을 높이고 클러스터 시스템의 자원 활용도를 개선할 수 있는 클러스터 자원 가상화 기술이다.

LiVE -HA는 독립 소프트웨어 시스템으로 동작 가능하며 일반적인 HA 클러스터링을 지원할 수 있다. 또한 LiVE-HA는 LiVE-C의 고가용성을 위해 LiVE-C의 핵심 기반 소프트웨어로 포함될 수도 있다. 기존의 HA 클러스터링 방식과 LiVE-HA의 차이점으로는 primary/backup 기법과 cascading 기법의 문제점을 해결하고 장점을 결합한 cascading primary/backup HA 기법을 제공한 점이다. 따라서 패일오버(fail-over) 시간이 단축되어 전체 시스템의 가용성을 향상시킬 수 있다. LiVE-C 구성요소는 scalability 클러스터링 기능, 클러스터 프로비저닝(provisioning)과 관리 기능과 원격 설치 기능으로 구성된다. Scalability 클러스터링 기능은 오래 전부터 잘 알려져 있는 LVS(Linux Virtual Server)이기 때문에 여기서는 더 이상 언급하지 않는다. 클러스터 프로비저닝이란 클러스터 시스템(HW & SW)의 구축부터 시작하여 특정 서비스를 설치하고 실제로 서비스를 실행시키기까지 일련의 모든 과정을 통합 가상화하여 제공하는 것을 의미한다. 따라서 LiVE-C에서는 이러한 클러스터 프로비저닝을 위해 다음과 같은 기능을 제공한다.

◆ 클러스터 모델링 : 클러스터 내 자원의 통합 관리를 통해 각 구성 요소들간의 구성 데이터의 일관성 유지
◆ 설치부터 응용 서비스까지의 완전한 프로비저닝 지원 : OS조차 설치되지 않은 노드에서 시스템 이미지 설치 및 서비스를 위한 가상 서버 풀 구성 후, 현재 제공되고 있는 서비스와 모니터링 자료 등을 기반으로 추가된 노드가 담당한 서비스 구성

 

이러한 클러스터 프로비저닝은 표준화된 개방형 프레임워크를 지원함으로써 상호호환성을 높여 일관된 시스템 관리를 가능하게 하는 DMTF 표준을 근간으로 한다. 1992년 설립된 DMTF는 인터넷과 기업 환경에 대한 표준을 개발, 채택하고 상호 이용을 주도하는 기술 산업 조직으로서 멤버를 중심으로 워킹그룹을 형성하여 표준 규격을 정의하고 개발해 나가고 있다. DMTF에서 정의하고 있는 표준 중에 부요 서버와 관련되는 표준은 CIM, WBEM(Web-Based Enterprise Management)이며, CGL 규격 명세서에서도 요구 기능으로 이미 정의되어 있다. CIM은 시스템 자원 및 서비스 등의 관리 정보를 교환하기 위한 표준 모델이며, WBEM은 시스템 관리 응용, CIM 정보 전달자 등 간의 정보 표현 방식과 전달 방식에 대한 표준을 기술하고 있다.

LiVE -C의 마지막 기능은 원격 설치 부분으로 단순히 단일 시스템에서의 설치가 아니라 분산 혹은 클러스터 환경을 고려한 설치 방법을 제공한다. LiVE-C는 여러 노드를 위한 시스템 이미지를 생성하고, 하나의 클러스터 시스템을 구축함에 있어 다양한 정보들, 즉 사용자, 호스트, 서비스의 설정 파일들을 동기화하여 유지한다. 그리고 생성된 이미지로 네트워크의 설정을 통해 이미지를 사용하는 모든 서버 노드들에 자동 설치가 이루어진다. 또한 클러스터 환경에서 패키지 목록 조회, 정보 조회, 원격 패키지 설치 기능도 제공한다. 이러한 LiVE 기능들은 LAT(LiVE Administration Tool) 통합 관리 도구를 통해 사용할 수 있다.

부요 서버의 표준 기능 만족도와 성능
마지막으로 부요 시험에 대해 살펴보자. LSB2.0 표준 준수 여부 시험은 서버뿐 아니라 데스크탑에서 LSB runtime 시험슈트 2.0.6-2를 사용하여 진행됐다. 특히 부요 서버 경우는 기본 기능 시험과 고부하 지속 시험, 다양한 성능 시험이 이루어졌다. 기본 기능 시험은 시스템 호출 인터페이스를 통해 부요 커널의 기본 동작 상태를 시험하는 것으로, 공개 프로젝트인 LTP(Linux Test Project)의 시험슈트를 활용했으며 타 제품과 비교 결과 동일한 결과를 낳았다. 고부하 지속 시험은 모든 서버 자원을 고갈시키는 스트레스 부하 상태를 5일 동안 계속적으로 수행해야 시험을 통과하는 조건이다. 사용된 슈트는 기본 기능 시험 때와 마찬가지로 LTP 슈트를 사용했다.

마지막으로 성능 시험의 경우는 운영체제 성능, 웹 성능, 데이터베이스 성능, 파일전송 성능 등으로 이루어졌으며 타 제품과 유사한 결과를 낳았다. 이 글에서는 운영체제 성능에 대해 언급한다. 이 성능 시험은 다중 사용자 환경을 모델링하여 시스템에 부하를 가할 때 전체 시스템의 작업 처리량을 측정함으로써 시스템의 성능을 확인하는 방식의 AIM 멀티유저 벤치마킹 슈트를 사용했다. 2프로세서 및 4프로세서 시스템에서 커널 2.6 기반의 국외 제품인 수세, 레드햇과 비교 분석한 결과는 <그림 11>과 같다. 결론적으로 기본 기능 시험 및 고부하, 성능 시험 등을 통해 부요 규격이 국외 타 제품과 동등한 기능, 성능을 발휘함을 알 수 있었다.

한국 리눅스의 희망
지금까지 부요의 전반적인 스펙에 대해 자세히 알아보았다. 부요가 가야할 길은 아직 멀지만 충분히 좋은 결실을 얻었고 또 전망이 밝기 때문에 부요를 감히 한국 리눅스의 희망이라고 말할 수 있을 것이다. 부요의 향후 계획으로는 부요 플랫폼 기술을 기반으로 동북아시아 한·중·일 공개 소프트웨어 공통 핵심 기술 개발과 3국간 공통 표준플랫폼 개발에 점차적으로 참여를 강화하여 국제 커뮤니티에 기여하고, 글로벌 제품 개발에 노력할 것이다. 이제부터 리눅스 사용자와 개발자들의 지지와 충고가 본격적으로 필요한 시기이다. [MASO]

Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요

원문 링크 : Mac OS X v10.4.7』Install Guide

=========================================================

◎『Mac OS X v10.4.7』Install Guide (with VMWare Natively) v1.1 Final ◎



◎『Mac OS X v10.4.7』Install Guide (with VMWare Natively) v1.1 Final ◎


ⓐ 프롤로그
   ●『※ VMWare를 이용한 Mac OS X 10.4.6 네이티브 설치! ※』강좌를 올렸었는데,
      보셨던 분도 있으실 겁니다.
      상관없구요., 이번 강좌는 기존 강좌의 부족했던 점을 보완하고 오타 수정 및
      v10.4.7 설치 관련 내용을 보강했습니다.

   ●『niky』님의『vmware를 이용한 10.4.6 native 설치하기』과
     『Kharus』님의『How to install Mac with VMWare Natively(Minimal Edition)』에서
      이번 강좌에 대한 많은 도움을 받았습니다.

   ● 설치하면서 오류가 난다면 질문하기 전에 Q/A에 검색을 해주시는 센스는
      우리 맥 유저들이 지켜야 할 기본적인 예의랍니다.

   ● Make by: Seo Jae-won. (서재원)
      Last Updated: 2006. 8. 16. PM 04:10.


ⓑ 준비물
   ● 구하는 방법은 어둠의 경로와 x86OSx 자료실. 기본적인 센스~

   ① Mac OS X v10.4.6 x86 설치 DVD 이미지
      ○ 제일 중요한 거죠~ 그런거죠~
         참고로 NTFS 파티션 필요한 것 아시죠?
         용량이 커서 FAT32 파티션에는 저장할 수가 없답니다.
         이번 강좌에서는 Jas 패치판을 사용할 거구요.
         Myzar 패치판도 비슷비슷해요.
      ○ 다운로드: 어둠의 경로. (FolderPlus, SunFolder, ClubBox...)

   ② VMWare Workstation 5.5 (Now: VMWare Workstation 5.5.1.19175)
      ○ 가상 머신 툴입니다.
         꼭 v5.5 이상 버전을 준비해주세요. v5.0 버전에서는 오류가 발생합니다.
      ○ 다운로드: 어둠의 경로. (FolderPlus, SunFolder, ClubBox...)

   ③ DAEMON Tools 4 (Now: DAEMON Tools 4.03HE with SPTD 1.25)
      ○ 가상 드라이브 툴입니다.
         DVD 이미지를 VMWare CD-ROM으로 그냥 마운트하면 SAM 오류가 잘 나더라구요.
         참고로 Mac Drive 6을 사용하실 분은 DAEMON Tools 4 대신, DAEMON Tools 3을 사용해 주세요.
      ○ DAEMON Tools 3 (Now: DAEMON Tools 3.47) 다운로드: THE DAEMONS HOME (Download!)
      ○ 다운로드: THE DAEMONS HOME (Download!)

   ④ Acronis Disk Director 10 (Now: Acronis Disk Director Suite 10.0.2117)
      ○ 파티션 툴입니다.
         파티션 매직만 쓰다가 Mac OS X 깔면서 처음 써봤는데 기능이 괜찮아요.
         Kharus님 말로는 어둠의 경로 버전이 깨졌다고 합니다.
         Acronis Disk Director 10이 문제가 있다면, Acronis Disk Director 9를 사용해주시는 센스~
      ○ 다운로드: 어둠의 경로. (FolderPlus, SunFolder, ClubBox...)

   ⑤ chain0
      ○ 멀티 부팅 툴입니다.
         Windows NT 부트 메뉴에서 Mac OS X로 부팅하기 위한 부팅 파일...
      ○ 다운로드: x86OSx 자료실. (Download!)


ⓒ 설치하기
   ● 다 준비했다면 설치해야죠~ 그런거죠~
      그렇다고 Mac OS X v10.4.7 업데이트 이미지까지 설치하려고.. ㅡㅡ*

   ① VMWare Workstation 5.5를 설치합니다.
      ○ 시리얼은 어둠의 경로에서... ^^.

   ② DAEMON-Tools 4를 설치합니다.
      ○ 설치중에 SPTD 관련해서 재부팅 요구하거든요. 일단은 재부팅 안한다고 해주세요.

   ③ Acronis Disk Director 10을 설치합니다.
      ○ 이 것도 설치 끝내면 "재부팅 안하면 실행 안시켜줘!" 라고 뜹니다.
         이제 재부팅 해주시면 DAEMON-Tools 4 설치창이 뜰겁니다.


ⓓ 멀티 부팅 설정
   ● 이번 강좌에서는 멀티 부팅을 위해 chain0을 사용하겠습니다.
      OS Selector가 GUI도 지원되고 좋았었는데, 부팅이 느려져서... ㅡㅡ;;

   ① 준비한 chain0 파일을 C 드라이브 루트에 복사합니다.

   ② Boot.ini 파일의 속성에서 읽기 전용을 풀어줍니다.
      ○ Boot.ini 파일이 보이지 않는다면?
         제어판의 폴더 옵션에서 시스템 파일 및 숨김 파일을 표시하도록 설정합니다.

   ③ Boot.ini 파일을 편집 프로그램으로 불러옵니다.

   ④ Boot.ini 파일 내용이 나타납니다.
      ○ Boot.ini 예제
         [boot loader]
         timeout=15
         default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS
         [operating systems]
         multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP"
         c:\\chain0=Mac OS X v10.4.7

   ⑤ 먼저 timeout=15 부분은 멀티 부팅 메뉴를 표시할 시간입니다. 15초 정도로 입력해 주세요.

   ⑥ 그리고 제일 끝부분에 "c:chain0=Mac OS X v10.4.7" 라고 입력해 주세요.

   ⑦ 수정을 완료하셨으면 Boot.ini 파일을 저장해 주세요.


ⓔ 파티션 설정
   ● 이번 강좌에서는 파티션을 위해 Acronis Disk Director 10을 사용하겠습니다.
      파티션 매직보다는 이게 편하더라구요.
      참고로 영문 계정이어야 한다더라구요. 저는 항상 영문 계정이라...
      혹시 모르니까 한글 계정 쓰시는 분중에 오류나는 분 계시면 영문 계정으로 바꿔보시길...
      Acronis Disk Director 10 키는 것 잊지 마시구요~

   ① 처음 실행하신다면, Automatic Mode? Manual Mode? 물어봅니다. Manual Mode 선택해 주세요.

   ② 설치할 공간은 나눠두셨으리라 믿고, Unallocated에 오른쪽 클릭해서 Create Partition 선택해 주세요.

   ③ File System:은 None, Create as:는 Primary Partition을 선택하고 OK를 눌러줍니다.

   ④ 이제 새로 생긴 파티션에 오른쪽 클릭해서 Advanced의 Change Type를 선택해 주세요.

   ⑤ 0AFh ShagOS swap를 선택하고 OK를 눌러줍니다.

   ⑥ 이제 깃발을 눌러줍시다!


ⓕ 가상 머신 만들기
   ● 여기는 대충해도 된다는 것 같지만, 세부 옵션이 설치를 좌우한다!
      VMWare Workstation 5.5 키는 것 잊지 마시구요~

   ① "New Virtual Machine" 아이콘을 클릭합니다.

   ② "New Virtual Machine Wizard" 창이 뜨면, 다음을 클릭합니다.

   ③ "Virual machine configuration"에서는 "Custom"을 선택하고 다음을 클릭합니다.

   ④ "Virtual machine format"에서는 "New - Workstation 5"(기본값)을 선택하고 다음을 클릭합니다.

   ⑤ "Guest operating system"에서는 "Other"을 선택하고, "Version"에서도 "Other"를 선택합니다.

   ⑥ "Virtual machine name"에서는 "Mac OS X v10.4.7"이라고 입력합니다.
      ○ "Mac OS X v10.4.7" 대신 적절한 이름을 입력해도 됩니다.

   ⑦ "Processors"에서는 "One"(기본값)을 선택하고 다음을 클릭합니다.

   ⑧ "Memory"에서는 "256MB" 정도를 선택하고 다음을 클릭합니다.
      ○ "256MB" 대신 적절한 용량을 선택해도 됩니다.

   ⑨ "Network connection"에서는 "Do not use a network connection"을 선택하고 다음을 클릭합니다.

①ⓞ "I/O adapter types"에서는 "BusLogic"(기본값)을 선택하고 다음을 클릭합니다.

①① "Disk"에서는 "Use a physial disk (for advanced users)"를 선택하고 다음을 클릭합니다.
      ○ 경고 메시지가 뜨면 "OK"를 클릭합니다.

①② "Device"에서는 "PhysicalDrive0"을 선택하고, "Usage"에서는 "Use individual"를 선택하고 다음을 클릭합니다.

①③ "Partition"에서는 "Unknown"으로 표시되는 Mac OS X를 설치할 드라이브를 선택하고 다음을 클릭합니다.
      ○ 용량을 확인해 주세요.

①④ "Disk file"에서는 "Mac OS X v10.4.7.vmdk"를 입력하고, 마침을 클릭합니다.
      ○ "Mac OS X v10.4.7.vmdk" 대신 적절한 이름을 입력해도 됩니다.

①⑤ "Mac OS X v10.4.7" 가상 머신이 나타 나면, "Edit virtual machine settings" 아이콘을 클릭합니다.
      ○ "Mac OS X v10.4.7" 대신 ⑥에서 입력한 적절한 이름(..?)이 나타날 수도 있습니다.

①⑥ "HardWare" 탭이 나타나면, "Audio"를 선택하고, "Remove"를 클릭합니다.

①⑦ "Hard Disk (IDE 0:0)"을 선택하고, "Advanced"를 클릭합니다.

①⑧ "Advanced" 창이 뜨면, "Mode"탭에서 "Independent"를 선택합니다.

①⑨ 아래 항목이 활성화되면, "Persistent"(기본값)를 선택하고 "OK"를 클릭합니다.

②ⓞ "CD-ROM (IDE 1:0)"을 선택하고, "Virtual device node"에서 "IDE 0:1"을 선택합니다.

②① "Connection"탭의 "Use physical drive:"에서 DAEMON-Tools 4 가상 드라이브를 선택합니다.


ⓖ 본격적인 설치!
   ● 드디어 설치가 시작됐어요!!!
      참고로 가상 머신 화면을 누르면 가상 머신 입력 상태가 되고, Ctrl + Alt 키를 누르면 네이티브 입력 상태가 됩니다.

   ① 상단의 "▶" 버튼을 눌러 가상 머신을 시작합니다.

   ② 가상 머신 입력 상태로 하고, "ESC"키를 누릅니다.

   ③ "Boot Menu"가 뜨면, "CD-ROM Drive"를 선택하고, 엔터키를 누릅니다.

   ④ 10초 CountDown이 뜨면, "F8"키를 누릅니다.

   ⑤ "boot:" 입력창이 뜨면, "-v"를 입력하고 엔터키를 누릅니다.
      ○ Verbose 모드라는 건데요. 막 영어들이 뜹니다.
         여기서 막히신다면 Q&A 질문 ㄱㄱ~

   ⑥ "Mac OS X" 창이 뜬다 하면 50% 성공~!!! "주 언어로 한글 사용" 선택후 화살표를 클릭합니다.
      ○ 여기서 영어로 선택하면 더 빠르다는 분이 있는데, 오십보 백보같습니다.

   ⑦ "Mac OS X 설치" 창으로 바뀌면, 다음을 클릭합니다.

   ⑧ "소프트웨어 사용 동의서" 창으로 바뀌면 계속을 클릭합니다.

   ⑨ 동의 확인 창이 나타나면 동의를 클릭합니다.

①ⓞ "대상 디스크 선택" 창으로 바뀌는데, 아무 디스크가 안 나타나죠?

①① "유틸리티" 메뉴에서 "디스크 유틸리티"를 선택합니다.

①② 왼쪽 리스트에서 아까 만들었던 Mac OS X v10.4.7 설치 파티션을 선택합니다.
      ○ 조심, 또 조심. 잘못하면 윈도우 날린다구요~

①③ 선택하고, 지우기탭을 선택합니다.

①④ "볼륨 포맷:"은 "Mac OS 확장(저널링)"(기본값)을 선택하고, "이름:"에는 "Mac OS X v10.4.7"을 입력하세요.
      ○ "Mac OS X v10.4.7" 대신 적절한 이름을 입력해도 됩니다.

①⑤ 지우기 버튼을 클릭합니다. 지우기가 완료되면, 디스크 유틸리티를 닫고, "대상 디스크 선택" 창에 나타난 디스크를 선택하고, "계속"을 클릭합니다.

①⑥ "Mac OS X v10.4.7"에 손쉬운 설치" 창으로 바뀌면, 하단의 "사용자화"를 클릭합니다.
      ○ "Mac OS X v10.4.7" 대신 ①④에서 입력한 적절한 이름(..?)이 나타날 수도 있습니다.

①⑦ "프린터 드라이버", "언어 번역", "X11"을 모두 해제하세요.
      ○ 한국어는 자동 선택되어서, 해제되지 않습니다.

①⑧ Jas 패치판을 기준으로 했으니, Myzar 패치판 분들은 다른 강좌를 참조하세요.
      ○ JaS.INTEL.And.AMD.Patches 패키지를 엽니다.
      ○ Intel + SSE2라면, "Intel.10.4.6.Combo.Update"와 "INTEL.SSE2"를 선택합니다.
      ○ Intel + SSE3라면, "Intel.10.4.6.Combo.Update"와 "INTEL.SSE3"를 선택합니다.
      ○ AMD + SSE2라면, "AMD.10.4.6.Combo.Update"와 "AMD.SSE2", "10.4.6.SemjaZa.V1.2.AMD.Decrypts를 선택합니다.
      ○ AMD + SSE3라면, "AMD.10.4.6.Combo.Update"와 "AMD.SSE3", "10.4.6.SemjaZa.V1.2.AMD.Decrypts를 선택합니다.

①⑨ "설치"를 클릭하세요!

②ⓞ "설치 DVD 확인중"이 나타나면 과감히!!! "건너뜀"을 클릭합니다.

②① 설치가 완료되고, 다시 시작을 한다고 하면, 가상 머신을 종료하세요!


ⓗ OS X야, 안녕?
   ● OS X와의 첫 부팅! 첫 만남! 너무 기대되네요.
      이 부분에서 한글 전환과 10.4.7 패치를 한답니다.
      참고로 한/영 변환은 Alt + Space!

   ① 이제 네이티브 부팅을~ 컴퓨터를 다시 시작합니다.

   ② 이제 타임아웃이 뜨면서 아까 만들어 둔 멀티 부팅 메뉴가 뜰텐데 Mac OS X v10.4.7을 선택하세요!
      ○ 매번 말씀드리지만 아까 입력한 다른게 뜰 수도 있습니다.

   ③ CountDown이 뜨면, "F8"키를 누릅니다.

   ④ "boot:" 입력창이 뜨면, "-v"를 입력하고 엔터키를 누릅니다.
      ○ Verbose 모드라는 건데요. 막 영어들이 뜹니다.
         여기서 막히신다면 Q&A 질문 ㄱㄱ~

   ⑤ 조금 기다리면 "Welcome" 창이 뜹니다. 와~ 근데 우리 나라가 없네요. 아래의 "Show All" 버튼을 클릭합니다.
      ○ 저의 경우에는 환상적인 동영상을 볼 수 있었습니다.

   ⑥ 목록이 길어졌네요. 아래로 쭉 내리다 보면 "Korea, Republic Of"가 있네요. 선택하고 "Continue"를 클릭합니다.

   ⑦ "Do You Already Own a Mac?" 창이 뜨네요. 다른 맥이 없으니 기본값으로 "Continue"를 클릭합니다.

   ⑧ "Select Your Keyboard" 창이 뜨는데, Hangul, 2-Set Korean. 다 알맞게 선택되어 있네요. 기본값으로 "Continue"를 클릭합니다.

   ⑨ "How Do You Connect?" 창에서는 "Local network (Ethernet)을 선택하고, "Continue"를 클릭합니다.

①ⓞ 기본값으로 두고 "Continue"를 클릭합니다.
      ○ 여기서 좀 오래걸리네, 냥...

①① "Enter Your Apple ID" 창이 뜹니다만, ID가 없으니 기본값으로 두고 "Continue"를 클릭합니다.

①② "Registration Information" 창이 뜹니다. 기본값으로 두고 진행하려니, 경고가 뜨네요. 각자 입력하고, "Continue"를 클릭합니다.

①③ "A Few More Questions" 창이 뜹니다. 각자들 선택합니다. 아래 체크 표시는 해제하고, "Continue"를 클릭합니다.

①④ "Create Your Account" 창이 뜹니다. 암호 입력하고, "Short Name"이 틀리지 않나 확인해 주세요. 이제 "Continue"를 클릭합니다.
      ○ 저의 경우에는 Short Name이 SeoJaewon인데 seojaeweon라고 해놨더군요.

①⑤ "Select Time Zone" 창이 뜹니다. 시간이 틀리지만, 일단은 "Seoul - Korea"를 선택하고, "Continue"를 클릭합니다.

①⑥ 시간이 틀리지만, 일단은 기본값으로 두고 "Continue"를 클릭합니다.

①⑦ 와, 설치가 끝난 것을 환영한답니다. "Done"를 클릭합시다!

①⑧ 아래의 "Dock"에서 "System Preferences"를 실행합니다.

①⑨ "Personal" 탭의 "International"을 선택합니다.

②ⓞ "Languages:"에서 제일 아래의 "한글"을 제일 위로 드래그합니다.

②① 이제 "Formats" 탭으로 이동! "Region"이 "대한민국 (영어)"로 되어있군요. "대한민국"으로 바꿔줍시다. 이제 닫아줍시다.

②② 컴퓨터를 다시 시작해야 변경 사항이 완벽히 스며든다는 군요. 컴퓨터를 다시 시작해줍시다.

②③ 이제 Mac OS X v10.4.7 업데이트 이미지를 다운로드해서 데스크탑에 저장해주세요.
      ○ 커널이 포함되지 않았기 때문에 AMD와 Intel 모두 같은 패치를 적용해도 된다고 합니다.
         이번 강좌에서는 JaS.10.4.7.Update.(Intel).zip를 사용하도록 하겠습니다.
      ○ 다운로드: x86OSx 자료실. (Download!)

②④ 데스크탑에 받아진 JaS 폴더를 열고 JaS.10.4.7.Update.(Intel) 패키지를 더블 클릭해주세요.

②⑤ JaS 10.4.7 Update (Intel) 설치라고 나타나지만 AMD 유저분들 떨지마세요.

②⑥ 계속, 계속, 설치 순서대로 눌러주세요.

②⑦ 생각보다 빨리 깔리네요. 닫기를 누르고 재시작! 이 아니고, 기다려 주세요.
      ○ 재시작 절대로 안되요!! 커널 패닉됩니다. ㅡㅡ+

②⑧ 이제 응용 프로그램 폴더의 유틸리티 안에 있는 디스크 유틸리티를 실행해 주세요.

②⑨ Mac OS X v10.4.7이 설치된 파티션을 선택하고, 디스크 권한 복구를 살포시 눌러줍시다.

③ⓞ 저의 경우에는 권한 오류가 많이 뜨더군요. 권한 복구가 끝나면 디스크 유틸리티를 닫아주세요.

③① 같은 폴더에 보면 터미널이라는 프로그램이 있습니다. 실행해 주세요.

③② Welcome to Darwin! 메시지가 뜨면, 터미널에 sudo update_prebinding -root / -force 라고 입력해주세요.

③③ 그러면 Password: 라고 뜹니다. 관리자 계정 암호를 입력해 주세요.
      ○ 암호를 쳐도 칸이 늘어나지는 않습니다. 이 점 주의해 주세요.

③④ 정상적으로 완료되면 아무 메시지도 뜨지 않습니다. 이제 재시동해주세요.

③⑤ 데스크탑의 JaS 폴더는 삭제하셔도 됩니다.


ⓘ OS X를 잘 사용하려면...
   ● OS X를 잘 사용하는 방법!!!

   ① OSX 사용 Tips을 참조해서 자기 입맛에 맞게 OS X를 꾸며주세요.

   ② 고스트나 트루이미지로 백업정도 해놓는 것도 나중에 상당히 편하다구요~
      ○ 그럼 저처럼 커널 패닉 당해도.. 어떻게든... ㅋ


ⓙ My Computer!!
   ● 제가 Mac OS X v10.4.7을 설치한 사양입니다.

   ① ASUS A3E Laptop

   ② Pentium M 740J, 1.73Ghz

   ③ Intel Alviso-G i915GM

   ④ DDR SDRAM 1024MB

   ⑤ Intel 915GM Express

   ⑥ Realtek ALC880

   ⑦ TSSTCorp TS-L532A

   ⑧ Realtek RTL8139

   ⑨ Intel PRO/W 2200BG NC

①ⓞ Mac OS X v10.4.7 Native + Windows XP Media Center Edition 2005 Native


ⓚ 에필로그
   ● 좀 있으면, Leopard 나온다는데... 뭐하는 짓인지 모르겠네요..
      그래서 ※ VMWare를 이용한 Mac OS X 10.4.6 네이티브 설치! ※ 에서 많이 베껴왔답니다. ㅋ

   ● 태글 모두 받아드리고요. 보는 즉시 수정합니다. 많은 태클 부탁드려요~! (ㅡㅡ+)

   ● Updated.
      2006. 8. 7. PM 08:35. - ◎ v1.0 Beta 01 ◎. x86OSx Write.
      2006. 8. 7. PM 08:52. - ◎ v1.0 Beta 02 ◎. Acronis Disk Director 설명 보강.
      2006. 8. 7. PM 09:08. - ◎ v1.0 Beta 03 ◎. Mac OS X v10.4.7 업데이트 파일 설명 보강.
      2006. 8. 7. PM 09:12. - ◎ v1.0 Beta 04 ◎. 준비물 다운로드 링크 추가 및 HTML 태그 수정. ㅡㅡ+
      2006. 8. 7. PM 10:25. - ◎ v1.0 Beta 05 ◎. OS X 설치 완료~ v10.4.7 패치 관련 대폭 수정.
      2006. 8. 7. PM 10:45. - ◎ v1.0 Beta 06 ◎. 공백 관련 사항 수정. SimplyRAR 관련 내용 추가.
      2006. 8. 8. AM 10:05. - ◎ v1.0 Beta 07 ◎. OS X를 잘 사용하려면... 내용 추가.
      2006. 8. 8. AM 10:25. - ◎ v1.0 Beta 08 ◎. Mac OS X v10.4.6이라고 표시된 부분들 수정.
      2006. 8. 8. AM 10:30. - ◎ v1.0 Beta 09 ◎. HTML 태그 추가, Congra... 문구 추가.
      2006. 8. 8. AM 10:34. - ◎ v1.0 Beta 10 ◎. 따분... My Computer!! 추가.
      2006. 8. 8. PM 09:05. - ◎ v1.0 Beta 11 ◎. My Computer!! 수정. Updated. 표시 방법 수정. DAEMON Tools 설명 보강.
      2006. 8. 8. PM 09:25. - ◎ v1.0 Beta 12 ◎. Mac OS X v10.4.7 업데이트 파일 변경. 및 업데이트 관련 사항 추가. ▶ 아이콘 변경.
      2006. 8. 8. PM 10:32. - ◎ v1.0 FinBeta ◎. Mac OS X v10.4.7 업데이트 관련 사항 마무리. 전체적인 내용 마무리.
      2006. 8. 8. PM 10:40. - ◎ v1.0 FinBeta2◎. HTML 태그들 수정. 제목 및 경고 문구 수정. 칸 너비 수정.
      2006. 8. 8. PM 10:57. - ◎ v1.0 FinBeta3◎. Mac OS X v10.4.7 설치를 끝내고... 스샷 추가.
      2006. 8. 9. AM 09:20. - ◎ v1.0 Final   ◎. 이 강좌대로 따라해서 설치를 마쳤습니다. ~
      2006. 8.16. PM 04:10. - ◎ v1.1 Final   ◎. 지우기 버튼 관련 내용 수정. / 추가.
Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요

원문 링크 : 리눅스 GRUB 설정하기

=============================================

리눅스 GRUB 설정하기

- /boot/grub/grub.conf 설정내용

[root@local root]# cat /boot/grub/grub.conf

# grub.conf generated by anaconda --> 주석

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE: You have a /boot partition. This means that

# all kernel and initrd paths are relative to /boot/, eg.

# root (hd0,1)

# kernel /vmlinuz-version ro root=/dev/hda3

# initrd /initrd-version.img

#boot=/dev/hda

default=0 --> 기본값으로 부팅되도록 설정되는 엔트리값, 0은 제일 먼저 설정되어 있는 부트 엔트리

timeout=10 --> 부트화면에서 부팅 메뉴를 선택할 키보드 입력 상태의 시간, 이 시간이 경과하면

기본값으로 설정된 엔트리로 부팅이 이루어짐(단위: 초)

splashimage=(hd0,1)/grub/splash.xpm.gz --> GRUB 메뉴 화면의 배경 이미지 지정,

(hd0,0)은 프라이머리 하드디스크 /dev/hda1 의미

커널위치 설정(설치되어 있는 운여에제와 커널 이미지 설정)

title 부트 엔트리 설명

root (하드디스크디바이스명, 부트파티션명)

kernel 커널이미지경로/커널명 root=루트디바이스명

title Red Hat Linux (2.4.20-8)

root (hd0,1)

kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ hdd=ide-scsi

initrd /initrd-2.4.20-8.img

title DOS --> 윈도우 운영체제 추가

rootnoverify (hd0,0)

chainloader +1 --> chains-load에 의해서 이들의 부팅 로더로 되도록 설정하는 명령어

참고) 디바이스명 표기 예) (hd0, 0) : hd는 hard disk를 의미, hd0은 프라이머리 마스터의 하드디스크를 의미, 두번째 0은 파티션을 의미(0부터 시작) -> /dev/hda1을 의미

Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요