[OS] UNIX란 무엇인가? (UNIX 총정리)
UNIX의 특징
UNIX는 주로 서버용 컴퓨터에서 사용되는 운영체제로 아래와 같은 특징이 있습니다.
1. 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제로, 소스가 공개된 개방형 시스템입니다.
2. 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높습니다.
3. 크기가 작고 이해하기가 쉽습니다.
4. 다중 사용자, 다중 작업을 지원합니다.
5. 많은 네트워킹 기능을 제공하므로 통신망 관리용 운영체제로 적합합니다.
6. 트리구조의 파일 시스템을 가지고 있습니다.
7. 전문적인 프로그램 개발에 용이합니다.
8. 다양한 유틸리티 프로그램들이 존재합니다.
UNIX 시스템의 구성
커널(Kernel)
Unix의 가장 핵심적인 부분입니다. 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주되면서 실행됩니다. 하드웨어를 보호하고 프로그램과 하드웨어 간의 인터페이스 역할을 담당하며 프로세스(CPU 스케줄링)관리, 기억장치 관리, 파일관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 기능을 수행합니다.
쉘(Shell)
사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어해석기 입니다. 시스템과 사용자간의 인터페이스를 담당하며 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재하며 보조기억장치에서 교체처리가 가능합니다. 파이프라인 기능을 지원하고 입출력 재지정을 통해 출력과 입력의 방향을 변경할 수 있습니다. 자신이 만든 Shell을 사용할 수도 있습니다.
유틸리티 프로그램(Utility Program)
일반 사용자가 작성한 응용프로그램을 처리하는데 사용합니다. Dos에서의 외부 명령어에 해당하며 유틸리티 프로그램에는 에디터, 컴파일러, 인터프리터, 디버거 등이 있습니다.
UNIX 파일시스템
UNIX파일 시스템의 디렉터리 구조는 트리구조로 이루어져 있습니다.
1. 디렉터리나 주변장치를 파일과 동일하게 취급합니다.
2. 파일 소유자, 그룹 및 그 외 다른 사람들로부터 사용자를 구분하여 파일을 보호합니다.
3. 파일생성 및 삭제 기능, 보호 기능을 가지고 있습니다.
4. 파일 형식 은 일반파일, 디렉터일파일, 특수파일 이렇게 3가지 형식을 제공합니다.
UNIX파일시스템의 구조
UNIX파일 시스템의 구조는 디스크를 블록으로 분류하여 배치한 구조를 의미하는데 부트블록, 슈퍼블록, I-node블록, 데이터블록으로 구성됩니다.
부트블록 : 부팅시 필요한 코드를 저장하고 있는 블록
슈퍼블록 : 전체 파일 시스템에 대한 정보를 저장하고 있는 블록
I-node 블록 : 각 파일이나 디렉터리에 대한 모든 정보를 저장하고 있는 블록
데이터 블록 : 디렉터리 별로 디렉터리 엔트리와 실제 파일에 대한 데이터가 저장된 블록
※ I-node 블록에 저장된 정보
파일 소유자의 사용자번호(UID), 그룹번호(GID), 파일 크기, 파일 타입, 생성시기, 최종변경시기, 최근사용시기, 파일의보호권한, 파일링크수, 데이터가 저장된 블록의 시작주소가 있습니다.
UNIX 명령어
프로세스 관련
fork : 새로운 프로세스를 생성합니다.
exec : 새로운 프로세스를 수행합니다.
exit : 프로세스 수행을 종료합니다.
wait : fork 후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event를 기다립니다.
kill : 프로세스를 제거합니다.
getpid : 자신의 프로세스 아이디를 얻습니다.
getppid : 부모 프로세스 아이디를 얻습니다.
& : 백그라운드 처리를 위해 명령의 끝에 입력합니다.
signal : 신호를 받았을 때 프로세스가 취할 동작을 지정합니다.
pipe : 프로세스 간 통신을 위한 경로를 설정합니다.
파일 및 디렉터리 & 기타관련
create : 파일을 생성합니다.
open : 파일을 사용할 수 있는 상태로 준비시킵니다.
close : 파일을 닫습니다.
cp : 파일을 복사합니다.
mv : 파일을 이동시키거나 이름을 변경합니다.
rm : 파일을 삭제합니다.
cat : 파일 내용을 화면에 표시합니다.
chmod : 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정합니다.
chown : 소유자를 변경합니다.
find : 파일을 찾습니다.
mknod : 특수 파일을 생성합니다.
mount : 파일 시스템을 마운팅합니다.
unmount : 파일 시스템의 마운팅을 해제합니다.
mkfs : 파일 시스템을 생성합니다.
fsck : 파일 시스템을 검사하고 보수합니다.
mkdir : 디렉터리를 생성합니다.
chdir : 현재 사용할 디렉터리 위치를 변경합니다.
rmdir : 디렉터리를 삭제합니다.
ls : 현재 디렉터리 내의 파일 목록을 확인합니다.
finger : 사용자 정보를 표시합니다.