UNIX 란?
유닉스의 특징과 장점
유닉스의 구성과 내부구조
1.UNIX의 특징과 장점
- 대화식 운영체제
사용자에게 명렁어를 입력받기 위해서 유닉스는 쉘 프롬프트를 화면에 나타낸다.프롬프트가 나타난 상태에서 사용자가 명령어를 기술하면 그 명령어는 명령어 해석기(shell)를 통하여 시스템에 전달되고 시스템은 명령어를 처리하여 정상적인 명령인지 오류 명령인지에 대하여 답변해 주면서 동시에 시스템의 고장 원인에 대한 답변도 알려주는 방식으로 사용자가 마치 시스템과 대화하는 것과 같은 방식으로 사용된다.
- 멀티태스팅
DOS와의 커다란 차이점인 멀티태스킹(Multi-Tasking)은 하나의 명령어 처리가 완료되지 않은 상태에서 다른 명령어를 처리할수 있다는 뜻으로, 즉 여려개의 명령어를 동시에 처리할 수 있는 방식을 의미한다.
- 멀티유저환경
멀티태스킹와 같은 기능이 가능함으로써 멀티유저(Multi-User)시스템으로 쓰여 질수 있는 것이다. 멀티유저는 다중 사용자라는 뜻으로 여러 사용자가 시스템을 동시에 사용할 수 있도록 되어 있다.이런 이유로 유닉스 시스템에 있어서 보안이 상당히 중요한 의미를 가지게 됐고 시스템 내부에서 permission이나 account등을 두어서 보안에 신경을 고 있다. 여기서 premission이란 화일이나 디렉토리에 속성을 두어 일정 집단이나 개인 이외에는 접근할수 없도록 하는 것을 말하고 account란 다른 말로 login name 이라고도 하며 사용자의 고유한 접속번호이다.
참고:PassWard 지정 및 변경 방법
PassWard 지정 및 변경방법
멀티태스킹과 멀티유저 환경 이라는 특징을 가질수 있는 것은 바로 TSS(Time Sharing System) 방식, 즉 시분할 처리 시스템이므로 가능한 것이다. 시분할 처리 시스템이란 CPU(중앙처리장치)의 처리 능력이 날이 갈수록 강력해 지고 명령처리가 빨라지는데, 이것을 개인용으로 사용한다면 CPU는 사용자의 명령 요구시에만 명령처리를 하고 나머지 시간에는 아무일도 하지 않는다.그러므로 명령처리기(processor)는 sleepg하는 시간이 많아지는데, 이러한 점에서 개발된 명령처리 방식이 시분할 처리 시스템이다. 즉 다시 말해서 여러개의 명령어들을 조금씩 나누어 번갈아 가면서 처리하는 방식을 말한다.
- 계층적 화일 시스템
UNIX 화일 시스템은 다음 그린과 같은 그조로 되어 있다. 이 구조는 마치 나무를 거꾸로 세워 놓은 것 같다고 해서 tree구조라고 부르기도 한다.그린에서 나타남 디렉토리들은 유닉스의 가장 일반적인 디렉토리들이며 여러의 디렉토리와는 약간의 차이가 있을수도 있다.
root 디렉토리는 가장 상위에 존재하며 중요한 시스템 화일들이 보관되어 있다. dev 디렉토리에는 시스템에 부착된 프린터,모니터,디스크드라이브와 같은 장치들과 관련된 장치 화일들이 있다.
etc 디렉토리에는 시스템관리자가 시스템을 관리,보수,유지하기 위해서 사용할 수 있는 명령어들과 정보가 담긴 화일들이 존재한다. bin 디렉토리에는 유닉스 쉘 명령어들이 보관되어 있다.
lib 디렉토리에는 C언어 라이브러지와 같은 언어용 라이브러리들이 들어 있다. tmp디렉토리에는 임시 화일을 저장해 놓는 곳으로 에디터나 컴파일러 등이 이 디렉토리를 사용한다.이 디렉토리 안에 있는 화일들은 시스템이 다시 재부팅 될때 지워진다.
위의 디렉토리들과 달리 usr 디렉토리 밑에 있는 서브디렉토리들은 사용자 한명당 하나씩 할당되는 사용자의 홈디렉토리들이다.
예를 들어, 그림에서 usr 디렉토리 아래에 있는 jain과 orion 디렉토리는 각각 jain과 orion이라는 사용자 ID를 가진 사용자들의 홈디렉토리이다.
- 이식성(Portability)
이식성이란 하드웨어의 종류에 상관없이 운영되는 특성을 말한다.예를 들어, PC에서 작성한 응용 프로그램을 워크스테이션에서도 실행할수 있다면 이를 이식성이 뛰어 나다고 할수 있을 것이다. 표에서 보듯이 유닉스는 PC에서부터 슈퍼컴퓨터까지 탑재될수 있다.
- 유연성
동일 기종간 또는 타기종간의 통신(communication)상의 유연성을 가지고 있다. 따라서 전자우편이나 통신망이 많이 이용되고있으며 최근에는 PC통신에 많이 사용되고 있는데,통신망의 유연성이라는 것은 기종간의 자료를 보내고 받아 들임에 있어서 자료의 손상이 적고 어느 기종이든 편리하게 통신할수 있다는 것을 의미한다.
- 호환성
타 기종에 자유로이 사용되므로 호환성이 높다.
- 가상메모리
유닉스는 가상 메모리 운영체제이다. 가상 메모리란 메모리의 용량이 꽉찰 정도로 기억해야 할 것들이 많을 때 하드디스크와 같은 보조 기억 장치에 메모리에 있던 내용들 중 덜 필요한 것들을 기록하고 이 내용들이 다시 필요해지면 메모리로 다시 불러 들이는 방식이다.
이렇게 메모리와 하드디스크간에자료를 교환하는 것을 스왑(Swap)이라고 하며 메모리의 내용을 기록하기 위해서 SCO 유닉스의 설치시에 하드디스크에 스왑공간을 설정한다.유닉스는 이 스왑공간을 위해서 /dev/swa 이라는 화일을 가지고 있다.
2.UNIX의 구성과 내부구조
| 유틸리티 | 명령어 해석기 | 운영체제 | 하드웨어 |
| UNIX-COMMAND | SHELL | KERNEL | H/W(하드웨어) |
UNIX 시스템을 이루고 있는 구성 요소를 크게 나누면 본체를 구성하는 여러가지의 하드웨어와시스템의 운영을 담당하는 운영체제(OS) 그리고 사용자의 명령어를 해석하는 명령어 해석기(SHELL), 유닉스 명령어, 커널(kernel)등의 소프트웨어로 구성되어 있다.
- 하드웨어
유닉스 시스템의 설치에 앞서 다음의 장비가 구축되어야 한다. 386이상의 CPU가 장착된 메인보드와 200M에서 300MB정도의 보조 기억장치(하드 디스크)가 설치된 본체와 전화선을 연결하는 모뎀과 여러 사용자들간의 연결이 가능한 연결장치가 필요하다.
- 소프트웨어
커널,셸,유틸리티로 구분되어져 있는 디스켓 혹은 카트리지 테이프로 디스켓은 5.25인치 2HD 디스켓정도, 카트리지 테이프는 2개정도이다.
다음은 unix의 내부구조로 KERNEL의 역할을 상세히 알아보자.
- KERNEL의 역할
- PROCESSOR CONTROL
PROCESSOR(실행 중인 프로그램들을 부르는 용어)를 제어하는 것으로 여러개의 PROCESSOR 들을 실행,중지하는 실행 프로그램을 제어하는 역할이다.
- SUB SYSTEM
시스템을 제어하는 데 관련된 여러가지 정보와 참고자료로 구성된 형태로 커널 자체적인 호출에 사용되는 것이다.
- INTER PROCESS COMMUNICATION
유닉스 내부에서 운영되는 프로그램들을 연결하는 역할이다.
- SCHEDULEA
스케줄에 관한 것으로 유닉스 내부에서의 프로그램 처리순서 등을 관리하는 역할에 관한 내용으로TSS방식의 시스템에서는 필수적인 내용이다.
- MEMORY MANAGEMENT
(몌모리 관리자)라는 뜻으로 메인 메모리에 읽혀진 프로그램들의 크기라든가 남아있는 영역의 효율적인 관리를 목적으로 운영되는 프로그램이다.
처음 화면