검수요청.png검수요청.png

유닉스

위키원
(Unix에서 넘어옴)
이동: 둘러보기, 검색
유닉스(UNIX)
유닉스(UNIX)
켄 톰슨(Kenneth Lane Thompson)
데니스 리치(Dennis Ritchie)

유닉스(UNIX)는 1969년 미국 AT&T 벨연구소(Bell Lab.)가 개발한 공개형 오픈소스 운영체제(OS)이다. 1969년 벨연구소 소속의 켄 톰슨(Ken Tompson)이 어셈블리 언어를 사용하여 개발했으며, 1972년 데니스 리치(Dennis Ritchie)가 C 언어를 사용하여 다시 작성했다. 리눅스(Linux)와 AIX, 솔라리스(Solaris), BSD, FreeBSD 등은 유닉스 기반의 운영체제이다. 안드로이드(Android)와 아이오에스(iOS)는 유닉스를 변형하여 개발한 운영체제이다.

개요[편집]

유닉스(Unix)는 교육 및 연구 기관에서 즐겨 사용되는 범용 다중 사용자 방식의 시분할 운영 체제이다. 1970년대 초반 벨 연구소 직원인 켄 톰슨, 데니스 리치 등이 처음 개발하였다. 오늘날의 유닉스 시스템은 여러 회사들과 비영리 단체들이 이 커널로 활용하여 다양한 운영체제를 개발하고 있다. 유닉스는 처음부터 다양한 시스템 사이에서 서로 이식할 수 있고, 멀티 태스킹과 다중 사용자를 지원하도록 설계되었다.

유닉스 시스템은 다음과 같은 개념, 즉 일반 텍스트 파일, 명령행 인터프리터, 계층적인 파일 시스템, 장치 및 특정한 형식의 프로세스 간 통신을 파일로 취급 등을 가지고 있다. 소프트웨어 공학 측면에서, 유닉스는 C의 사용과 유닉스 철학이라는 부분이 특징이다. 유닉스(UNIX) 상표권은 오픈 그룹이 갖고 있으며, 유닉스 소스 코드에 대한 저작권은 노벨이 소유하고 있다. SCO 그룹은 SCOsource라는 프로그램을 통해 유닉스 시스템 V Release 4 (및 자체 릴리즈인 UNIX 시스템 V, Release 5)에 기반한 코드로 된 운영 체제를 사용하고자 하는 모든 기업 및 개인들에게 라이선스를 제공하고 있다. 초기의 유닉스 운영체제는 어셈블리(Assembly) 언어로 작성되었으나, 같은 연구소의 데니스 리치(Dennis Ritchie)가 C 언어를 개발한 뒤, 이 언어를 이용하여 유닉스를 다시 만들었다. 그리하여 1973년에 다른 운영체제와는 달리 유닉스는 C 언어가 90% 이상이고 나머지가 어셈블리 언어로 작성되어, 고급언어로 작성된 최초의 운영체제가 되었다.

한편, 닷컴 버블로 유닉스 사업자들에게도 합병의 바람이 불게 되었다. 1980년대에 태어난 많은 상업 유닉스 업체들 중에서 휴렛 패커드의 HP-UX,IBM의 IBM AIX, NeXT의 NEXTSTEP (나중에 오픈스텝이 되었다가 이제 맥 OS X가 됨) 및 썬 마이크로시스템즈 솔라리스 운영 체제들만이 아직도 시장에서 판매되고 있다. 디지털 이큅먼트 코퍼레이션(DEC), 데이터 센트럴(Data General), 산타 쿠르즈 오퍼레이션 (현재는 Tarantella) 등은 다른 업체에 합병되거나 사업을 접었다. 또한, 리눅스와 오픈소스 BSD의 사용이 증가됨에 따라 기존의 상업 유닉스 시장이 침식되어 갔다.

등장배경[편집]

UNIX의 탄생과 성장은 1965년 MIT, AT&T 벨 연구소, General Electric에서는 Multics라는 실험적인 운영체제를 공동으로 개발하는 프로젝트를 진행하였다. 이 프로젝트는 멀티태스킹, 멀티유저를 지원하는 초기 형태의 시분할 운영체제를 만들고자 했던 것이지만 Multics는 초기의 설계 목표와는 다르게 비대해지고 쓸모없는 운영체제로 개발되어갔고, 프로젝트는 좌초되기에 이르렀다.

