Windows 돋보기 조작 단축키

Windows 에서 제공하는 돋보기를 단축키로 제어할 수 있네요.

단축키 기능    
 Windows + 돋보기의 실행 및 배율 높이기 Windows 키를 누르고 있는 상태에서 + 키를 누릅니다.  
Windows – 돋보기의 확대 배율 낮추기 Windows 키를 누르고 있는 상태에서 – 키를 누릅니다.   
 Ctrl Alt I (영문 아이)  돋보기 화면 색상 반전 기능 끄고 켜기 CTRL 키와 ALT 키를 누르고 있는 상태에서 I 키를 누릅니다.  

WIndows 는 Windows Logo 키를 의미합니다.

키보드의 제일 아랫줄에 윈도우 로고 그림이 있는 키가 있습니다.

 

프로그램 및 기능 에서 프로그램 삭제 방법

가끔 프로그램 폴더를 강제로 삭제한경우 프로그램 추가 제거에만 프로그램이 이름이 남아 있을 경우가 있습니다.

이럴 때는 아래 레지스트리에서 해당 프로그램을 찾아서 지워주시면 됩니다.

32 bit Windows HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
64 bit Windows HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

Windows 용 괜찮은 eBook 리더 (eBook 글자 크게 보기)

검색엔진을 이용하여 몇가지를 찾아서 써봤습니다.

Adobe Digital Editions 3.0

  • 사용자가 원하는 폰트를 설정 할 수 없음.
  • 폰트 크기를 가장 크게해도 저시력인에게는 그리 크게 느껴지지 않을듯함

 

Sony Reader

  • 계정등록이 필요한것 같아서 더이상의 시도를 해보지 않음.

Calibre

  • 네이버 나눔글꼴의 나눔고딕 엑스트라 볼드 같은 윈도우에 설치된 폰트를 지정해서 전자책을 볼 수 있음.
  • 폰트크기를 굉장히 크게 설정 가능.
  • 사용자 스타일시트를 이용해서 검은색바탕에 흰색 글자를 사용 가능.

아래 이탤릭 폰트로 적힌 내용을 Calibre 에서 아무 eBook 이나 여신 뒤에, 환결설정의 User StyleSheet 에 입력하시면 검은색 바탕에 흰글자로 보실 수 있습니다.

body {
color: rgb(255,255,255);
background-color:rgb(0,0,0);
text-align:justify;
line-spacing:1.8;
margin-top:0px;
margin-bottom:4px;
margin-right:50px;
margin-left:50px;
text-indent:2em;
}
h1, h2, h3, h4, h5, h6 {
color:white;
text-align:center;
font-weight:bold;
}

그리고 Calibre의 일반에서 모든 폰트를 나눔고딕 ExtraBold 로 설정 하신 경우 ‘기본 글자 크기’를 15 PX 정도로 하시면 줄간격이 너무 많이 벌어지지 않습니다.

설정이 완료 된 뒤에 키보드의 CTRL 키룰 누른 상태로 마우스의 휠을 움직여서 글꼴의 크기를 조절 할 수 있습니다.

 

* 전자책을 화면으로 보기위해서는 시스템에 걸리는 부하가 훨씬 적고, 글꼴의 확대시에도 상하 스크롤만 해도 돼서, PDF 보다는 ePUB 포멧이 훨씬 나아 보입니다.

 

PMP, MP3, 스마트폰 등의 재생 및 표시 순서를 파일 이름 순서대로 정렬하기

PMP, MP3, 스마트폰 등 많은 기기에서 FAT32 파일 시스템을 사용합니다.

아래와 같은 파일이 있다고 가정하면

변상욱 기자수첩.E001.20110602.보수 언론의 ‘길세탁,역사 세탁’.mp3
변상욱 기자수첩.E002.20110603.세빛둥둥섬은 ‘세금둥둥섬’.mp3
변상욱 기자수첩.E003.20110606.한나라당 반값등록금 허풍에 등록금 되레 올랐다.mp3
변상욱 기자수첩.E004.20110607. 파업 노동자는 개…이게 국격입니까 .mp3
변상욱 기자수첩.E005.20110608.민주평통, 보수우익의 길을 예비하라.mp3

파일 이름의 순서대로 정렬하게 되면 위의 순서와 같습니다.

복사할때도 위와 같은 순서대로하면 문제가 없습니다.

사용자는 이 순서대로 재생을 하거나 파일 목록을 보고자 하지만,기기에서는 파일이 복사된 순서대로 재싱이되고 표시가 됩니다.

예를 들어서

FAT32 파일 시스템을 사용하는 MicroSD로

변상욱 기자수첩.E001.20110602.보수 언론의 ‘길세탁,역사 세탁’.mp3
변상욱 기자수첩.E005.20110608.민주평통, 보수우익의 길을 예비하라.mp3
변상욱 기자수첩.E002.20110603.세빛둥둥섬은 ‘세금둥둥섬’.mp3

의순서대로 파일을 복사하게 되면 사용자가 원하는 재생순서와 표시순서는

변상욱 기자수첩.E001.20110602.보수 언론의 ‘길세탁,역사 세탁’.mp3
변상욱 기자수첩.E002.20110603.세빛둥둥섬은 ‘세금둥둥섬’.mp3
변상욱 기자수첩.E005.20110608.민주평통, 보수우익의 길을 예비하라.mp3

이지만 기기에서 재생하거나 보여주는 순서는
변상욱 기자수첩.E001.20110602.보수 언론의 ‘길세탁,역사 세탁’.mp3
변상욱 기자수첩.E005.20110608.민주평통, 보수우익의 길을 예비하라.mp3
변상욱 기자수첩.E002.20110603.세빛둥둥섬은 ‘세금둥둥섬’.mp3

와 같이 파일을 복사한 순서대로 보여주거나 재생이 됩니다.

이 문제를 해결하려면 FAT32 를 사용하는 USB 메모리, 하드 디스크 드라이브,MicroSD 등의 장치의 파일 정렬 순서를 파일이 복사된 순서가 아닌 정렬된 순서로 강제로 기록해줘야 합니다.

이때 쓸 수 있는 좋은 프로그램을 소개합니다.

이름은 DriveSort 이며 Windows 용이고 ‘Windows 7’에서도 정상적으로 작동합니다.

이 글을 작성할 당시의 버전은 1.223 이고 다운로드는 이곳에서 하시면 됩니다.

FAT12, FAT16, FAT32를 정렬 순서대로 기록할 수 있습니다.

사용 방법은 실행시키면 화면 왼쪽위에 아이콘이 몇 개 보이는데

아이콘의 왼쪽부터  1,2,3,4 라고 가정하면

1번 버튼을 눌러서 FAT32를 사용하는 장치나 메모리를 선택하여 열어주고

3번 버튼을을 눌러서 정렬한 뒤

4번 버튼을 눌러서 기록하고

2번을 눌러서 열려있는 드라이브를 닫아 주시면 됩니다.

3번 버튼옆에 아래 방향의 화살표가 있는데 ‘Long Name Sort’와 SubDirectories 는 켜주시기 바랍니다.

각각 긴 파일이름과 하위 폴더가지 정렬할지를 결정하는 옵션입니다.

4번 버튼에도 아래 방향의 화살표가 있는데 ‘ SubDirectories’를 선택해 주시는 것이 좋을 듯합니다.

 

Windows Live Messenger 몇 가지 팁

윈도우즈 라이브 메신저 관련 몇 가지 팁입니다.

 

  • 소셜 네트워크 관련 항목 없애기

화면 제일 오른쪽 위의 구석에, 그러니까 메신저 프로그램 창을 닫기 위한 X 버튼 바로 아래에 조그만 네모 박스가 있습니다.

그곳에 마우스 포인터를 올리면 ‘아이콘 보기로 전환’ 이라고 나오는데 바로 그 박스입니다. 누르게되면 소셜 네트워크 관련 창이 사라지고 메신저 관련 대화목록 창만 나오게 됩니다.

 

  • 폰트 변경 (글꼴을 크게 또는 작게 하기)

대화 상대 아무나 선택해서 보낼 메시지를 입력하는 상태로 만듭니다.

타이핑을 하면 입력내용이 표시되는 부분에 마우스 오른쪽 클릭을 한 다음 ‘글꼴 변경’ 을 선택하고 원하는 폰트와 크기로 바꿉니다. 앞으로의 대화내용 표시에 이 설정이 사용되게 됩니다.

  • 윈도우즈 7에서 트레이에 메신저 아이콘 나오게 하기

메신저를 닫으면 작업 표시줄이나 트레이에 나타나질 않아서 화면에 계속 띄어놓기도 그렇고 굉장히 불편합니다. 아래와 같이하게되면 메신저를 다아도 틀레이에 메신저 아이콘이 표시되게 됩니다.

