[댓 글] 컴퓨터 는 어떻게 작 동 하나 요?
http://www.ruanyifeng.com/blog/2013/02/booting.html
전원 을 켜 는 것 부터 시작 하 는 것 까지 컴퓨터 의 작 동 은 매우 복잡 한 과정 이다.
나 는 이 과정 이 도대체 어떻게 된 일 인지 잘 모 르 겠 었 다. 화면 이 빠르게 여러 가지 힌트 를 굴 리 는 것 만 보 았 다........................................................다음은 내 가 정리 한 노트 다.
0, boot 의 의미
먼저 한 가지 질문 을 드 리 겠 습 니 다. '시동' 은 영어 로 뭐라고 말 합 니까?
대답 은 boot.그런데 boot 는 원래 부츠 라 는 뜻 이 었 는데 '시동' 은 부츠 와 무슨 상관 이 있 습 니까?원래 이곳 의 boot 는 boottstrap (신발끈) 의 줄 임 말로 속담 에서 나 온 것 이다.
"pull oneself up by one's bootstraps"
신발끈 을 잡 아 당 겨 자신 을 끌 어 올 린 다 는 말 은 당연히 불가능 한 일이 다.최초 로 엔지니어 들 은 이 를 통 해 컴퓨터 가 작 동 하 는 것 은 매우 모순 적 인 과정 이 라 고 비유 했다. 먼저 프로그램 을 실행 해 야 컴퓨터 가 작 동 되 지만 컴퓨터 가 작 동 하지 않 으 면 프로그램 을 실행 할 수 없다!
초기 에는 정말 그 랬 다. 작은 프로그램 을 메모리 에 넣 어야 컴퓨터 가 정상적으로 작 동 할 수 있 었 다.그래서 엔지니어 들 은 이 과정 을 '신발끈 당기 기' 라 고 부 르 는데 오 랜 만 에 boot 라 고 부른다.
컴퓨터 의 전체 시작 과정 은 네 단계 로 나 뉜 다.
1 단계: BIOS
1970 년대 초 '메모리 만 읽 기' (read - only memory, ROM 으로 약칭) 가 발명 되 었 고, 부팅 프로그램 이 ROM 칩 에 들 어가 컴퓨터 가 통 전 된 후 첫 번 째 일 은 그것 을 읽 는 것 이 었 다.
이 칩 안의 프로그램 은 '기본 출력 입력 시스템' (Basic Input/Output System) 이 라 고 하 는데, 약칭 BIOS 라 고 한다.
1.1 하드웨어 자체 검사
BIOS 프로그램 은 먼저 컴퓨터 하드웨어 가 작 동 하 는 기본 조건 을 만족 시 킬 수 있 는 지 를 검사 하 는데, 이 를 POST 라 고 약칭 하 는 '하드웨어 자체 검사' (Power - On Self - Test) 라 고 한다.
하드웨어 에 문제 가 생기 면 메인보드 가 서로 다른 의미 의 벌 소 리 를 내 며 작 동 을 중단 합 니 다.문제 가 없 으 면 화면 에 CPU, 메모리, 하 드 디스크 등의 정보 가 표 시 됩 니 다.
1.2 시작 순서
하드웨어 자체 점검 이 완료 되면 BIOS 는 다음 단계 의 시작 프로그램 에 제어권 을 넘 겨 준다.
이때 BIOS 는 '다음 단계 의 시작 프로그램' 이 구체 적 으로 어느 장치 에 저장 되 는 지 알 아야 한다.즉, BIOS 는 외부 저장 장치 의 정렬 이 필요 하 며, 앞 에 있 는 장 치 는 통제 권 을 우선 전달 하 는 장치 다.이 정렬 을 '시작 순서' (Boot Sequence) 라 고 합 니 다.
BIOS 의 조작 인 터 페 이 스 를 열 면 '시작 순서 설정' 이 들 어 있 습 니 다.
2. 2 단계: 메 인 가이드 기록
BIOS 는 '시동 순서' 에 따라 1 위 저장 장치 에 제어권 을 넘 겼 다.
이때 컴퓨터 는 이 장치 의 첫 번 째 섹 터, 즉 맨 앞 에 있 는 512 개의 바이트 를 읽 습 니 다.이 512 바이트 의 마지막 두 바이트 가 0x 55 와 0xAA 라면 이 장 치 를 시작 할 수 있 음 을 나타 낸다.그렇지 않 으 면 장치 가 작 동 에 사용 되 지 않 음 을 나타 내 고 제어 권 은 '시작 순서' 의 다음 장치 에 전달 된다.
이 맨 앞 에 있 는 512 개의 바이트 를 '메 인 가이드 기록' (Master boot record, 줄 임 말 MBR) 이 라 고 합 니 다.
2.1 메 인 가이드 기록 의 구조
'메 인 가이드 레코드' 는 512 바이트 에 불과 해 많은 물건 을 넣 을 수 없다.그것 의 주요 역할 은 컴퓨터 가 하 드 디스크 의 어느 위치 로 운영 체 제 를 찾 는 지 알려 주 는 것 이다.
메 인 가이드 기록 은 세 부분 으로 구성 된다.
(1) 제1 - 446 바이트: 운영 체제 의 기계 코드 를 호출 합 니 다.
(2) 447 - 510 바이트: 파 티 션 테이블 (Partition table).
(3) 511 - 512 바이트: 메 인 가이드 기록 서명 (0x 55 와 0xAA).
그 중에서 두 번 째 부분 인 '분 구 표' 의 역할 은 하 드 디스크 를 여러 개의 구역 으로 나 누 는 것 이다.
2.2 구분 표
하드디스크 구역 은 좋 은 점 이 많다.각 구역 에 서로 다른 운영 체 제 를 설치 할 수 있다 는 점 을 고려 해 '메 인 가이드 기록' 은 통제 권 을 어느 구역 에 전달 할 지 알 아야 한다.
분 구 표 의 길 이 는 64 개의 바이트 에 불과 하고 그 안 은 네 가지 로 나 뉘 어 각각 16 개의 바이트 로 나 뉜 다.그래서 하나의 하 드 디스크 는 최대 4 개의 1 급 구역 으로 나 눌 수 있 고 '메 인 구역' 이 라 고도 부른다.
각 주 구역 의 16 바이트, 6 개 부분 으로 구성:
(1) 첫 번 째 바이트: 0x 80 이면 이 메 인 파 티 션 은 활성화 파 티 션 이 고 통제 권 은 이 파 티 션 에 전달 해 야 합 니 다.네 개의 메 인 파 티 션 중 하 나 는 활성화 되 어 있 을 수 있 습 니 다.
(2) 두 번 째 바이트: 주 구역 의 첫 번 째 섹 터 의 물리 적 위치 (기둥, 자기해드, 부채 번호 등).
(3) 다섯 번 째 바이트: 메 인 파 티 션 형식.
(4) 6 - 8 번 째 바이트: 주 구역 의 마지막 섹 터 의 물리 적 위치.
(5) 9 - 12 바이트: 이 주 구역 의 첫 번 째 섹 터 의 논리 주소 입 니 다.
(6) 제1 3 - 16 바이트: 주 구역 의 섹 터 총수.
마지막 네 개의 바이트 ('주 구역 의 섹 터 총수') 는 이 주 구역 의 길 이 를 결정 합 니 다.메 인 섹 터 의 전체 섹 터 수가 최대 2 의 32 제곱 을 넘 지 않 는 다 는 것 이다.
각 섹 터 가 512 바이트 라면 하나의 섹 터 가 최대 2TB 를 넘 지 않 는 다 는 뜻 이다.섹 터 의 논리 적 주소 도 32 비트 인 것 을 감안 하면 하나의 하 드 디스크 가 이용 할 수 있 는 공간 이 최대 2TB 를 넘 지 않 는 다.더 큰 하 드 디스크 를 사용 하려 면 두 가지 방법 만 있 습 니 다. 하 나 는 각 섹 터 의 바이트 수 를 높이 는 것 이 고, 다른 하 나 는 섹 터 의 총 수 를 늘 리 는 것 입 니 다.
3. 3 단계: 하 드 디스크 시작
이때 컴퓨터 의 통제 권 은 하 드 디스크 의 한 구역 에 전달 되 고 여 기 는 세 가지 상황 으로 나 뉜 다.
3.1 상황 A: 볼 륨 안내 기록
지난 절 에 언급 한 바 와 같이 네 개의 주요 구역 중 하 나 는 활성 화 된 것 이다.컴퓨터 는 활성 구역 의 첫 번 째 섹 터 를 읽 습 니 다. '볼 륨 안내 기록' (Volume boot record, 약칭 VBR) 이 라 고 합 니 다.
볼 륨 안내 기록 의 주요 역할 은 컴퓨터 에 운영 체제 가 이 구역 에 있 는 위 치 를 알려 주 는 것 이다.그런 후에 컴퓨터 는 운영 체 제 를 불 러 올 것 이다.
3.2 상황 B: 확장 구역 과 논리 구역
하 드 디스크 가 점점 커지 면서 네 개의 메 인 파 티 션 이 부족 하고 더 많은 파 티 션 이 필요 합 니 다.그러나 파 티 션 표 는 네 가지 만 있 기 때문에 한 개의 구역 만 '확장 파 티 션' (Extended partition) 으로 정의 할 수 있 습 니 다.
이른바 '확장 구역' 이란 이 구역 안에서 또 여러 구역 으로 나 뉘 는 것 을 가리킨다.이런 구역 안의 구역 을 논리 구역 (logical partition) 이 라 고 한다.
컴퓨터 는 확장 구역 의 첫 번 째 섹 터 를 먼저 읽 습 니 다. '확장 안내 기록' (Extended boot record, EBR 로 약칭) 이 라 고 합 니 다.그 안에 도 64 바이트 의 파 티 션 시트 가 포함 되 어 있 지만 최대 두 가지 (즉 두 개의 논리 파 티 션) 만 있다.
컴퓨터 는 이 어 두 번 째 논리 파 티 션 의 첫 번 째 섹 터 를 읽 은 다음 에 안의 파 티 션 표 에서 세 번 째 논리 파 티 션 의 위 치 를 찾 습 니 다. 이 를 통 해 특정한 논리 파 티 션 표 가 자신 만 포함 할 때 까지 유추 합 니 다 (즉, 하나의 파 티 션 항목 만 있 습 니 다).따라서 확장 구역 은 무수 한 논리 구역 을 포함 할 수 있다.
하지만 이런 식 으로 운영 체 제 를 시작 하 는 경 우 는 드 문 것 같다.만약 운영 체제 가 확장 구역 에 확실히 설치 되 어 있다 면, 일반적으로 다음 방식 으로 시작 합 니 다.
3.3 상황 C: 시작 관리자
이러한 상황 에서 컴퓨터 는 '메 인 가이드 기록' 앞의 446 바이트 의 기계 코드 를 읽 은 후에 제어 권 을 특정한 구역 에 전달 하지 않 고 미리 설 치 된 '시작 관리자' (boot loader) 를 실행 하여 사용자 가 어떤 운영 체 제 를 시작 할 지 선택 합 니 다.
Linux 환경 에서 현재 가장 유행 하 는 시작 관리 자 는 Grub 입 니 다.
4. 4 단계: 운영 체제
제어 권 을 운영 체제 에 전달 한 후 운영 체제 의 커 널 은 먼저 메모리 에 불 러 옵 니 다.
리 눅 스 시스템 의 경우, 먼저/boot 디 렉 터 리 아래 의 kernel 을 불 러 옵 니 다.커 널 로드 에 성공 한 후 첫 번 째 로 실행 되 는 프로그램 은/sbin/init 입 니 다.설정 파일 (Debian 시스템 은/etc/initab) 에 따라 init 프로 세 스 를 생 성 합 니 다.이것 은 Linux 가 시 작 된 후 첫 번 째 프로 세 스 입 니 다. pid 프로 세 스 번 호 는 1 이 고 다른 프로 세 스 는 모두 그 후손 입 니 다.
그 다음 에 init 스 레 드 로 시스템 의 각 모듈 을 불 러 옵 니 다. 예 를 들 어 창 프로그램 과 네트워크 프로그램 이 실 행 될 때 까지/bin/login 프로그램 에서 로그 인 인터페이스 에서 뛰 어 내 려 사용자 가 사용자 이름과 비밀 번 호 를 입력 할 때 까지 기 다 립 니 다.
이로써 모든 시작 과정 이 완료 됐다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.