그러나, 이 프로젝트에 참여했던, 켄 톰슨과 몇몇 연구원들은 프로그램에 관한 연구를 효과적으로 수행하기에 적합한 환경을 만들어보자는 의도에서 계속하여 운영체제 개발에 몰두 하였고, 그래서 탄생한 것이 초기 형태의 UNIX였다.

당시에는 하드웨어를 운영하는 프로그램을 그 하드웨어의 어셈블러로 작성하여 사용했는데, 유닉스 역시 미니 컴퓨터인 PDP-7에서 돌아가도록 만들어진 것이었으며, 어셈블리어로 작성되어 있었다. 그러니 다른 기종에 이식하려면 그 기종에 맞는 어셈블리어로 다시 작성해야만 하는 불편을 겪어야 했었다. 이렇게 초기의 UNIX는 기계 의존적이며, 기종간에 호환성이 없는 그런 운영체제였다. 그리고 UNIX를 운영체제로 사용하던 PDP-7 또한 많은 소프트웨어를 제공하지 못하는 상황이었다.

1973년 이러한 상황에서 데니스 리치(Dennis Ritchie)가 C언어를 개발함으로써, 어셈블리 언어로 되어있던 UNIX는 C언어로 재작성되어 다시 태어나게 되었다. 이제 UNIX는 이식성과 호환성있는 시스템으로서 사용자들로부터 큰 반향을 일으켰고, 벨 연구소를 중심으로 유닉스 사용자 그룹이 형성되며 빠르게 버전업 되면서 퍼져 나가게 되었다. UNIX는 주로 연구와 학습을 목적으로 대학이나, 연구소 등에 무료로 배포되었고, 이를 이용하는 프로그래머들 또한 자연스럽게 서로에게 필요한 프로그램을 공유하는 공동체 분위기가 조성되어 있었다. Source 프로그램이 공개되어 있었던 UNIX는 많은 대학들과 연구원들에 의해 연구되어 마침내 상업 시장에 진출하기에 이르렀고, Berkeley Unix(BSD), SYSV와 같은 계열로 분화되고, SunOS, OSF/1.AIX, HP-UX, Solaris, IRIX, SCOUNIX등과 같은 다양한 버전의 유닉스 운영체제들을 탄생시키는 모체가 되었다.[1]

특징[편집]

대화식 운영체제[편집]

사용자에게 명렁어를 입력받기 위해서 유닉스는 쉘 프롬프트를 화면에 나타낸다.프롬프트가 나타난 상태에서 사용자가 명령어를 기술하면 그 명령어는 명령어 해석기(shell)를 통하여 시스템에 전달되고 시스템은 명령어를 처리하여 정상적인 명령인지 오류 명령인지에 대하여 답변해 주면서 동시에 시스템의 고장 원인에 대한 답변도 알려주는 방식으로 사용자가 마치 시스템과 대화하는 것과 같은 방식으로 사용된다.

멀티태스팅[편집]

DOS와의 커다란 차이점인 멀티태스킹(Multi-Tasking)은 하나의 명령어 처리가 완료되지 않은 상태에서 다른 명령어를 처리할수 있다는 뜻으로, 즉 여려개의 명령어를 동시에 처리할 수 있는 방식을 의미한다.

  • 멀티유저환경

멀티태스킹와 같은 기능이 가능함으로써 멀티유저(Multi-User)시스템으로 쓰여 질수 있는 것이다. 멀티유저는 다중 사용자라는 뜻으로 여러 사용자가 시스템을 동시에 사용할 수 있도록 되어 있다.이런 이유로 유닉스 시스템에 있어서 보안이 상당히 중요한 의미를 가지게 됐고 시스템 내부에서 permission이나 account등을 두어서 보안에 신경을 고 있다. 여기서 premission이란 파일이나 디렉토리에 속성을 두어 일정 집단이나 개인 이외에는 접근할수 없도록 하는 것을 말하고 account란 다른 말로 login name 이라고도 하며 사용자의 고유한 접속번호이다.