윈도우즈 라이브 메신저가 설치된 폴더의 msnmsgr.exe 파일을 찾아서 Alt – Enter 키를 누르거나 오른쪽 클릭을 한 뒤 속성을 선택하고 호환성 탭을 선택합니다.

이 프로그램을 실행할 호환 모드에 체크 표시한 뒤 ‘Windpws Vista’, ‘Windows Vista 서비스 팩 1’ 또는 ‘Windows Vista (서비스 팩 2)중에 한가지를 골라주고 확인을 누룹니다.

XP 계열로 선택하니 종료버튼을 눌렀을때 트레이로는 잘 가는데 마우스를 이용한 끌어놓기(Drang and Drop)으로는 파일전송이 안 되는 문제가 발생합니다. 비스타계열로 맞춰놓고 쓰시기 바랍니다.

참고로 메신저 뿐만이 아니고 호환성 모드를 XP 계열로 설정하게 되면 해당 프로그램은 모두 마우스로 끌어놓기 기능이 안 되는것 같습니다.

MySQL 4.1 이상 + PHP 프로그램의 웹브라우저에서 한글이 깨지는 문제 해결 방법.

기본적으로 mysql 4.1의 서버와 mysql(client) 에서 한글 (euckr로가정)을 제대로 입출력하기 위해서는 몇가지 설정이 필요합니다.

특히 옛날에 character set을 db자체에 저장하지 않던 구조의 database를 가지고 있는 경우 더욱 그렇습니다.

제 환경은 Redhat 7.3 , MySQL 4.1.8 (RPM),PHP 5.0.3,Apache 1.3.33 입니다.

 

MySQL의 설정파일이 /etc/my.cnf 라고 가정 합니다.

 

 

위 3 세션에 모두

default-character-set=euckr

이라는 내용을 있으면 놔두고 없으면 추가해주십시요. 다른 언어로 되어있다면 그부분만 euckr 로 수정하시면 됩니다.

참고로 4.1부터는 euc_kr에서 euckr로 바뀌었습니다.

 

db에 character set 정보가 저장되지 않았던 시절에 만들어진 db들의 경우 위의 설정을 바꾸께되면 database 의 코드가 바뀌어 버리게 됩니다. 그러니 이전에 사용하던것과 일치시켜 주셔야 합니다.

 

일단 이렇게까지만하면 콘솔에서 mysql 을 실행하여 접속해서 한글을 읽고 쓰는대는 별문제가 없으실 것입니다. 그러나 제경우 문제는 이뒤부터 발생했습니다.

웹에서 출력하는 페이지들중 db에서 불러오는것들이 ASCII 가 문자들의 경우 모두 ? 로 깨어저 나오는 것입니다.

 

그래서 직감적으로 character set에 관련된 문제란건 알겠는데 이것을 확인하는 방법부터 말씀 드리면

 

shell에서

mysql dbname -e ‘show variables like “%character%”;show variables like “%collation%”;’

 

이렇게 입력해보시면 아마도 위의 3 세션 모두 정상적으로 수정해서 적용되었다면

( 세션의 경우 mysql 서버 재시작 필요.dbname을 mysql 등으로 바꿔서 해주시기 바랍니다.)

이렇게 나올 것입니다.

 

 

Variable_name Value
character_set_client euckr
character_set_connection euckr
character_set_database euckr
character_set_results euckr
character_set_server euckr
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
Variable_name Value
collation_connection euckr_korean_ci
collation_database euckr_korean_ci
collation_server euckr_korean_ci

 

그러나 shell에서 실행하는 client의경우 세션의 영향을 받는데 (다른 character set으로 바꾸면서 실행해보시면 확실히 아실 수 있습니다.)

 

웹에서 php를 이용하여 접속한것들은 적용이 안되는것을 확인햇습니다.

확인하는 코드는 아래와 같습니다.

 

show variables like “%character%”;show variables like “%collation%”;

 

이것을 브라우저를 통해 실행해서 실제로 php를 이용한 접속에서 도대체 character 에 어떤 문제가 발생하는지 볼수 있습니다.

 

실행결과는 아래와 비슷할 것입니다.

character_set_client | latin1
character_set_connection | latin1
character_set_database | euckr
character_set_results | latin1
character_set_server | euckr
character_set_system | utf8
character_sets_dir | /usr/share/mysql/charsets/

collation_connection | latin1_swedish_ci
collation_database | euckr_korean_ci
collation_server | euckr_korean_ci

 

character가 shell에서 실행할때와는 완전히 딴판인것을 눈으로 직접 확인할 수 잇습니다.

그럼 이것을 해결해야되는데 이것은

 

mysql 서버에 접속시

set session character_set_connection=euckr;
set session character_set_results=euckr;
set session character_set_client=euckr;

 

들을 실행하여 character set에 대한 정의를 다시 해주시면 됩니다.

 

자 순서대로 어던일이 일어나는지 봅시다.바로 위의 3가지 character set설정 명령없이 실행한경우와 비교해 보시기 바랍니다.

그럼 해당 설정들이 실제로 어떤 영향을 미치는지 이해하는데 도움이 될것입니다.

 

먼저 set session character_set_connection=euckr; 만 적용할 경우.

결과는 아래와같습니다. 3가지중 아무것도 적용안했을경우와 비교하면

character_set_client | latin1
character_set_connection | euckr    <== latin1 에서 euckr 로 변경됨.
character_set_database | euckr
character_set_results | latin1
character_set_server | euckr
character_set_system | utf8
character_sets_dir | /usr/share/mysql/charsets/

collation_connection | euckr_korean_ci    <== latin1_swedish에서 euckr로 변경됨
collation_database | euckr_korean_ci
collation_server | euckr_korean_ci

 

 

 

이제 set session character_set_results=euckr; 만 적용해 봅시다.

결과는 아래와 같습니다.3가지중 아무것도 적용안했을경우와 비교하면

 

character_set_client | latin1
character_set_connection | latin1
character_set_database | euckr
character_set_results | euckr      <== latin1 에서 euckr로 변경됨
character_set_server | euckr
character_set_system | utf8
character_sets_dir | /usr/share/mysql/charsets/

collation_connection | latin1_swedish_ci
collation_database | euckr_korean_ci
collation_server | euckr_korean_ci

이제 set session character_set_client=euckr; 만 적용해 보면 결과는

아래와 같습니다.3가지중 아무것도 적용안했을경우와 비교하면

 

character_set_client | euckr         <== latin1에서 euckr로 변경됨
character_set_connection | latin1
character_set_database | euckr
character_set_results | latin1
character_set_server | euckr
character_set_system | utf8
character_sets_dir | /usr/share/mysql/charsets/

collation_connection | latin1_swedish_ci
collation_database | euckr_korean_ci
collation_server | euckr_korean_ci

이제 3가지를 모두 한번에 적용해 봅시다.

set session character_set_connection=euckr;
set session character_set_results=euckr;
set session character_set_client=euckr;

결과는 아래와 같습니다.3가지중 아무것도 적용안했을경우와 비교하면

character_set_client | euckr                  <== latin1에서 euckr로 변경됨.
character_set_connection | euckr          <== latin1에서 euckr로 변경됨.
character_set_database | euckr
character_set_results | euckr                <== latin1에서 euckr로 변경됨.
character_set_server | euckr
character_set_system | utf8
character_sets_dir | /usr/share/mysql/charsets/

collation_connection | euckr_korean_ci    <== latin1에서 euckr 로 변경됨.
collation_database | euckr_korean_ci
collation_server | euckr_korean_ci

이제 원하시는대로 웹브라우저의 encoding 이 한국어로 되있을경우 안깨지는 정상적인 결과를 얻을실 수 있을 것입니다.

 

완전히 새로 만들고 다국어데이타의 입력도 고려한다면 unicode의 사용도 괜찮을듯 싶습니다.

 

 

위에서 php통하여 실행시키는 코드는 아래와 같습니다.

localhost로 접속하고 암호는 없으며 db계정을 root라 가정합니다.

 

//  php 프로그램의 시작

<?

$connect    = mysql_connect(localhost,root);
$isResult    = mysql_select_db(“mysql”, $connect
);

// mysql_query(“set session character_set_connection=euckr;”);
// mysql_query(“set session character_set_results=euckr;”);
// mysql_query(“set session character_set_client=euckr;”);

$sql = “show variables like ‘%character%'”;
$result = mysql_query($sql
);

while($row = mysql_fetch_array($result)) {
echo $row[0] . ” | ” . $row[1] . “<br>\n”
;
}

echo (“<br><br>”);

$sql = “show variables like ‘%collation%'”;

$result = mysql_query($sql);

while($row = mysql_fetch_array($result)) {
echo $row[0] . ” | ” . $row[1] . “<br>\n”
;
}

?>
// php 프로그램의 끝

 

프로그램을 붙여넣기 하여 파일로 저장한후 3가지 설정의 주석을 풀아가면서 또 모두 풀어서 테스트 해보시기 바랍니다.(굵게 표시된 부분)

 

 

