반응형
BeOS가 과연 무엇이더냐?


B
eOS 사용자들은 윈도우란 거대 운영체제에 길들여지기를 거부했다.
자신만의 독특한 운영체제 구축을 위해 BeOS를 선택했고 그 선택이 틀리지 않았음을 증명하기위해 부단히도 노력했다. 지금도 소수 얼리어답터(?)들은 윈도우에서 해방된 그들만의 세계를 체험하기위해 그 열정을 불사르고 있다. 하지만 BeOS는 선택에 앞서 각종 제약을 극복한 극소수의 사용자만이 그 혜택을 누릴 뿐이다. 여기서 선택받은 사용자라 함은 BeOS가 살인적인 고사양을 요구해서가 아닌 하드웨어 지원의 태생적 한계때문에 그 혜택을 받는 사용자도 그 틀안에서 결정된다. R5에 와서는 더 많은 하드웨어가 지원되고 있으나 여전히 하드웨어 문제는 사용자의 발목을 잡고 있다. 어렵사리 설치에 성공했으나 처음 부팅한 화면이 흑백스크린이라면 모니터를 부여잡고 좌절하지 않을 사람이 과연 몇이나 있을까? 동영상 재생조차 버거울 정도라면 미디어 OS를 지향한다는 취지가 무색할 정도로 초라해진다. 차라리 윈도우로 돌아가 편안히 MP3 돌리고 동영상을 감상하는 편이 스트레스를 적게 받는 현명한 방법이다. 이런저런 제약을 극복해낸 사용자가 바로 선택받은 사용자가 아닐까.

시작부터 좋지 않은 상황만 열거한 듯 하지만, 앞으로 닥쳐올 시련을 대비해 조금은 마음의 준비를 해두는 편이 좋을 듯하다. 그럼 화제를 돌려보자. 이미 BeOS에서의 한글 입출력은 완벽에 가까울 정도로 잘 구현되어 있다. 물론 OS 자체적으로 지원하는게 아닌 추가적인 작업(?)을 통해서만 가능하다보니 설치 과정에서의 오류가 잦아지고 그로인해 BeOS 자체에 회의감을 느끼는 일도 많아졌다. 또 심각한 얘기로 빠질 듯하니 조금 까다롭다고 여겨지는 부분은 따로 언급하겠다. 아래는 BeOS에 대한 국내 PC잡지인 하우피시 1999년 9월호에 기재된 내용이다. 이때의 프리뷰는 R4.5에 초점을 맞추고 있는데 현재 출시되어 있는 R5의 기본적인 시스템을 모두 포함하고 있기 때문에 많은 참고가 될 것이다. 그다지 어려운 내용은 없다. 윈도우계열과 비교하면서 재미삼아 읽어보자.

매킨토시 OS와 윈도의 장점을 혼합한 듯하면서 독특한 개성을 가미한 BeOS의 데스크톱 형태는 천편일률적인 윈도우 시스템 사용자들에게 '바로 이거다!'라는 환호성을 자아내기 충분하다. 하지만 BeOS의 속은 어떨까? BeOS 4.5의 뚜껑을 열어보기 전에 BeOS의 속부터 파헤쳐보기로 한다.

데스크톱

  • BeOS 파티션 : BeOS 운영체제가 설치된 파티션 부분이 아이콘 형태로 데스크톱 위에 놓인다. 마치 윈도의 '내 컴퓨터'와 동일한 개념이다. BeOS는 기본적으로 BFS 파티션을 사용하지만 타 파티션과의 교류는 원만하다고 볼 수 있다.
  • Be 메뉴(Menu) : 윈도의 시작 버튼에 해당하는 메뉴이다. 기본적으로 파일 찾기, 현재 실행 중인 애플리케이션의 복제품(레프리컨트) 만들기, 시스템 재부팅과 종료 기능을 담고 있다.
  • 데스크바 : BeOS GUI의 핵심. 단순히 애플리케이션을 실행시키기 위한 런처(Launcher) 개념을 탈피하여 윈도우의 시작메뉴와 작업 표시줄, 트레이와 같은 역할을 수행한다. 데스크바의 위치도 자유자재로 조절할 수 있으며 윈도우에서 제공하는 각종 기능을 포괄하고 있으며 편리함은 사용자를 압도하고 있다.
  • 트래커(Tracker) : 오브젝트에 입각한 운영체제인만큼 파일 조작도 '트래커'라는 애플리케이션으로 지원된다. 트래커는 특정 폴더를 더블클릭해 실행시킬 수 있으며, 폴더 안의 파일과 폴더 등을 보여준다. 이 때 화면을 보여주는 모드는 사용자 임의로 바꿀 수 있다.

