게임 용어 부스팅의 줄임말에 대한 내용은 부스팅 문서 참고하십시오.
1. 개요
역대 윈도우 부팅 화면 및 사운드 영상이다. 8부터 10까지는 부팅 완료의 소리 기본값이 비활성화로 설정되어 들리지 않는다.[1][2] |
2. 상세
과거에 사용된 IBM PC 및 후속 기종과 호환기종의 경우, 먼저 펌웨어의 일종인 바이오스가 POST 과정을 한 뒤 부트로더가 있는 장치[3]를 탐색한다. 장치[4]가 발견되면 그 첫번째 섹터를 메모리 주소 0000h:7C00h[5]에 복사한 뒤 점프시켜 실행시킨다.현재 널리 사용되는 PC 역시 펌웨어가 바이오스에서 UEFI로 바뀐것을 제외하면, 부트로더를 찾아 운영체제를 부팅 시키는 과정은 유사하다.
여기까지가 컴퓨터에서 직접 제공하는 기능이고, 나머지는 운영체제의 몫이다. 운영체제는 설치될 때 장치의 첫 번째 섹터에 운영체제의 부트로더를 장치에서 찾아서 실행시킬 수 있는 코드를 써 놓고, 부트로더는 운영체제의 나머지 실제 필요한 부분을 장치에서 읽어서 메모리에 올리고 실행 권한을 넘긴다. 이후는 실제 운영체제가 작동한다.
만약 부트로더가 없이 바로 시작코드로 넘어가는 시스템일 경우 부팅 과정이라는것 자체가 아예 없이 스타트업 코드에서 바로 메인 프로그램을 실행하는 구조로 되어있다.[6]
3. 부팅 과정
- 전원을 켜면 컴퓨터 전원이 안정적으로 공급되는지를 먼저 확인한다.
- 이상이 없으면 중앙 처리 장치와 주기억장치의 상태를 점검해 이상 유무를 판독한다.
- ROM에서 펌웨어가 컴퓨터의 입출력 장치 및 램과 같은 주요 기본 장치들에 대한 정보를 읽어들여서 정상 작동 중인지를 점검한다.[7][8]
- 이상 유무를 화면에 띄워 사용자에게 알려주는 POST를 수행한다. 상단에 서술하듯 요즘 펌웨어인 UEFI에서 빠른 부팅을 설정하면 위의 과정들 중 일부를 생략하고 바로 아래 단계로 간다.
- 보조 기억장치에 존재하는 운영체제를 주기억장치로 읽어 들여서 실행한다. 만약 시큐어 부팅이 설정되어 있다면 운영체제의 디지털 서명을 확인하는 과정이 추가된다.
4. 종류
BIOS, UEFI, GRUB, CLOVER, Fastboot 등의 여러 부트로더가 있다.- 사용 기술에 따른 분류
- BIOS 부트로더
하드 디스크 파티션의 MBR에 작은 코드를 심어서 그 코드가 운영체제를 로딩한다. 다만 운영체제의 몸집이 커지면서 MBR의 크기만으로는 부트로더 전체를 감당할 수 없게 되었고 결국 MBR에는 가교 코드만 심고 파티션 내부에 존재하는 실제 부트로더를 부르는 방식도 생겼다. 아래의 GRUB이 대표적이다. - UEFI 부트로더
UEFI 환경 하에서는 하드 디스크에 EFI 시스템 파티션 (이하 ESP)이라는 별개의 작은 파티션이 존재하여 거기에서 Windows PE 형식의 부트로더를 불러온다. 파일 시스템에 종속되기 때문에 MBR에 존재하던 크기 제약은 어느 정도 완화되었으며, 리눅스 커널처럼 부트로더를 거치지 않고 ESP에서 다이렉트로 부팅되는 커널도 존재한다. - 기타 벤더 전용 기술 사용
x86의 경우 BIOS-UEFI 순으로 등장한 반면 ARM 등 다른 아키텍처는 보드 및 CPU 제조사에 따라 제각기 다른 기술을 사용해 부팅을 한다. U-Boot 등이 이런 상황에서 각 보드에 맞는 코드를 사용해 가교가 되는 저수준 부트로더이다. 이후 ARM 쪽도 UEFI로 교통정리가 시도되고 있지만, x86과 달리 UEFI를 받아들이지 않은 제조사가 더 많다. - 개별 부트로더 일람
5. 어원?
어원이 The Surprising Adventures of Baron Munchausen(뮌히하우젠 남작)라는 이야기에서 왔다고 하는 사람들도 있다. 한국에서는 '허풍선이 남작의 모험'이라고 흔히 알려진 작품으로, 허무맹랑한 내용들로 채워져 있다. 그 일화 중 하나로 주인공이 물 위를 걸어서 강을 건너는데, 발이 물 속에 빠지려고 하면 본인 스스로 신발끈을 잡아 올려 건져내는 과정을 반복하여 무사히 강을 건넜다는 것이다. 스스로의 발을 스스로 꺼내는 이 행동이 부팅(boot-ing)의 어원이 되었다는 것이다.[9] '꺼져 있는 컴퓨터를 자기가 직접 켜지게 한다는 것'이라는 문제가 의외로 컴퓨터 개발 당시 골치아픈 문제였다고 한다.그러나 실제 뮌히하우젠 남작 이야기에서 그는 신발끈이 아니라 자신의 머리카락을 잡아 올려 건져냈으며, 무엇보다 남작은 말을 타고 있었다. 다양한 뮌히하우젠 남작 이야기들 중에서 신발끈을 잡아 끌어올렸다는 버전은 찾아볼 수 없다고 하는데, 미국에서는 부츠를 잡고 늪에서 빠져나왔다는 판본의 이야기가 있기는 있다. 게다가 부트스트랩은 신발 묶는 그 신발끈이 아니라[10] 긴 부츠의 목 뒷부분에 있는 고리다.
단, 현재 영어 위키피디아의 'Bootstrapping' 항목에서는 "to pull oneself up by one's bootstraps"라는 숙어에서 따왔다고 명시하고 있으며 다만 해당 숙어의 문서에서는 '숙어의 유래가 뮌히하우젠 남작 이야기에서 왔는가는 논쟁거리이다' 라는 언급이 있을 뿐이다.
결국 여기 언급된 어떤 가정이든 컴퓨터 부팅이라는 말의 기원이 부츠와 연관이 있다는 뜻이 된다.
6. 기타
컴파일러의 제작 과정에서, 어떤 언어를 컴파일하기 위한 컴파일러를 해당 언어로 제작할 때(예를 들어 C 컴파일러를 C로 작성한다면... PyPy), 부트스트랩이란 용어를 쓴다.과거에는 상용 컴퓨터의 부팅과정에 수 분 정도로 시간이 매우 오래 걸렸고 그 동안 이용자는 아무것도 할 수 없어서 상당히 지루했지만, 2010년대 들어 SSD의 보급으로 시간이 수 초, 아무리 길어야 30초 정도로 크게 단축되었다. Windows 7과 Windows 8.1의 부팅시간만 봐도 차이가 크게 난다.
부팅할 때 나오는 소리를 부팅음이라고 한다. windows xp까지는 로그온 뒤에 부팅음이 나왔으며, vista는 윈도우 로고가 나올 때 부팅음이 나오고 로그온 화면에 진입했다가 7에서는 로그온 화면이 나올 때 부팅음이 나오고(로그온 화면 없이 진행할 경우 메인 화면이 나올 때 부팅음이 나온다), 11에서는 윈도우 로딩화면 뒤에 바로 부팅음이 나온다(로그온 과정이 없는 경우 7처럼 메인화면이 나올 때 부팅음이 나온다).
커널 패닉 등 이런저런 문제로 인해 컴퓨터를 소프트웨어, 혹은 하드웨어적 차원에서 재구동하는 것을 흔히 리부팅(re-booting), 혹은 재(再)부팅이라고 부른다.
Apple에서는 한국어 번역으로 '시동'이라는 단어를 사용하고 있다. Windows XP에서도 로그온 화면에서 'Windows 시동 중…'이라는 표현을 볼 수 있었다.
오락실용 아케이드 게임들도 상당수가 PC 기판을 사용하기 때문에 부팅을 하게 된다. 이 때문에 오락실을 일찍부터 오는 사람이라면 부팅 화면을 자주 볼 수 있다. 또한 소프트웨어 오류 등으로 인해 재부팅이 되는 경우에도 부팅 화면을 볼 수 있다. 다만 대부분의 경우에는 윈도우 로고가 안 보이도록 설정을 해두었다.[11]
Mac에서는 Apple의 로고와 함께 특유의 시동음이 재생된다. macOS 10 시절 Apple T2 칩이 장착된 기기에서는 삭제되었으나 macOS Big Sur부터 전 기종에서 똑같이 재생된다. 설정에서 시동음 재생 옵션을 켜야 한다.
스마트폰은 부팅 시 기종명과 운영체제[12]를 표기한 후 각 통신사 별로 설정된 부팅화면이 나타난다. 일부 안드로이드 자급제판이나 애플 iOS 등은 해당하지 않는다. 대부분의 최신 안드로이드의 자급제판은 부팅 애니메이션은 없는 경우가 많지만 커스텀 롬이나 구형 갤럭시 중에서는 부팅애니가 있는 경우가 있다. 애플 iPhone의 경우 통신사를 끼고 샀든 자급제로 샀든 애플로고만 띄우고 바로 켜진다. 부팅 속도는 iPhone이 조금 빠른 편이다.
플로피 디스크가 주로 쓰이던 1980년대에는 아예 MS-DOS 같은 운영체제도 필요 없이 디스크만 넣고 켜면 바로 실행이 가능한 게임이 나오기도 하였다. 이를 PC booter라고 하였다.
7. 관련 문서
[1] 활성화로 설정해도 7과 동일한 소리가 나온다.[2] 95의 부팅음이 가장 길었으며, 이후 시간이 지날 때마다 부팅음 길이가 짧아지는 것을 볼 수 있다. 이는 종료음도 마찬가지이며, 8 이후로 종료음이 아예 없어졌다. 부팅음이 새로 부활한 11에서도 종료음은 삽입되지 않았다.[3] BIOS 설정 상에서 첫번째 부팅으로 설정된 장치를 가장 먼저 찾으며, 그곳에서 찾지 못할 경우 읽기 가능한 장치들 중 첫 번째 섹터가 AA55h, 리틀엔디안(little endian)으로는 55AAh로 끝나는 장치를 찾는다.[4] HDD, SSD 등이 보통일 것이다. 광학 매체로 운영체제를 설치하는 것이 보통이었던 시절에는 ODD가 우선순위가 높았었다.[5] 바이오스에 따라서는 07C0h:0000h[6] 보통 아주 단순한 마이크로 컨트롤러에서 사용한다.[7] UEFI Fast boot 활성화시 생략된다.[8] 그래서 주기억장치(램)가 이상이 있거나 잘못 꼽혀있으면 그래픽 카드 이상이 아닌데도 화면이 안나오는 경우가 있다.[9] 부팅(booting)은 부트스트래핑(bootstrapping)을 줄인 말이다.[10] 영어에서 신발끈은 (shoe)lace 내지는 shoestring이다. strap 자체도 신발끈 수준의 가는 줄이 아니라 허리띠처럼 너비가 큰 띠를 주로 가리키는 표현이다.[11] BEMANI 시리즈나 DJMAX TECHNIKA 시리즈의 경우에는 로고 없이 커서만 깜빡거리며, EZ2AC의 경우에는 해당하는 버전의 로고가 표시된다. 그리고 바탕화면도 대부분 검은색으로 해놓는다.[12] 2014년 이후 출시된 안드로이드 스마트폰은 부팅 화면 하단에 'Powered By Android' 문구가 있으며, 2021년 이후 출시된 삼성 기종은 기종명 없이 삼성 로고가 뜬 후 밑에 갤럭시 로고가 뜬다. iOS는 그런거 없이 사과 로고만 띄운다. 갤럭시 워치 시리즈는 삼성 로고만 띄우다가 일정시간 후 갤럭시 로고를 띄운다.