on
운영체제 - 1
공부를 시작하며
KOCW 양희재 교수님 2013-2학기 강의를 듣고 정리한 글이다.
운영체제란?
Program 실행은 어떻게 되는가?
운영체제에 대한 설명을 하기 전에, 먼저 컴퓨터는 processor(CPU), main memory(DRAM), storage(HDD,SSD) 등으로 이뤄져 있다. Program이 실행되기 위해서는 storage에 있는 program을 main memory에 올려놔야 porcessor가 처리할 수 있다. 여기서
OS의 역할은 program을 main memory로 올리는 것.
OS가 없으면, 컴퓨터는 혼자서 아무것도 할 수가 없는 상태이다. 이 강의에서는 ‘야생마’라는 표현을 사용하였는데 적절한 것 같다.
쉽게 말하자면, 윈도우라는 OS가 없는데 컴퓨터를 켰을 때 윈도우 화면이 뜨길 바라는 것은 말이 안되는 소리라는 것이다.
결론적으로 OS는 컴퓨터 H/W resource를 관리하는 하나의 프로그램이라고 할 수 있다.
Booting
Main memory는 RAM과 ROM으로 나뉜다.
- RAM(Random Access Memory) : program이 올라가는 영역. OS는 이 영역에 상주한다.
- ROM(Read Only Memory) : 일반적인 삭제나 수정이 불가능한 영역. Read만 가능하다.
- POST(Power-On Self-Test) : 컴퓨터가 켜질 때 firmware혹은 S/W에 의해 수행되는 process이다. 오류가 있는지 스스로 확인하는 과정이다.
- Boot loader : Storage에서 OS를 찾아서 main memory의 RAM영역으로 가져온다.
컴퓨터는 켜지면서 스스로 점검(POST)을 한 뒤에 Boot loader가 HDD나 SSD에 있는 OS를 찾아내서 main memory로 올려줌으로써 processor가 처리할 수 있게 해주는 것이다.
Operating System Layers
-
Application : User의 응용프로그램(게임, ppt, hwp등…)이 실행되는 layer. OS가 관리해주는대로 H/W resource를 사용한다.
application은 OS위에서 실행되기 때문에 OS가 달라지면 실행이 안될 수 있다.
-
Shell : User와 OS(kernel)사이의 interface. user의 명령을 받고 해석해서 해당 명령을 수행한다.
-
CLI(Command Line Interface) : text terminal을 통해 user와 컴퓨터가 상호 작용하는 방식.
Ex) ubuntu terminal에서 파일을 옮길 때
user:~$ mv "file1" "directory"
-
GUI(Graphical User Interface) : user가 편리하게 사용할 수 있도록 입출력 등의 기능을 알기 쉬운 아이콘 같은 그래픽으로 나타낸 것.
-
- Kernel : OS의 핵심이 되는 컴퓨터 프로그램. 실제로 H/W resource(CPU, Disk)를 관리한다.
- Hardware : 화면, 키보드, 스피커 등등 모든 H/W 요소들을 뜻하는 것이다.
따라서 우리가 화면으로 워드파일을 작성하고 싶다면, user로 부터 받은 키보드의 입력을 application layer의 워드 프로그램이 OS로 요청을 한다. 그리고 OS는 화면이라는 하드웨어에 출력이 되도록 H/W resource를 관리한다.
Q1) CLI와 GUI의 차이점은?
A1) CLI는 시스템 자원 및 공간을 덜 필요로 한다. 그리고 GUI보다 더 빠르다.
Q2) 왜 더 빠른가?
A2) Graphical하게 표현할 필요가 없어서 더 빠른 실행이 가능하다.
- 왜 더 빠른 실행이 가능한가?
- 그래픽적으로 표현하기 위한 H/W resource를 안쓰기 때문에 실행시간이 짧아진다.
답변 출처 : https://velog.io/@link717/TIL-GUI-vs-CLI