BeOS 애플리케이션

  • B메시지(BMessage) : 만약 BeOS를 부팅시켰다면, 'Be' 메뉴에서 'Demo→BeBounce'를 꼭 실행해 보기 바란다. BeOS는 자르기&붙이기, 드래그&드롭, 스크립팅, 인터애플리케이션(InterApplication), 커뮤니케이션, 리플리케이터(Replicator) 등의 기술을 표준화하여 지원하는데, 이 모든 것이 하나의 객체 요소가 다른 객체와 통신할 수 있는 B메시지(Message) 메커니즘을 기반으로 하여 사용자에게 색다른 즐거움을 제공한다. 예컨대, 앞서 말한 메뉴를 2번 실행해 'BeBounce' 창을 2개 띄우면 사각의 창에 있던 빨간 공이 다른 창으로 바운딩된다. 마치 두 창이 통신을 하는 듯한 느낌으로, 직접 보아야 알 수 있는 B메시지의 강점이다.
  • 3D 키트 & 오픈GL : BeOS의 3D는 윈도 3D와 차별된다. 이는 자체적으로 개발한 3D 키트와 Sgi사에서 라이센스 받은 오픈GL 등을 3D 인터페이스로 채택하였기 때문으로, 3D 키트는 3D 구현 속도를, 오픈GL은 렌더링 효과를 극대화시킨다. BeOS의 데스크톱에 있는 'Be' 메뉴 중 'Demo' 폴더에 들어 있는 '3dmov'는 3장의 이미지와 2개의 무비와 라이브 비디오가 큐브의 각 표면에서 매핑되는 동안 사용자가 마우스로 인터랙티브하게 큐브를 회전시킬 수 있게 하는 3D 키트를, 'Demo' 폴더 안의 'GL Teapot'는 슬라이더를 움직여 렌더링의 질을 증가/감소시키는 오픈GL을 구현한 데모이다.

BeOS 소프트웨어 키트

  • 클라이언트/서버 아키텍처 : BeOS의 클라이언트/서버 아키텍처는 단순히 시스템 간의 커뮤니케이션을 위한 클라이언트/서버 아키텍처가 아닌, 애플리케이션 간의 클라이언트/서버 아키텍처를 뜻한다. 예컨대 BeOS를 분해하면 애플리케이션, 네트워크, 미디어, 저장장치, 프린터 등의 영역으로 구분되며, 각 영역마다 서버가 할당되어 클라이언트가 요청할 때마다 담당하는 서비스를 제공한다. 이를테면 BeOS에서 텍스트 편집을 한다고 가정해 보자. 가장 먼저 스크롤과 풀다운 메뉴가 제공되는 창을 꺼내야 하고, 편집 기능을 제공해야 한다. 물론 출력 기능도 제공해야 한다. BeOS는 각각의 과정을 따로 분리해 필요한 서비스를 분리해 둔 서버에서 불러와 작업을 수행한다. 이 경우 하나의 애플리케이션이 CPU 사이클과 메모리를 차지하는 일은 결코 있을 수 없다.

서버 애플리케이션

  • 객체 지향 언어 : 이쯤 되면 BeOS가 무엇으로 만들어졌을까 궁금할 것이다. BeOS를 조금 만지다 보면 객체 지향의 언어로 개발되었다는 것은 쉽게 알 수 있다. 예컨대 파일을 저장하기 직전에 뜨는 대화상자 중 'OK'나 'Cancel' 버튼도 각각 'OK'와 'Cancel'이라는 이름의 객체로 구성되어, 사용자가 임의로 스크립팅을 통해 다르게 바꿀 수 있다. 요컨대, BeOS는 객체 지향 언어인 C++로 제작되었으며, BeOS 애플리케이션 개발자를 위해 가장 유명한 객체 지향 언어 C++와 자바를 제공한다. 개발자의 입장에서 새로운 언어와 툴을 배우지 않아도 되는 셈이다.
  • 유닉스/포직스(POSIX) 호환 : BeOS는 유닉스의 Bash(Bourne Again Shell)를 포팅한 일명 '터미널(Terminal)'이라는 애플리케이션을 제공한다. 사용자는 터미널을 이용해 유닉스 유틸리티를 재컴파일해 사용할 수 있는데, 이는 BeOS가 포직스-레이어를 갖고 있기에 가능한 일이다. 단, 이를 보고 BeOS의 기능이 유닉스에서 넘어온 것이라고 착각하면 안 된다. BeOS는 처음부터 새롭게 설계되었으며, 따라서 유닉스에서 채용한 기능은 전무하다. 다만 포직스 호환층을 제공할 뿐이다.