멀티태스킹멀티유저 환경 이라는 특징을 가질수 있는 것은 바로 TSS(Time Sharing System) 방식, 즉 시분할 처리 시스템이므로 가능한 것이다. 시분할 처리 시스템이란 CPU(중앙처리장치)의 처리 능력이 날이 갈수록 강력해 지고 명령처리가 빨라지는데, 이것을 개인용으로 사용한다면 CPU는 사용자의 명령 요구시에만 명령처리를 하고 나머지 시간에는 아무일도 하지 않는다.그러므로 명령처리기(processor)는 sleepg하는 시간이 많아지는데, 이러한 점에서 개발된 명령처리 방식이 시분할 처리 시스템이다. 즉 다시 말해서 여러개의 명령어들을 조금씩 나누어 번갈아 가면서 처리하는 방식을 말한다.

  • 계층적 파일 시스템

UNIX 파일 시스템은 다음 그림과 같은 구조로 되어 있다. 이 구조는 마치 나무를 거꾸로 세워 놓은 것 같다고 해서 트리구조라고 부르기도 한다. 그림에서 나타난 디렉토리들은 유닉스의 가장 일반적인 디렉토리들이며 여러의 디렉토리와는 약간의 차이가 있을수도 있다. 루트(root) 디렉토리는 가장 상위에 존재하며 중요한 시스템 파일들이 보관되어 있다. dev 디렉토리에는 시스템에 부착된 프린터, 모니터, 디스크드라이브와 같은 장치들과 관련된 장치 파일들이 있다. etc 디렉토리에는 시스템관리자가 시스템을 관리, 보수, 유지하기 위해서 사용할 수 있는 명령어들과 정보가 담긴 파일들이 존재한다. bin 디렉토리에는 유닉스 쉘 명령어들이 보관되어 있다. lib 디렉토리에는 C언어 라이브러리와 같은 언어용 라이브러리들이 들어 있다. tmp 디렉토리에는 임시 파일을 저장해 놓는 곳으로 에디터나 컴파일러 등이 이 디렉토리를 사용한다. 이 디렉토리 안에 있는 파일들은 시스템이 다시 재부팅될 때 지워진다. 위의 디렉토리들과 달리 usr 디렉토리 밑에 있는 서브디렉토리들은 사용자 한명당 하나씩 할당되는 사용자의 홈디렉토리들이다. 예를 들어, 그림에서 usr 디렉토리 아래에 있는 jain과 orion 디렉토리는 각각 jain과 orion이라는 사용자 ID를 가진 사용자들의 홈디렉토리이다.

  • 이식성(portability) : 이식성이란 하드웨어의 종류에 상관없이 운영되는 특성을 말한다.예를 들어, PC에서 작성한 응용 프로그램을 워크스테이션에서도 실행할수 있다면 이를 이식성이 뛰어 나다고 할수 있을 것이다. 표에서 보듯이 유닉스는 PC에서부터 슈퍼컴퓨터까지 탑재될수 있다.
  • 유연성 : 동일 기종간 또는 타기종간의 통신(communication)상의 유연성을 가지고 있다. 따라서 전자우편이나 통신망이 많이 이용되고있으며 최근에는 PC통신에 많이 사용되고 있는데,통신망의 유연성이라는 것은 기종간의 자료를 보내고 받아 들임에 있어서 자료의 손상이 적고 어느 기종이든 편리하게 통신할수 있다는 것을 의미한다.
  • 호환성 : 타 기종에 자유로이 사용되므로 호환성이 높다.
  • 가상메모리 : 유닉스는 가상 메모리 운영체제이다. 가상 메모리란 메모리의 용량이 꽉찰 정도로 기억해야 할 것들이 많을 때 하드디스크와 같은 보조 기억 장치에 메모리에 있던 내용들 중 덜 필요한 것들을 기록하고 이 내용들이 다시 필요해지면 메모리로 다시 불러 들이는 방식이다. 이렇게 메모리와 하드디스크 간에 자료를 교환하는 것을 스왑(swap)이라고 하며 메모리의 내용을 기록하기 위해서 SCO 유닉스의 설치시에 하드디스크에 스왑공간을 설정한다.유닉스는 이 스왑공간을 위해서 /dev/swa 이라는 파일을 가지고 있다.[2]

종류[편집]

