1. 왜 리눅스?
`유닉스/리눅스 운영체제`는 70년대 초 AT&T 벨연구소에서 유닉스가 개발된 이후로 지속적으로 발전. 스마트폰, PC, 서버시스템, 슈퍼컴퓨터에까지 사용되고 있음. 소프트웨어 경쟁력의 핵심.
(1) 유닉스/리눅스 기반 운영체제
더보기
`안드로이드 OS`, `iOS`, `맥 OS X`, `리눅스`, `BSD 유닉스`, `시스템 V`, `Sun 솔라리스`, `IBM AIX`, `HP HP-UX`, `Cray 유니코스`
(2) 유닉스의 설계 철학
- 단순성 : 최소한의 기능, 자원에 대한 일관된 관점
- 이식성 : C언어로 작성, 다양한 플랫폼에 이식 가능
- 개방성 : 소스 코드 공개
(3) 유닉스의 특징
- 다중 사용자, 다중 프로세스 : 여러 사용자가 동시에 사요 가능, 여러 프로그램 동시 실행, 관리자 슈퍼유저가 있음.
- 쉘 프로그래밍 : 명령어나 유틸리티 등을 사용해 작성한 프로그램
- 훌륭한 네트워킹 : 유닉스에서부터 네트워킹이 시작. (ftp, telnet, WWW, X-window 등)
2. 유닉스 시스템 구조
(1) 유닉스 운영체제 구조
- 운영체제 : 컴퓨터 하드웨어 자원을 운영 관리하고 프로그램을 실행할 수 있는 환경 제공
- 커널(kernel) : 운영체제의 핵심. 하드웨어 운영 및 관리.
- 시스템 호출(system call) : 커널이 제공하는 서비스에 대한 프로그래밍 인터페이스 역할.
- 쉘(shell) : 사용자와 운영체제 사이의 인터페이스. 명령어를 입력 받아 해석하여 수행해주는 명령어 해석기.
(2) 커널
하드웨어를 운영 관리해 프로세스, 파일, 메모리, 통신, 주변장치 등을 관리하는 서비스를 제공.
- 프로세스 관리(Process management) : 프로세스들을 CPU 스케줄링해 동시에 수행되도록 함.
- 파일 관리(File management): 저장장치에 파일 시스템을 구성해 파일을 관리.
- 메모리 관리(Memory management) : 메인 메모리가 효과적으로 사용될 수 있도록 관리.
- 통신 관리(Communication management) : 네트워크를 통해 정보를 주고받을 수 있도록 관리.
- 주변장치 관리(Device management) : 모니터, 키보드, 마우스와 같은 장치를 사용할 수 있도록 관리.
3. 핵심개념
- 유닉스 시스템 특징 : `단순성`, `이식성`, `개방성`
- `운영체제`는 컴퓨터의 하드웨어 자원을 운영 관리하고 프로그램을 실행할 수 있는 환경을 제공.
- `쉘`은 사용자와 운영체제 사이의 인터페이스를 제공하는 특수 소프트웨어로 사용자로부터 명령어를 입력받아 그 명령어를 해석하여 수행해 주는 명령어 해석기.
- `커널`은 하드웨어를 운영 관리해 프로세스, 파일, 메모리, 통신, 주변장치 등을 관리하는 서비스를 제공.