유닉스는 1969년 Bell 연구소에서 개발된 운영체제로 현대 운영체제의 대부분이 UNIX에 뿌리를 두고 있다. (윈도우 제외 거의 모든 OS의 조상님)
✅ 유닉스 운영체제의 특징
고급 언어인 C언어로 쓰여있어 이식성이 높다. 👆 이식성이란? 한번 만들어진 프로그램을 다른 CPU를 가지는 하드웨어로 쉽게 이식할 수 있다는 뜻 대다수의 컴퓨터가 C 컴파일러를 가지고 있기 때문에 C언어로 쓰여 있으면 이식성이 높다.
시분할 시스템 (Time Sharing System)을 위해 설계된 대화식 운영체제이다. 👆 시분할 시스템이란? 현재 대부분의 운영체제가 사용하고 있는 방식으로 여러 작업을 수행할 때 CPU를 일정한 시간 단위로 분할해 사용한다. 일괄처리에 비해 짧은 응답 시간을 가져 Interative 한 방식이다. => 사람이 느끼기에 빠르면서도 자원을 효율적으로 관리하기 위한 방식
👆 대화식 운영체제란? 쉘 프롬프트에 사용자가 명령을 기술하면, 쉘을 통해 시스템에 전달되고 시스템은 정상인지 오류인지 등을 답변하는 방식으로 마치 시스템과 사용자가 대화하는 것과 같은 방식으로 사용된다.
다중 사용자, 다중 작업(multi-tasking) 을 지원한다. 👆다중 사용자란? 여러 사람이 하나의 컴퓨터에 동시에 접속하는 것을 의미합니다. 👆 다중 작업이란? 한 컴퓨터에서 여러 작업을 동시에 수행하는 것을 의미합니다.
파일 시스템이 트리 구조로 구성되어 있다
✅ 유닉스 운영체제의 구조
🔺 커널 (Kernel)
하드웨어를 보호하고 프로그램과 하드웨어 간 인터페이스 역할을 담당한다.
프로세스 관리 (CPU 스케줄링), 기억장치 관리, 파일 관리, 입출력 관리, 장치 관리 등 컴퓨터의 모든 자원을 초기화하고 제어한다.
응용 프로그램은 system call 을 통해 커널에 요청할 수 있다.
🔺쉘 (Shell)
사용자의 명령어를 인식해 프로그램을 호출하고 명령을 수행하는 명령어 해석기
사용자와 커널 사이의 인터페이스
메모리에 적재되어 있지 않고 명령어가 포함된 파일 형태로 존재한다.
sh, ash, bash, csh 등 다양한 쉘이 존재하며 사용자가 직접 쉘을 만들 수도 있다.