Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

출처 : 리눅스코리아 리눅스 소개자료

해커와 유닉스의 역사

해커는 범죄자?

해커라는 명칭은 언론에 의해 극히 왜곡되어 현재는 컴퓨터:::통신망(:12)에 침투하여 남의 정보들 도둑질해가는 범죄자라는 인식이 되었다. 그러나 현재의 컴퓨터 기술, 인터넷의 발전은 정보의 독점에 대항하고 정보를 자유롭게 공유하려고 하였던 이러한 해커들에 의해 발전되었고 현재의 컴퓨터 혁명을 가능하도록 한 배경이 되었다.

1945년 이후 컴퓨팅 테크놀러지는 전세계의 총명하고 창조적인 수많은 사람들을 유혹하였고 이러한 소수 열정적인 프로그래머에 의해 자의식 강한 기술문화가 계속 되었고 이들은 소프트웨어를 재미로 만들고 즐거워했다. 2차 세계 대전 이후 1970년대 초반까지 배치 컴퓨팅과 메인프레임이 주름답던 때에 이들 "진정한 프로그래머"들은 컴퓨팅에 있어 기술 문화를 주도하였으며 이러한 결과로 대화형 컴퓨팅, 대학, 네트워크의 발전이 이루어졌다. 오늘날의 오픈 소스 해커문화로 진화할 수 있는 공학의 전통을 만든 것이다.

현재 우리가 오늘날 알고 있는 해커 문화의 시초는 MIT에서 1960년대 시작되었다고 볼 수 있다. MIT 대학의 취미 동아리인 MIT 테크 모델 철도 클럽(TMRC, Tech Model Railroad Club)은 1961년 MIT에 처음 도입되었던 PDP-1을 자신들이 좋아하는 기술적인 장난감으로 선택하고 오늘날 우리들도 인식하고 있는 여러 가지 프로그래밍 도구, 관련 은어, 전체 주위 환경을 만들어갔다. TMRC의 해커는 1980년 초기까지 전세계의 인공지능 연구를 이끄는 센터였던 MIT 인공지능 연구소의 핵심이 되었으며 그 영향력은 ARPAnet(:12) 최초의 해인 1969년 이후 더 넓게 퍼졌다. 최초의 대륙간 고속 컴퓨터 네트워크였던 ARPAnet은 국방성의 디지털 통신 실험을 위해 만들었지만 이곳을 통해 수백의 대학과 방위산업체, 연구소를 연결하였고 연구자들은 어떤 곳에서든지 전례 없는 속도와 유연성으로 정보를 교환하고 협동 작업을 진행하였으며 이를 통해 기술적 진보의 속도와 강도를 크게 증가시킬 수 있었다. 또한편 이를 통해 아르파넷은 미국내의 모든 해커들을 모아내는 역할도 수행한 것이다.

해커의 윤리

이들 1세대 해커들의 가장 큰 공적은 '해커의 윤리'라는 최초의 컴퓨터 문화를 창출한 것이었다. 해커의 윤리란 당시 해커들 사이에 묵시적으로 형성된 불문율로 '정보의 완전한 개방과 공유'라는 대원칙을 기본으로 삼았다. 이들은 정보의 개방을 방해하는 관료체제와 IBM 같은 공룡기업에 맞서 싸우며 정보의 개방과 공유라는 원칙을 만들어었다. 한명의 해커가 어떠한 프로그램을 만들면 누구나 마음대로 프로그램을 복사하여 더 나은 방향으로 개량해 나갔다. 이런 식으로 프로그램은 불과 짧은 시간동안 많은 사람들의 노력에 의해 놀라운 수준으로 발전하게 된다. 이들은 정보의 개방과 공유야말로 노력의 중복을 피하고 창조성을 한껏 높일 수 있는 토대라고 믿었다.

당시 DEC에서는 PDP 마이크로컴퓨터를 공급하고 있었는데 이 회사의 기계들은 당시에 비교적 저렴한 가격으로 대화형 컴퓨팅과 시분할 시스템을 제공하였고 이러한 저렴한 시분할 시스템을 통해 해커문화가 자라날 수 있는 물질적인 기반이 되었다. MIT에서는 DEC의 소프트웨어를 버리고 자신만의 운영체제인 ITS(Incompatible Timesharing System)을 만들어냈다. 이당시 나온 언어중의 하나가 인공지능 언어인 LISP이며 ITS 문화의 많은 기술적 창조는 이막스 등을 통해 현재까지 그 영향을 미치고 있다. 해커문화는 네트워크에 연결된 대학에서 자라났다고 했는데 스탠포드 대학의 인공지능 연구소에서 성장한 해커들은 이후 개인용 컴퓨터와 오늘날의 윈도우, 아이콘, 마우스 소프트웨어 인터페이스 개발의 핵심인물이 되었다. 카네기 멜론 대학의 해커들은 전문가 시스템과 산업적 로봇공학에서 최초의 실용적인 대규모 애플리케이션을 이끌게 될 작업을 하고 있었다. 해커 문화와 연관되어 또 중요한 것은 제록스 PARC의 팔로 알토 연구소이다. 1970년 초반부터 1980년 중반까지 10년 이상 PARC는 현재 널리 사용되고 있는 다양한 기술의 출발점이 되었다. 마우스, 윈도우, 아이콘 스타일의 소프트웨어 인터페이스를 발명했으며 레이저 프린터, 근거리 네트워크도 이곳을 통해 나왔다.