혹시 내용상 오류가 있을지 모르니 리플좀 부탁드립니다.

참고로 system에 utf8의 경우 고정되어있는 값으로 변경 불가능 합니다.

5.0 버젼 부터는 클라이언트 쪽에서 set names utf8 또는 set names euckr등을 통해서 클라이언트가 사용하는 문자셋을 편하게 지정할 수 있습니다.

윈도우에 숨은 VMS 기술 유전자

[지디넷코리아]“윈도우 NT의 핵심 개발 인력들은 VMS에 관계했을 뿐만 아니라 VMS 개발자인 커틀러와도 같이 일한 적이 있다. 윈도우 NT 기술은 VMS와 막연하게 비슷할 것이라는 추측을 넘어 놀랄 만큼 흡사하다.”(Russinovich)

아 폴로 11호가 처음 달에 착륙했을 때 아폴로 계획의 총 책임자이던 베르너 폰 브라운 박사는 일약 영웅으로 부각됐다. 브라운 박사는 2차 대전 당시 런坪?공습하던 V2 로켓의 책임자이기도 했다. V2의 V는 ‘Vergeltungswaffe’라는 의미의 독일어로 ‘진보된 무기’를 뜻한다. 미국의 맨해튼 프로젝트의 목표가 핵무기의 개발이었다면, 독일은 로켓으로 적국을 초토화하는 것이 목표였다. 달에 착륙한 아폴로의 아키텍트는 런던에 수백 킬로미터 짜리 미사일을 퍼붓던 V2의 개발자와 같은 사람이었다.

독일이 전쟁에 패하자 미군은 서둘러 로켓연구소의 연구진들을 미국으로 데려왔으며 이들은 미국의 우주계획과 대륙간 탄도탄의 개발 초기 단계에 결정적인 역할을 했다. 미국은 실제로 로켓 추진기를 만들 능력이 없었다. 당시는 냉전의 초기 상황으로 개발진들의 과거가 어떠했건 이들의 능력이 절대적으로 필요하다고 판단했다. 초기의 대륙간 탄도탄은 V2 로켓을 그대로 사용하거나 몇 개를 묶어서 추진했고, 1950년대가 되어서야 독자적인 로켓 추진기를 갖출 수 있게 됐다.

독일의 V2 역시 전쟁의 광기가 아니면 이루어질 수 없는 인재와 자원의 총결집으로 전쟁의 광풍 속에서 갑작스러운 V2의 설계가 가능했다. 당시의 기술로서는 그만큼 로켓의 설계라는 일이 어려운 작업이었다. 로켓을 만들 수 있는 인재의 풀 역시 한정되어 있었다. 소련에 끌려간 독일의 로켓 기술자들 역시 소련의 우주계획과 탄도탄 계획에 동원됐다. 소련 역시 이들의 기술적 유전자가 필요했던 것이다.

V2는 실험적인 로켓이 아니라 전쟁에 배치되어 도시를 폭격하기 위한 무기로, 수백 Kg의 폭탄을 싣고 대기권까지 올라가서 사용하는 실용적인 로켓이었다. 역사적으로 오늘날의 모든 액체 추진 로켓은 V2의 유전자를 물려받았다. 기술에도 일종의 유전자가 있다고 볼 수 있다.

로켓의 유전자, 운영체제의 유전자
로켓이나 핵무기와는 다르지만 컴퓨터의 역사에서 운영체제는, 특히 일정 규모 이상의 운영체제는 만들 수 있는 사람이 극히 제한되어 있으며 한번 성공적으로 개발된 운영체제의 유전자는 쉽게 바뀌지 않는다. 우리가 알고 있는 운영체제 말고도 수많은 운영체제가 나타났다 사라지곤 했으며, 일부는 연구자들 사이에서 매우 중요하게 취급되곤 했으나 오늘날 그 운영체제의 후손이나 사용자는 찾아보기 힘들다. 요즘에도 마이크로 커널이나 진보적인 개념의 실험적인 운영체제들이 많이 있으나 이들 중 앞으로도 살아남을 운영체제는 1%도 채 되지 않을 것이다.

경쟁이 치열해지고 체계화될수록 새로이 등장한 운영체제의 생존 가능성은 그만큼 낮다고 할 수 있다. 초기의 구현 개념 설정부터 실제 구현까지는 기술적으로 성공적이라 하더라도 사용자 층의 확보라든가 기술의 지속적인 발전에는 개발회사의 규모나 명성 같은 것이 필요하며 기술적인 전통도 필요하다. 개발자와 함께 기술적 전통이 지속적으로 필요한 것이다. 또 운영체제는 적어도 일정기간 동안 사용자들의 요구와 비판을 수용하며 살아남을 수 있는 일종의 영속성(persistancy)이 필요하다. 이들을 생물체에 비교한다면 하나의 기술적 유전자의 보존이라고 할 수 있겠다.

처음에 IBM의 후광을 입어 등장한 MS-DOS가 마지막 버전까지도 개리 킬달의 CP/M 유전자로부터 자유로울 수 없었던 것처럼 NT와 윈도우의 후손들 역시 선조들인 DEC와 매킨토시의 유전자로부터 자유로울 수 없었다. MS는 원래부터 운영체제가 없었기 때문에 모든 기술적 유전자를 외부에서 들여와야 했다.

오늘날 유닉스는 30년 이상의 생존성을, 지금도 간혹 쓰이는 MS-DOS는 초기의 CP/M부터 고려한다면 역시 30년 이상의 운용 경험을, 그리고 윈도우 NT 역시 VMS부터 고려한다면 30년 가까운 세월이 흘렀다. 만약 아무리 개념적으로 좋은 운영체제가 있어도 초기부터 사용자 층이 너무 엷거나 한정된 수의 특수한 기계에서만 구동된다면 이런 장구한 세월 동안 개선되고 유지?발전이 지속되어야 하는 당위성을 갖기가 힘들다. 아니면 운이 좋아 초창기부터 사용되어 왔던가(리눅스 역시 유닉스의 클론으로부터 시작된 것이다. 만약 전혀 새로운 운영체제였다면 몇 사람의 관심으로 끝나고 말았을 가능성도 없지 않다).

반대로 생각하면 한 운영체제가 널리 쓰이기만 한다면 최선의 성능이 아니더라도 그 존재의 당연함과 영원히 끝나지 않을 것 같은 지루한 업그레이드와 변경에 대한 당연한 존재이유를 확보할 수 있다. 대표적으로 MS의 운영체제들이 그러한 예라고 할 수 있을 것이다.

사용자들은 80년도부터 지금까지 도스와 윈도우의 버전업을 몇 십 번 이상 반복해왔다. 데스크탑 운영체제의 거의 전부와 서버 운영체제에서 상당한 부분이 이미 MS로 기울어졌다. 컴퓨터의 성능이 좋아진 것도 하나의 이유겠지만 MS의 제품을 사용해도 다른 회사나 단체에서 주장하는 것처럼 커다란 재앙은 일어나지 않았고 이른바 커널 패닉 상태인 ‘공포의 블루스크린’이 보여도 운영자가 리셋을 눌러주면 그만일 수도 있다.

무엇보다도 절대 다수라는, 또는 오랫동안 익숙하다는 그 사실 자체만으로도 최고의 마케팅을 구사하고 있는 MS의 서버 운영체제는 오늘날 NT가 근간이다. 흔하니까 더 많이 쓰게 되는 점유의 포지티브 피드백은 NT가 우수하다기보다는 일상적인 용도에 NT가 크게 부적합하진 않다는 사실을 반영한다.

인터넷 서버나 적당한 규모의 데이터베이스(MS에 따르면 커다란 데이터베이스나 애플리케이션도 수행 가능하다고 한다)에는 별 문제 없이 사용이 가능하다는 것이며, 비슷한 규모에서는 다른 운영체제가 절대적인 성능상의 우위를 점하지 않고 있다는 가정도 아마 맞을 것이다. 보안 취약성 문제가 일어날 때마다 보안 패치를 적용하거나 알려져 있는 보안상의 결함들을 그때그때 패치로 때울 수 있는 것도 워낙 많은 수를 차지하고 있기 때문일 것이다. 다수라는 조건은 경쟁자에게는 무서운 장벽이기도 하다.

요즘 사용하는 윈도우 XP나 2000은 윈도우 NT에 기반한 기술이다. NT는 80년대부터 개발됐다. NT는 MS의 입장에서 보면 보물이자 당분간 운영체제 시장을 지배하는 중요한 수단이다. NT의 성공은 기술적이라기보다는 마케팅과 시장점유율의 승리하고 보는 편이 맞을 것이다.

