운영체제 - 운영체제의 정의, 부트로더, bios, 컴퓨터 부팅

yeonjkim·2021년 10월 27일
1

운영체제

목록 보기
1/11
post-thumbnail

본 포스팅은 kocw 양희재 교수님의 운영체제 강의를 들은 후 작성하는 게시물입니다. 잘못된 개념이나 오류가 있을 시 댓글로 알려 주시면 감사드리겠습니다.

운영체제

1. 운영체제에서 중요한 점

(1) 프로세스 관리

(2) 주기억장치 관리

(3) 파일 관리

2. 운영체제란?

운영체제(Operating System) : HW의 관리와 사용자 인터페이스를 제공하는 프로그램. 성능 향상, 편의성 제공, 하드웨어 관리의 역할을 함.

우리가 일상생활에서 쉽게 접할 수 있는 window나 mac os, linux 또한 운영체제에 속한다.

운영체제의 동작 과정이나 하는 일을 알아보기 전에 기초적으로 알아야 할 부분을 먼저 설명하도록 한다.

1) 메인 메모리의 종류

주기억장치로 번역될 수 있는 메인 메모리는 2가지 종류(ram, rom)로 나뉜다.
메인 메모리의 용량 대부분은 RAM으로 쓰이며, 적은 용량은 ROM으로 쓰인다.

(1) RAM : Random Access Memory의 약자로, 휘발성 메모리이다. 메모리 용량의 대부분을 차지하며, 휘발성이기 때문에 컴퓨터의 전원이 껐다가 켜지면 그 내용이 사라진다.

(2) ROM : Read Only Memory의 약자로, 비휘발성 메모리이다.

ROM이 비휘발성 메모리이기 때문에 OS가 RAM에 적재될 때 이용되는 프로그램(post, bios, 부트 로더인데 이 포스팅 뒷부분에 설명할 것)은 ROM에 저장된다.

2) 컴퓨터에서 프로그램이 실행되는 과정


컴퓨터에서 프로그램이 실행되는 과정은 위와 같다.

프로그램은 pc의 전원을 껐다가 켜도 내용이 사라지지 않는 비휘발성 메모리인 하드디스크 상에 저장되어 있다. 이러한 프로그램을 실행하기 위해서는 ram에 프로그램이 적재되어 cpu 상에서 프로세스로 실행되는 과정이 필요하다.즉, 간단히 말하면

<프로그램 실행 과정>

(1) 하드디스크 상의 프로그램이 메인메모리의 ram에 적재.

(2) 메인 메모리(ram)에 적재된 프로그램의 명령어가 한줄씩 cpu에서 실행됨

이런 루틴을 따른다.

이렇게 컴퓨터에서 프로그램이 실행되는 과정을 알아보았다. 그렇다면 모든 상태의 컴퓨터에서도 프로그램 실행이 항상가능할까?
답은 '그렇지 않다'이다. os가 없는 컴퓨터에서는 프로그램이 동작할 수 없다. 또 os가 다른 컴퓨터에서도 프로그램이 동작할 수 없다. ex) mac용 어플리케이션을 window에서 동작하는 경우.

3) 만약 컴퓨터에 os가 없다면?

위에서 컴퓨터에서 프로그램이 실행되는 과정을 알아보았다.
프로그램을 실행하기 위해서는 프로그램을 메인 메모리의 RAM에 적재하는 과정이 필수적인데, 이 과정을 os가 주관하기 때문에 os없이는 프로그램이 제대로 동작할 수 없게 된다.

이렇게 os가 프로그램을 메모리(ram)에 적재해 프로그램을 실행할 수 있게 하는 역할을 한다면, 이 os가 실행될 수 있도록 os를 메모리(ram)에 적재하는 역할을 하는 것은 과연 무엇일까?
ram은 휘발성 메모리이기 때문에 컴퓨터의 전원을 껐다가 켜게 되면 이 os를 ram에 올려 놓는 과정이 반드시 필요하다. 이렇게 os를 ram에 적재하는 역할을 어떻게 수행할 수 있을까? -> 이는 컴퓨터가 부팅하는 과정을 살펴보면 쉽게 알 수 있다.

4) 컴퓨터 부팅 (bios, 부트로더, post 실행)