유닉스의 탄생

아르파넷이 탄생한 해는 켄 톰슨이라는 벨 연구소의 해커가 유닉스(:12)를 발명한 해이기도 하다. 데니스 리치라는 해커는 톰슨의 유아기적 유닉스(:12)에서 사용하기 위해 C(:12)라는 새로운 언어를 발명하였다. 유닉스와 C는 제한이 없고 유연하게 설계되었다. 그전가지 운영체제는 호스트 기계에서 최대한의 효율을 내기 위해 어셈블리어(:12)로 쓰여졌지만 톰슨과 리치는 하드웨어와 컴파일러 기술이 전체 운영체제를 C로 작성해도 좋을 만큼 좋아졌다는 것을 인식한 사람들이다.

서로 다른 많은 형태의 기계에서 같은 모습과 같은 기능을 제공할 수 있는 공통 소프트웨어 환경이 만들어지고 있는 것이었다. 유닉스와 C는 이러한 강력한 호환성과 함께 "간단하고 멍청하게"라는 철학에서 만들어졌다. 유닉스는 서로를 유용한 방식으로 결합할 수 있도록 설계된 간단한 프로그램의 유연한 툴킷으로 구성되었다. 이는 쉘:::스크립트(:12)를 짜보았다면 쉽게 이해가 갈 것이다. 엄청난 기능을 담은 공룡 프로그램을 만드는 것이 아니라 작고 효율적인 프로그램을 결합하여 다양한 기능을 수행할 수 있다. 유닉스는 공식적인 지원 프로그램이 없었지만 AT&T 내에서 아주 빠르게 퍼져나갔으며 1980년대에 수많은 대학과 연구 컴퓨팅 사이트로 퍼져 나갔다. 이러한 흐름과 함께 1975년 최초의 개인용 컴퓨터가 시장에 등장하기 시작했으며 그 이후 엄청난 속도로 성장을 하였다. 마이크로컴퓨터의 잠재력은 명백하였고 젊은 또다른 해커 세대를 만들어내기 시작하였다.

1980년대의 상황

1980년의 상황은 이와 같이 ITS와 결합된 아르파넷/PDP-10문화, PDP-11과 VAX, 전화 연결과 함께하는 유닉스와 C 그룹, 컴퓨터의 힘을 사람들에게 가져다주는 데 열중한 초기 마이크로컴퓨터광 등의 세 그룹으로 구성이 되었다. ITS는 여전히 높은 지위를 가지고 있었지만 여러 가지 다른 문제들과 함께 이식성의 문제로 미래가 불투명해졌다. 이때부터 VAX에서 작동하는 버클리 계열 유닉스 변종이 가장 좋은 해킹 시스템이 되었고 마이크로 컴퓨터도 놀라운 속도로 성장을 하고 있었다.

당시 MIT AI 연구소의 대표 인물이자 연구소 기술의 상업화에 가장 완고하게 타협을 거부한 사람이 리차드:::스톨만(:12)이다. 리차드 스톨만은 80년대 초반에 겪던 해커문화의 변동을 깔끔하게 정리하였다. 그는 1982년 C로 작성되고 자유롭게 이용할 수 있는 유닉스의 완전한 복제본을 구성하기 시작하였는데 그럼으로써 ITS의 정신과 전통은 더 새로운 유닉스와 VAX 중심 해커문화의 중요한 일부로 보존이 될 수 있었다. 또한 마이크로칩과 근거리 네트워크 기술이 해커문화에 중대한 영향을 미치기 시작하였으며 버클리의 유닉스 해커 그룹중 일부가 썬 마이크로시스템을 창립하여 워크스테이션의 첫번째 세대를 만들어 내게 되었다.

유닉스의 상업화와 워크스테이션의 등장

1984년에서는 AT&T가 해체되고 유닉스가 최초로 상업 제품이 되었다. 썬 등의 회사에서 나온 워크스테이션급 기계들은 고성능 그래픽이 가능하고 네트워크를 통해 공유 데이터를 전송할 수 있도록 만들어졌다. 1980년 해커 문화는 이러한 환경에서 다양한 소프트웨어와 도구를 만들어내기 위하여 노력하였다. 버클리 유닉스는 아르파넷 프로토콜의 내장 지원을 개발하였는데 이는 네트워킹 문제에 대한 해결책을 제공하고 인터넷의 이후 성장을 뒷받침하는 기술적인 기반이 되었다.