유닉스웨어(UnixWare)[편집]

유닉스웨어(UnixWare)는 노벨(Novell)이 개발한 UNIX System V에 기반한 상품명이다. 이 상품은 1995년 9월 Novell에서 SCO에 팔려 지금은 SCO가 공급한다. UnixWare 최근 버전은 UnixWare 2로 Unix System V Release 4.2와 Novell UnixWare를 통합하는데, 클라이언트/서버 컴퓨팅을 지원한다.

UnixWare는 X/Open의 POSIX1003.1과 다양한 표준에 따른다. 장래 UnixWare 버전은 Spec1170에 따른 것이다.(이것은 현재 단일한 Unix 스펠이 되었다.) UnixWare는 데스크 탑 클라이언트용 UnixWare 2 Personal Editional과 서버용인 Unix2 Application Server의 두 가지 버전이 있다. UnixWare는 현재 Intel 기반 컴퓨터에서만 사용할 수 있는데 SPARC 기반기계와 같은 RISC 기반 컴퓨터에도 사용 가능하게 될 예정이나 3,000개 이상의 애플리케이션이 UnixWare용으로 작성되었으며 UnixWare는 MOTIF 그래픽 유저 인터페이스를 가진다.

솔라리스(Solaris)[편집]

선 마이크로시스템(Sun Microsystem)의 원래 운영체제는 UNIX System V Release 2와 BSD 4.3에 기반한 SunOS이다. 1991년 Sun Microsystems는 운영체제를 포함된 소프트웨어 개발과 판매를 위한 자회사로 SunSoft를 세웠다. 창립시 SunSoft는 SunoS에서 UNIX System V에 기반한 새 유닉스 버전으로 이향하는 일을 시작했다. Sunsoft의 첫 유닉스 버전은 SunoS를 강화한 Solaris 1.0 이었다. Solaris 2.0과 함께 Sunsoft는 SVR4에 기초한 운영체제로 이행 했다.

SunSoft는 150만대가 넘는 기게에 유닉스를 설치했다. Solaris의 현재 버전은 Solaris 2.4이며, Intel과 SPARC 프로세스용으로 Solaris 2.4 버전이 있고 장래에 Soalris PowerPC 프로세스에도 운영 될 예정이다. Solaris 2.4는 데스크 탐과 서버 버전으로 나누어져 있다. Soalris 2.4에는 사용 가능한 광범위한 개발자 툴이 잇으며, 이전 버전보다 MOTIF 그래픽 유저 인터페이스에 대한 자원을 강화했다. Solaris의 이후 릴리즈에서는 모든 자원이 있는 것이다. 9000개 이상의 애플리 케이션이 Solaris 플랫폼에서 돌아간다.

선 마이크로 시스템의 최고 경영자(CEO) 스콧 맥닐리는 반(反) 마이크로 소프트(MS) 진영의 선봉장이다. MS에 대해 그가 남긴 독설은 지금도 심심치 않게 인용된다. MS의 2인자인 스티브 발머에게 만화제목 '비비스 & 버트 헤드(멍청이와 바보)'에 빗대어 발머와 버트헤드'라고 서슴지 않고 말했다. '편리하고 값싸다'는 PC에 대한 고정관념의 허구성과 빌 게이츠의 독점적 형태를 신랄히 파헤치기도 했다. 지금도 기회가 있을 때마다 빌 게이츠를 '독점이윤을 챙기는 괴물'로 몰아 붙이고 있다. 맥닐리는 동부의 공업 지대에서 유년시절을 보냈다. 그의 아버지는 미국 자동차 협회 부회장을 지낸 자동차 제조 및 수리 넘문가. 공장에 친숙했던 맥닐리는 76년 하버드대 경제 학과와 스탠퍼드대 경영학석사(MBA)를 마친 뒤 첫 직장으로 일리노이주의 한 트랙터 부속품 제조 공장을 선택했다. 컴퓨터 문외한 이었던 그가 컴퓨터 업계에 뛰어든 것은 '컴퓨터도 결국 만드는 것'이라는 자신감 때문. 81년 워크스테이션 전문 회사인 오니스(Onyx)의 제조 담당 매니저로 자리를 옮긴 그는 이듬해 MBA 동료들과 함께 워크스테이션을 상업화 하는 회사를 설립한다. 이름은 스탠퍼드 유니버시티 네트워크의 머리글자를 딴 (SUN).