NT는 1988년부터 개발되어 1993년 버전 3.1이 발표됐다. 너무나 짧은 시기에 성공적인 시장 점령을 마친 NT는 사실 ‘NT(New Technology)’라는 이름에 걸맞지 않게 긴 개발 역사를 숨기고 있었다. NT는 역사적으로 보면 70년대부터 개발됐다고 보는 편이 맞을 것이다. 70년대부터 유닉스와 경쟁하던 VMS가 NT의 조상인데, 유닉스와 NT는 시작부터 다른 운명을 타고 태어났다. 그리고 두 운영체제는 16비트, 32비트 그리고 이제 64비트 시장에서도 경쟁을 해야 하는 30년간의 맞수관계를 유지하고 있다.

둘 다 대기업에서 태어나긴 했지만 출발부터가 매우 달랐다. 유닉스의 개발 동기가 취미활동에 가까운 켄 톰슨과 리치의 작업이었다면 NT의 조상인 VMS는 처음부터 32비트 시장을 바라보고 만든 제품이었다. 그 개발은 DEC(Digital Equipment Corporation, 그냥 디지털이라고 표현하기도 한다)라는 대단한 회사로부터 시작됐다(DEC와 그 창업자인 올슨을 다룬 책도 있다. 책의 제목은 『The Ultimate Entrepreneur: The Story of Ken Olsen and Digital Equipment Corporation』)

미니 컴퓨터 기술의 인큐베이터, DEC
DEC에 대해 알파칩과 알타비스타(altavista.com)를 만든 회사 정도로만 알고 있는 사람이 많지만 DEC는 정말 탁월한 회사였다. DEC의 창시자 켄 올슨은 컴퓨터 업계의 영웅이었다. 빌 게이츠 역시 어린 시절 켄 올슨을 자신의 영웅으로 여겼을 정도로 컴퓨터 업계에 대한 결정적인 영향력을 행사했다. 흔히 ‘디지털(Digital)’로 불리는 DEC는 사실상 모든 마이크로 컴퓨터와 미니 컴퓨터의 기술 유전자 내지는 인큐베이터 역할을 했다. 1957년부터 1997년까지 40년간 존속하며 수없이 많은 영향을 주었다.

초기의 MS를 포함해 컴퓨터에 관여한 사람들은 예외 없이 DEC의 PDP 시리즈 컴퓨터의 영향으로부터 자유로울 수 없었다. 유닉스 역시 PDP 시리즈에서 개발됐다. 유닉스의 32비트화도 PDP가 32비트의 가능성을 열어주었기 때문에 가능했다. 그리고 모든 임베디드 컴퓨터 컨트롤러의 시작도 DEC에서 비롯됐다. 마이크로프로세서의 탄생 자체가 PDP-8에서 영감을 얻은 인텔의 엔지니어 테드 호프의 설계로부터 시작됐다.

1957년 MIT의 링컨연구소의 TX-2 프로젝트에 염증을 느낀 켄 올슨은 자신의 동료와 함께 DEC를 설립했다. TX-2는 당시로서는 새로운 개념인 트랜지스터를 사용한 대형 컴퓨터였다. 올슨이 TX-2에 사용되던 모듈들을 모아서 연구실에 필요한 컴퓨터를 셋팅하는 것으로 출발한 작업은 1961년 PDP-1이라는 제품을 출시하면서 ‘미니 컴퓨터’의 세계를 열었다.

이 제품을 가장 먼저 구입한 회사는 BBN(www.bbn.com)으로 PDP-1을 이용하여 Interrupt Priority Controller를 만들었다. 요즘 하드웨어의 기준으로 보면 황당한 일이겠지만 당시의 기계는 트랜지스터 모듈을 프린트 기판에 조립한 것으로 레지스터 값들은 작은 콘솔에 있는 림프들을 통해 확인할 수 있었다.

 

<그림1> DEC의 PDP-8. 최초의 마이크로 컴퓨터인 알테어 8800과 거의 흡사한 모습이다.

CPU라는 개념이 하나의 칩이 아니라 ALU와 레지스터 모듈들을 전선(버스)으로 묶어 놓은 형태였다. 당연히 콘솔에 있는 스위치들을 눌러서 레지스터 값을 바꾼 후 시스템을 재가동할 수도 있었다. 운영 요원이 디버거인 셈이었다.

IBM을 포함한 다른 업체들이 초고가의 대형 컴퓨터들을 만들었다면 저렴하며 성능이 나쁘지 않은 DEC의 컴퓨터는 예측하지 못한 다양한 수요를 창출하게 됐다. DEC는 여러 가지 컴퓨터를 만들었으나 초기의 성공적인 제품은 1964년의 PDP-8이었으며 12비트 컴퓨터였다. 가격은 1만 2000달러로 당시로서는 매우 저렴한 편이었다. 이 컴퓨터가 나오자 사람들이 컴퓨터를 이용한 작업들을 과감하게 이것저것 시도해볼 수 있었다고 한다. PDP-8은 명령어가 적었고 메모리 보호가 되지 않았지만 사람들은 PDP-8로 그전에는 불가능했던 여러 가지 일들을 할 수 있었다.

그 다음에 나온 PDP-11은 시장을 석권했다. PDP-8보다 크게 복잡하지는 않았으나 DEC가 집적회로의 개발에 신경을 쓴 관계로 이 작은 시스템은 요즘의 PC보다 조금 큰 정도였다. PDP에서는 RTSS와 유닉스를 포함해 다양한 운영체제가 수행되었으며, 1960년대와 1970년대에는 컴퓨터 학계의 표준 시스템이나 마찬가지였다. PDP-10 시리즈 컴퓨터는 전산센터용으로 개발되었고 36비트 아키텍처를 가지고 있었다. PDP-10은 AI나 LISP 개발에도 널리 사용됐다. 당시의 DEC에는 Gordon Bell이나 Allen Newell 같은 쟁쟁한 사람들이 근무했다.

사람들은 단순한 구조의 PDP-8을 너무나 좋아했고 PDP-8에 집착했다. 사진에 나오는 PDP-8의 모양은 최초의 마이크로 컴퓨터인 알테어 8800과 너무나 닮았다. 인텔의 마이크로 컴퓨터가 나왔을 때 어떤 사람들은 “PDP-8 wanna be”라며 환영했다. PDP-8이 이렇게 변했으면 하던 바램이 칩으로 탄생한 것이다, 인텔의 초기 4비트와 8비트 프로세서는 PDP-8의 애호가였던 테드 호프가 설계한 것이었다. 당연한 일이었다. 초기부터 8비트의 마이크로프로세서가 빠르게 수요자층 을 넓할 수 있던 이유 중에는 개발자들이 미니 컴퓨터에서 이미 충분한 경험 곡선을 갖고 잇던 이유도 있었다. 결코 하루 아침에 컴퓨터의 대가들이 만들어진 것이 아니었다.

VMS와 유닉스의 대결
1976년이 되자 DEC는 점차 고성능의 컴퓨터(super-mini라고 한다)로 이행하기로 하고 1978년 VAX 11/780을 발표했다. DEC는 VAX로 미니 컴퓨터의 시장을 장악하게 되었으나 하위 기종에서는 점차 점유율이 떨어지게 되었는데, 마이크로 컴퓨터들과 워크스테이션들이 등장하면서 점차 DEC의 시장점유율이 떨어진 것이다. DEC는 PDP-10의 후속 기종이나 다른 모델을 포기하고 점차 VAX를 주 기종으로 밀게 됐다. VAX의 운영체제로는 VMS와 유닉스가 있었고, 당연히 DEC에서는 유닉스보다 VMS가 훨씬 좋은 운영체제라고 평가했다.

사용자들이 유닉스를 사용하는 것에도 공공연히 반대했던 켄 올슨은 주저없이 유닉스를 ‘엉터리(snake oil)’라고 혹평했다고 한다(DARPA는 그 전까지 인터넷을 관리하는 데 사용했던 PDP-10이 노후화되었고, DEC가 더 이상 PDP-10 시리즈를 생산하지 않을 것임을 알게 되자 DEC와 접촉하여 VAX/VMS에서 TCP/IP를 구현해 주도록 요청했으나, 곧바로 거절당한 적이 있다. DEC가 고유의 VMS 운영체제를 변경할 이유가 없다는 것이 그 이유였다. 그래서 인터넷의 구현은 유닉스 쪽으로 넘어가게 됐다. 결국 VAX에서 수행되는 유닉스에서 TCP/IP 스택이 구현됐다).

1980년대 후반이 되자 DEC는 IBM의 뒤를 이어 두 번째로 큰 컴퓨터 회사가 되었는데, 전 세계에 걸쳐 10만 명을 고용하고 있었다, DEC는 당시에는 하드웨어 외에도 거의 모든 분야에 진출해 있었다. DECnet과 같은 독자적인 네트워크 시스템과 파일/프린터 공유 시스템, 수없이 많은 소프트웨어들, 그리고 자체적인 관계형 데이터베이스 시스템도 갖추고 있었다.

