RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'unix'에 해당되는 글 1
2009.07.27  유닉스에 대하여  

출처 : 대전 국제 IT 교육센터 정성재 강사

 

1.유닉스란?

유닉스란 일종의 운영체제(OS:Operating System)이다. 운영체제란 컴퓨터를 구동시키는 가장 기본적인 프로그램을 말한다. 흔히 접하는 MS-DOS, Windows 95,Windows 98, Windows NT, Windows 2000,Windows XP ,LINUX 등이 OS이다.대부분의 OS는 한 곳에서 개발배포하지만, 유닉스는 여러종류가 있고, 여러 종류의 시스템에 이식되어 사용되고 있다. 개발되어 있는 OS는 물론 새로이 개발되고 있는 OS들도 유닉스의 영향을 많이 받고 있다. 유닉스는 현재 OS세계에서 최고의 위치를 차지하고 있다.

2.유닉스의 역사와 종류

유 닉스는 1969년 미국의 AT&T사의 Bell연구소에서 연구원으로 근무하고 있던 Ken Tomson 이라는 사람에 의해 만들어졌다. Ken Tomson은 DEC사에서 만든 PDP-7이라는 컴퓨터에서 프로그램을 개발하는데 편리한 운영체제를 새로이 개발하면서 Multics라는 OS를 참고로 하였기 때문에 Unix라는 이름을 붙여 주었다. 그후 AT&T에서 무료로 여러 연구소 및 대학교등에 OS를 Source와 함께 보급하여 여러 버젼의 유닉스가 등장하였다. 대표적인 것으로는 System V계열과 BSD계열이 있다. System V계열은 AT&T사가 주도하는 유닉스계열이며, AT&T사와 Sun Microsystem사가 여기에 속하고, BSD계열은 버클리대학에서 만든 것으로 BSD(Berkeley Software Distribution)계열에는 IBM, DEC, Hewlett-Packard사 등이 있다.

3.유닉스의 특징

(1)Multi-user가능 : 한 대의 기계를 여러 명의 사용자들이 동시에 사용 가능하다.
(2)Multi-Tasking을 지원 : 한꺼번에 여러가지 일을 할 수 있다.
(3)강력한 Network기능 지원: Ethernet(Lan card규격)과 TCP/IP를 이용한 Network 시스템을 지원하며 오늘날 최대의 통신망인 Internet도 바로 이 시스템을 근간으로 운영되었다.
(4)뛰어난 이식성을 지님 : 유닉스는 약간의 어셈블리와 대부분의 C언어로 작성되어 있기때문에 C를 컴파일 할 수 있으면 어셈블리 부분만 새로 만들고, C부분을 다시 컴일함으로써 쉽게 다른 시스템에 이식할 수 있다.
(5)계층적 파일 구조를 가지고 있음.
(6)가상메모리와 Shared Library를 지원
(7)프로세스간의 통신을 위하여 Pipe라는 기능을 제공

4.유닉스의 구성

(1) 개요: 기본적으로 커널(kernel),쉘(shell),유틸리티(utility)세 부분으로 구성되어 있으며,C와 다른 언어의 Compiler등이 있다.
(2) 구성요소
1)Kernel : 운영체제의 핵심으로 사람으로 비유하면 뇌에 해당한다. kernel은 예전 도스의 'MSDOS.SYS','IO.SYS'를 Load하는 것과 같이 유닉스가 부팅될 때 처음 로드된다. 커널의 기능은 시스템의 하드웨어를 제어하는 임무로 메모리, CPU,디스크, 단말기, 프린터등의 시스템자원 활용도를 높이기 위한 스케줄링과 자료관리 등의 핵심요소다.
2)Shell : Shell은 커널과 사용자간의 다리 역할을 하는 것을 사용자로부터 명령을 입력받아 그것을 해석하고 프로그램을 실행하는 역할을 한다. 즉, 컴퓨터에 사람이 명령을 내려 수행해야 하는데 컴퓨터의 모든 하드웨어는 부팅하면서 커널이 인식하게 된다. 사용자가 하드웨어를 제어하려면 커널에게 명령을 내려야 한다. 하지만 커널은 사람의 명령을 알아 듣지 못한다. 이 때 중간에서 사람의 명령을 받아 커널에서 전달해주는 역할을 하는 것이 Shell이다. 한마디로 사람과 커널간의 통역자이다. 유닉스에는 SHELL이 있는데 전통적으로 많이 쓰는 Shell에는 'Bourne Shell','C Shell', 'Korn Shell'등이 있다.
3)Utilty : 말 그대로 유용한 도구이다. 사용자가 특정한 문서의 내용을 찾아 바꾸려고 한다면 찾기명령을 수행하고 수정명령도 내려야 한다. 그러나 이러한 기능을 한번에 [찾아-바꾸기]를 할 수 있는 프로그램이 있다면 이러한 것을 유틸리티라고 한다.


5.유닉스 기본적인 특징

(1) Device와 파일 : Device란 하드디스크, 키보드, 프린트, 화면 출력 장치 등 시스템에 설치된 여러 가지 자원을 말한다. 유닉스에서는 이것들을 모두 파일로 취급한다. 따라서 특정 하드웨어에게 명령을 수행하려면 특정 파일에 명령을 내리면 된다.
예) eject /dev/cdrom
=> CD-ROM드라이브의 트레이(Tray)를 연다.

(2) 유닉스의 파일구조
유 닉스의 파일구조는 /(root)를 기준으로 그 하위 디렉토리에 usr, var, bin 등이 존재하고 다시 usr 디렉토리 밑에는 local, src등의 디렉토리가 존재한다. 이러한 구조를 계층적 파일 구조라하며, 거꾸로 뒤집에 놓으면 나무처럼 생겼다고 해서 Tree구조라고도 불리운다.

