튜링상 관련 업적

분산형 개인용 컴퓨팅 환경의 개발 및 이를 구현하기 위한 기술에 기여했음. 여기에는 워크스테이션, 네트워크, 운영체제, 프로그래밍 시스템, 디스플레이, 보안, 문서 출간 등이 포함됨.

1992년 튜링상 선정 이유​3​

워크스테이션

워크스테이션workstation이 정확히 무엇을 의미하는지는 모호하다. 아마도 1980-90년대에 널리 사용되던 워크스테이션이라는 제품군을 지칭하는 듯싶다. 이 워크스테이션 제품군은 1970년대에 널리 사용되던 미니컴퓨터보다 크기는 훨씬 작으면서 주로 개인이 혼자 사용하는, 과학/공학용 컴퓨터였다. 썬마이크로시스템즈Sun microsystems나 아폴로 컴퓨터Apollo computer 같은 회사들이 이런 제품을 유행시켰다.

이 제품군은 당시 등장했던 개인용 컴퓨터에 비해서 성능이 좋은 마이크로프로세서를 사용했고 훨씬 섬세한 그래픽 디스플레이와 근거리 네트워크(LAN)를 기본으로 제공했다. 그리고 대부분의 경우는 유닉스 계열의 운영체제를 사용했다.

그런 점에서 보면, 제록스 팔로알토에서 개발한 알토Alto 시스템은 이런 워크스테이션의 특징을 고스란히 담고 있다. 그래서 알토는 워크스테이션의 시작에 해당하는지도 모른다.


알토 컴퓨터​‡‡​

알토의 시작은 1972년으로 거슬러 올라간다. 1971년에 MAXC 미니컴퓨터를 개발한 제록스 팔로알토 연구원들은 완전히 방향을 틀었다. 시분할 시스템의 원래 취지는, 한 대의 컴퓨터를 여러 사람이 동시에 사용하자는 것이었다. 비싼 컴퓨터를 효율적으로 사용하기 위함이었다. 하지만 나 혼자서 컴퓨터를 차지해 쓸 수 있다면 사실 그것보다 더 좋을 수는 없었다. 그래서 1972년에 버틀러 램슨과 척 새커는 개인의 책상 위에 올려놓고 쓸 수 있는 미니컴퓨터를 만들 생각을 했다. 이 컴퓨터는 다른 이와 나눠 쓰는 것이 아니라 혼자 독점해서 쓸 수 있어야 했다.

마침 제록스 팔로알토 연구소의 목표는 ‘미래의 사무실’을 알아내는 것이었다. 램슨이 생각하는 미래의 사무실은 각자의 책상 위에 알토 컴퓨터가 있고 이 컴퓨터는 근거리 네트워크를 통해 레이저 프린터와 연결되어 원격으로 서류를 출력하는 형태였다.

나는 알토의 하드웨어에는 별로 관여하지 않았습니다. 나는 전체 전략에 아주 많이 관여했고 운영체제의 첫 버전을 작성했습니다. 그런 후에 찰스 시모니와 함께 브라보를 개발했죠. 브라보야말로 아마도 가장 성공적이면서 가장 영향력을 발휘한 응용프로그램일 겁니다.​2​

후에 램슨은 알토 컴퓨터의 탄생에 영감을 준 세 가지를 다음과 같이 언급했다.​6​

알토 시스템은 컴퓨팅에 본질적으로 내재한 가능성에 대한 비전에서 나왔다. 그 비전이란, 인간이 생각하고 소통하는 데 도움이 되는 도구로 컴퓨터가 사용될 수 있는 것을 말한다.

또 하나의 큰 영향은 더그 엥겔바트로부터 왔다. 그는 ARPA의 자금 지원을 받아서 전자식 사무실의 원형이라고 할 수 있는, 혁명적 시스템 NLS를 만들었다.


알토에게 강력한 영향을 준 또 다른 ARPA 프로젝트는 앨런 케이의 플렉스Flex이다.

운영체제

램슨은 지니 프로젝트에서 시분할 운영체제를 피터 도이치와 함께 개발했다. 후에 SDS 940이라는 모델 이름으로 상용화된 이 시스템의 운영체제는 당시에 여기저기에서 제안되었던 기법들을 도입했다.

사실 이 운영체제가 다른 시분할 운영체제에 비해 차별화되었던 점은, 터미널로 입력되는 타이핑을 글자 단위로 스케쥴링하여 처리했다는 것이다. 다른 운영체제에서는 터미널에서 줄 바꿈이 있을 때에야 비로소 타이핑 값을 처리하는 인터럽트 루틴이 호출되었다.

