History of Unix
1960년대 GE(General Electrics)는 MIT, AT&T Bell Labs 과 컴퓨터 개발을 시작하였다. 그들이 만든 GE645로 알려진 컴퓨터와 OS인 Multics는 멀티 태스크 기능에서 뛰어난 성능을 보였지만 속도에서 문제를 보였기에 결국 GE는 프로젝트를 포기한다.
Multics는 대형 컴퓨터를 위한 대화식 다중사용자 시스템(Multiuser interactive system) 형식으로 개발되고 있었다. 말 그대로 대화식 다중사용자 시스템이란 여러 명의 사용자가 여러 명의 사용자가 여러 프로그램을 같은 컴퓨터에서 동시에 작업하는 것이 가능한 시스템이다.
1969년 Bell Labs는 개발에서 철수하였으나 Multics는 UNIX 개발에 결정적인 영향을 미치게 되었고,
AT&T Bell Labs 내에서는 Thompson, Dennis Ritchie, Cannaday 를 중심으로 새로운 OS Multics 개발했으며,
참여했던 Ken Thompson은 UNIX 운영체제, PDP-7 어셈블러 및 어셈블러로 재 작성된 많은 유틸리티를 개발하였다.
1971년 Bell Labs 특허 기구에 실제로 인도 되었다.
*PDP Serious(Programmed Data Processor, 줄여서 PDP)는 디지털 이큅먼트 코퍼레이션이 만든 일련의 미니컴퓨터 이름이었다. PDP라는 이름은 의도적으로 "컴퓨터"라는 용어의 사용을 회피하였는데, 이는 첫 PDP가 나올 당시 컴퓨터들은 커다랗고, 까다롭고, 값비싼 기기로 취급되었고 DEC사의 후방에 있던 모험 자본가들이 DEC의 "컴퓨터" 제조를 지원하지 않을 것이라 이야기하였기 때문이다. "미니컴퓨터"라는 낱말도 아직 생기지 않은 시기였다. 이리하여 DEC는 기존 라인의 논리 모듈을 사용하여 프로그램 가능한 데이터 프로세서(Programmable Data Processor)를 만들었고 이를 대형 컴퓨터를 취급하지 않는 시장에 초점을 맞추었다. - by wikipedia
여담으로 여기까지 읽은 여러분들은 Ken Thompson 이 UNIX를 만든 이유가 무엇일까하는 궁금증이 생길 것이다. 그에 대해서는 여러가지 설이 있지만, 가장 유력한 설을 바로 Thompson이 좋아하는 게임 때문이라는 것이다. 그가 좋아하는 'Space Trabel'이 PDP-7 기종에서 돌아가지 않았기에 PDP-11 용으로 운영체계를 개발하게 된 것이다. Thompson의 게임에 대한 열정이 오늘 날의 UNIX를 만들 었다고 말할 수도 있을 것이다. UNIX라는 이름은 1970년 Brian Kernighan 이 명명한 것으로 알려지고 있다.
1973년 Dennis Ritchie는 자신이 개발한 C 언어를 사용하여 UNIX 시스템을 재작성하였다. C 언어는 UNIX를 위하여 특별히 개발된 언어로서 다양한 컴퓨터 구조로 쉽게 이식할 수 있으며, 현재 거의 모든 컴퓨터를 위한 공통의 프로그래밍 언어로 사용되고 있다. UNIX 시스템이 이식성이 높은 C 언어로 재작성 되므로 UNIX 시스템은 최소한의 문제만 해결하면 전체 시스템을 다른 환경으로 쉽게 이식 할 수 있었다.
1976년 Ritchie 와 Stephen Johnson은 UNIX 시스템을 Interdata 8/32로 이식하였다. 그 후로 UNIX 시스템은 Zilog 의 Z-80과 Z-8000, Motorola의 MC 68000, 68010등의 거의 대부분의 컴퓨터구조로 이식하는데 성공하였다.
1975년 부터 AT&T는 UNIX 시스템을 판매하기 시작, 그러나 학술기관에는 UNIX 시스템을 사용하고 발전시킬것을 권장하기 위하여 실비에 제공하였다.
1970년대 후반부터 수십억 달러에 해당하는 UNIX를 위한 하드웨어, 소프트웨어 및 관련된 서비스 시장이 형성되었다.
1980년대는 사람들이 미적인 면을 중시하기 시작하였다. 이런 시대적 흐름에 따라 MIT에서는 X윈도우 시스템을 개발하게 된다.
UNIX 시스템은 다른 운영체제와는 다른 발전과정을 거쳐왔다. 대부분의 다른 운영체제는 컴퓨터 판매를 목적으로 컴퓨터 공급업체에서 개발되었다. 그러나 AT&T는 UNIX 시스템이 개발되던 초기 10여년 동안 컴퓨터 시스템을 판매할 수 있는 입장도 아니었고,
UNIX 또한 상업적인 목적으로 개발된 것이 아니었으며 UNIX 시스템이 상업적으로 변화한 것은 급증하는 요구에 대응하기 위한 방편이었다. 개발 업체에 의하여 완전히 통제되는 일반 상용 운영체제와는 달리 UNIX는 여러 세력에 의하여 그 운명이 결정되어 왔다. 영향력 있는 4대 세력은 AT&T, UCB, SUN MICROSYSTEMS, MICROSOFT 이다.
유닉스의 계보
현재 UNIX의 주류는 두 가지 계통으로 크게 분류할 수 있다. System V계와 BSD계로 나뉘어 지는데, 전자는 AT&T가 컴퓨터 업계로 참여해 제 7판부터 System III를 거쳐 System V에 이르기까지 발전시켰다. System V는 릴리즈 1.0부터 시작하여 계속해서 후속판을 내고있다.
BSD계는 1970년 개발을 시작해 Bill Joy를 중심으로 Computer Science Research Group에 의해 개발되었고,
BSD(Berkeley Software Distribution)판으로 널리 알려지게 되었다. System V와 마찬가지로 그 후속판이 나오고 있으며, vi, ex, edit, termcap, curses, C shell, PASCAL, LISP, 네트워크, 프로세스간의 통신 강화 등의 특징을 지녔다. 일반적으로 System V쪽은 상업 지향적이고 BSD계는 연구 개발 지향적으로 달랐지만, 현재의 유닉스는 이 둘을 통합하여 서로의 장점을 취하고 있다. Solaris, Linux는 이 두 계열의 특징을 모두 갖고 있는 대표적인 예다.
UNIX System V R4.0 | 유닉스의 표준이 되는 버전으로 벨 연구소에서 개발된 유닉스 시스템의 정식 이름이다. |
SCO UNIX | Santa Cruz Operation사의 SCO Open Desktop 과 SCO Open Server Release 3의 이름이며 이 운영체제는 UNIX SVR3.2.5의 구현이다. |
SunOS | Sun사의 가장 잘 알려진 BSD 중심의 운영체제이다. |
Solaris | Sun의 SVR4 구현이다. |
HP-UX | UNIX의 휴렛-팩커드 버전은 OSF/1의 많은 특성들을 도입한 SVR4의 변형이다. HP-UX 9 버전은 몇가지 확장성을 가진 SVR3 와 비슷하고 HP-UX 10은 SVR4 운영체제이다. |
Digital UNIX | OSF/1의 DEC 버전은 실질적인 면에서는 System V와 가깝지만 관리적인 측면에서 보면 일반적인 BSD시스템과 비슷하다. Digital UNIX는 거의 같은 표준을 따르고 있지만 아주 다른 관리를 필요로 하는 시스템이다. |
AIX | IBM의 System V 운영체제로 SVR4, BSD, OSF/1의 특징들을 고루 가지고 있다. |
Linux | 인텔 프로세서를 위한 Free UNIX 방식의 운영체제이다. Linus Torvalds가 만들었으며 이름의 의미는 Linus의 UNIX라는 뜻이다. Linux는 BSD 방식이다. 기술적으로 Linux라는 이름은 기본적인 core(커널과 일부드라이버 등)를 말하지만 일반적으로 Linux 보급판을 구성하고 있는 다양한 소스로부터 전체적인 프리웨어를 말한다. |
UNIX에는 SunOS, Solaris, HP-UX, AIX, DIGITAL UNIX등 다양한 종류가 있으며 다음과 같은 특징이 있다.
SunOS : 선마이크로시스템에서 공급, BSD계열
Solaris : 선마이크로시스템에서 공급, System V계열
HP/UX : 휴렛팩커드에서 공급, OSF/1의 여러 특징을 도입한 System V계열
AIX : IBM에서 System V release 4+BSD 4.4+ OSF/1기반의 UNIX
Digital UNIX : COMPAQ System V release 3+BSD 4.3+ OSF기반의 UNIX
BSD(Berkeley Software Distribution)
SVR4(System V Release)= BSD +AT&T UNIX
-------------------------------------------------------------------------------------------------------------------------------
Unix의 등장
1970년대 초반 벨 연구소의 직원 켄 톰슨, 데니스 리치, 더글라스 매클로리 등의 주도로 처음 개발되었다. UNIX는 대부분의 코드가 C언어로 개발되어 호환성을 확보하였다. UNIX의 강한 호환성과 간결한 구성을 장점으로 빠르게 퍼져나갔다. C언어 또한 Unix와 함께 널리 퍼졌다.
GNU 운동
1980년대 리차드 스톨만은 사유 유닉스에 반대하며 자유 소프트웨어 재단(Free Software Foundation)을 만들고 C로 제작된 유닉스의 완전 복제본(GNU, GNU's Not Unix)을 만들기 시작했다. 그 후 명령처리기, 어셈블러, 컴파일러, 인터프리터, 디버거, 텍스트 편집기, 메일 프로그램 등 대부분의 기능을 복제하는데 성공했지만 1996년까지도 사용 가능한 커널(HURD)을 만드는데 실패 했다.
자유소프트웨어
자유소프트웨어는 영어로 Free Software로 간혹 무료라는 의미로 잘못 이해되기도 한다. 자유 소프트웨어는 금전적인 측면과 전혀 관계가 없고 자유에 대한 관점과 관계가 있다. 자유 소프트웨어의 정의는 다음과 같다.
- 어떤 목적이든 원하는대로 프로그램을 실행시킬 수 있는 자유
- 무료 또는 유로로 프로그램 복제물을 재배포할 수 있는 자유
- 필요에 따라 프로그램을 개작할 수 있는 자유(이 자유가 실제로 보장되기 위해서는 소스 코드를 이용할 수 있어야 한다.
소스 코드 없이 프로그램을 개작하는 것은 극도로 어렵기 때문이다.)
- 공동체 전체가 개선된 이익을 나눌 수 있게, 개작한 프로그램을 배포할 수 있는 자유
자유는 금전적인 측면과 관계가 없기 때문에 자유소프트웨어를 유로로 판매할 때 어떠한 문제도 생기지 않는다.
GNU GPL
GNU의 목적은 사용자에게 자유를 주는것이다. 그래서 자유소프트웨어재단은 GNU 소프트웨어가 사유 소프트웨어로 바뀌는 것을 막는 배포 규정을 만들었다. 이는 GNU GPL(GNU General Public License)라 한다. GNU GPL 규정을 받는 소프트웨어는 자유 소프트웨어의 의무를 가지고 이를 개작한 소프트웨어 역시 GNU GPL 규정을 받게 된다.
오픈소스 소프트웨어(OpenSource Software)
1998년 일부 커뮤니티에서 '자유소프트웨어' 대신 '오픈소스 소프트웨어'라는 용어를 사용하기 시작했다. 이는 자유(Free)가 가진 무료라는 의미가 혼동을 일으켜 이를 피하기 위함이었다. 하지만 어떤 사람들은 자유소프트웨어 운동과 GNU 프로젝트에 동기를 부여한 정신을 배제하고, 대신 기업과 고객에 호감을 사려는 목적을 가지고 있었다. 그래서 '오픈소스'라는 용어는 자유 소프트웨어의 고품질과 잠재력에만 초점을 맞추고 그 밖의 다른 원칙들은 퇴색시키는 용어이다.
물론 대부분의 '자유 소프트웨어' 와 '오픈소스 소프트웨어'는 같은 범주의 소프트웨어를 가리킨다. 하지만 각 용어 사이에서 무엇을 더 중요하게 생각하는지가 다르다. '자유소프트웨어'는 '자유' 이념을 중요시 한다는 것이 포인트이다.
Linux 커널의 등장
자유소프트웨어 재단의 GNU의 커널 제작이 지지부진하자, 1991년 리누스 토발즈(Linus Tovalds)라는 필란드 헬싱키 대학생이 자유소프트웨어 재단의 도구를 이용하여 386기계를 위한 공개 유닉스 커널을 개발하기 시작하였다. 초기 인터넷의 해커들이 자발적인 도움으로 완전히 자유롭고 재배포 가능한 소스로 구성된 유닉스 즉 '리눅스'를 개발하도록 도와주었다. 1993년 후반 리눅스는 안정성과 신뢰성에서 많은 유닉스와 경쟁할 수 있었으며 더욱이 아주 많은 소프트웨어를 운영할 수 있었다.
리눅스의 명칭
리눅스는 엄밀히 따지면 리누스 토발즈가 배발한 유닉스 호환 커널이다. 커널이 없어 완벽하지 못했던 GNU 시스템에 이 리눅스를 결합해 완전한 자유 운영체제를 만들었다. 결론적으로 리눅스는 전체 시스템의 커널만 의미하므로 우리가 흔히 부르는 리눅스 시스템은 실제로 GNU/리눅스 시스템이다.
리눅스 현재
오늘날의 리눅스는 수백 만의 사용자와 수천명의 개발자, 그리고 성장하는 시장을 가지고 있다. 리눅스는 임베디드 시스템에서 사용되기도 하고 로봇 장치들을 제어하는데 사용되기도 한다. 또한 우주로 가기도 했다. 원래 리눅스는 인텔 386 아키텍처 하나에서만 돌아가는 것이 목표였지만 현재는 휴대전화부터 알파 워크스테이션까지 거의 모든 플랫폼에서 동작하며, PC에서 사용할 수 있는 운영체제 중 가장 폭 넓게 이식된 운영체제이다. 리눅스는 데스크탑 환경에서는 Windows와 Mac 다음으로 높음 점유율을 가지고 있으며, 서버 시장에서는 독보적인 점유율을 가지고 있다. 뿐만 아니라 슈퍼컴퓨터에는 98%의 점유율을 가진다.
리눅스 배포판
앞서 이야기 했지만 리눅스라는 명칭은 커널만을 지칭하고 실제 운영체제를 이루는 것들에는 커널 뿐만 아니라 여러 유틸리티와 애플리케이션이 포함되어 있다. 이들을 하나로 묵어 리눅스 운영체제를 배포하기도 하는데 이를 리눅스 배포판이라고 한다. 리눅스 배포판에는 수 많은 종류가 있고 지금도 계속 생기고 없어지고 있지만 여기서는 크게 데비안계열, 레드햇 계열, 기타로 분류하여 몇가지만 설명하도록 하겠다.
데비안
데비안은 1993년 8월 이안 머독(Ian Murdock)에 의해 GNU와 리눅스 정신으로 공개적으로 만드는 새로운 배포판을 표방하면서 시작했다. 데비안은 주의깊게, 그리고 신중하게 구성됐으며 유지 보수와 지원도 같은 방식으로 이루어졌다. 데비안의 이름은 이안 머독과 그의 부인 Debra의 이름이 합쳐져서 만들어진 단어이다. 데비안 리눅스는 여러가지 장점이 있지만 그중에서도 쉬운 업그레이드는 큰 장점이다. 특히 (Advanced Packaging Tool, APT)는 패키지 관리에서 매우 유용하다.
우분투
'타인으로의 인류애'를 의미하는 남아프리카 줄루족과 코사족의 단어 '우분투'는 데스크톱에서 가장 많이 애용되는 리눅스 배포판 이다. 캐노니컬(Canonical)이 지원하는 우분투 재단(Ubuntu Foundation)은 2004년 데비안 리눅스를 기반으로 리눅스의 데스크톱 저변 확대를 목표로 우분투 리눅스를 만들었다. 6개월마다 배포되며 2년마다 장기지원 버전을 배포한다. 우분투의 철학 "인류를 위한 리눅스"에서 보듯이 세계의 다양한 언어를 지원하고 리눅스를 잘 모르는 사람을 위해서 운영체제를 손쉽게 설치하고 사용할 수 있도록 만들어 졌다. 뿐만 아니라 데비안을 기반으로 제작되어 데비안의 장점또한 대부분 흡수하였다.
리눅스 민트
리눅스 민트(Linux Mint)는 우분투에서 파생된 리눅스 배포판으로 우분투와 달리 독점 소프트웨어인 자바와 플래시 웹 플러그인 등을 기본적으로 포함에 사용자가 더욱 쉽게 사용할 수 있도록 만든 배포판이다. 민트는 우분투에서 파생되었기 때문에 우분투와 같은 소프트웨어 저장소를 사용하고 실제 소프트웨어도 우분투와 유사하다. 또한 우분투의 팁들은 대부분 민트에서 적용가능 하다.
레드햇 엔터프라이즈 리눅스(Red Hat Enterprise Linux)
1995년 마크 유잉(Marc Ewing)과 로버트 영(Robert Young)이 레드햇 소프트웨어사를 설립하고 제작하고있는 리눅스 배포판 이다. 레드햇 소프트웨어사는 거의 최초로 자유 소프트웨어를 이용해 상업적 활동을 하는 성공한 기업이다. RHEL은 한국과 미국 시장에서 서버용으로 가장 많이 사용되는 리눅스 배포판이다.
Fedora
Fedora는 레드햇사의 리눅스 배포판이다. RHEL이 엔터프라이즈용에 유료인 반면 Fedora는 데스크탑용에 무료이다. 버전업이 빠른 것이 특징이며 레드햇에서 기능을 기업에서 사용하는 RHEL에 탑제하기 전 테스트하는 용도로 사용하기도 한다. 리눅스 커널의 제작자 리누스 토발즈도 이 배포판을 사용하는 것으로 알려져 있다.
Cent OS
Cent OS는 RHEL에서 파생된 리눅스 배포판이다. Cent OS는 리눅스의 소스공개 라이센스에 의해 RHEL의 소스가 공개되었고 이를 기반으로 2004년부터 만들어졌다. 기업의 지원이 있는 RHEL과 달리 Cent OS는 커뮤니티 지원만 가능하지만 무료로 사용할 수 있고 소스코드도 완전히 공개되어 있다. Cent OS는 태초부터 RHEL의 기능적 호환을 목표로 개발되었기에 지금도 계속 발전하는 RHEL에 최대한 가깝게 만드는 것이 목표인 배포판이다. 무료로 RHEL 가까운 리눅스를 사용할 수 있다는 장점 때문에 Cent OS는 폭발적으로 성장했고, 최근에는 Cent OS 프로젝트가 레드햇에 흡수되기도 하였다.
비교표(Comparison chart)
Linux(리눅스) | Unix(유닉스) | |
설명 | 리눅스는 오픈소스개발과 무료OS의 한 예이다. | 유닉스는 대학, 회사, 큰 기업에서 주로 선호하는 OS이다. |
비용 | 리눅스는 무료로 배포되고 무료로 다운로드되며 잡지나 책을 동해서도 배포될 수 있다. 유료버전의 리눅스도 있지만 대부분 윈도우보다는 저렴하다. | 판매 회사에 따라서 다른 종류의 유닉스는 가격이 저마다 다르다. |
사용자 | 모든사람. 집에서 사용하는 사람에서부터 개발자 그리고 컴퓨터 열혈팬 같은 사람들 모두. | 유닉스 운영체제는 주로 메인프레임, 서버 그리고 모든사람을 위해 설계된 OSX를 제외한 워크스테이션을 위해 개발되었다. 유닉스 환경과 클라이언트-서버 프로그램 모델은 인터넷의 개발의 필수 요소이다. |
제조사 | 리눅스 커널은 커뮤니에 의해 개발되었다. 리누스 토발즈(Linus Benedict Torvalds, 리눅스개발자)가 이를 감독하고 있다. | Solaris (Oracle), AIX (IBM) & HP-UX Hewlett Packard 그리고 Apple Makes OSX의 Unix기반 OS를 제공하는 3개의 커다란 배급사가 있다. |
가격 | 무료. 그러나 유료로 지원되는 것이 있다. | 몇몇은 개발용도로 무료이다(Solaris)그러나 유료로 지원되는 것이 있다. |
사용량 | 리눅스는 모바일폰, 태블랫컴퓨터 그리고 비디오게임콘솔에서부터 메인프레임이나 슈퍼컴퓨터까지 다양한 컴퓨터 하드웨어에 설치가 가능하다. | 유닉스 운영시스템은 인터넷서버, 워크스테이션과 PC들에 사용된다. 다수의 금융인프라 그리고 많은 24x365 고가용솔루션의 백본이다. |
프로세서 | 다양한 종류가 있다. | x86/x64, Sparc, Power, Itanium, PA-RISC, PowerPC 등 |
개발과 배포 | 리눅스는 오픈소스개발, 즉 코드의 공유와 공동작업과 각 포럼 등의 특성을 통해 개발되었으며 그리고 다양한 판매사에 의해 배포된다. | 유닉스 시스템은 다양한하게 나누어진다. (대부분 AT&T 그리고 다양한 상업적 판매사와 비영리 단체에 의해 개발됨) |
아키텍처 | 원래 인텔의 x86 하드웨어를 위해 개발되었으며, ARM을 포함한 24개 이상의 CPU 타입들도 지원가능하다. | PA-RISC 그리고 아이타니엄 기계에 사용가능하다. Solaris 또한 x86/x64기본시스템에 사용가능하다. OSX는 PowerPC(10.0-10.5)/x86(10.4)/x64(10.5-10.8)에 가능 |
GUI | 리눅스는 기본적으로 KDE와 Gnome의 두 가지 GUI를 제공한다. GUI는 선택사항이다. | 초기에 유닉스는 커맨트기반의 OS였다. 그러나 후에 GUI가 생성되어 공통 데스크톱 환경으로 불렸다. 대부분 배포는 현재 Gnome을 탑재하고 있다. |
파일 시스템 지원 | Ext2, Ext3, Ext4, Jfs, ReiserFS, Xfs, Btrfs, FAT, FAT32, NTFS | jfs, gpfs, hfs, hfs+, ufs, xfs, zfs format |
텍스트모드 인터페이스 | BASH (Bourne Again SHell)는 리눅스의 기본 쉘이다. BASH는 다수의 명령 인터프리터를 지원한다. | 원래는 Bourne Shell이다. 현재는 BASH, Korn & C를 포함한 다른 많은많은 쉘들과 호환된다. |
보안 | 리눅스는 지금까지 약 60-100개의 바이러스 명단이 있다. 그들중 요즘은 아무도 활발하게 퍼지고 있지 않다. | 지금까지 어림잡아 유닉스의 바이러스는 85-120정도가 보고되었다. |
위협 탐지와 해결 | 리눅스의 경우 위협탐지와 해결이 매우 빠르다. 리눅스가 주로 커뮤니티 기반이기 때문이다. 그리고 언제나 아무 리눅스 사용자가 어떠한 종류의 위협이라도 게시하면, 세계의 다른 지역의 몇몇의 개발자들은 그 작업을 시작한다. | 유닉스의 본래 독점적인 성격으로 인해, 사용자는 적절한 버그수정 패치를 얻기 위해선 한동안 기다려야 했다. 그러나 이것은 일반적 이진 않다. |
첫시작 | 1992년 MINIX(유닉스와 비슷한 시스템)에 의해 영감을 받은 리누스 토발즈가. GUI, Drivers 등의 많은 특성들을 추가한 후에,지금의 리눅스가 된OS의 프레임워크를 개발하였다 리눅스 커널은 1991년9월 17일 출시되었다. | 1969년, Bell연구소의 AT&T직원들과 데니스리치에 의해 개발되었다. 유닉스는 C언어로 작성되었으며 휴대용제품, 시분할 환경의 다중작업과 다중사용자 시스템을 위해 설계되었다. |
예시 | Ubuntu, Fedora, Red Hat, Debian, Archlinux, Android 등 | OS X, Solaris, 모든 리눅스 |
'Software' 카테고리의 다른 글
ROM BIOS란? (0) | 2016.05.18 |
---|---|
명령어(Command) (0) | 2016.05.10 |
(용어)BSD(Berkeley Software Distribution) and Shell(셸) (0) | 2016.04.21 |
GNU C library(glibc) 와 C library(libc)와의 관계 (0) | 2016.04.12 |
가상 메모리 (0) | 2016.02.04 |