부팅 : 컴퓨터가 켜지고, os가 실행되기 전의 상태


위는 컴퓨터 부팅의 과정이다.

컴퓨터를 껐다가 켤 때, 우리는 프로그램을 실행할 수 있게 하는 os를 ram에 적재하는 과정과, 컴퓨터의 상태가 정상적인지 파악하는 과정을 필요로 한다.
그러나 휘발성 메모리들은 pc를 부팅하는 과정에서 내용이 날아가 버린다. 따라서 부팅 시 동작해야 하는 프로그램은 비휘발성 메모리인 rom에 저장되어 있다.
이렇듯 rom에 저장되어 있고, pc가 부팅할 때 필수적으로 실행되어야 하는 프로그램이 바로 bios, 부트로더, post이다.

bios

bios 는 주요 하드웨어의 정상 동작 여부를 확인 한 뒤, 보조기억장치(하드디스크나 CD-ROM)에 접근, 그곳에 저장된 운영체제(window, mac os 등)의 파일을 불러와 부팅(booting)을 시작한다.
또, 컴퓨터에 연결된 저장 매체에서 설정된 순서대로 부트 로더들을 불러오는 역할도 한다.

부트로더

부트로더는 하드 디스크에 있는 os를 찾아 메모리 상으로 가져오는 역할을 한다.

post

post는 Power-On Self Test의 약자로, pc의 power가 on된 뒤 self로 test하는 것을 뜻한다.

위에서도 언급했듯이, 컴퓨터 부팅 시에는 컴퓨터의 hw상태가 정상적인지 확인하는 과정과 os를 메모리에 올리는 과정이 필요하다고 했는데, 이를 수행하는 것이 post, bios, 부트로더이다.

post와 bios는 컴퓨터의 hw상태가 정상적인지 확인하고, bios는 부트로더를 호출, 부트로더는 os를 메모리에 적재한다. 이러한 과정을 통해 우리가 app을 실행할 수 있는 환경이 만들어지는 것이다.

5) shell과 kernel

운영체제를 알기 위해서는 shell과 kernel의 이해가 필수적이다.

OS = shell(사용자 인터페이스) + kernel(hw 관리)


운영체제는 shell과 kernel로 이루어져 있다고 이해해도 되는데, 여기서 shell은 말 그대로 운영체제의 껍데기 부분이고, kernel은 운영체제의 핵심이다. 운영체제의 위에서 application들이 동작한다.

앞서, 운영체제는 hw의 관리와 사용자 인터페이스를 제공해주는 프로그램이라고 정의했는데, hw의 관리를 맡는 것이 kernel, 사용자 인터페이스를 제공하는 것이 shell이다.

(1) kernel : os에서 실제로 hw관리를 담당하는 부분. os의 핵심 부분이라 kernel(번역하면 핵심)이라는 이름이 붙여졌다.

(2) shell : 커널과 사용자 간 인터페이스를 담당. 사용자 인터페이스를 제공하는 역할. 명령어를 번역하고 해석해 실행하는 도구이다. 우리가 os를 접하는 것은 속에 있는 핵심인 kernel이 아니라 그 외부를 담당하는 쉘이기 때문에 껍데기라는 이름이 붙여졌다. zsh, bash 등의 shell이 존재한다.

이처럼 os는 hw관리와 사용자 인터페이스를 제공하기 때문에 os가 없으면 app이 동작할 수 없으며, app이 동작할 수 있는 os가 아니면 동작할 수 없다. linux용 app이 window에서 동작할 수 없는 이치이다. hw가 같아도, 이를 제어(kernel)하고 사용자가 접근하는 방법이 다르니(shell) app을 실행시킬 수 없는 것이다.

최종 정리

정리하자면 os는 컴퓨터 자원인 hw를 관리하고, 사용자에게 인터페이스를 제공하는 역할을 한다. os위에서 app이 동작하기 때문에 os마다 동작할 수 있는 app의 종류가 다르다. window용 카카오톡, mac os용 카카오톡이 따로 존재하는 이유이다.
os가 메모리에 적재되어야 app이 동작하기 때문에, 컴퓨터 부팅 시 bios -> 부트로더 -> kernel -> os의 과정을 거친다.

0개의 댓글