이들은 모두 잘 만들어진 제품들이었으나 DEC에서만 수행되거나 DEC 중심적으로 만들어진 것들로, 고객들은 점차 다른 서드파티 제품들을 찾게 됐다. 올슨은 잘 만들어진 제품들은 저절로 팔린다는 믿음을 가지고 있었다. 그러나 32비트 기종의 시장에서도 RISC들과 386 같은 경쟁자들이 나타나면서 상황은 점차 악화됐다. 1990년대 초가 되자 매출이 급격히 떨어졌고 DEC는 최초로 감원에 들어갔다.

DEC는 하나의 대책으로 그 전까지의 CISC 구조인 VAX의 구조를 버리고 64비트 RISC 아키텍처인 ‘알파’ 프로세서를 개발하기 시작했다. 알파는 1990년대 말까지 가장 빠른 CPU로, VMS와 유닉스를 수행할 수 있었으며 MS의 윈도우 NT도 실행할 수 있었다. DEC는 Open VMS라는 새로운 VMS 개념의 제품으로 유닉스 업계와 경쟁하는 한편 자체적인 유닉스 시스템(나중에 OSF/1에서 True 64라는 이름으로 바뀌는)도 출시했다. 광고에도 점차 집착하게 됐다. 어찌된 일인지 이미 시장이 형성된 (그리고 과당경쟁에 돌입한) 유닉스로부터 점유율을 뺏어 올 수도 없었고, NT가 점유하는 저급 서버 시장에서도 실패했다. DEC의 모든 서버 제품들은 그 이전의 PDP 시절처럼 시장을 점유하지 못했다.

올슨은 회사를 그만두게 되었고 로버트 파머가 CEO로 영입되었으나 상황은 더욱 악화됐다. 적자가 계속되어 대량의 감원이 계속되었고 일부 제품은 오라클로, 어떤 프로세서(예를 들어 Strong Arm 같은)들은 인텔로 팔려나갔다. 결국 1998년 12월 DEC는 컴팩에 매각되기에 이르렀다. 그리고 컴팩은 다시 0000년 HP에 합병됐다.

DEC가 미니 컴퓨터 회사로 출발하면서 40년간 지속되는 동안 대형 컴퓨터들이 사람들에게 해줄 수 없는 많은 영향력과 업적들이 추구됐다. ASCII 문자 셋은 DEC에서 개발된 것이며, ISO-8859와 유니코드(unicode)는 DEC의 다국적 문자 셋으로부터 영향을 받았다.

사실 DEC의 기기들은 컴퓨터 개발에 있어 하나의 요람이었다. 또한 대형 컴퓨터와 마이크로 컴퓨터의 사이를 잇는 교량이었다. PDP 기종에서 수없이 많은 프로그래머가 교육을 받았고, 또 많은 애플리케이션과 시스템들이 PDP에서 개발됐다. PDP 시리즈가 존속되는 동안 초기의 모든 마이크로 컴퓨터 개발자들이 DEC를 모태로, 또는 DEC에서 수행되는 프로그램에서 영감을 얻어 애플리케이션을 개발하곤 했다.

미니 컴퓨터에서 8080을 에뮬레이트하는 작업들도 PDP 상에서 이루어진 것이 많았다. 유닉스 역시 PDP에서 개발되었고 최초의 C 언어도 PDP에서 태어났다. 초기 마이크로 컴퓨터 개발자의 요람인 홈브루 컴퓨터 클럽(atari, apple, osborne 그리고 doctor dobb‘s journal 등이 이 클럽에서 탄생했다)의 구성원들 역시 PDP-8과 PDP-11의 신세를 졌으며, 나중에 이들은 마이크로 컴퓨터 시대를 여는 주역이 됐다.

VMS에서 NT로!
David A.Solomon과 함께 『Inside Microsoft Windows 2000(3판, Microsoft Press)』이라는 책을 쓴 Mark Russinovich는 그의 컬럼에서 윈도우 NT와 VMS에 대해 자세히 적은 적이 있다. 상당히 유명한 컬럼이라 필자도 몇 번씩 재미있게 읽었고 이전의 유닉스의 역사에서도 소개한 적이 있다. 컬럼에서 Mark Russinovich는 NT와 VMS의 유사성을 심도 있게 다루었다. 보다 초기의 자료인 1993년 『Inside Windows NT』의 서문에서는 NT의 주 개발자인 데이비드 커틀러가 VMS와의 유사성에 대해 적은 바 있다.

CP/M이 QDOS를 통해 표절에 가까운 클론의 형태로 MS-DOS로 구현됐다면 NT는 VMS의 개발팀을 통째로 스카웃하여 몇 년 동안에 윈도우의 API를 입혀놓은 형태이다. 기술의 유전자는 이러한 방법으로 DEC에서 MS로 넘어가게 됐다.

VMS를 개발한 사람은 데이비드 커틀러(David Cutler)로, 1942년생이며 현재 MS의 Distnuished Engineer로 근무하고 있다. 비교적 일찍 업계에서 두각을 나타낸 사람이며 묘한 유머감각을 가지고 있다고 전해진다. 일설에 의하면 커틀러의 에러 메시지는 언제나 두 가지 이상의 의미를 가지고 있다고 한다. 단어를 갖고 장난치는 일에도 대가였다. 이를테면 WNT(Windows NT)라는 이름은 커틀러가 지었는데 VMS에서 한 글자씩 뒤로 옮긴 이름이라는 식이다. 또 HAL(Hardware Abstraction Layer)은 IBM에서 한 글자씩 앞당겨서 만들었다고 하는 전설도 있다.

처음에는 듀퐁에서 컴퓨터 관리를 담당하다가 운영체제에 관심이 생겨서 결국 디지털(DEC)에 근무하게 됐다. 커틀러는 첫 작품으로 RSX-11이라는 운영체제를 만들었다. RSX-11은 주로 공장자동화와 산업에 쓰인 운영체제로 DEC의 PDP-11을 위한 운영체제였다. 회사의 기술 담당 부사장이던 고든 벨은 1975년이 되자 32비트 프로세서가 있어야 다른 회사들과 경쟁할 수 있다고 판단하여 32비트 프로세서를 개발하기 시작했고, 이 프로세서는 나중에 VAX로 발전했다.

회사 내에서 RSX-11로 유명해진 커틀러는 이 32비트 프로세서를 개발하는 초기 구성원으로 합류했다. 얼마 후 Dick Hustvedt와 Peter Lipman과 함께 새로운 VAX를 위한 운영체제인 VMS를 개발하게 됐다. DEC에서 결정한 VAX와 VMS의 설계는 약간 특이한 것으로, 구형 기종과의 호환성을 최대한 살리라는 주문이 내려졌다. 즉 VAX는 과거의 PDP-11과 하위 호환성을 가질 수 있어야 하며, 데스크탑 워크스테이션뿐만 아니라 엔터프라이즈 서버에서도 사용할 수 있어야 한다는 것이다.

또 VMS는 RSX-11을 포함한 과거의 운영체제와 호환성을 포함해 다양한 하급 기종에서도 싫ㅇ되어야 한다는 주문이었다. DEC는 VAX와 VMS에 큰 도박을 했는데 결과는 성공적이었다. DEC에서는 VAX와 VMS의 개발을 ‘betting the business’라고 표현했는데 나중에 MS 역시 NT 5.0의 개발 시점에 ”betting the business”라고 표현했다.

DEC에서 MS로 명함 바꾼 커틀러
DEC는 1977년 VAX와 VMS 1.0을 발표하고 1978년 출시했다. 커틀러는 그 다음의 VMS의 개발에도 프로젝트 리더와 핵심 아키텍트로 계속 참여했다. 1981년이 되자 커틀러는 DEC를 떠나겠다고 선언했다. DEC는 간판 스타를 잃지 않기 위해 더 200명의 하드웨어와 소프트웨어 엔지니어를 커틀러에게 지원했다. 커틀러는 연구소를 시애틀로 옮겼다. 이 그룹의 목표는 디지털이 1990년대를 이끌 CPU 구조와 운영체제를 만드는것이었다. DEC에서는 하드웨어 프로젝트를 PRISM으로 운영체제는 MICA라고 불렀다.

1988년이 되자 DEC는 커틀러의 프로젝트를 취소하고 팀원들을 해고했다. 커틀러는 때마침 MS로부터 좋은 제안을 받았기 때문에 DEC를 그만두고 팀원들과 함께 MS로 이적했다. 커틀러의 제안은 20명의 개발자들과 함께 MS로 이적하겠다는 것이었고 이중에는 하드웨어 개발자도 끼어 있었다. MS로서는 커틀러를 영입하는 것이 대단한 일이었으며 이만한 개발자는 흔치 않았다.

