본문 바로가기
Computer Science/운영체제

[운영체제] ep0) 운영체제(OS)를 잘 알아야 하는 이유

by 클레어몬트 2024. 1. 17.

(주의!!) [운영체제]를 공부하기 이전에 [컴퓨터 구조]를 먼저 공부하는 것을 추천한다

https://claremont.tistory.com/category/Computer%20Science/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B5%AC%EC%A1%B0

 

'Computer Science/컴퓨터 구조' 카테고리의 글 목록

전자정보통신공학, 컴퓨터공학 전공

claremont.tistory.com

운영체제는 컴퓨터 구조의 지식을 베이스로 갖고 간다

물론 운영체제에서 컴퓨터 구조 개념이 쓰일 때마다 내가 링크를 걸어 그 부분을 공부하도록 하게 할 것이지만, 그래도 컴퓨터 구조를 먼저 공부하고 운영체제 공부를 하는 걸 추천한다 (바라보는 시야가 달라진다)

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

 

우리가 앞서 [컴퓨터구조]에서 배웠던 유닛들을 다 일일이 컨트롤 한다면?
아마 거의 모든 개발자들은 대혼란이 올 것이다
우리가 하드웨어적인 측면 말고 소프트웨어적인 측면에만 집중할 수 있도록
도와주는 녀석이 바로 "운영체제(Operating System)"이다
쉽게 말해서 하드웨어와 사용자 사이에서의 매개체(인터페이스)이다

유명한 운영체제(OS)들

 

더 깊게 들어가서 운영체제는 실행할 프로그램에 자원(CPU, 메모리, 보조기억장치, I/O, 패킷, 파일 등)을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램이다
근데 그렇다면 왜 개발자들은 운영체제에 대한 깊은 이해가 필요한 것일까??
 
우선 운영체제의 개념부터 확실히 알아야 하는 게 운영체제는
"프로그램을 위한 프로그램"이다 (컴퓨터에서 가장 중요한 프로그램이다!!)
다시 말하면, 운영체제는 프로그램이기 때문에 우리와 대화할 수 있다

즉, OS를 깊이 이해하면 운영체제가 우리에게 건네는 말을 제대로 이해할 수 있고, 운영체제에 제대로 명령할 수 있게 된다

그리고 결과적으로 하드웨어와 프로그램을 더 깊이 이해할 수 있게 된다

그의 일례로 대부분의 오류 메시지는 거의 다 운영체제에서 보내는 것이다
만약에 운영체제를 잘 아는 개발자라면 오류메시지를 해석하며 대화가 가능할 것이다
따라서 프로그램을 만드는 개발자라면 운영체제를 무조건 잘 알아야 하는 것이다
 
 
이해를 돕기 위해서 만약에 운영체제가 없는 곳에서 1 + 1 을 출력하는 프로그램을 만들려 한다면
+ 프로그램을 메모리에 적재하는 코드
+ CPU로 하여금 1과 1을 더하게 하는 코드
+ 모니터에 계산결과를 출력시키는 코드
.
.
.
 
어우.. 상상도 하기 싫다
운영체제 덕분에 우리가 이런 하드웨어를 조작하는 코드를 직접 짤 필요가 없는 것이다
 
 
다시 말해서, 운영체제는 소프트웨어 개발자가 소프트웨어에만 집중할 수 있도록 도와주는 프로그램이다!
(펌웨어 다음으로 하드웨어와 가장 직접적으로 관련되는 소프트웨어)

 

 

 

 

 

 

 

 

참고 및 출처: Operating Systems: Internals and Design Principles(William Stalling), Operating System Concepts(Silberschatz, Abraham), 혼공컴운(강민철)