맥닐리는 84년 선의 CEO가 됐고 얼마 뒤엔 미국 언론들에 의해 최고의 경영자 25인중 한 명으로 뽑혔다. 선 본사에는 PC가 한대도 없다. 네트워크를 통해 임직원과 4초 안에 온라인으로 의견을 주고 받고 한꺼번에 4,000명의 직원에게 메일을 보낸다. 팰러앨토에 있는 사옥에선 네트워크란 이름의 미얀마산 마운틴 도그를 키운다. 오래전 그가 외쳤던 '네트워크는 컴퓨터'라는 구호는 지구촌 컴퓨터들이 인터넷으로 연결되면서 현실이 됐다. 모든 컴퓨터는 누구에게도 소유되지 않는 하나의 세계 공용언어로 통해야 한다는 것이 그의 신념이다. 그는 네트워크 컴퓨터 시대에 맞는 새로운 컴퓨터 언어 개발에 착수, '자바'(Java) 라는 차세대 프로그래밍 언어를 탄생시켰다. 이제 그는 자바가 휴대전화 단말기에서 전자제품에 이르는 모든 전자 제품에 탑재될 날을 기다리고 있다.

SCO UNIX[편집]

Santa Cruz Operation(SCO)는 운영체제 기초를 Intel 80386 프로세서용으로 설계된 UNIX System V Release 3 버전, UNIX System V/386 릴리즈 3.2에 두고 있다. 두 개의 주된 SCO 운영 환경은 Open DeskTop 5.0과 Open Server 5.0이다. OpenDesktop 5.0은 Intel기반 개인용 컴퓨터에 사용하게 계속 되었다. openDeskTop은 대부분의 DOS, Window 그리고 XENIX 애플리 케이션을 실행한다. SCO Open Server는 TCP/IP, NFS등 몇 가지 LAN 프로토콜 자원등의 폭 넓은 네트워크 능력을 갖고 있다. Santa Cruz Operation은 약 백 만개의 UNIX 시스템을 팔았다. 이는 많은 컴퓨터 회사들의 협력의 결과였다. SCO UNIX 시스템에서 돌아가는 9000개 이상의 애플리케이션이 있다.

IRIX[편집]

IRIX는 MIPS 기반 워크스테이션용으로 Silicon Graphics가 제공한 독자적인 UNIX System V Release 4 버전이다. IRIX는 64비트 운영체제라는 것이 특징이며, 집약적인 CPU 프로세싱이 필요한 그래픽 애플리 케이션용으로 그 성능을 최적화 할 수 있다. IRIX의 현재 버전은 IRIX5.3이다. IRIX 5.3은 UNIX System V Release 4와 4.2에서 상당히 많은 기능을 가져 왔다.

IDIX 5.3은 많은 영역에서 서버 지원, 애플리 케이션 실행, 디지털 미디어 자원을 포함하여 추가적인 기능을 제공하도록 설계되었으며, XPG3, POSIX, SVID3 그리고 대부분의 SVRX API를 따르고 있다.

HP-UX[편집]

HP-UX는 자체 컴퓨터와 워크 스테이션용으로 HP가 개발, 판매한 유닉스 변종으로 많은 보강과 함께 System V Release 2.0에 기초 했다. HP-UX의 최신 버전은 HP-UX 10.0으로 유닉스 용 X/Open 표준을 확고히 하고 spec1170에 부응하는 장래 HP-UX 버전을 제공하려는 계획에 의해 나온 것이다. 특히 HP 10.0은 XPG4를 잘 따르고 있다. 그것은 UNIX System Interface Definition 3 Level 1 API를 따르고 있으며, Spec1170에서 지정된 모든 네트워킹 API와 함께 SVR4의 정의를 준비하고 있다. HP-UX 10.0은 이제 SVR4 File Directors Layout 구조를 통합하고 있다.

DEC OSF/1[편집]

Digital Equipment Corporation(DEC)은 ULTRIX라는 유닉스 운영체제 상에서 운영되는 컴퓨터를 오랫동안 팔았다. Alpha 프로세서 기반의 컴퓨터 출현으로 Open System Foundation(OSF)이 개발된 OSF/1에 기초해 DEC OSF/1 이라는 변종에 초점을 맞추었다.