(3) pipe와 redirection

1) pipe
ㄱ. 유닉스가 프로세서의 통신을 위해 도입한 것으로 어떤 프로세스의 표준 출력이 다른 프로세스의 표준입력으로 쓰이게 하는 것.
ㄴ. pipe가 여러 개 연결되어 pipe-line을 구성하게 되면 자료들은 pipe-line를 따라 흐르게 된다.
예) ls | more
=> ls 명령의 출력이 more라는 filter의 입력으로 사용되어 결과가 한 화면씩 출력된다.
ls | sort | more
=> ls의 결과인 자료들은 sort를 통해 정렬되고, 다시 more를 통해 한 화면씩 출력된다.
2) redirection : 기본개념은 pipe와 유사하다. 이것은 프로세스의 표준 출력 방향을 바꾸거나 표준 입력을 바꾸는 역할을 한다.
예) aa > zz : aa의 실행결과를 zz라는 파일에 저장하라는 의미
aa >> zz : aa의 실행결과를 zz라는 파일에 덧붙이라는 의미
aa < zz : aa를 실행하면서 표준입력으로 파일 zz의 내용을 사용하라는 의미

(4) 가상메모리와 Shared Library

1) 가상메모리(Virtual Memory)
ㄱ. 개념: 하드디스크의 일부를 메모리처럼 사용되는 것을 말한다. 하드디스크는 데이터가 저장되는 공간이고, RAM(메모리)는 작업공간이라 할 수 있다. 프로그램을 실행시키면 작업공간에 해당하는 메모리로 공간이 이동되는 데, 메모리의 공간이 작으면 큰 프로그램은 실행시킬 수 없게 된다. 이러한 문제점을 극복하기 위해 사용되는 것이 가상메모리이고,
유닉스에서는 SWAP이라고 부른다.
ㄴ.Swapping : 메모리에 프로그램들이 많이 올라와 공간이 꽉 찼다고 하더라도 가상메모리를 설정하면 또다시 새로운 프로그램을 실행시킬 수 있게 된다. 이것은 메모리에 올라와 있지만 사용하지 않고 있는 프로그램을 하드디스크에 설정된 가상 메모리 공간으로 보내고 그 빈 공간에 새로운 프로그램을 로딩하기 때문이다. 또한 가상메모리에 있는 내용을 사용하려면 다시 메모리로 올리고, 그 대신에 메모리에 있던 다른 내용이
하드디스크에 저장된다. 이처럼 메모리와 하드디스크사이의 데이터교환을 스왑핑(swapping)이라고 한다.
2) Shared Library
ㄱ. 설명: 프로그램에서 특정한 기능을 하는 routine들을 모아 놓은 것을 library라 하여, 프로그램 개발시 library중에서 필요한 routine들을 받아서 link시킨다. 이렇게 되면 같은 기능을 하는 routine들이 실행파일마다 들어가므로 실행파일의 크기도 커지고 메모리도 남게된다. 그래서, 같은 routine들을 공유하는 것이 Shared Library이라 한다.
ㄴ. 사용법 : 프로그램 실행시 library이름과 함께 OS에 요청하면 OS가 찾아서 프로그램에 Link시켜준다.
ㄷ. 장점 : 실행파일의 크기가 작아져 디스크의 낭비가 적어지고, 여러 프로그램에서 같은 library에 있는 routine을 사용시 한번만 load하면 되므로 메모리가 절약된다.
ㄹ.기타 : MS-Windows나 OS/2의 DLL(Dynamic Link Library)와 비슷하지만 유닉스가 훨씬 더 효율적으로 지원한다.

6. 유닉스 파일시스템의 특징

1) 파일 이름 : 유닉스의 파일이름은 종류마다 다르지만 보통 14자에서 255자까지 지원한다. 또한 도스에서처럼 파일을 이름과 확장자로 나누지 않는다. 유닉스 파일이름 안에 들어 있는 '.'은 이름과 확장자를 구별하는 것이 아니고, 그냥 이름의 일부분이다. 하지만 유닉스파일 이름에서 '.'으로 시작하는 파일은 hidden파일로 취급받아서 보통의 경우에는 보이지 않는다. 또한 유닉스는 대,소문자를 구별한다.
2)파일 속성 : 도스 파일에는 Archive,Hidden, System, Read Only등 4가지 속성이 있다. 유닉스 파일도 속성을 가지고 있지만, 도스와는 다르다. 유닉스의 파일속성은 기본적으로 읽기(r), 쓰기(w), 실행(x)의 속성을 가지고 있으며, 디렉토리도 파일과 똑같이 취급하므로 디렉토리임을 표시하는 속성(d)도 있다. 물론 디렉토리도 r,w,x의 속성을 가지고 있다. 유닉스에서는 이러한 파일 속성에 의해 파일에 접근할 수 있는 권리가 정해지므로 이것을 허가권(Permmission)이라고 한다.

7. 유닉스 명령어의 특징(도스와 비교)

(1) 모든 명령어가 파일의 형태로 존재하고, 도스에 비해 상당히 많다.
(2) 대소문자를 구분한다.
(3) 도스에서는 옵션사용시 /(슬래쉬)를 사용하지만 유닉스에서는 -(대쉬)를 사용한다.
(4) 유틸리티마다 다르지만 많은 유틸리티들이 option을 같이쓰는 것을 허용한다.
예를 들면 ls -alF는 ls -a -l -F와 같은 의미이다.
(5) 긴파일의 이름도 지원한다.(리눅스에서 기본적으로 255자까지 사용가능)
(6) 메타문자(도스의 와일드카드)인 *,?를 사용한다.

Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
OpenSource (1)
Tips! (1)
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31