BLOG main image
LoofBackER's Blog
Jun - Sik , Yang Blog

'GUI'에 해당되는 글 2건

  1. 2006.11.10 microwindow
  2. 2006.11.02 MS-애플「GUI 경쟁의 역사」

microwindow

분류없음 2006.11.10 19:44 by LoofBackER

Qt는 http://www.trolltech.com에서 만든 멀티 플랫폼 C++ 애플리케이션 개발 프레임웍 이다.(?)

아직은 확실하게 이게 어떤 이득이 있는 개발 프레임 웍인지는 잘 모르지만 한 개의 소스가 이 내개의 플랫폼에서 같이 컴파일 된다는건 대단한거 같다. (?)

Qt/Windows       윈도우 플랫폼
Qt/X11               Linux, Solaris, HP_UX, IRIX, AIX, many other Unix variants
Qt/Mac              Apple Mac OS X
Qt/Embedded     embedded Linux  -->이게 지금 내가 공부해야 할거...

Qt/X11에서 사용되는 컴파일러 종류...

Operating System

Compiler

AIX

xlC, g++

FreeBSD

g++

HP-UX

aCC, g++

IRIX

o32, n32, g++

Linux

g++, KCC

Solaris

CC, g++

Tru64

cxx, g++

UnixWare 7

CC, g++

OpenUnix 8

CC


Qt/X11과 Qt/Embedded 의

아키텍쳐

Qtopia ==> embedded Linux 그래픽 어플     리케이션 환경을 위한 개발킷...

임베디드 리눅스 개발시에 필요한 엔지니어들
1.리눅스 커널 엔지니어
2.디바이스 드라이버 개발자
3.임베디드 응용 개발자
4.GUI개발자

어떤 파트가 구체적으로 어떤일을 하는지는 잘 모르겠음....
하지만 그냥 생각해두 커널 엔지니어가 완전한 미 바탕을 깔아 주는 거닌까 가장 많이 알구 있어야 할 듯 싶은데 아니면 말구....

◈ 임베디드 리눅스 개발 순서

  1.Target Machine의 선택
     사용 목적 용도를 결정후 적적한 하드웨어 선별
     주변 장치 선택에 있어서도 기존에 개발된 디바이스 드라이버의 존재 유무를 확인하여 이미 개발된 디바이스 드라이버가 존재
     하는 장치를 선택하여 구성하는 것이 개발에 소요되는 시간을 단축 할 수 있습니다.


이것만 있는지 어쩐지는 내가 잘 모르겠다. 아무튼 이런걸 가지고 Embedded os도 올려보구 sdk도 깔아서 어플리케이션을 올리구 하면서 실제 잘 돌아가는지 테스트를 하는거라구 합니다. 아직 하는걸 못 봐봐서 뭐라 확실하게 이게 어떤 원리로 돌아가는지 ... 뭐 이런거에 대한건 잘 모르겠습니다.

