📘 오늘의 공부
- CS지식 훑어보기 - 운영체제 핵심 정리
- 기술면접에서 주로 나오는 질문 예시
- 💡 참고
- 잔재미코딩 youtube
- 운영체제 익힐 때 전공자들이 많이 보는 '공룡책'
(OPERATING SYSTEM CONCEPTS)
❓ 이런 질문은 왜 하는 것인가? 내가 익히는 기술과 무슨 연관이 있는가?
- 현업에서 서비스 개발 시, 멀티 프로세스 또는 쓰레드 구조로 프로그래밍을 고려하는 것은 기본 중의 기본
(사용자가 서비스 이용 시 성능을 높이기 위해서)- 채팅 등 네트워크가 Critical한 프로그램 개발 시, TCP와 UDP 프로토콜을 직접 제어하여,구현하는 경우가 많음
💡 안드로이드는 운영체제(OS)인가?! ( ❌ )
- 안드로이드 안에는 LINUX KERNEL이 들어있음
-> 안드로이드 : LINUX KERNEL + 안드로이드 앱이 동작하기 위한 여러 구성요소들(ex. Libraries,framework, 시스템 프로그램 등)을 갖추고 있음
커널에 붙는 부가적인 프로그램 중 하나(일종의 응용프로그램)
정의 : 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
운영체제의 존재 이유 : 사용자가 컴퓨터를 쓰게끔 하는 것
-> 어떻게 쓰는지 사용법(인터페이스)을 제공하는 프로그램이 바로 쉘
(ex. 사용자가 어떻게 명령하면 컴퓨터 구동시킬 수 있다, 프로그램을 실행할 수 있다 등)
쉘의 종류 : 터미널 환경(CLI-Command Line Interface), GUI(Graphical User Interface) 환경 두 종류로 분류
(ex. 터미널 환경 : 까만건 바탕이요, 하얀건 글자인... 쓰기 너무 어려움/
GUI : 쓰기 편하게 시각적으로 직관적인 환경 제공)
유명한 쉘 : 리눅스 bash
(개발자는 터미널 환경에도 익숙해져야 함!)