빌 게이츠는 유닉스에 대항할 수 있는 새로운 운영체제의 개발이 회사의 미래에 중요한 사건임을 느꼈다고 했다(MS는 초기에 유닉스의 일종인 XENIX를 만들어 시장에 진입하려 한 적이 있으나 별로 재미를 보지 못했다. 1980년대 초반의 MS가 XENIX를 처음부터 개발한 것도 아니며 AT&T로부터 라이선스한 유닉스의 클론이었다. MS가 유닉스에서 바로 손을 떼면서 XENIX의 판권은 요즘 리눅스를 제소중인 SCO로 넘어갔다). 사실 MS는 32비트에 대한 특별한 준비가 전혀 되어 있지 않은 상태였다.

처음에 VMS의 팀이 MS에 오기는 했으나 이 때의 운영체제 이름은 OS/2 NT였다. MS는 아직 윈도우를 개발하지 못한 채 IBM과 OS/2를 개발하고 있던 상태로, 새로운 운영체제가 OS/2의 뒤를 잇기를 희망했으며 API는 OS/2의 일차적 API를 사용하기를 원했다. 그러나 1990년 MS가 윈도우 3.0 개발에 성공하자 MS의 생각이 바뀌었고 IBM과의 관계도 바뀌었다.

OS/2 NT는 6주 만에 ‘윈도우(Windows) NT’로 이름이 바뀌게 됐다. Win32가 NT의 공식적인 API로 바뀌게 된 것이다. MS에서는 3.1에 대한 호환성과 16비트 애플리케이션을 NT에서 그대로 실행할 수 있는 것을 중요한 목표로 잡고 DOS와 OS/2 그리고 POSIX도 부분적으로라도 호환성을 갖도록 만들었다. 1990년부터 1993년까지 커틀러의 팀은 NT를 완성하기 위해 거의 광적으로 매달렸다.

NT의 핵심 개발 인력들이 VMS에 관계했으며 커틀러와 같이 일한 적이 있기 때문에 NT가 VMS와 막연하게 비슷할 것이라는 추측을 넘어 NT와 VMS는 놀랄 만큼 비슷하다고 한다. Russinovich에 따르면(Windows NT and VMS: The Rest of the Story) NT 역시 다른 운영체제처럼 유저 모드와 커널 모드로 구성되었으나 POSIX, DOS, OS/2의 층은 커널 모드가 아니라 유저 모드에서 수행된다. 커널이 지원하지 않으면 이들이 export하는 API는 아무 것도 수행되지 않는다. NT의 native API는 유저 모드의 애플리케이션들이 커널과 소통하는 것을 규정하는 API지만 많은 부분이 문서화되어 있지 않았다. 운영체제는 이들 어플리케이션 관점에서의 요구를 적절히 처리한다.

너무나 닮은 VMS와 NT
NT의 커널이 디지털의 커널을 그대로 카피했다는 평을 받을까 염려되어 NTFS나 새로운 Win32 API 같은 여러 가지 부분을 새로 개발함으로써 이러한 사실을 희석하려 했으나 NT는 VMS 코어의 개작이라는 의혹이 계속 뒤따랐다. 내부적으로 NT와 VMS의 커널이 너무나 비슷했기 때문에 DEC의 엔지니어들은 몇 주도 되지 않아 이들의 유사성을 파악할 수 있었다고 한다. VMS 5.0과 초기 NT는 너무나 비슷했다.

우선 프로세스 구조가 같았다. 프로세스의 우선순위가 둘 다 32레벨이며 상위 16레벨은 시스템에서 고정되어 있었고, 이들의 처리 방식도 같았다. VMS와 NT 3.1과의 프로세스 구조에서 큰 차이라면 NT가 쓰레드를 지원하는 것이었으며 스케줄러가 프로세스가 아닌 쓰레드에 실행 시간을 할당하는 것이었는데, 디지털도 얼마 후인 1995년에는 VMS 7.0에서 같은 방식으로 커널 쓰레드를 처리하기 시작했다.

NT 4.0에서는 유저 쓰레드를 구현했는데 이는 VMS의 영향을 받은 것이었다. 물론 프로세스 매니저도 비슷했으며 메모리 관리자도 구조가 유사했다. I/O에 이르러서는 상당히 비슷해서 약간의 차이만 있을 뿐이었다. 오브젝트 매니저마저도 비슷했다. 앞에서 소개한 컬럼에 따르면 이들의 유사성은 책을 한 권 쓸 수 있을 정도라고 한다.

NT가 VMS와 심각할 정도로 유사하다는 것을 DEC의 엔지니어들이 알아차리고 상급자에게 보고했을 때 DEC에서는 MS를 제소하지 않았다. 대신 1995년이 되자 DEC는 Open VMS라는 프로그램을 들고 나왔고, 이 제품은 NT와 함께 사용할 수 있는 제품이었다. 뿐만 아니라 DEC는 알파칩에 대한 NT 지원을 약속하기까지 했다. MS는 DEC에 1억 달러 가량을 지불했다고 한다. 그 후로도 몇 년 동안 VMS는 NT를, NT는 VMS의 개념을 차용했다. 얼마 후 DEC는 컴팩에 흡수되었고 그 후로 알파칩과 VMS는 그 전처럼 메인스트림으로 존재하지 못했다. 1980년대 중반까지도 DEC는 MS보다 훨씬 큰 회사였다.

 

<그림 2> VAX 시리즈의 하나였던 Micro Vax

미니 컴퓨터를 발전시킨 대단한 안목과 기술에도 불구하고 DEC는 마이크로 컴퓨터 시대에 잘 대응하지 못했다는 평을 받았다. 초기의 마이크로 컴퓨터를 이용한 PC 시장을 무시했다. 퍼스널 컴퓨터가 시장이 커져 가자 LSI-11이라는 PDP-11 호환 마이크로 프로세서를 만들어 시장에 뛰어 들었으나 적극적으로 밀어붙이지 않았다. LSI -11과 당시의 주종인 8080 또는 Z80은 비교할 수 없는 성능이었다(80286에 버금가는 성능이다).

LSI-11이 자리를 잡으면 DEC의 방대한 소프트웨어들이 시장에 나올 수도 있었다.
DEC는 또 VMS가 인터넷의 중추적 OS가 될 수 있는 기회 역시 거부하였다. 결국 유닉스에서 TCP/IP가 구현되었고, 유닉스의 빈약한 통신 기반을 확충할 기회를 주었다(유닉스는 그 이전까지 네트워크 부분이 매우 취약했다). 그 이후로 워크스테이션의 중요한 부분을 인터넷이 가능한 유닉스에게 내어 주었다.

결국 ‘Betting the Business’에 성공한 팀은 MS가 됐다. DEC에서 VAX와 VMS를 기획했던 전설적인 엔지니어 고든 벨과 데이비드 커틀러는 현재 MS 소속의 연구원이다. 운영체제 교과서에서는 항상 다루던 VMS가 어느 날인가 부터 사라지고 대신 NT가 등장했다. 나중에 데이비드 커틀러는 한 사람이 성공적인 운영체제를 개발하는 것도 큰 행운인데, 자신은 여러 번 성공적인 운영체제 개발에 참여할 수 있었던 행운을 누릴 수 있었다고 언급했다.

새로운 기술, 새로운 유전자
합당한 제품에 대한 끊임없는 투자와 개발 노력은 매우 중요하다. 사실 88년 MS의 32비트로의 이행은 매우 중요한 문제였으며, 자신들의 힘으로 도저히 개발할 수 없는 경우에 다른 유전자를 가져오는 것이 정말 중요한 개발 방법이라는 것을 다시 한 번 보여 주었다. 만약 VMS의 유전자를 물려받은 NT가 없었으면 MS로서는 운영체제를 처음부터 개발하며 유닉스와 대결을 벌여야 했을 것이고 어쩌면 오늘날의 서버 시장 지배는 없을 것이다. 정말로 MS는 운이 좋았다고 볼 수 있다(빌 게이츠가 말했다고 전해지는 “IT 업계에서 6개월은 영겁이다”라는 말이 있지 않은가).

우연하게도 NT가 발매될 시점에 유닉스 업계들이 자신들의 이해관계를 둘러싸고 소모적인 경쟁을 벌일 때였고 가격도 인하하지 않은 상태였다. NT는 대대적인 홍보와 함께 유닉스들에 비해 저렴한 가격으로 시장을 파고들었다. 아직 리눅스나 FreeBSD 같은 공개형 유닉스 운영체제는 별로 홍보가 이루어지지 않은 상태였다. NT로서는 다행한 일이었다.

새로운 기술의 개발에는 돈뿐만 아니라 시간이 엄청나게 들기 때문에 업체들은 개발에 전념하든가 아니면 기술 유전자를 찾아 새로운 피를 수혈해야 한다. 기술을 개발하는 도중에 다른 업체들이 비슷한 기술을 만들어낼 수도 있기 때문에 자신의 기술 유전자를 보호하기 위해 수단과 방법을 가리지 않았던 IT 기업들의 행태는 역사적으로 그들의 성장 과정에서 얼마나 많은 다른 기술 유전자를 수혈받았는가를 완전히 망각한 처사라고 볼 수도 있다.