아무튼 이런 개발 보드를 가지구 테스트를 할 수가 있구 또 자체적으로 애뮬레이션 할 수 있는 어플리케이션(?)이 별도로 설치를 해서 개발 상태 같은걸 확인할 수 있게 해준다구 합니다.

  2.임베디드 리눅스의 크기를 결정을 합니다.
     시스템의 하드웨어와 응용프로그램이 결정되면 결정 사항을 만족하게 커널의 수정을 가하며 최종적으로 가장 적합하고 작은
     크기의 커널을 생성합니다.
     ※ 커널 소스 코드에 대한 작업이 가장 전문적인 지식이 많이 필요하고 가장 많이 시간이 소요 되는 부분입니다.

  3.소프트웨어 개발 툴을 선택을 합니다.
     임베디드 시스템에 필요한 소프트웨어는 hostt시스템(Desktop PC)을 정하고 cross-development tool을 선택합니다.
     ※ 소프트웨어 개발 툴 - cross-compiler,assembler,linker,archiver 와 목적 파일 생성 및 관리 툴로 구성

  4.부트 로더의 선택
     소스코드가 공개되어 있구 라이센스 획득이 가능한 것을 선택
     ※ 참고 URL
       LinuxBIOS (http://www.acl.lanl.gov/linuxbios)
       Red Hat Inc.의 RedBoot
       Blob (http://www.lart.tudelft.nl)

  5.리눅스 커널 버전의 선택

  -->적당한 커널 버전 중에서 하나 간단하구 딱 맞는 커널을 사용해서 개발을 할 수 있게 선택을 하라는 소린인거 같은데 그럼
       내부 커널 구조를 다 이해하구 있는 사람이 하나를 골라야 하고 또 다른 업뎃 프로젝트를 진행 할시에 또 다른 커널을 무조건
       사용해야 하는지 ...?
       그냥 대충 커널이라구 하면 운영체제 내부의 모든 스팩을 다 포함하는거 같은데 이렇게 큰 내용을 다 커버해야 하는지 아니면
       필요한 부분만 뽑아서 작은 커널을 만드는지 궁금합니다.

  6.쉘의 선택

  -->쉘 프로그램이 제가 생각하기로는 리눅스에서 운영체제 내부의 커널에 명령을 내려서 어떤 프로그램을 설치를 하거나 프로그램         이 잘 돌아가는지 명령을 내려 주는거 같은데 그럼 임베디드 리눅스에서는 이런 기능을 하는걸 내부에 집어 넣으라는건지 아니         면 개발하면서 사용하라는건지 궁금?

  7.GUI의 선택

  -->우리는 미지 리서치의 Qt를 사용을 하구 전에 교육때 Qt/X11을 사용을 한다구 한거 같은데...
       Qt하구 Qt/Embedded,Qt/Windows,Qt/X11 그리구 Qtopia 하구 차이점이 궁금합니다. 뭐가 다른지?
       지금 여기가 SDK를 받아서 어플리케이션 컴파일 해보구 하구 우리가 알아야 할 부분 맞는지요?

  8.파일 시스템과 실행 파일 포맷 선택

 -->파일 시스템이라구 하면 윈도우의 FAT32,NTFS같은거 말하는거 같은데 리눅스에서는 EXT2 파일만 사용해야 하는거 아닌가요?        이거 사용한다는 소리인가?
      이 책에서 보닌까 XIP(Execute-in-Place)시스템,cramfs(Compressed ROM File System)등이 있다구 하군요.. 이건 임베디드        시스템에서 사용하는 데이터 저장 공간은 일반적으로 롬이나 플래시롬 이라는군요. 그래서 이런 형식을 파일 시스템을 사용을        한다는군요!!!    그리구 실행 파일 포맷은 ELF(Executable and Linking Format)가 주로 사용된다구 하는군요.


◈ Embedded GUI의 종류

   1.Tiny - X
    small X-Windows system(Agenda VR3,YOPY)

   2.Microwindows - (Century Software)
      NanoGUI project 의 결과물, Nano-X

   3.Qt/Embedded
      Linux Frame Buffer 사용

◈ Qt/Embedded

   ☞Qt/Embedded 의 GUI인 Kernal Frame Buffer 소개
      1.Linux Kernel 안에 내장 - 적은 용량 차지
      2.VESA 2.0 표준 규격 지원
      3.Graphic Controller의 Video RAM에 직접 접근
      4.가볍고 빠른 Display - 일부 칩셋 가속 기능 지원
      5.Variable resolution & color support
      6.X-Window Emulation - Virtual Frame Buffer
      7.ATi,Matrox,nVIDIA, ...
      8.LCD Controller - 손쉬운 적용

   ☞ Qt/Embedded 적용사례

       ==>http://www.linuette.com 미지리눅스 영문개발자 페이지... id:seojewoo pw:kidjawuh (별로 필요없음)
            MIZI Research - Linu@(리누엣)(Customized Qt/Embedded & App, Program)

       ==>Sharp Electroncs - Zaurus (Qt/Embedded 적용) http://www.myzaurus.co.kr 샤프에서 개발 자우루스
            KPDA에 올라온 자우루스에 대한 글  http://www.myzaurus.co.kr/zaurus/sub_3.php?view_no=3

       ==>HanCom - HanCom Office for mobile

◈ 리누엣에서 사용하는 Kernal Frame Buffer GUI Library

   MiniGUI   http://www.minigui.org
   Simple DirectMedia Layer   http://www.libsdl.org
   Microwindows   http://www.microwindows.org
   XFree86 v4.2.0   http://www.xfree86.org
   ParaGUI   http://www.bms-austria.com/projects/paragui
   GGI  http://www.ggi-project.org
   OpenGUI   http://www.tutok.sk/fastgl
   DirectFB   http://www.directfb.org

- 무작정 링크 - 관련이 있는건지 무조건 공부해 보세요!!!
http://kesl.org 리눅스를 이용한 독립장비 개발 (Embedded System)
ftp://opensource.lineo.com/fbvncserver Frame Buffer용 VNC Server
모바일(J2ME) http://www.50001.com/javaside/data.htm#java06 이 부분은 자바와 관련이 있지만 그래두 도움이 될 듯...
리눅스 관련
http://kamsi.fst.or.kr/ipaq.html (Compaq의 iPAQ을 위한 내용)

- 관련 링크 -
http://www.trolltech.com/products/qtopia/screenshots.html
http://www.linuxdevices.com/articles/AT9202043619.html
http://handhelds.org
http://www.hancom.com/product/office/embedded0907.html
http://www.palmpalm.com
http://oss.lineo.com/fbvncserver
http://www.mizi.com/ko/prod/embed/linuette/linuette-int.htm

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

MS-애플「GUI 경쟁의 역사」

분류없음 2006.11.02 19:41 by LoofBackER

MS-애플「GUI 경쟁의 역사」

안윤호 (아마추어 커널 해커)   2004/10/20
지난 글에서는 기술 유전자에 대해 주로 서술했다. 이 기술 유전자라는 것은 실체는 없으나 걸출한 인물들과 그들의 성취가 유전자처럼 하나의 기술 양식으로 자리잡은 것을 말한다. 지난호의 NT뿐만 아니라 윈도우나 다른 기술들도 마찬가지다. 윈도우나 GUI(Graphic User Interface)의 개념도 MS에서 처음 나온 것이 아니다.

윈도우의 가능성을 세상에 처음 보여준 사람은 더글라스 엥겔바트(D. Engelbart)라고 볼 수 있다. SRI(Stanford Research Institute)에서 엥겔바트는 1969년에 사람들이 깜짝 놀랄만한 그래픽 인터페이스(Graphic Interface)를 선보였다. 하나의 대확장이었던 셈이다. 엥겔바트의 시스템 공개 이후에 윈도우와 GUI는 사람들의 관심 대상으로 자리잡게 되었고, 엘겔바트에게 DARPA(Defense Advanced Research Projects Agency)의 연구비를 제공했던 책임자인 밥 테일러는 제록스 PARC(Palo Alto Research Center)로 옮겨가 그곳에서 연구를 지휘하게 되었다.

마우스와 그래픽 화면으로 연상되는 GUI 환경은 처음부터 사람들에게 환영받은 것은 아니다. 당시의 컴퓨터 연산능력과는 괴리가 너무 심해서 80년대 초까지도 그래픽 시뮬레이션은 수퍼컴퓨터를 이용하는 경우가 대부분이었고, PC나 일반적인 마이크로 환경에는 아예 어울리지 않는 것으로 생각하는 사람이 더 많았다. 당시로서는 생각이 앞서간다는 사람들이 GUI 환경의 운영체제를 이야기하고 있을 때 사람들은 반신반의하는 생각으로 이들을 쳐다보았다.

스티브 잡스나 다른 사람들이 처음부터 윈도우 환경의 가능성을 알아보았다는 회고와는 달리 개발에 참여했던 사람들의 회고는 다르다. 스티브 잡스에게 그래픽 사용자 환경의 중요성을 설명하느라고 무척 애를 먹었다는 것이다. 매킨토시의 아버지라고 알려진 것과 달리 스티브 잡스는 텍스트 환경에 더 집착하고 있었다는 것이다. 실제로 Aplle III라고 알려진 ‘LISA’의 개발에서도 잡스는 처음에 텍스트 환경을 고집하고 있었고 매킨토시의 기획자였던 제프 라스킨(Jef Raskin)의 설득을 듣고 난 후에 그래픽 환경의 옹호자가 되었다고 한다.

GUI라는 측면에서 직관적인 인터페이스의 중요한 도구인 마우스는 1960년대에 개발되었는데, 이 역시 엥겔바트가 발명했다. 마우스 역시 초기에는 그렇게 탐탁치 않게 생각되는 물건이었다. 정작 창시자인 엥겔바트조차 마우스를 그렇게 대수롭지 않게 보았다. 마우스가 양손 사용의 장점을 지나치게 빼앗는 데다 손에 지나치게 많은 부담을 준다는 게 이유였다. 오히려 엥겔바트는 손목을 이용하는 마우스보다는 무릎을 이용한 인터페이스가 더 나을 것 같다고 생각하기도 했다는 것이다. 매킨토시의 초기 구상자였으며 매킨토시 개발팀을 직접 선발한 제프 라스킨도 마찬가지로 마우스를 효과적인 인터페이스라고는 생각하지 않았다. 아이러니하게도 라스킨은 키보드에 집착했으며, 효과적인 키보드 인터페이스야말로 중요한 요소라고 생각했다.

GUI가 구현된 최초의 컴퓨터, 제록스 스타
요즘은 당연히 여겨지는 그래픽 환경의 UI가 70년대 당시로서는 대단히 생소한 개념임에 틀림없었다. 하지만 제록스의 PARC에서는 ‘스타(Star)’라고 하는 워크스테이션과 운영체제들이 이미 70년대 후반부터 모습을 갖추기 시작했고, 사실상 이들은 엥겔바트가 구현하려고 했던 UI와 크게 다른 것이 아니었다. 제록스의 스타는 흑백이긴 하지만 대단히 높은 해상도의 그래픽을 구현할 수 있었고 우리가 알고 있는 윈도우 환경의 중요한 개념들을 모두 구현한 것이었다.

제록스의 PARC에는 세계 최강의 컴퓨터 과학자들이 모여 미래의 컴퓨터 환경을 연구했다. 객체지향 프로그래밍의 아버지라고 불리는 앨런 케이와 이더넷을 만든 밥 멧칼프, 그리고 인터넷의 전신인 ARPANet을 성공적으로 지휘한 밥 테일러, 포스트스크립트를 만든 어도비의 창업자 존 워넉도 당시 PARC에 있었다. MS의 응용 소프트웨어 분야를 지휘했던 찰스 시모니 역시 같은 시기에 PARC에서 근무했다.

제록스 스타

밥 테일러가 지휘를 맡으면서 차세대 사무실 업무 환경을 위한 인터페이스로 엥겔바트의 환경을 구현하려 했던 것은 당연한 일이었다. 이들의 업적이 회사의 방침에 의해 상업화되지 못하자 PARC의 연구자들 중 일부는 회사를 떠나기 시작했고, 이들이 직접 창업하거나 다른 회사에서 개발 업무를 지휘하게 되면서 PARC에서의 업적은 사라진 것이 아니라 다른 제품들에 자연스럽게 녹아들어가기 시작했다. PARC에서 연구한 결과들은 PARC의 연구진들이 PARC를 나오면서 다른 컴퓨터 업체들에게 차세대의 기술 유전자를 수혈했다.

이를테면 MS로 간 찰스 시모니는 제록스 스타는 사라진 것이 아니라 매킨토시와 윈도우에서 계속 살아있는 것이며, 자신이 스타를 위해 개발했던 브라보(Bravo) 역시 워드를 통해 살아있다고 인터뷰에서 주장한 바 있다. 초기에는 별로 우수하지 않다고 평가받은 시모니의 멀티플랜 역시 기나긴 수정과 개선을 통해 엑셀로 변화했다. 시모니는 프로그램의 개발을 생물체에 비교했다. 지속적인 수정과 개선이 있을 때 그 소프트웨어가 살아있다고 말할 수 있다는 것이 시모니의 주장이었다. 시모니의 주장이 맞다면 엥겔바트의 시스템과 제록스의 스타, 그리고 한때 GUI 환경의 대명사였던 매킨토시는 하나의 생명체 같은 개념으로 오늘날의 Mac과 윈도우 시스템에 기술 유전자를 제공했다고 볼 수 있다. 물론 X-윈도우를 사용하는 유닉스 워크스테이션이나 다른 GUI 환경의 플랫폼도 어느 정도는 마찬가지라고 볼 수 있다.

PARC의 연구진이 직접 만든 것은 아니지만 제록스 스타의 직계 후계자는 아마도 매킨토시가 될 것이다. PARC의 연구진 중에 애플로 간 사람은 앨런 케이(Alan Kay)와 톰 말로이(Tom Malloy)를 포함한 여러 명이 있었는데, 그들이 매킨토시 개발에 직접 참여한 것은 아니지만 적지 않은 영향을 미쳤다. 매킨토시는 당시까지는 별로 알려져 있지 않던 특이한 인물들에 의해 개발되었고, PC 역사에 새로운 획을 그었다. 시장에 퍼스널 컴퓨터가 보여야 할 모습을 보여준 최초의 상품이 Apple II였던 것처럼 GUI를 구현한 최초의 퍼스널 컴퓨터인 매킨토시가 1984년 발표되었다.

세간에는 잡스가 처음부터 매킨토시를 개발했다고 알려져 있으나 매킨토시팀은 애플 내에서 잡스가 옮겨오기 전부터 존재했다. 잡스가 매킨토시팀으로 오게 된 직접적인 이유는 Apple II의 후속작으로 잡스가 지휘했던 LISA의 실패 때문이었다. 매킨토시의 아버지라고 부를 수 있던 사람은 제프 라스킨이었다.

제프 라스킨은 컴퓨터 역사에서도 정말 특이한 이력을 가진 사람이었다. 제프 라스킨은 밥 트리블(Bob Tribble), 브라이언 하워드(Brian Howard), 버렐 스미스(Burrel Smith) 등을 고용하여 매킨토시의 초기 개발팀을 이끌었다. 스티브 잡스는 Aplle II에서 스티브 워즈니악을 몰아낸 것처럼 라스킨을 밀어내고 직접 매킨토시팀을 이끌었다. 라스킨이라는 대단한 개발자는 매킨토시의 개발 초기에 밀려나긴 했으나 그가 주장한 컴퓨터의 어플라이언스(appliance) 같은 철학은 남은 개발자들이 이어받았고 결국 가전제품처럼 사용하기 쉽고 간단해야 한다는 중요한 원리는 매킨토시의 초기 개발에서 일관된 주제로 남아 있었다.

삽질의 시작, 매킨토시와 GUI
만약 집을 짓게 된다면 맨 처음에 할 일은 기초 다지기와 함께 주변에 대한 토목공사일 것이다. 이러한 작업의 첫 시작은 땅을 파헤치는 일(ground breaking)부터 시작되는데, 집이 잘 지어질 것이라는 확신이 없으면 대단히 어려운 일이다. 만약 아무도 지어본 적이 없는 집이라면 그 시행착오는 대단한 노력과 열정을 필요로 한다. 매킨토시팀이 처음부터 부닥친 일은 GUI를 위한 기초를 다지는 일이었고 당시로서는 매우 어렵고 불가능해 보이는 일이었지만, 이들이 개발에 성공함으로써 나중에 나올 퍼스널 컴퓨터의 기본적인 골격이 잡힌 셈이다. 제록스 스타가 이들의 조상이긴 했으나 스타는 대량 생산을 염두에 두고 만들어진 제품이 아니었다. 반면 매킨토시는 점차 시대에 뒤지고 있던 Apple II의 대를 이을 상품으로 만들어진 것으로, 명확히 대량 생산을 위한 제품이었다.

일반인들이 구입할 만한 비용으로 생산할 수 있어야 할 뿐 아니라 직관적이고 납득할 수 있는, 일관성 있는 인터페이스를 제공할 수 있어야 했다. 그것도 당시에 간신히 16비트 프로세서가 나오기 시작할 무렵의 빈약한 하드웨어를 조합해서 성공시켜야 했다. 이들은 새로 나오기 시작한 IBM 호환 PC와의 싸움에서 경쟁할 수 있는 기종을 만들어야 했다.

1986년 출간된 Susan Lammers의 『Programmers at work: Interviews』라는 책은 당시 유명했던 프로그래머들을 인터뷰한 책으로, 1/3 정도는 PARC 출신의 프로그래머, 2/3는 열정과 뛰어난 재능으로 프로그램의 새로운 경지를 개척한 사람들이 인터뷰 대상이었다(필자같이 역사에 관심이 많은 사람에게는 매우 중요한 자료이다. 마소에서는 1988년 ‘유명한 프로그래머를 만났습니다’라는 제목으로 번역되어 1년간 연재되었던 글이기도 하다). 매킨토시에 관련된 사람으로는 제프 라스킨과 앤디 허츠필드(Andy Hertzfeld)가 수록되었다. 이 둘을 포함한 불과 몇 명의 팀이 그 전까지는 없었던 새로운 운영체제와 새로운 하드웨어를 새로 만들어야 했다. 그들의 작품이 초기의 매킨토시이다. 이들은 애플 본사의 다른 빌딩에서 독단적으로 매킨토시를 개발하였다(당시의 복잡한 개발 스토리를 참조하기 위해 필자는 www.folklore.org를 더 많이 참고했다).

왼쪽으로부터 앤디 허츠필드, 빌 앳킷슨, 버렐 스미스, 가운데는 제프 라스킨, 아래 두 사람은 스티브 잡스와 수잔 케어이다.

애플은 당시 창립된 지 얼마 되지 않은 신생회사로 프로그래머들의 배경도 다양하였다. 초기의 멤버들과 새로 대기업이나 연구소에서 온 인력들이 섞여서 코딩의 스타일이나 개발에 대한 접근 방법도 각각 다양했다. LISA의 하드웨어 개발팀은 DEC나 HP 같은 대기업의 개발자들을 중심으로, 소프트웨어 개발팀은 PARC 등에서 온 개발팀을 중심으로 꾸려졌다.

결국 이들이 만든 LISA는 대단한 제품이긴 했지만 제록스 스타와 마찬가지로 1만 달러의 비싼 가격에다 애매한 수요자 예측으로 인해 판매에는 실패했다(판매 대상을 일반 소비자가 아니라 미니 컴퓨터를 사용하는 계층으로 선정하였으나 이 시장은 IBM이나 DEC 같은 회사들이 이미 선점한 시장이었고 애플은 아무런 경험이 없었다). 사실상 LISA는 네트워크만 빼면 제록스 스타와 별로 다를 것이 없는 제품이라고 평가된다. LISA의 실패는 개발비에서 발목을 잡혔다는 점과 시장의 예측에 실패한 것이다.

LISA의 실패가 있은 후 매킨토시의 초기 개발팀 중에는 LISA에서 경험을 쌓은 사람들이 생겼으며 무엇보다도 일단 작동 가능한 하드웨어를 만들었다는 배경을 가질 수 있었다. 기존의 LISA와 Apple II의 하드웨어를 바탕으로 매킨토시가 탄생하게 되었는데, 소프트웨어도 LISA와 전혀 무관했던 것이 아니다. 매킨토시의 팀원 중에 빌 앳킨슨(Bill Atkinson)은 LISA의 시스템 코드를 담당했던 프로그래머(나중에 MacPaint와 HyperCard를 개발한다)로 나중에 합류했다.

Apple II의 열혈 팬으로 시작해서 나중에 매킨토시 운영체제의 수석 개발자가 된 앤디 허츠필드는 처음에는 매킨토시 개발팀의 지원부서로 합류했다. 허츠필드는 68000이라는 당시로서는 새로운 16비트 마이크로프로세서를 이용한 평가보드를 개발하기 위해 기존의 애플 디스크를 장착하면서 발생한 문제에 대해 조언하는 것으로 개발팀에서의 첫 업무를 맡았다. 그는 우아한 사용자 인터페이스와 멋진 스타일을 남겨 주었다. 그리고 스티브 잡스의 주문에 따라 의도적으로 다른 업체들이 응용 프로그램을 작성하기 어렵도록 설계했다. 버렐 스미스는 하드웨어를 담담했는데, 하드웨어 역시 클론 업체들이 복제하기 어렵도록 의도적으로 설계되었다고 한다.

특명, 하드웨어의 제약을 극복하라
초기의 매킨토시에서 하드웨어의 빈약함은 8비트 시절보다는 덜했지만 우선 프로세서에 그래픽 환경을 위한 소수 포인트 연산 기능이 없다는 사실로 인해 빌 앳킨슨을 포함한 개발자들이 큰 문제에 봉착하게 되었다. 따라서 원이나 사각형을 그리는 데 걸리는 엄청난 시간을 정수연산을 이용한 루틴을 이용해서 절묘하게 풀어나가야 했다. 결국 개발팀은 Hello라는 글자를 찍는 부트롬을 만든 이후 하드웨어가 할 수 있는 일들을 정의했다. 마우스의 부착 역시 1981년의 기술 수준으로는 사투에 가까운 일이었다. 화면이 떨리지 않으면서 마우스를 보여주는 기술을 새로 개발해야 했다.

어느 정도 일들이 이뤄지자 오늘날의 윈도우 환경에는 필수적인 데스크탑 애플리케이션들과 컨트롤 패널의 인터페이스가 확립되었다. 그 다음으로는 메모리를 포함한 자원(resiurce)에 대한 제어와 접근에 대한 개념을 정의하고 소프트웨어들을 탑재하는 일이었다. 최초의 중요한 애플리케이션이라고 할 수 있는 ‘Quick Draw’와 ‘워드프로세서’가 LISA로부터 이식되었다. 메모리 맵핑을 위한 중요한 장치인 메모리 매니저의 경우 개발 당시의 프로세서에는 아직 없었기 때문에 개발팀들은 ‘메모리 매니저’부터 개발하여야 했고 이들은 덩치가 큰 애플리케이션마다 일일이 이식될 수밖에 없었다.

최종적으로 매킨토시의 운영시스템(OS)은 ROM에 들어가야 했는데, 문제는 ROM의 사이즈가 64Kb밖에 없다는 사실이었다. 개발이 진행되면서 점차 ROM의 공간은 비좁아지기 시작했다. 독자들도 알다시피 64Kb라면 요즘의 작은 그림 파일 하나만도 못한 용량이다. 팀들은 이 와중에 검색기(finder)를 새로 고안하여 붙이기도 하고, 모든 프로그램들을 줄여보기도 하는 등 메모리와의 사투를 벌여야 했다. 결국 입수 가능한 메모리 가격과 용량에 변화가 오면서 약간의 여유가 생기기는 했으나 매킨토시가 발매된 이후에도 메모리 문제는 여전히 심각한 것이었다. 램 역시 64kb나 128Kb로는 언제나 부족했다. 시대를 앞서간 대가는 결코 가벼운 것이 아니었다. 결국 모든 일들은 언제나 파스칼로 시작한 코드를 어셈블러로 다시 고치고 프로그램을 줄이는 작업의 연속이었다. 그럼에도 불구하고 일관성과 안정성을 해쳐서는 안 되었다.

개발 초기에 정의된 데스크탑 인터페이스 초기의 매킨토시 인터페이스

이미 여러 가지 복잡한 사정으로 인해 애플에서는 잡스의 입지가 좁아져 있었다. 스티브 잡스는 개발 기간 동안에 계속 복잡한 주문을 늘어놓으며 팀원들을 이끌어갔으며, 팀에서 원하는 것은 무엇이든지 들어주었다고 한다. 잡스의 주문이 너무 많아 과연 매킨토시가 개발에 성공할 수 있을지가 의심스러운 상황이었다. 잡스는 LISA의 실패를 매킨토시에서 만회하고자 했고, 라스킨이 주장했던 가전제품과 같은 사용의 간략함과 함께 LISA의 성능과 저렴한 가격이라면 시장에서 실패할 리가 없다는 확신도 있었다.

매킨토시 개발자 문서
매킨토시가 출시되자 이러한 걱정들은 기우임이 드러났다. 사람들의 반응은 폭발적이었다. 아름다운 디자인, 직관적인 인터페이스, 놀라운 성능에 더한 일관적인 통일성이 돋보였다. 당시의 주류인 IBM 호환 PC와는 비교할 수 없는 성능이었으며, 세련 그 자체인 매킨토시를 IBM PC에 비교한다는 것 자체가 억지였다. 당연히 많은 수의 매킨토시 사용자 그룹이 생겼다.

사람들이 바라던 PC ‘매킨토시’
IBM PC의 아성을 극복하지는 못했지만 매킨토시는 성공적인 작품이었고 컴퓨터의 미래상을 제시하는 작품이었다.

그럼에도 불구하고 매킨토시는 IBM PC의 대세를 꺽을 수는 없었다. 세련되긴 했지만 가격이 비쌌고 다른 업체들의 참여가 사실상 봉쇄되어 있었다. 하드웨어의 클론은 거의 불가능했고, IBM 호환 PC처럼 기술 문서가 공개되어 있는 상황도 아니었다. 개발업체로서는 비싼 돈을 내고 복잡한 기술자료를 얻어가야 했으며 개발 툴이 좋은 편도 아니었다. 화면이 예쁘고 세련되었다는 것은 분명한 사실이었으나 반드시 GUI가 아니더라도 업무를 보지 못하는 것은 아니었다.

IBM PC 측이 성능은 별로 우수하지 않더라도 써드파티 하드웨어의 활발한 개발 참여로 북적거리는 상황에 비교하면 애플은 하드웨어와 소프트웨어를 모두 장악하려 했다는 것이 문제라면 문제였다. 쓰기는 쉬우나 개발에는 제한이 많은 플랫폼이었다는 사실이 시장의 팽창기에 커다란 병목으로 작용했다. 그러나 이 문제는 잡스가 애플을 떠난 이후에도 개선되지 않았다.

매킨토시가 나온 이듬해 잡스는 자신이 영입한 경영자 스컬리에 의해 애플에서 밀려났다. 잡스는 새로운 회사인 NeXT를 만들고 이번에는 유닉스를 바탕으로 한 워크스테이션(제품명도 회사명과 같다)에 매달렸다. 하드웨어는 매킨토시와 같은 모토롤라의 68000 시리즈로 개발되었고 유닉스 워크스테이션에 멀티미디어를 곁들였다. 매킨토시처럼 세련된 디자인과 UI가 개발되었다. NeXT 역시 많은 우여곡절을 겪기는 했으나 사람들에게 영원히 지워지지 않을 깊은 인상을 준 것은 사실이다. NeXT의 많은 기술적 유전자는 유닉스 기반 운영체제인 MacOS X에 남아 있다.

잡스와 마찬가지로 오리지널 매킨토시의 개발진들 역시 개발 도중이나 개발 직후 거의 회사를 떠나게 되었다. 일부는 떠나고 싶은 마음을 참고 매킨토시의 완성을 눈으로 확인하기 위해 남아 있었으나 일부는 더 개발을 하고 싶었지만 어쩔 수 없이 회사를 떠나야 했다. 이들이 떠난 이후 매킨토시는 더 복잡한 인터페이스와 불필요할 정도로 많은 변종들이 시장에 출하되었으며, 얼마 후 회사는 혼란에 빠져 연거푸 사상 최대의 적자를 내면서 거의 연명 수준에 들어갔다. 회사는 매킨토시나 초기의 애플 II 같은 새로운 아이템을 내지 못하고 몇 년을 혼란 속에 시달렸다.

GUI의 창시자, 제프 라스킨
지금으로부터 20년전에 나온 컴퓨터로서는 너무나 인상적인 매킨토시의 일관된 인터페이스, 그리고 놀라운 성능의 뒤에는 LISA를 경유한 PARC의 기술 유전자가 들어 있는 셈이다. 아무리 우수한 팀이라고 해도 불과 2~3년 만에 모든 기술을 숙성시키기는 어려운 일이다. 어떻게 보면 세련된 매킨토시의 껍질을 살짝 벗기면 그 안에는 세상을 변화시키려 했던 엥겔바트와 그의 영향을 받은 제록스 PARC의 그림자가 보인다. 이들의 선구적 노력과 말도 안 되는 노력(?)이 없었다면 성숙한 개발곡선은 그려지지 않았을 것이다. 매킨토시가 완전한 오리지널은 아니었고, 또 그 영향을 받았다고 하는 MS의 윈도우 역시 마찬가지라고 볼 수 있다. 정도의 차이는 있어도 모든 문화사업은 일종의 표절과 모방이 없이는 이루어지지 않는 것이다.

제프 라스킨
윈도우와 직접 상관은 없겠지만 필자가 언급하고 넘어가고 싶은 인물은 사실 제프 라스킨(Jef Raskin)이었다. 어떻게 보면 라스킨의 통찰이 매킨토시의 아이디어를 낳았고 잡스가 자신의 방법대로 개발을 밀어붙인 근거를 제공했다고 할 수 있다.

제프 라스킨은 70년대 초부터 스탠포드의 객원연구원으로 있으면서 PARC에서 하는 일을 지켜보았다. PARC에서 진행하던 화면 처리, 키보드의 표준화, GUI에 대한 모든 작업들이 훌륭하다고 생각한 라스킨은 LISA 개발이 비트맵 방식으로 진행되어야 한다고 애플의 경영진들을 설득했다.

라스킨이 1970년대에 주장한 ‘컴퓨터’라는 것은 문자와 그래픽을 함께 쓰면서 가격대는 1000달러 수준으로 정하는 것이었다. 당연히 당시로는 파격적인 생각이었고, 스티브 잡스는 말도 안 되는 소리라고 일축했다. 라스킨은 당시 회장이던 Mike Markkula에게 자신의 아이디어를 설득해가며 매킨토시팀을 이끌었다(한때 애플과 제록스는 제휴관계에 있었고 제록스가 애플 주식의 10%를 갖고 있었던 적도 있었다). 라스킨이 원했던 매킨토시는 잡스의 매킨토시보다 훨씬 더 단순했다고 전해진다.

애플을 떠난 이후 라스킨은 1980년대 들어 자신이 진정으로 구현하기를 원했던 것은 복잡한 기계(machine)이 아니라 간단한 기구(appliance)였다는 사실을 깨닫고 회사 이름을 ‘Information Appliance’로 이름지었다. 이 회사가 만들어지고 나서 라스킨이 제일 먼저 한 일은 가장 단순하고 훌륭한 워드프로세서를 만드는 것이었다. 라스킨은 사람들은 몇 가지 조작 이외에는 하지 않으려는 경향이 있고, 세상의 많은 일들이 기계보다는 오히려 도구에 의해 주어진 업무만을 처리하면 제대로 돌아간다는 견해를 주장하고 다녔다. 이는 지금은 당연한 것처럼 생각되지만 그 당시로서는 파격적인 주장이었다. 라스킨의 자세한 견해는 매우 복잡하기 때문에 관심이 있는 독자들은 jefraskin.com에서 그의 글들을 읽어보기 바란다. 라스킨은 Human Interface나 Ubiquity 같은 단어에 대해 가장 먼저 개념을 정립한 사람이기도 하다.

사람들의 일을 간단하고 쉽게 만들어 주려고 했던 제프 라스킨은 반대로 매우 복잡하게 살았다. 이력서가 복잡한 것으로는 라스킨을 따라갈 사람이 별로 없을 듯하다. 컴퓨터는 그의 여섯 번째 프로젝트였다고 한다. 그 이전에는 수학, 철학, 음악, 그리고 물리학을 공부했다고 한다. 철학박사를 따기 위해 공부하다가 컴퓨터 사이언스로 석사학위를 따고, 음악박사 학위를 따기 위해 공부하다가 미술교수가 된 후 스탠포드의 인공지능연구실에서 객원 학자가 되기도 했다. 그 후에는 샌프란시스코 오페라단에서 지휘를 하기도 했으며 음악도 가르쳤다. 그럴 즈음 퍼스널 컴퓨터가 나와서 라스킨의 욕구를 자극했다고 한다. 라스킨은 컴퓨터 매뉴얼들이 형편없다는 사실을 알고 애플을 포함한 다른 회사들의 매뉴얼을 써준 적도 있다.

라스킨은 애플에서 그 이전의 경력들을 숨기고 매뉴얼 라이터로 활동하다가 임원으로 승진했다고 한다. 라스킨은 컴퓨터가 대중에게 파고들어야 한다는 메시지를 전파했는데, 그의 견해는 매우 독특했다. 대중에게 메시지를 전하는 방법은 제품뿐이라는 것이다. 따라서 제품이 성공해서 돈을 많이 벌게 되면 사람들이 그 메시지에 귀를 기울이게 된다는 요지의 말을 자주 했다. 불행한 일일지는 몰라도 세상에 메시지를 전하는 길은 돈을 버는 방법 이외에는 없는 셈이다.

라스킨은 단적인 예로 매킨토시를 예로 들었다. 매킨토시 이전에 자신이 아무리 비트맵 스크린이 좋다고 이야기해도 귀를 기울이는 사람이 없었다고 했다. 제록스에서 아무리 많은 기사와 글들을 써도 소용이 없었다. 그러나 매킨토시가 의외로 많이 팔려나가자 사람들은 써보거나 기계를 구경한 다음 비트맵 스크린과 그래픽의 아이디어를 이해했고, 그래픽과 텍스트가 분리될 필요가 없으며 문자는 그래픽의 다른 예라는 사실과 함께 별도의 하드웨어를 쓰지 않고도 폰트를 이용할 수 있다는 사실을 깨달았다는 것이다. 따라서 돈을 많이 벌면 벌수록 사람들은 그 사람에게 귀를 기울일 뿐만 아니라 포츈이나 월스트리트 저널에 오르내리지 않는다면 아무도 들으려 하지 않을 것이며, 그 반대의 경우라면 진실이든 아니든 사람들은 믿으려 할 것이라는 말을 라스킨은 자주 하고 다녔다.

거의 20년 전에 라스킨이 한 말은 지금의 상황에서도 증명된다. 다만 차이가 있다면 무슨 말을 하든 사람들이 믿고 이해하게 된 인물이 라스킨이나 잡스가 아니라 빌 게이츠나 스티브 발머라는 점일 뿐이다. 필자 역시 라스킨의 글을 읽으며 무언가 머리를 탁 때리는 생각을 금할 수가 없었다. 이런 말들은 사마천의 사기열전(史記列傳)에서도 종종 현자들의 입을 통해 들을 수 있었던 말이었다.

기술의 컨버전스
GUI와 윈도우의 개념은 제록스 스타에서 출발해 LISA와 매킨토시에서 상업화 단계를 거치며 성숙하게 되었다. MS는 1983년에 이르러서야 윈도우를 개발하겠다고 발표하지만 이미 완성단계에 이른 매킨토시와는 비교할 수도 없는 상황이었다.

어쩌면 애플이 고가 정책을 버리고 라스킨의 의견처럼 매킨토시를 1000달러 미만으로 보급했다면 역사는 달라졌을 지도 모른다. 그러나 매키토시를 발표하고 나서 애플의 경영 혼란기와 거듭된 개발 혼선으로 MS는 몇 년의 시간을 벌었다. MS의 윈도우는 개발하겠다는 발표만 있고 일정이 지연되거나 문제가 많아 ‘VapourWear(실체가 없는)’라는 소리마저 들었다.

그러나 경쟁자들이 너무 많은 시간을 주었기 때문에 MS는 매킨토시보다 완성도가 떨어지지만 어느 정도 쓸만한 윈도우를 개발하기에 이르렀고, 1990년과 1991년에는 수천만 카피가 팔려 나갔다. 사용자들을 MS-DOS에서 벗어나지 않게 잘 요리하면서 정작 MS-DOS가 버전 9.99를 넘어서는 것이 아니냐는 걱정을 시키기도 했지만, MS에도 프로그래머들이 없는 것은 아니었고 윈도우 95에 이르면서 10년 가까이 끌어온 보호 모드의 프로그래밍도 사용자들에게 보여줄 수 있었다.

10년 정도의 차이가 있지만 둘은 시간이 지나자 대충 비슷해진 것이다. 사람들에게 GUI의 장점을 설명할 필요도 없었다. 매킨토시에서 입증된 사실이니까. 필자는 MS의 역사를 살펴볼 때마다 MS가 경영을 잘 해왔다는 측면도 있지만 경쟁자인 다른 회사들의 실수 역시 대단한 수준이라는 생각을 떨치기 힘들다. @

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
TAG GUI
1 

카테고리

분류 전체보기 (107)
::::::Dairy::::: (5)
:::::what?::::: (1)
:::::Computer::::: (5)
:::::Idea::::: (2)
:::::Want::::: (1)

달력

«   2017/08   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

티스토리 툴바