[CS] 컴퓨터 기초 - OS, Window, Linux, 커널
1. OS(Operating System)
: 응용 프로그램과 컴퓨터(하드웨어) 사이를 중재 → 양면 플랫폼
1) OS의 역할
운영체제의 핵심은 자원을 어떻게 효율적으로 관리할 것인가
(1) 프로그램 실행 관리
-. 컴퓨터에서 여러 프로그램을 실행할 때 누가 먼저 실행될지, 얼마나 CPU를 사용할지 조절
(2) 자원관리(메모리/저장소/장치 관리)
-. RAM(메모리)을 적절히 나눠주고, 파일 저장을 도와주고, 마우스나 키보드 같은 장치들과 연결
(3) 사용자와 컴퓨터를 연결
-. 마우스나 키보드를 이용해 컴퓨터를 조작할 수 있도록 함
* OS가 없다면, 프로그램을 실행할 때, 컴퓨터의 각 부품들과 0과 1로 직접 대화해야함
2) OS의 종류
-. Window
-. Unix
-. Linux
-. Mac OS
-. Android
2. Window
: 마이크로소프트에서 만든 운영체제
1) 특징
-. gui 제공: 마우스 클릭만으로도 쉽게 조작 가능
-. 주로 일반 사용자들이 많이 사용(회사, 학교, 가정용)
-. 선점형 멀티태스킹 방식 사용: 운영체제가 CPU 이용 시간 제어
-. 예쁜 그래픽과 직관적인 사용법
-. 다양한 프로그램을 지원
3. Linux
: 무료로 사용할 수 있는 오픈소스 운영체제
1) 특징
-. 프로그래머나 서버 관리자들이 많이 사용
-. 커스터마이징이 자유로움
-. 보안에 강함
-. 다양한 배포판이 있음(우분투, 센토스, 페도라 등) : 리눅스 커널을 기반으로 각 용도에 특화된 여러 배포판 존재
4. 커널
: 운영체제의 핵심 부분 → 컴퓨터 시스템의 필수자원을 관리
1) 커널
컴퓨터 부팅 시, 운영체제(=소프트웨어)가 실행되는데 소프트웨어가 실행된다는 건 메모리(=RAM) 위에 올라온다는 뜻
→ 운영체제는 파일시스템, 네트워크 관리, 그래픽 UI 등 수많은 기능을 포함하는데, 이 것을 한 번에 메모리에 다 올리면 컴퓨터 자원을 너무 많이 차지하게 됨
∴ 꼭 필요한 부분만 상주시키고, 나머지는 필요할 때만 불러옴!
= 자원관리(CPU, 메모리, 입출력 장치), 시스템 호출 처리, 프로세스&스레드 관리
▶ 이 기능들이 상주하는 부분 = " 커널 "
2) 커널의 주요 기능
(1) 응용 프로그램(일반 소프트웨어)와 하드웨어를 중재
(2) 프로그램이 요청하는 서비스 제공(파일 입출력, 네트워크, 디바이스 제어)
(3) CPU, 메모리, 입출력장치(IO) 같은 자원을 효율적으로 관리