2004년 2월 18일자 뉴스위크에는 스티븐 레비가 빌 게이츠를 인터뷰하는 내용이 나온다. 인터뷰에서 빌 게이츠는 컴퓨터 기술이 기로에 처해 있다고 보고 있지만 잠재적인 영향력은 그 어느 때보다 커졌다고 확신했다. 소프트웨어의 점진적 진보와 비약적 진보에 대해 설명하면서 비약적인 진보라는 것은 “이제 그것 없이는 살 수 없다”고 느끼는 것들을 예로 들어 설명했다. 비약적인 진보는 업체들에게 중요한 의미를 가지며, 그것이 없으면 돈을 벌 수 없다. 소비자가 일단 소프트웨어를 구입하면 새로운 제품이 나오지 않는 이상 다시 구입하려 하지 않을 것이기 때문이라는 것이다.

만약 지금 진보가 없다고 느낀다면 그것은 진보가 느린 것이 아니라 90년대의 IT 거품이 너무나 컸으며 그것은 바로 인터넷 때문이라고 지적했다. 인터넷이 팽창하던 90년대에 MS는 다른 경쟁업체들을 압도하는 대도약을 했고 그 주력이 바로 윈도우와 NT였다. 그리고 NT는 다른 회사의, 그것도 주력 운영체제였던 VMS의 재구현(re-implementation)일지도 모른다는 의혹이 제기되긴 했으나 정작 당사자인 DEC가 조용히 있었기 때문에 별로 문제를 일으킨 것이 아니었다. 나중에 윈도우가 룩앤필(look and feel)을 놓고 애플과 사투를 벌인 것에 비하면 정말 운이 좋았다고 볼 수도 있다.

인터뷰에서 빌 게이츠는 매년 69억 달러를 쓰면서 앞으로의 새로운 목표인 기계와 기계, 그리고 사람과 기계의 ‘경계(boundary)’ 문제들을 해결하기 위해 도전하고 있다고 했다. 만약 그 성과로 비약적 진보가 일어나지 않으면 주주들에게 사과해야 하며, 반대로 이런 기술들이 개발된다면 사용자들에게는 커다란 혜택이 주어지 것이라고 했다. 69억 달러의 개발비는 기술적 도약을 위해 위험을 감수한 MS의 노력의 징표라는 것이다.

MS의 다음 유전자는?
개발비를 떠나서 MS는 어떤 새로운 유전자를 내어놓을 것인가? 과연 MS 고유의 중요한 무언가가 나와서 세상을 뒤흔들어 놓을 수 있을 것인가? 만약 그렇다면 사용자뿐 아니라 주주들도 정말 좋아하게 될 것이다. 하지만 노력의 징표를 다른 회사들같이 쉽게 내어주지는 않을 것이고 보면 경쟁자들과의 거리는 더욱 멀어질 것이다. 어찌보면 세상은 공평하지 않은 것이다.

필자는 새로운 기술 유전자는 어디에서 나올까 진작부터 궁금해지기 시작했다. 만약 세상을 정글에 비유한다면 너무나 경쟁이 치열하고 혹독하며 감시가 심한 곳이라 작은 싹들은 초장에 잘려나가기가 십상이기 때문이다. 그러나 자연의 법칙을 따라서 어디에서인가 예측하지 못한 새로운 싹들이 나오고 이 싹들이 크면서 새로운 문화와 기술의 유전자를 만들 것이다. @

출처

MS·게임업체, 서버 라이선스 문제 소송불사

[지디넷코리아]윈도우서버 접속 인증 라이선스 문제를 둘러싸고 한국MS와 게임업체간 갈등이 심화될 전망이다.

18일 관련업계에 따르면 한국MS가 EC 저작권에 대해 문제를 제기하고 있는 게임업체를 대상으로 소송을 진행하겠다는 입장을 밝혔는가 하면, 이에 대해 해당 게임업체 또한 공정위 제소는 물론 법적 대응까지 불사하겠다는 입장을 보이고 있다.

특히 한국MS는 지난 17일 언론 대상 정기 세미나에서 최근 불거지고 있는 윈도우서버 인증라이선스인 EC(익스터널 커넥터)나 IC(인터넷 커넥터) 문제에 대해 “MS 소프트웨어를 불법 사용한 게임업체(엠게임)가 언론 플레이를 통해 피해자인 MS를 오히려 가해자로 만들고 있다”며 “문제가 됐던 4개 게임업체 가운데 2곳과는 합의를 봤고 나머지 1곳도 합의할 여지가 있으나, 해당 게임업체에 대해서는 소송을 진행할 예정”이라고 밝혔다.

한국MS는 이날 윈도우서버 저작권 문제와 관련해서도 “본사와 한국MS의 정책이 다르지 않으며, 고객사에게도 윈도우서버 관련 저작권의 존재 여부를 미리 고지를 했다”는 기본 입장을 되풀이했다.

또 한국MS 관계자는 “한 업체는 직접 방문해서 저작권 여부를 고지했음에도 불구하고 만난 적이 없다고 오리발을 내밀고 있다”며 “일부 기사에서처럼 지난 4월 단속에 MS가 나섰다는 것도 억울한 얘기이며 한국MS는 4월 이전에 이미 관련 라이선스 정책을 고지했다”고 주장했다.

그러나 이와 관련해 엠게임은 “한국MS의 라이선스 정책이 본사와 일관성이 없다는 것은 수 차례 확인했고 절차상의 문제나 라이선스 적용의 형평성에도 문제가 있다는 사실이 있다”며 “아무리 MS라 할지라도 합당하지 않은 요구에는 응할 수 없다”는 입장을 분명히 했다.

이 회사는 MS의 이미 공정거래위원회나 프로그램심의조정위원회 등을 통해 이 문제를 공론화하는 방안을 검토하고 있으며, 공정거래위원회 측에서도 최근 이 문제를 인지하고 사태 파악에 나서고 있다.

최근 소프트웨어지재권보호협회(SPC)로부터 단속된 게임업체들에 따르면, 불법 소프트웨어 사용과 관련해 보상 합의를 진행하긴 했으나 EC(윈도우2003 사용시 적용되는 라이선스)나 IC(윈도우2000 사용시 적용되는 라이선스) 관련한 합의는 없었던 것으로 드러났다.

게임개발업체 애니파크만해도 윈도우2000 서버를 사용하고 있었으나 기타 불법 소프트웨어에 대해서만 합의를 했을 뿐, 협상 과정에서 인증 라이선스 문제는 거론되지 않았다고 밝혔다. 한국MS가 윈도우 서버와 관련해 EC 라이선스를 샀다고 주장하는 CCR의 경우는 또 윈도우2000에 대한 IC 사용계약을 체결한 것으로 밝혀졌다.

이 외에도 한국MS는 윈도우서버 인증 라이선스 문제와 관련해 한국게임산업협회에서 제출한 공개 질의서에 대한 답변도 하지 않고 있으며, 업계 대상 공개 간담회 개최 요구에도 묵묵부답으로 일관하고 있다.

출처

Microsoft Windows XP 서비스 팩 2에서의 기능 변화

소개

Starr Andersen(기술 전문 작가, Microsoft Corporation)

Vincent Abella(기술 전문 작가, Microsoft Corporation)

이 문서는 다음 주소에서 다운로드할 수 있습니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=7bd948d7-b791-40b6-8364-685b84158c78&DisplayLang=en 

이 문서는 32비트 버전의 Windows XP Professional 및 Windows XP Home Edition을 대상으로 하는 서비스 팩 2 베타 릴리스에 적용되는 임시 문서입니다. 따라서 서비스 팩 최종 버전에 포함될 변경 사항이 모두 들어있지는 않습니다.

이 페이지의 내용
What’s New in This Version 이 버전의 새로운 기능
Feedback 피드백
Abstract 요약
Scope of This Document 이 문서의 범위
Overview of Windows XP Service Pack 2 Security Technologies Windows XP 서비스 팩 2 보안 기술 개요

이 버전의 새로운 기능

새 로 추가된 부분: 경고 및 메신저 서비스, Bluetooth, 클라이언트 관리 도구, 그룹 정책, Outlook Express, 정책의 결과 집합, Windows Installer 3.0, Windows Media Player 9
수정된 부분: Windows 방화벽(과거의 인터넷 연결 방화벽), 실행 방지

기존 버전에서의 변경 내용에 대한 자세한 사항은 부록 A, “문서 기록 내역”을 참조하십시오.

피드백

이 문서는 진행 중인 작업의 중간 결과물이며 따라서 여러분의 의견을 반영하여 개선될 것입니다. 이 문서에 대한 질문 또는 의견이 있으면 sp2fdbk@microsoft.com으로 메일을 보내 주십시오. 다만 구체적인 기술 또는 지원 서비스에 대한 질문에는 답해드릴 수 없다는 점을 양지하시기 바랍니다.

