개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
경성대학교 양희재 교수님 수업 영상을 듣고 정리하였습니다.
컴퓨터를 제어하고 관리해주는 프로그램.
os: windowXP, linux, macOSX...
processor(처리기)
와 memory(메인 메모리)
로 구성이 되어있다.instuction
이라고하고, 이 instuction의 집합을 프로그램이라고 한다.)즉, 우리가 사용을 못한다.
운영체제가 있기 때문에 이 컴퓨터를 온전히 쓸수 있는것이고, 그게 없으면 그 컴퓨터는 그냥 폭주하는 컴퓨터, 제어가 불가능한 컴퓨터가 되는것.
즉, 컴퓨터의 하드웨어(프로세서, 프린트, 메모리, 하드디스크, 키보드, 마우스, 모니터, 네트워크, 스피커, 마이크 등)를 잘 관리해서
즉, 운영체제는 컴퓨터를 제어하고 관리해주는 프로그램 (Control progran for computer) 이다.
막간, 컴퓨터 구조 지식)
우리가 전원을 껏다키면 램의 내용은 휘발성메모리이기에 다 날아가 버린다. 그렇기 때문에 전원을 껏다키면 메모리 안의 내용은 유지되지 않고 다 날아가버린다. 그런데 이 전원에 관계없이 계속해서 남아있는게 있는데 그게 하드디스크
와 롬
이다. 이 하드디스크와 메인메모리의 롬은 전원과 관계 없이 내용이 그대로 남아있다.
우리가 잘 아는 롬은 휴대폰 안에 들어있는 플래쉬메모리 또한 전원과 관계없이 내용이 남아있다.
POST(Power on self-test)
프로그램이다.boot load
라는 것이 실행된다.위에서 먼저 언급했던 것처럼 처음 전기를 키면 롬에 있는 코드가 실행되어 POST가 실행되고 boot load가 실행된다.
일반적으로 운영체제는 하드디스크 안에 설치가 된다.
하드디스크 안의 운영체제가 있고 boot load는 하드디스크를 뒤져서 운영체제를 메인메모리로 가져오는 역할을 한다.
부트로드라고 하는 작은프로그램이 하는 일은 하드디스크의 몇번째 어디에 운영체제가 있다는것을 알아서 메인메모리의 램 영역으로 가져오는 역할을 한다. 그래서 하드디스크에 있던 운영체제가 메인메모리로 올라오게 된다. 이렇게 하드디스크에 있던 운영체제가 메인메모리로 올라오는것을 부팅(booting)
이라고 한다. 메인메모리로 운영체제를 들고오게되면 이제 더이상 롬의 프로그램은 실행될 것이 없다. 이렇게 롬의 역할은 끝나게 되는것이고 롬은 파워를 키는 그 순간에만 필요하고 그 이후에는 필요하지가 않다.
일단 운영체제가 메인메모리로 올라오게 되면, 우리가 친숙한 모니터에 익숙한 바탕화면이 나타나게 된다. 그러면 컴퓨터 모니터에는 바탕화면의 아이콘들이 모여잇는 초기화면이 나타나고 이떄, 바탕화면이 나타난다는 것은 운영체제가 메모리에 상주(residence)
해서 이제 무슨 명령이든 받을 준비가 다 되어있으며 일을 시켜도 된다는 것을 의미한다. = 준비되어 제어가 된 상태 (사용자가 마음대로 제어할 수 있는 단계가 된 것.)
즉, 모든 제어를 운영체제가 해주기때문에 누구든 쉽게 사용이 가능하게 된다.
그리고 운영체제는 컴퓨터의 성능도 높여주는데, 이 운영체제가 사라지는 순간은 컴퓨터의 전기를 끄는순간 메모리에서 사라진다. 다른 일반 사용자 프로그램들은 메모리에 올라왔다가 사라지기를 반복한다. 만약 운영체제가 돌아가고 있는 상황에서 우리가 hwp를 사용한다고 하면 그게 메인메모리에 올라오게되고 해당 프로그램을 편집하고 종료하면 hwp 프로그램은 메모리에서 사라진다. 이렇게 다양한 프로그램들은 메모리에 올라왔다가 사라지고 그렇게 돌아가기를 반복한다.
그러나 os는 항상 그 자리에 잇음 = 메모리의 레지던트(상주한다)
즉, 운영체제는 컴퓨터가 꺼질때까지 메인 메모리에 상주한다.
컴퓨터 제일 내부에는 하드웨어가 있고 하드웨어를 제어하고 관리해주는 os가 하드웨어를 둘러싸고 있다.
컴퓨터에 윈도우를 깔면 여러개의 아이콘들이 모여있는데 이 아이콘들을 실행하려면 마우스를 들고가서 더블클릭을 해야한다. 이렇게 우리가 마우스를 들고가서 프로그램을 실행하려고 하는 행위, 내가 어떤 프로그램을 실행하기 위한 명령을 내릴 수 있도록 만들어 준것을 os의 command interpreter
라고 한다. 일반적으로 윈도우는 그래픽 환경에서 명령을 내리고 리눅스는 텍스트를 기반으로 명령을 내리린다. 그래서 우리가 쉘에 명령을 내리면 그 쉘이 하드디스크를 뒤져서 해당 명령에 대한 결과를 보여준다.
리눅스 명령어 약간의 팁!
- ls(list): 현재 디렉토리에 존재하는 파일의 이름을 알고 싶을때
- who: 리눅스는 서버운영체제이기 때문에 한번에 여러명이 사용한다 ,누가 이 컴퓨터를 사용하는지 알아볼때
- df(disk free): 이컴퓨터의 하드디스크 용량은 얼마고 얼마를 사용햇는지 확인
즉, shell과 interpreter는 os의 바깥부분에 위치해서 사용자로부터 명령을 받고, 그 명령을 인터프리터를 통해 해석/번역하여 해당 명령을 실행하는 것을 의미한다.
그래서 커널은 실질적으로 우리 눈에는 보이지 않고 (관리하는 애니까) 우리는 주로 껍질을 보게 된다. 즉, 우리가 일반적으로 윈도우를 잘 안다고 하는것은 그 윈도우를 사용하는 법을 잘 안다는 것이고 그 사용법을 잘 안다는 의미는 이 껍질을 잘 안다는 뜻이다.
우리가 공부하는 운영체제는 껍질이 아닌 커널!
컴퓨터는 하드웨어 > 운영체제(커널+쉘) > 애플리케이션 이렇게 구성되어있다.
이때 애플리케이션은 응용 프로그램으로(App, application)을 의미하고 이 앱들은 os위에서 실행되며 따라서 만약 os가 달라지면 이 프로그램(앱)들은 사용이 불가능하다. 하드웨어가 같음에도 불구하고 사용이 불가능한 이유는 os가 다르기 때문이다. 애플리케이션은 하드웨어 위에서 도는게 아니라 os 위에서 돌고있기에 한 프로그램을 돌게 하기 위해서는 반드시 os가 반드시 필요하다.
즉, 컴퓨터의 제일 밑에는 하드웨어가 있고, 이런 하드웨어들이 컴퓨터의 하드웨어를 이루고 있고 이 하드웨어들을 제어/통제해주는 프로그램이 운영체제이다. 운영체제 위에는 어플리케이션 프로그램이 있고 프로그램들은 하드웨어 자원을 사용하고 있지만, 하드웨어 자원을 직접적으로 사용하는게 아니라 os가 중간에 관리해주는대로 하드웨어 자원을 사용하고 있다.
운영체제는 정부와 비슷하다. 즉, os도 여러가지 부서가 있다.
process management
: cpu 즉 프로세를 관리memory management
: 메인 메모리를 관리하드웨어를 자원이라고 하고 이 자원들을 관리하는 것이 os!
os의 다른 이름은 resource manage라고 한다.
하드웨어 자원을 애플리케이션에 할당해주는 것을 os가 하는 일이다.