DEC OSF/1도 OSF/1 이상으로 폭 넓은 보강을 했다. 64비트 지원실시간 지원, 메모리 관리 강화, 대칭적인 멀티 프로세싱, 빠른 파일 복구 시스템이 특징이다. DEC OSF/1은 OSF/1, Mach 커널에서 운영되는 System V, BSD 요소를 통합했다. OSF/1은 ULTRX 애플리케이션을 위한 backward Compatibility를 제공한다. DEC OSF/1은 curses 자원을 제외하고 Spec1170 POSIX 1003.1과 POSIX 1003.2와 호환된다. 그것은 X/Open XPG4를 따른다.

LINUX[편집]

Linux는 유닉스 운영체제의 변종으로 원래 Intel기반 8086 프로세서 개인용 컴퓨터용으로 설계되었다. 현재 다양한 플랫폼으로 이식되었거나 이식되고 있는 중이다. Linux 개발은 1991년 Linux Torvalds에 의해 시작되었다. 그 당시에 그는 핀란드에 있는 University of Helsink1의 학생이었다. 다른 유닉스 버전과 달리 Linux는 무료로 사용된다. 그러나, GNU(General Public License)라는 개념의 판권이 나왔는데, 이것은 판매자들이 허락 없이 무료로 복사하거나 배포하는 것을 막는 것이다. Linux는 POSIX.1 표준을 따르고 있으며, 개발자의 목표는 그것을 X/Open에서 나온 Spec1170을 따르도록 하는 것이다. Linux는 UNIX System V에서 많은 특성을 가지게끔 많이 보강 했다.

개인용 컴퓨터용으로 가장 널리 사용되는 유닉스 버전이다.

A/UX[편집]

A/UX는 Apple에서 나온 유닉스 운영체제이다. A?UX Machintosh 시스템 7운영체제와 함께 유닉스 시스템의 기능을 통합했다. UNIX System V Release 2.2에 기초해 UNIX System V Release 3과 4, 그리고 BSD 4.2와 4.3에서 많은 기능을 보강 했다. A/UX는 System V Interface Definition과 POSIX를 따르고 있다. A/UX 3은 맥킨토시용 시스템 7 운영체제를 포함하고 있으므로 거의 모든 Machintosh 애플리케이션도 물론 사용 할 수 있다. A/UX는 Motora 680X0 프로세서를 사용하는 Machintish 컴퓨터에서 운영된다.

PowerPC에 기반한 Apple에서 나온 컴퓨터에서는 운영되지 않는다.[3]

문제점[편집]

유닉스의 첫 번째 결점은 사용자 인터페이스에 있다. grep나 aw k등의 커맨드명을 사용하는 시스템은 광범한 레벨의 컴퓨터 사용자에게 적합한 것이라고는 생각할 수 없다.

유닉스의 두 번째 결점은 표준이 없다는 점이다.UNIX에서는 10년간에 호한성이 없는 서로 다른 버전의 시스템이 존재해 왔다.주요한 버전은 AT&T버전,버클리 버전,마이크로소프트 XENIX버전의 셋이다.

마지막 세 번째 요인은 유닉스가 광범한 시스템 관리를 필요로 한다는 것이다.

유닉스는 매일 전문적인 지원을 필요로 하며,또한 적절한 순서로 셧다운시키지 않고 정지시킨 경우,시스템 전체를 소거해 버릴 두려움이 있다.[4]

각주[편집]

  1. NATION OF 6KKKI, 〈1. 유닉스의 개요 - 역사, 특징, 구조〉, 《티스토리》, 2013-02-20
  2. 이화여자대학교 수학과 공식 홈페이지 - http://math.ewha.ac.kr/~jylee/CompMath.html/unix2/ch2.html 유닉스의 특징과 장점 유닉스의 구성과 내부구조
  3. Samson, 〈유닉스의 종류 〉, 《Daum Tip》, 2007-04-18
  4. 컴퓨터/통신일반, 〈UNIX의 단점〉, 《레포드 월드》, 2002-06-14

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 유닉스 문서는 소프트웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.