마이크로커널

  • BeOS 커널 : 맥 OS X, 넥스트스텝, 랩소디 등의 차세대 운영체제들은 카네기멜론대학에서 개발한 '마하(Mach) 커널'을 채용했다. 때문에 넥스트스텝과 아주 흡사한 BeOS도 마하 커널을 사용한다고 생각하는 사람들이 많지만, 실상 BeOS의 커널은 자체 개발된 독점(proprietary) 커널이다. 즉, 파일 시스템과 운영체제 실행을 위한 소소한 API만을 채용하여 맥 OS X나 리눅스, FreeBSD 등과는 차별성을 보인다. 단적으로, 기존 운영체제는 네트워크 서비스가 커널의 한 파트로 지원되지만, BeOS는 네트워크 서비스가 일명 '사용자 영역(User Space)'에서 실행되어, 마치 애플리케이션을 다루듯 실시간으로 네트워크에 접속했다가 접속을 해제하고 환경 설정을 할 수 있다.
  • BFS(BeOS File System) : BeOS가 독자적으로 개발한 파일 시스템이다. 64비트 저널링(Journaling) 파일 시스템으로, 정규 파일뿐만 아니라 디렉터리와 심볼릭 링크 등 임의의 노드에 파일 속성을 부여할 수 있다. 또, BFS는 현존하는 하드디스크 용량보다 더 큰 파일, 이를테면 1만 8,000페타바이트(petabytes)를 저장 및 복사할 수 있는 유일무이한 파일 시스템이다. 참고로, 페타바이트는 1,000테라바이트(terabytes=1조 bites)에 해당하는 데이터 용량을 말한다. 아울러 저널링 기능을 통해 파일 시스템의 변화를 동적으로 체크하고, 전력 손실과 같은 제어 기능을 조절하면서 20초 내의 빠른 부팅을 지원한다.
    한편, BeOS는 읽고, 쓰고, 포맷할 수 있는 기본적인 파일 시스템으로 BFS를 쓰지만, 매킨토시의 HFS는 물론 VFAT, FAT, FAT32 파일 시스템도 읽고 쓸 수 있다. BeOS를 윈도와 듀얼로 부팅하여 사용할 때 BeOS에서 윈도의 하드디스크를 마운팅해 파일들을 읽고 쓸 수 있는 이유다. 또한 ISO 9660의 파일 시스템은 읽을 수 있지만 추가적인 소프트웨어를 이용할 경우 쓸 수도 있고, NT 파일 시스템인 NFS에 대해서는 추가적인 소프트웨어를 설치해 읽고 쓸 수 있다.
  • 선점형 멀티태스킹(Preemptive Multitasking) : BeOS는 실시간 그래픽 조작과 인터넷 접속 속도 등을 높이기 위해 선점형 멀티태스킹이란 개념을 기본으로 한다. 선점형 멀티태스킹이란 BeOS상에서 여러 개의 프로그램이 구동될 때 어떤 프로그램도 CPU를 독점할 수 없도록 제어하는 기능이다. 즉, 실행 중인 프로그램들이 알아서 작업 처리 시간을 배분함으로써, 여러 애플리케이션들이 원활하게 구동된다. 한쪽에서는 파일이 복사되고, 다른 한쪽에서는 프랙탈 그래픽을 그리는 작업이 동시에 이루어지는 게 이런 이유에서다.
  • 멀티스레드(Multithread) : 전통적인 운영체제인 경우 멀티태스킹 시스템일지라도 하나의 프로세스마다 프로세스의 실행을 담당하는 스레드가 하나만 있어, 한 애플리케이션 안에서의 다중 작업이 불가능하다. 반면 멀티스레드를 지원하는 BeOS는 한 애플리케이션에서 동시에 여러 가지 작업을 진행할 수 있다. 실제로, 시스템이 자동으로 스레드를 제공하기 때문에 단 하나의 스레드로 동작하는 BeOS 애플리케이션은 존재할 수 없다. 대표적으로 'Demo' 폴더에 있는 'Mandelbrot' 애플리케이션은 6개의 스레드를 갖지만, 프로그래머가 다루는 스레드는 단 2개뿐이다. 시스템이 윈도를 그리기 위해 2개의 스레드를, 메뉴를 다루기 위해 다른 2개의 스레드를 사용하는 반면, 나머지 2개는 제작자가 스레드를 계산하고 윈도를 그리는 데 쓰인다. 이 얼마나 환상적인가?

하드웨어

  • 멀티프로세서 : 현존하는 대다수의 PC들은 하나의 프로세서만을 장착하고 있다. 일부 PC는 2개 이상의 CPU를 장착하는 경우도 있는데, 이는 운영체제가 받쳐줘야 가능한 일이다. BeOS는 최대 8개의 프로세서가 장착된 시스템에서 동작하는 운영체제이다. 하지만 기본적으로 프로세서의 수에 대한 제약이 없도록 설계되어 있기 때문에 8개 이상의 멀티프로세서도 가능하다. 참고로, Sgi가 개발한 유닉스는 128개, 썬 솔라리스는 64개, 윈도 NT는 4개의 멀티프로세서를 지원한다.
  • 메모리 보호 기능(Protected memory) : 메모리 보호란 한 애플리케이션에 치명적인 오류가 발생해도 실행 중인 다른 애플리케이션과 시스템에는 전혀 영향을 주지 않도록 하는 기술이다. 다시 말해 시스템을 재부팅하지 않아도 오류가 발생한 애플리케이션만 닫으면 정상적인 운영이 가능하다. BeOS처럼 메모리 보호 기능을 제공하는 운영체제는 각 애플리케이션과 운영체제 구성 요소들이 고유의 메모리 영역을 갖고 있다.

대충 BeOS의 내부를 살펴보았다. 위에서 열거한 여러 특징은 쉽게 이해할 수 있는 부분이 아니다. 직접 BeOS를 구동시켜보면 모든 궁금증이 자연스레 해소될 것으로 본다. 경험만한 재산은 없다!

반응형
Posted by Real_G