워크스테이션 그래픽을 제어하려는 여러 가지 시도 중 하나는 X윈도우 시스템인데 이는 X 개발자들이 해커 윤리에 따라 기꺼이 소스를 자유롭게 공개하여 인터넷을 통해 보급될 수 있었기 때문에 가능한 것이었다. 독점적인 그래픽 시스템에 대한 X의 승리른 몇 년 후 유니스에 중요한 영향을 미치는 변화에 대한 전조라고 볼 수 있을 것이다. 네트워킹이 가능한 해커문화 자체 내에서 1980년대의 가장 큰 경쟁은 버클리 유닉스와 AT&T 버전 사이의 열성자들에 생겨났다. 버클리의 해커들은 AT&T와의 싸움과 소송 등을 거쳐 이후 소스와 바이너리 형태의 자유로운 재배포를 허용하는 현재의 BSD 운영체제를 만들어내었다. (FreeBSD, OpenBSD, NetBSD 등이 여기에 속한다) BSD의 네트워크 기능 및 다양한 유틸리티는 이후 리눅스에도 많은 영향을 미쳤다. AT&T 유닉스는 시장에서 BSD/sun을 따라오지는 못했지만 표준 전쟁에서는 승리하였는데 1990년이 되어서는 AT&T와 BSD의 버전은 구분하기가 어려워졌고 서로의 신기술을 흡수하였다.

개인용 컴퓨터의 대중화

이제 90년대로 넘어가면서 고성능에 저렴한 인텔칩이 등장하고 80년대의 워크스테이션을 위협하는 존재가 된다. 해커들은 10년전의 미니컴퓨터의 성능에 맞먹는 개인용 컴퓨터를 가지게 되었다. 여기에서 MS-DOS나 맥등의 사용자들은 빠르게 그 기반을 넓혀나갔는데 UUCP(:12)나 인터넷(:12)에 비교할만한 주도적인 네트워크의 부재로 협동 해킹의 전통은 만들어지지 못했다. 물론 상용 온라인 서비스가 폭넓게 시작되기는 했지만 개발도구가 포함되지 않은 비유닉스 운영체제는 소스 공개와 정보 공유라는 기존의 해커들의 전통을 유지하기에는 성격이 달랐다. 거꾸로 인터넷에 의해 조직화되고 이제 유닉스 기술 문화로 통합되었다고 볼 수 있는 해커문화의 주류는 상업 서비스에 대해서는 신경을 쓰지 않았다.

또 하나의 문제는 상용 유닉스는 수천 달러대로 여전히 그 가격이 비쌌고 1990년대 초까지는 자유롭게 수정하여 재배포할 수 있는 운영체제(:12)의 소스를 얻을 수가 없었다는 것이다. 리차드 스톨만은 완전하게 자유로운 운영체제를 만들기 위하여 GNU 프로젝트를 시작했지만 운영체제를 구성하기 위한 핵심인 커널(:12)이 누락되어 있었는데 자체적으로 구현하려고 하였던 커널 작업은 계속 지체가 되고 있었다. 이와함께 1980년 초반까지 독점적인 유닉스를 상업화하기 위한 10여년 간의 노력이 실패로 돌아가고 있었고 유닉스 플랫폼간 호환성에 대한 약속은 여러 상용 유닉스 버전간의 논쟁 속에 발전을 하지 못하였다. 이런 상황은 마이크로소프트가 여러 가지 기술적인 문제점을 가지고 있는 상황에서도 윈도우 운영체제의 시장점유율을 높이는데 기여하였다.

GNU/리눅스의 등장

이러한 상황 때문에 유닉스에 적대적인 관측자들은 유닉스의 죽음이 얼마남지 않았다고 생각을 하게 되었으며 이제 개개인의 기술 영웅주의가 아니라 마이크로소프트와 같은 거대한 업체에 의해 소프트웨어 산업과 인터넷이 지배될 것이라는 믿음을 가지게 되었다. 바로 이런 상황에서 등장한 것이 리누스:::토발즈(:12)의 공개 유닉스 커널이다.

헬싱키 대학생이었던 리누스 토발즈는 취미작업으로 공개 커널 개발 작업을 시작했고 인터넷의 많은 해커들을 끌어들어 완전하게 자유롭고 재배포 가능한 커널을 개발해낸 것이다. 물론 PC에서 사용할 수 있는 공개 유닉스는 BSD 쪽에서도 작업이 진행되고 있었지만 현재와 같이 리눅스가 폭발적으로 성장할 수 있었던 배경에는 새로운 소프트웨어 개발방식과 연관이 깊다. 이에 대해서는 성당과 시장이라는 글로 널리 알려져 있다. 또한편 리눅스의 성장은 일반인들이 인터넷에 자유롭게 접할 수 있게 된 것과 밀접한 연관을 가지고 있다. 1994년 버클리의 유닉스 개발 그룹이 공식적으로 해체되었지만 386BSD의 후손들이나 리눅스 등 서로 다른 공개 유닉스 운영체제가 인터넷을 통하여 활발하게 개발이 되었다. 이러한 결과로 1990년 후반에 해커문화의 주요 활동은 리눅스 개발과 인터넷의 주류화였다. 인터넷의 고속 성장은 해커 문화에 중추적인 지위와 정치적 영향력을 구가할 수 있는 계기를 마련해주었고 이러한 것들이 해커들만의 자족적인 상황이 아니라 90년대 후반과 현재까지 정보통신산업에 엄청난 영향을 미치게 되었다.