요약

Windows XP 서비스 팩 2에는 바이러스와 악성 프로그램의 악의적 공격에 대한 Windows XP 기반 컴퓨터의 기능을 더욱 강화시킬 수 있는 보안 기술이 도입되었습니다. 그러한 기술은 다음과 같습니다.

네트워크 보호
메모리 보호
안전한 전자메일 처리
안전한 검색 기능
향상된 컴퓨터 유지 관리

이러한 보안 기술들은 최신 업데이트가 적용되지 않았더라도 Windows XP를 공격하기 어렵게 만듭니다. 또한 바이러스와 악성 프로그램을 저지하는 데 특히 유용합니다..

법적 고지 사항

이 문서에 포함된 정보는 문서 발행 시 논의된 문제에 대한 Microsoft의 현재 관점에 따라 작성되었습니다. Microsoft는 변화하는 시장 상황에 부응해야 하므로 이를 Microsoft 측의 공약으로 해석해서는 안 되며 발행일 이후 소개된 어떠한 정보에 대해서도 Microsoft는 그 정확성을 보증하지 않습니다.

이 문서에 포함된 정보는 정식 제품 출시 전 단계의 정보이므로 상업적으로 공개되기 전에 상당 부분 수정될 수도 있습니다. 따라서 이 정보는 상업적으로 공개되는 버전의 내용을 정확히 기술하거나 반영하지 않을 수도 있습니다. 이 문서는 오직 정보를 제공하기 위한 것입니다. Microsoft는 이 문서의 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.

이 문서는 임시 문서로 여기서 다루고 있는 소프트웨어의 공식 발매 전까지 대폭 변경될 수 있습니다.

이 문서의 범위

이 문서는 이전 버전의 Windows XP 및 Windows XP 서비스 팩 2 사이의 변화에 초점을 맞추고 있으며, 서비스 팩 2와 그것이 개발자에 갖는 의미에 관해 Microsoft가 현재 갖고 있는 생각을 반영하고 있습니다. 원격 프로시저 호출(RPC), DCOM(Distributed Component Object Model), Windows 방화벽(기존의 인터넷 연결 방화벽 또는 ICF), 실행 방지 기술(NX) 등 가장 큰 변화를 겪고 있는 몇몇 기술들에 대해서는 자세한 설명과 예제가 제공됩니다. 향후 이 문서의 개정판에서는 새로운 기술과 변경된 기술들을 모두 다루도록 하겠습니다.

향후 진전이 이루어지면 Microsoft 웹 사이트(http://go.microsoft.com/fwlink/?LinkId=20969) 에 개발자들 위한 더 많은 정보가 제공될 것입니다. 서비스 팩 2의 목적은 Windows Server 2003에서부터 적용되어 온 Microsoft의 신뢰할 수 있는 컴퓨팅 환경을 구축하는 것입니다. 신뢰할 수 있는 컴퓨팅에 대한 개괄적 설명은 Microsoft 웹 사이트(http://go.microsoft.com/fwlink/?LinkId=20970)에 있는 “신뢰할 수 있는 컴퓨팅 정의(trustworthy Computing Defined)”를 참조하시기 바랍니다.

Windows XP 서비스 팩 2 보안 기술 개요

많 은 고객들이 보안 업데이트가 나오는 즉시 이를 배포하지 않거나 배포할 수 없을 수도 있습니다. 하지만 고객들은 보안 업데이트를 통해 완화할 수 있는 보안 위험으로부터 보호 받아야 할 필요를 느끼고 있습니다. Microsoft가 제공하는 각 보안 게시판에는 고객이 업데이트를 배포하는 동안 위험 요소를 낮추는 데 유용한 정보가 들어 있습니다. 그러나 Microsoft는 보안 업데이트를 즉시 배포할 수 없는 경우에도 위험 요소를 완화시킬 수 있는 별도의 기술을 제공하고 있습니다. 이러한 보안 기술은 다음과 같습니다.

네트워크 보호. Windows 방화벽에 대한 기능 강화를 포함하여 여러 혁신 기술을 통해 MSBlaster 웜과 같은 네트워크 기반 공격에 대한 방어 기능이 강화되었습니다. 이를 위해 개선된 기능으로는 서비스 팩 2 기본 설치에 Windows 방화벽을 포함시킨 점, 사용 중인 경우 외에는 포트를 차단하는 점, 설정 작업을 위한 사용자 인터페이스를 개선한 점, Windows 방화벽이 실행 중일 때 응용 프로그램의 호환성을 개선한 점, 그룹 정책을 통해 Windows 방화벽의 엔터프라이즈 관리 기능을 개선한 점 등을 들 수 있습니다. 원격 프로시저 호출(RPC) 서비스의 피격 가능 범위가 줄었으므로 축소된 자격 증명으로도 RPC 개체를 실행할 수 있습니다. DCOM(Distributed Component Object Model) 인프라 또한 액세스 제어 제한을 더욱 늘려 네트워크 공격의 위험을 더욱 줄였습니다.
메모리 보호. 일 부 악의적인 프로그램은 컴퓨터의 메모리 영역에 많은 양의 데이터 복사를 가능하게 하는 소프트웨어의 보안상 취약점을 이용합니다. 이러한 취약점을 일반적으로 버퍼 오버런이라 부릅니다. 하나의 기술로는 이런 유형의 보안 결함을 완벽하게 없앨 수는 없기 때문에, 다양한 보안 기술을 도입해 여러 각도에서 이러한 공격을 완화하고 있습니다. 우선, Microsoft의 가장 최근의 컴파일러 기술을 이용하여 핵심 Windows 구성 요소들을 다시 컴파일했습니다. 또한 마이크로프로세서 회사들과 협력하여 Windows가 마이크로프로세서에서 하드웨어 차원의 실행 방지 기능(일명 NX 또는 no execute)을 지원하도록 하고 있습니다. 이 실행 방지 기능은 CPU를 이용하여, 응용 프로그램에서 실행 코드를 명시적으로 포함하고 있지 않은 메모리 영역 전체를 실행 불가로 표시합니다. 따라서 시스템을 공격하려는 악성 프로그램 또는 바이러스가 데이터 전용으로 표시된 메모리 일부에 프로그램 코드를 넣어도 응용 프로그램 또는 Windows 구성 요소는 이를 실행하지 않습니다.
안전한 전자 메일 처리. 보 안 기술은 전자 메일 및 인스턴트 메시징을 통해 확산되는 SoBig.F와 같은 바이러스를 차단하는 데 도움이 됩니다. 이러한 기술은 초기 설정이 더욱 안정하고, Outlook Express와 Windows Messenger의 첨부 파일 제어 기능을 개선하며 Outlook Express의 보안 및 안정성을 더욱 높여 줍니다. 따라서 전자 메일과 인스턴트 메시지를 통해 전송된 첨부 파일이 안전하지 않을 가능성이 있는 경우 완벽하게 차단되어 시스템의 다른 부분에 영향을 미치지 못합니다.
안전한 검색. Microsoft Internet Explorer의 보안 기술은 웹 페이지의 악의적인 콘텐트에 대한 방어 기능을 강화시켜 줍니다. 이러한 기능 강화에는 로컬 컴퓨터 영역을 잠금으로써 악성 코드의 실행을 방지하고 해로운 웹 다운로드에 대한 방어 강화를 들 수 있습니다. 또한 사용자 제어 기능과 사용자 인터페이스를 더욱 개선하여 사용자의 인지 및 동의 없이는 악의적인 ActiveX 컨트롤과 스파이웨어가 고객의 시스템에서 실행될 수 없도록 해줍니다.
컴퓨터 유지보수 개선. 최신 소프트웨어 및 보안 업데이트로 컴퓨터를 업데이트하는 것은 모든 보안 계획에서 매우 중요한 부분입니다. 또한 보안 공격 및 경향에 대한 최신의 지식과 정보를 갖추고 있어야 합니다. 예를 들어 알려진 바이러스와 악성 프로그램에 대응하는 소프트웨어 업데이트는 심각한 공격이 시작되기 전에 제공되었으며, 최종 사용자의 최신 보안 상태를 유지하기 위해 새로운 기술이 계속 개발되고 있습니다. 컴퓨터의 보안 상태에 관한 정보를 한 곳에 결집하는 보안 센터, 그리고 더욱 안전한 소프트웨어 설치 옵션을 제공하는 Windows Installer 등이 있습니다.

이러한 보안 기술은 견고한 심층 방어 보안 전략의 한 측면일 뿐이며, 이 문서에서 설명하고 있는 보안 기술은 고객의 시스템이 보안 위험에 대해 보다 탄력적으로 대응할 수 있도록 하기 위한 신뢰할 수 있는 컴퓨팅 이니셔티브에서 다음 단계로 추진하고 있는 기술입니다.

전체 내용 보기