Shine's dev log
Unix 시스템 소개 및 구조 본문
일반적으로 사용자들은 윈도우 운영체제를 많이 사용한다.
하지만, 위와같은 운영체제 외에 아주 강력하고 널리 쓰이는 운영체제가 있으니
그 이름은 바로 Unix이다.
유닉스에 기반을 둔 운영체제로는 Linux, Mac os, 안드로이드 등이 있다.
이처럼 유닉스는 서버용이나 모바일용 운영체제로 많이 쓰인다.
1. UNIX의 특징
UNIX의 특징은 대표적으로 두가지가 있다.
하나는 Time sharing이고, 다른 하나는 conversational system 이라는 것이다.
뭐 사실 거의 모든 운영체제가 가지고 있는 특징이긴 하지만, 한번 짚고 넘어가봤다.
2. UNIX의 구조
위의 그림이 유닉스의 구조를 가장 잘 나타낸 그림이다.
우선 가장 안쪽의 핵심적인 부분을 커널이라고 부른다.
이 커널에 접근하기 위해서 application은 시스템콜을 이용하거나, 쉘을 이용해야 한다.
이 때, 쉘을 이용할때도 시스템콜을 한 번 거쳐가야 한다.
3. SHELL
쉘은 한마디로 정의하자면,
사용자가 입력한 명령을 읽고 해석해서 처리해주는 프로그램 이다.
여기서 사용자의 입력은 터미널과 같은 interactive shell에서 입력되거나 shell script라고 불리는 파일에서 입력된다.
쉘은 유저레벨에 있는 프로그램이다. (커널레벨의 프로그램 아님)
쉘의 종류에는 Bourne shell, C shell, Korn shell, TC shell 등이 있다.
쉘에서는 간단한 명령어나 redirection(< << > >>), sequence(;), pipe(|), background(&), standard in/out
등을 처리해준다.
여기서 redirection이란 standard in과 out 의 방향을 지정해주는 명령어이다.
예를들어 ls > tmp 이렇게 명령할 경우, ls의 결과값이 tmp 라는 파일에 출력되는 식이다.
또, a.out < tmp 이렇게 명령할 경우, a.out 프로그램이 tmp에서 입력을 받아들이는 것이다.
다음으로 sequence이란 순차적 수행을 명령하는 명령어이다.
A ; B 이렇게 쓸 경우, A를 수행 후 B를 순차적으로 수행하라는 말이다.
마지막으로 pipe란 IPC 기법 중 하나로 프로세스간에 데이터를 읽고 쓸때 쓰인다.
4. FILE
유닉스는 hierarchical file system 이다. ( tree 구조 )
유닉스는 모든 것들을 다 파일로 취급한다. 심지어 주변기기들도 모두 파일로 취급하는데,
이런 일관성있는 파일형식이 프로그램을 읽고 쓰기 더 쉽게 해준다.
오늘 내용을 정리해보면,
1. 유닉스는 커널레벨과 유저레벨로 나뉘어져있다.
2. 쉘은 사용자가 입력한 명령어를 해석하는 프로그램이다
3. 유닉스는 모두 파일로 이루어져있다.
본 내용은 공부하며 작성한 것으로, 치명적인 오류가있을 수 있습니다.
'운영체제' 카테고리의 다른 글
쓰레드(Thread)_1 (쓰레드란?) (3) | 2020.04.26 |
---|---|
UNIX 의 파일 처리 (0) | 2020.04.15 |
IPC_2 (signals, RPCs, pipe) (0) | 2020.04.14 |
IPC_1 (cooperating process model) (0) | 2020.04.12 |
프로세스 생성, 대체, 종료 (0) | 2020.04.09 |