또한, 지니 프로젝트의 시분할 운영체제는 실제 상용화 수준까지 완성되었다. 이에 비해 MIT의 CTSS는 연구자들이 사용할 정도의 수준에 머물렀었다. 지니 프로젝트의 시분할 운영체제는 오늘날의 유닉스 운영체제 구조와 흡사하다. 크게 세 부분으로 구성되어 있다.

가장 핵심은 모니터monitor라고 부르는 부분인데 오늘날의 커널kernel에 해당한다. 프로세스 스케쥴링, 가상 메모리 관리, 트랩trap 처리 등을 담당한다. 이그젝exec이라는 부분은 사용자의 명령어를 해석해서 처리하는 일을 한다. 오늘날의 셸shell에 해당한다. 마지막은 서브시스템subsystem이라는 부분이다. 이것은 컴파일러와 같은 개발 환경을 의미한다.


램슨은 지니 프로젝트 후에 Cal TSS 프로젝트에도 잠시 몸을 담았다. 이것은 CDC 6400 컴퓨터에서 돌아가는 시분할 시스템을 만드는 프로젝트였다. Cal TSS는 능력 기반 보안capability-based security을 지원한다는 점이 특별했다. 램슨은 자신의 지도 학생과 함께 능력 기반 보안을 정의하고 구현했다.


알토의 운영체제는 엄밀히 말하면 시분할 시스템이 아니다. 알토는 개인용 컴퓨터를 지향했으므로 굳이 시분할 시스템일 필요는 없었다. 대신에, 그래픽 사용자 인터페이스를 가졌으므로 빠른 응답시간을 보장하는 것이 중요했다. 그래서 구조적으로 단순했고 수퍼바이저 모드도 없었고 메모리 보호와 같은 기능도 없었다.​6​

알토는 어떤 프로그래밍 언어를 사용할 것이냐에 따라 완전히 다른 기계가 되었다. 이것이 가능했던 이유는 알토의 프로세서가 마이크로코드 방식이었고 그래서 명령어 집합instruction set을 직접 설계할 수 있었기 때문이다. 알토는 BCPL, 메사Mesa, 스몰토크Smalltalk, 리스프Lisp를 지원했고 각 언어에 따라 운영체제와 명령어 집합이 달랐다. 서로 다른 이 네 가지 동작 환경이 가진 공통점은 파일시스템 포맷과 네트워크 프로토콜뿐이었다.


알토 운영체제의 특징은 세 가지로 요약된다.​6​

개방형 설계

알토는 몇 개의 기본 패키지로 구성된다. 각 패키지는 디스크 파일 시스템 관리, 키보드 처리, 타자기 시뮬레이터(화면용), 프로그램 로더, 빈 저장공간 할당기 등이다. 프로세스 관리나 가상 메모리 관리 같은 복잡한 기능은 포함되어 있지 않다. 이 기본 패키지들은 시스템이 초기화되면 언제든지 호출이 가능한 상태로 준비된다.

그런데, 이 패키지들은 모두 사용자에 의해 다른 것으로 교체가 가능하다. 즉, 사용자가 해당 기능을 직접 프로그래밍해서 바꿔치기하여 사용할 수 있다.

완전 스왑

스왑Swap이란 컴퓨터 메모리의 일부를 디스크 저장장치에 저장하거나, 아니면 저장된 것을 메모리로 가져오는 작업을 의미한다. 컴퓨터의 메모리 실제 용량이 프로그램에서 필요로 하는 양보다 작을 경우에 흔히 사용하는 기법이다. 대부분의 경우, 스왑은 컴퓨터 메모리의 일부에 대해서만 적용한다.

알토는 메모리 전체와 프로세서의 내부 상태까지 통째로 스왑하는 방식을 사용했다. 이를 완전 스왑World-swap이라고 불렀다. 이렇게 하면 스왑에 걸리는 시간이 길어지는 단점이 있다. 하지만 알토에서는 프로그램이 수행될 때 완전 스왑을 함으로써 프로그램이 시스템 전체를 완전히 장악할 수 있게 했다. 프로그램과 프로그램 사이의 통신을 위해서는 파일 시스템을 사용했다.

고성능 파일 시스템

완전 스왑을 빠르게 처리하려면 파일 시스템의 성능이 좋아야 한다. 그래서 알토에서는 파일 시스템의 성능을 높이는데 많은 공을 들였다. 파일의 내용을 차례로 읽을 경우, 초당 1Mbit로 동작하는 디스크 속도를 그대로 처리할 수 있었다.

1 2 3 4 5