운영체제의 개념
- 응용 프로그램이 하드웨어를 제어하여 실행될 수 있도록 관리하는 소프트웨어
- 컴퓨터 시스템의 자원을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하게 사용할 수 있는 환경을 제공함
운영체제의 특징
- 여러 프로그램을 충돌 없이 동시에 실행할 수 있게 관리한다.
- 컴퓨터 하드웨어와 프로그램 사이의 인터페이스 역할을 한다.
- 시스템 오류 및 예외 상황을 감지하고 보고한다.
- 자원 이용 현황에 대한 통계자료를 제공한다.
유닉스(Unix)
- 윈도우를 제외한 리눅스, 안드로이드, Mac OS 등의 많은 OS가 Unix를 기반으로 하고 있음
- 유닉스 계열 운영 체제는 1970년대 말에서 1980년대 초에 등장하기 시작했다. 유닉스는 교육 및 연구 기관에서 주로 사용되는 범용 다중 사용자 방식의 시분할 운영체제
- C언어 자체가 Unix 시스템 프로그래밍을 위해 개발되었고 이 C언어로 작성되어 이식성이 높고 장치-프로세스 간의 호환성이 높다.
유닉스(Unix)의 구성
- 유닉스를 구성하는 요소로는 커널(Kernel)과 쉘(Shell), 유틸리티 프로그램(Utility Program)과 그 외의 것들로 구성되어 있다.
[1]. 커널(Kernel) : Unix의 가장 핵심이 되는 부분으로 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행된다. 하드웨어를 보호하고 프로그램과 하드웨어 간의 인터페이스 역할을 담당하며 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 기능을 수행하는 부분이다.
[2]. 쉘(Shell) : 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기이다. 시스템과 사용자간의 인터페이스를 담당하며 주기억장치에 상주하지 않고 명령어가 포함된 파일 형태로 존재하며 보조기억장치에서 교체 처리가 가능하다.
[3]. 유틸리티 프로그램(Utility Program) : 일반 사용자가 작성한 응용 프로그램을 처리하는데 사용한다. 에디터(Editor), 컴파일러(Compiler), 디버거(Debugger) 등이 있다.
리눅스(Linux)
- 컴퓨터 역사상 가장 많은 참여자가 관여하는 오픈 소스 OS
- POSIX에 기반하여 유닉스와 완벽한 호환이 가능
- 다중 사용자, 다중 작업, 대화형 인터페이스이기 때문에 서버에 적합
❓POSIX
Portable Operating System InterFace for Unix(POSIX)의 약자로 IEEE에서 지정한 운영체제 간의 호환성을 유지하기 위한 표준을 말한다.
우분투(Ubuntu)
- 데비안 리눅스를 기반으로 개발된 것으로 데비안에 비해 사용 편의성에 초점을 맞춘 것
- 유닉스를 계승하는 리눅스 배포판으로 유닉스 계열 OS라고 할 수 있다.
- 전 세계 사람 누구나 어렵지 않게 리눅스를 사용할 수 있도록 하기 위한 것으로 오픈 소스이며 다양한 언어를 지원한다.
- 시스템 관리 작업에서 sudo를 사용한다.
- 리눅스 자체가 이식성과 확장성이 뛰어난데 데비안 계열의 APT 관리 도구로 인해 유지보수도 더 쉽게 할 수 있게 되었다.
맥(macOS)
- 애플이 개발한 유닉스/다윈 기반 맥 전용 운영체제이다.
- macOS는 현존하는 유일한 PC용 유닉스 운영체제이며, 완전한 Unix이기에 Unix-like라고 표기하지 않는다.