왜 컴퓨터에 BIOS가 있어야합니까?


35

BIOS의 소프트웨어는 PC에 내장하고, ( '부트 펌웨어')에 전원이 공급 될 때 PC에 의해 첫 번째 코드 실행이다. PC가 시작될 때 BIOS의 첫 번째 작업은 CPU, RAM, 비디오 디스플레이 카드, 키보드 및 마우스, 하드 디스크 드라이브, 광학 디스크 드라이브 및 시스템과 같은 시스템 장치를 초기화하고 식별하는 POST (power-on self-test)입니다. 다른 하드웨어. 그런 다음 BIOS는 하드 디스크 나 CD / DVD와 같은 주변 장치 ( '부팅 장치'로 지정)에있는 부트 로더 소프트웨어를 찾아서 해당 소프트웨어를로드 및 실행하여 PC를 제어합니다. [2] 이 프로세스를 부팅 또는 부팅이라고하며 부트 스트랩이 줄어 듭니다.

컴퓨터 시스템에 BIOS가 설치되어 있어야하는 필수 조건은 무엇입니까?

운영 시스템이 실제로 모든 BIOS가 작동하지 않는 이유는 무엇입니까?


40
자동차 엔진에 스타터가 필요한 이유는 무엇입니까? 엔진이 시동하기에 충분히 강력하지 않아야합니까?
Der Hochstapler

4
@OliverSalzburg 이것은 가까운 미래에 시동기가없는 가스 엔진이 가능할 것입니다. 직접 주입과 컴퓨터를 사용하면 간단합니다.
Moab

2
이미 자체 시동 엔진이 있지만 대부분 12 개 이상의 실린더 또는 회전식 엔진입니다. 대부분의 엔진은 단일 파워 스트로크에서 관성 모멘트를 극복하기에 충분한 전력을 생산할 수 없기 때문에 자체 시동 할 수 없습니다. 직접 분사와 더 나은 타이밍은 약간 도움이 될 수 있지만, 플라이휠, 크랭크 샤프트, 기어 등으로 생성 된 파워
스트로크에서

5
실제로 PC 의미의 BIOS는 필요하지 않습니다. IBM System / 360 및 / 370 컴퓨터 (및 최신 버전)는 콘솔의 다이얼로 선택한 장치에서 단일 레코드를 읽는 단일 유선 명령으로 시작했습니다. 이 레코드에는 부트 스트랩 프로그램 (80 바이트에 적합해야 함-하나의 천공 카드)이 포함되어보다 복잡한 부트 스트랩 프로그램을로드했으며 디스크에서 OS를로드했습니다. 'BIOS'는 오른쪽 버튼 (IPL 또는 초기 프로그램로드라고 함)을 누를 때 실행하기 위해 하드 와이어 된 단일 명령이라고 생각합니다.
Ex Umbris

2
귀하의 질문에 "컴퓨터"와 "PC"를 혼동하고 있습니다. 그렇기 때문에 답변이 혼란스럽고 모순되기도합니다.
rds

답변:


41

BIOS는 마더 보드 자체에 저장된 하드웨어 종속 코드입니다. 모든 마더 보드에는 맞춤형 BIOS가 필요하므로 일반 BIOS / OS 올인원 을 보유하는 것은 불가능합니다 (BIOS는 기술적으로 저장된 코드이므로 이론적으로 하나의 특정 마더 보드 용 OS를 작성할 수 있습니다 ) . 언급했듯이 BIOS의 목적은 다음을 수행하는 것입니다.

PC가 시작될 때 BIOS의 첫 번째 작업은 CPU, RAM, 비디오 디스플레이 카드, 키보드 및 마우스, 하드 디스크 드라이브, 광학 디스크 드라이브 및 시스템과 같은 시스템 장치를 초기화하고 식별하는 POST (power-on self-test)입니다. 다른 하드웨어.

외부 저장소 없이도 컴퓨터를 시작할 수 있으므로 BIOS가 컴퓨터에 필요한 이유입니다. 즉, BIOS는 저장된 컴퓨터 프로그램이 마더 보드에 연결된 다양한 하드웨어 장치와 통신 할 수 있도록 공통 소프트웨어 인터페이스 를 제공합니다 .

예를 들어, 두 개의 다른 SATA 컨트롤러가있는 두 개의 서로 다른 마더 보드가있는 경우 BIOS를 통해 마더 보드가 실제로 SATA 장치에 명령을 보내는 방법에 대한 지식 없이도 두 가지 모두 작동 할 수있는 코드를 작성할 수 있습니다. 컴퓨터에 "이 SATA 장치에서 섹터 X를 읽습니다"라고 말하면 BIOS는 실제로 해당 명령을 하드웨어로 보냅니다.

실제로 "읽기 섹터 X"정보를 얻는 위치는 BIOS에 포함 된 저장된 프로그램으로, 보통 컴퓨터가 공통 위치에 저장된 부트 로더에서 읽도록 지시합니다. 이러한 공통 위치는 다양한 소프트웨어 및 하드웨어 개발자가 동의하며 일반적으로 시스템 간의 호환성을 높이기 위해 일반인에게 제공됩니다.

기본 인터페이스 수준 (다시 말해서 소프트웨어를 통한 논리적 인터페이스)이 설정되면 운영 체제 자체가 다양한 하드웨어 장치 (일반적으로 "장치 드라이버"를 사용하여)와 공통 인터페이스를 구축 한 다음 운영 체제가 하드웨어를 제어 할 수 있습니다.


마지막으로 BIOS는 컴퓨터 하드웨어 구성을 수정하고 온보드 EEPROM에 저장하는데도 사용됩니다 (따라서 컴퓨터는 다음에 시작할 때 변경 사항을 기억합니다). 그러나 앞에서 언급했듯이 운영 체제가로드되면 컴퓨터를 완전히 제어 할 수 있습니다.

따라서 마더 보드 제조업체는 BIOS로 재부팅 할 필요없이 운영 체제 내에서 이러한 변경을 수행 할 수있는 소프트웨어를 개발할 수 있습니다. 다시 말하지만 이것은 하드웨어와 소프트웨어에 따라 다르지만 모든 컴퓨터 인터페이스가 상대적이라는 것을 보여줍니다. BIOS는 이름에서 알 수 있듯이 기본 입 / 출력 시스템으로, 고급 프로그램 ( "운영 체제")을위한 공통 소프트웨어 인터페이스로 시스템을 제어 할 수 있습니다.


2
컴퓨터를 시작하면 BIOS가 프로세서에서 머신 코드로 실행 중입니다. 그렇게 생각할 수는 있지만 실제로 "끄기"는 아닙니다. 단순히 OS를 실행하도록 전환됩니다. 컴퓨터를 시작할 때 BIOS는 컴퓨터에 X 위치에 저장된 머신 코드 실행을 시작하도록 지시합니다.보다 일반적인 용어로 BIOS는 하드웨어를 초기화하고 컴퓨터에서 코드를 계속 실행할 위치를 지시합니다.
획기적인

13
BIOS / OS 올인원은 불가능 하지 않습니다 . 나는 왜 여기의 모든 사람들이이 말을 계속하는지 모르겠다. 각 부품이 별도의 장치 / 스토리지에 있다고해서 동일한 논리적 개체에 속하지는 않습니다. IBM PC 이전의 컴퓨터에는 올인원이있었습니다. 즉, BIOS는 OS 커널을 개발 한 것과 동일하게 제조 및 개발되었습니다. 실제로 OS 업데이트에는 때때로 BIOS 업데이트가 포함되었습니다.
m0skit0

3
@Oliver 실제로 ACPI를 사용하면 OS 부팅 후 BIOS 기능이 일상적으로 사용됩니다.
derobert

1
BIOS를 통해 OS (소프트웨어 계층)가 하드웨어와 상호 작용할 수 있습니다. BIOS와 OS는 다른 목적으로 사용됩니다. 그것들은 전체의 두 부분입니다. 하나는 다른 것을 대체하지 않습니다.
벤 리차드

1
@Breakthrough : 하드웨어 제조업체에 따라 다릅니다.;) IBM PC의 경우 논리적 진화는 여러 가지 하드웨어 유형으로 인해 독립적 인 BIOS 및 OS 제조업체였습니다. 이것은 옛날에는 일어나지 않았습니다. 그렇기 때문에 PC가 전체 컴퓨팅 시장을 변화시킨 이유는 무엇입니까?
m0skit0

7

운영 체제는 하드 디스크에 있으며 컴퓨터를 켜도 마술처럼 해당 하드 디스크에서 읽기 시작하지 않습니다. 일부 테스트를 수행하고 BIOS의 특정 설정을 구성 할 수있을뿐만 아니라 하드 디스크에서 부트 로더를로드하는 것이 BIOS입니다.

OS는 ROM이 아닌 하드 디스크에 있기 때문에 그렇게 할 수 없습니다 .

따라서 BIOS 또는 EFI와 같은 유사하지만 다른 기술이 필요합니다.

제조업체는 OS의 일부를 ROM에 넣을 수 있습니다 (OS의 부트 로더를로드 할 책임이 있음). 그러나 이것은 광범위하게 적용 할 수 없으며 어쨌든 사용 가능한 BIOS 또는 EFI가 있습니다.


1
두 가지 개념을 혼합하고 있습니다. BIOS는 OS와 독립적입니다. 즉, BIOS는 OS의 일부일 수 있습니다. 예를 들어 동일한 제조업체에서 제조 한 게임 콘솔의 부트 스트랩 퍼와 같은 해당 OS에서만 작동합니다.
m0skit0

5
"BIOS는 OS와 독립적입니다. 즉, BIOS는 OS의 일부일 수 있습니다." 응? 모순은 매우 모순됩니다.
획기적인

2
게임 콘솔은 컴퓨터이므로 Atari, Amiga 및 구형 Mac도 마찬가지입니다. @Breakthrough : 모순되지 않습니다. BIOS가 OS와 관련이 없으므로 BIOS의 일부가 될 수 있습니다.
m0skit0

@TomWijsman 당신은 여기에서 유일한 트롤입니다. 게임 콘솔은 컴퓨터의 하위 집합입니다. 일부 콘솔에서 가능하다면 일부 컴퓨터에서도 가능합니다. 또한 굵게 사용하지 마십시오. 부적절합니다.
luiscubal

1
@TomWijsman 그는 게임 콘솔이 할 수 있다면 컴퓨터도 그렇게 할 있다고 지적했다. 또한 질문이나 답변이 아닌 한 주제에서 벗어난 문제는 보이지 않습니다. 주석은 결국 주석입니다. 더 이상 아무것도 없습니다. (대담한 문제에 대한 의견은 없습니다-용어에 대해서는 더 많은 것을 다루지 만, 그들 각자에게.)
획기적인

6

진정한 논리적 이유는 없습니다. 그것은 유산과 역사의 문제입니다.

  1. 컴퓨터에 BIOS가 설치되어 있어야 할 필요는 없습니다. IBM PC의 유산입니다. 이것은 좋은 아이디어로 판명되었지만

  2. 운영 체제를 사용하면 BIOS와 같은 작업을 수행하므로 실제로 변경되지 않습니다. 물론 OS는 I / O 장치가 아닌 ROM에 있어야합니다. OS 빌더가 자신의 OS BIOS를 다른 OS와 호환되지 않기로 결정할 때 독점 문제에 대한 문제가 발생할 수 있습니다. BIOS 제조업체를 OS와 분리하면 소프트웨어 실행에 대한 자유가 향상됩니다.


1
왜 BIOS로 작동하지 않습니까? 이유에 대한 설명을 제공하십시오. ROM에 부트 스트 래퍼 만 놓으면됩니다. 나는 ROM에 완전히 포함시키는 것을 의미하지 않으며, ROM이 충분히 큰 경우에도 작동합니다 (물론 ROM을 실행하려면 RAM에 부품을로드해야하지만 현재 BIOS에서도 수행됩니다).
m0skit0

3
그는 PC가 아니라 "컴퓨터"라고 말했다. 그리고 그렇습니다. 사실 IBM PC (Atari, Amiga ... BIOS는 OS의 일부 임) 이전에 이런 방식이었습니다.
m0skit0

2
어리석은 나는 BIOS 나 OS가없고 임베디드 코드를위한 임베디드 컴퓨터를위한 소프트웨어를 작성했었다. 아니면 얘기하지 않는 모든 컴퓨터 대부분의 사람들이 생각 만하는 사람을?
jwernerny

2
대규모에는 적용되지 않습니까? PC 앞에 Ataris, Amigas 및 Mac이 몇 대 있었는지 확인하십시오.
m0skit0

2
iPhone은 컴퓨터이며 BIOS가 있다고 생각하지 않습니다. 디지털 시대 이전에도 ... 컴퓨터는 주어진 입력에 대해 동일한 작업을 수행하고 출력하는 프로그래밍 가능한 기계입니다. 자카드 직기는 컴퓨터이며 확실히 BIOS가 없습니다 (OS조차 없습니다).
rds

5

운영 체제를 시작하려면 무언가가 필요합니다. OS가 일부 비 휘발성 메모리에 맞으면 직접 시작할 수 있지만 Windows, OSX 또는 Linux와 같은 모든 기능을 갖춘 OS에서는 불가능합니다.

필요한 것은 메모리 및 디스크 액세스와 같은 기본 작업을 수행 한 다음 운영 체제를로드하는 전원 공급시로드 할 수있는 작고 가벼운 "OS"입니다. 이것은 별도의 엔티티가 아닌 OS 자체의 일부일 수 있지만 다른 프로세스를 먼저 시작해야하는 다른 이유가 있습니다.

  1. 업데이트-OS가 이와 같이 수정 된 경우 보안 패치가 필요한 경우 업데이트가 어려워집니다. 라우터와 같은 장치에 펌웨어 업데이트가 항상 발생하지만 비교적 간단한 운영 체제가 설치되어 있습니다.
  2. 유연성-컴퓨터는 범용 컴퓨터이며 동일한 하드웨어가 여러 운영 체제를 실행할 수 있습니다. BIOS가 디스크에서 OS를로드한다는 것은 어떤 것을 실행할 것인지 선택할 수 있다는 것을 의미합니다. 심지어 여러 개가 나란히 설치되어있을 수도 있습니다.

이 과정을 부트 스트래핑이라고 합니다.


1
그래서 우리가 다른 OS를 많이 가지고 있기 때문에 걱정 되는가? 특정 하드웨어에 대해 하나의 OS 모델 만 있다면 BIOS가 필요하지 않습니까?
Diogo

1
Microsoft가 BIOS를 만들 수없는 이유를
모르겠습니다

1
비 휘발성 메모리에 맞추기 위해 전체 OS가 필요하지 않습니다 (이것은 충분한 ROM이 필요합니다 : P). 부트 스트 래퍼 만 있으면됩니다.
m0skit0

1
@ m0skit0 Microsoft는 소프트웨어를 실행하려는 모든 마더 보드마다 다른 BIOS를 만들어야하기 때문에 BIOS를 만들 수 없습니다. :)
혁신적인

1
또한 @ChrisF, OS를 ROM에 배치하면 운영 체제의 모든 부분이 처음부터 손상됩니다. ROM을 사용하여 프로세서에서 일부 저장된 프로그램을 직접 실행하는 것이 합리적 일 수 있지만 (더 나은 성능을 얻을 수 있음) 운영 체제의 요점은 이러한 유형의 작업을 명시 적으로 허용하지 않고 공통 소프트웨어 인터페이스를 제공하는 것입니다. 그렇게하세요.
획기적인

4

개념 PC BIOS는 IBM PC가 인수하기 전에 8 비트 Z-80 "S-100"버스 기반 컴퓨터에서 널리 사용되는 운영 체제 인 CP / M에서 파생됩니다.

CP / M은 하드웨어 종속 기능이 ROM (BIOS)에있을 것으로 예상했습니다. 부트 로더가 디스크에서로드 한 또 다른 부분은 CP / M 파일 시스템 (BDOS)을 지원 한 다음 명령 프로세서 또는 "쉘"(CCP)의 마지막 소프트웨어였습니다. CP / M이 지원할 것으로 예상되는 하드웨어는 그리 많지 않았습니다. 디스크 드라이브, 디스플레이, 직렬 포트 또는 프린터 또는 모뎀을 연결할 수있는 2 개의 포트 (COM 또는 AUX 포트).

PC BIOS는 CP / M과 유사한 기본 부트 스트랩 기능을 수행했으며 DOS는 BIOS 기능을 사용하여 기본 입력 및 출력을 의도 한대로 수행했습니다. 프로그래머들은 느리기 때문에 이러한 기능을 우회했습니다. 이로 인해 80 년대 중반 PC 클론 제조업체는 BIOS에 호환 가능한 인터페이스를 제공하는 대신 플랫폼 전체를 재생성했습니다 (IBM이 원본 PC를 내부 및 외부에 잘 기록한 것처럼 쉬움).

이 시점에서 최신 OS의 경우 시스템을 부팅하는 것 외에는 BIOS가 실제로 필요하지 않습니다. 그러나 ...

90 년대 초반부터 전원 관리라는 개념이 정착되었으며 BIOS는 이에 대한 임무를 수행했습니다. APM은 DOS와 같은 단일 작업 OS에서는 잘 작동하지만 Windows 또는 Linux와 같은 실제 다중 작업 OS에서는 작동하지 않습니다. 이시기에 386은 실제 멀티 태스킹을 지원하는 Intel CPU를 완전히 사용했습니다. DOS와 BIOS는이 CPU의 새로운 기능에 따라 업데이트되지 않았습니다. 대부분의 Intel CPU는 원래 PC-BIOS 용으로 설계된 레거시 16 비트 호환 모드로 계속 실행되기 때문입니다. 따라서 최신 OS는 초기 부팅 단계를 제외하고 BIOS의 모든 CP / M과 같은 입 / 출력 기능을 거의 무시 / 우회합니다.

결국 ACPI는 주로 BIOS의 일부로 개발되어 전원 관리 및 (종종 랩톱) 플랫폼 별 구성을 지원했습니다. ACPI는 또한 최대 절전, 최대 절전 또는 종료 상태를 처리합니다.

요즘 ACPI와 후속 EFI는 BIOS와 같은 것을 PC의 필요성으로 유지합니다. 가장 중요한 개념은 ACPI가 플랫폼이나 마더 보드와 사물과 인터페이스 사이의 인터페이스가되는 것이므로 별도의 OS 빌드는 그렇지 않습니다. 각기 다른 유형의 마더 보드마다 만들어야합니다.

휴대 전화 하드웨어뿐만 아니라 Linux를 실행하는 ARM CPU를 수용하는 개발 보드에도이 문제가 있습니다. 일반적으로 U-boot와 같은 부트 로더 전용 펌웨어가 제공되지만 OS는 각 보드를 별도의 플랫폼으로 지원해야합니다.


3

어떤 의미에서는 옳습니다. BIOS와 OS는 부분적으로 동일한 작업을 수행합니다. BIOS와 OS의 분리는 전적으로 유연성을위한 것입니다.

BIOS는 일반적으로 하드웨어 제조업체에서 생성합니다. 하드웨어는 기본 기능이 있는지, 예를 들어 디스크 드라이브를 읽을 수 있고 진단 및 오류에 대한 기본 디스플레이가 표시 되는지 확인해야 합니다. 따라서 "기본 입력 출력 시스템"이라는 이름입니다.

이는 특정 시스템에 실제로 존재하는 실제 구성 요소에 대한 추가 지식 없이도 어느 정도 작은 BIOS 표준을 지원해야하기 때문에 수행 할 수 있습니다. 이를 통해 공급 업체는 완전한 시스템을 사용자 정의 할 수 있습니다. BIOS는 OS를 시작하기에 충분해야합니다. 이 시작점에 대한 몇 가지 규칙이 있으므로 순서대로 시도합니다. 또한 동일한 하드웨어에서 다른 운영 체제를 사용할 수 있습니다. (다시 유연성이 있습니다)

BIOS에서 운영 체제 (또는 적어도 부트 로더)를 찾아서 시작하지 않으면 BIOS 자체가 크게 폐기됩니다. 최신 OS는 로딩 후 BIOS 기능을 거의 또는 전혀 사용하지 않습니다.

OS가 모든 작업을 수행하게하려면 소프트웨어 (ROM)의 사전 도움없이 하드웨어가 OS에 액세스 할 수있는 곳에 OS를 배치해야합니다. 이것은 유연성이 문제가되지 않는 일부 폐쇄 시스템에서 가능할 수 있습니다. 다른 하드웨어에 하드웨어 지원을 구축하려는 경우 기본적으로 일종의 BIOS를 다시 작성하는 것입니다.

또 다른 관심사는 메모리 크기와 비용입니다. 완전한 기능을 갖춘 OS는 크기가 크며 패치 및 업데이트의 후속 문제 외에도 멀티 기가 바이트 OS를 ROM으로 가져 오려고하면 비용이 많이 듭니다.

따라서 기술적 인 이유는 없지만 특히 유연한 PC 플랫폼에 대한 많은 실용적인 이유가 있습니다.


3

최신 PC에서 프로그램을 실행하려면 먼저 하드웨어를 작동하고 프로그램을 메모리에로드하는 방법을 알고있는 프로그램을 시작해야합니다. 이 닭과 계란 문제는 기본 프로그램을 하드웨어 자체에 이식하여 해결됩니다.

이 기본 입출력 시스템 (BIOS)은 매우 작고 범위가 매우 제한적이지만 GRUB 또는 NTLDR 과 같은 2 단계 부트 로더를 로드하고 실행할 수있는 충분한 토대를 제공 합니다. 이 2 단계 로더는 BIOS 프로그램보다 정교하므로 운영 체제가로드 및 제어에 적합한보다 강력한 기반을 제공 할 수 있습니다.


좋은 기술적이지 않은 설명.
기계 달팽이

1

CPU가 BIOS 또는 EFI 또는 ROM의 ROM (또는 NVRAM 또는 기타 코드)에 의존하지 않고 하드 드라이브를 직접 처리 할 수있는 경우 이론적으로 이러한 CPU는 디스크에서 RAM으로 OS를로드하고 시작할 수 있습니다. 그것을 실행.

실제로 이론상으로 이러한 CPU는 명령 을 RAM에로드 하지 않고도 명령 실행할 수 있습니다. 컴퓨터가 하드 드라이브를 기본 저장소로 사용할 수 없다는 이론적 인 이유는 없습니다. 그러나 이것은 매우 느릴 것입니다.

이는 디스크에 액세스하기 위해 CPU에 추가 코드가 있고 파티션 테이블 및 파일 시스템과 같은 디스크에 대한 일부 개념을 CPU에 하드 배선하는 것을 의미합니다. 요즘 CPU는이를 수행하기에 충분히 크지 만 CPU를 설계하는 데 매우 유연하거나 효율적인 방법은 아닙니다.


많은 양의 RAM이없는 컴퓨터가 디스크 / 드럼에서 직접 실행되었습니다.
Daniel R Hicks

-1

필요하지 않습니다!

종종 BIOS라고하는 것은 3 가지 세트입니다.

  • 부트 로더
  • 구성 도구 : 이제 부팅 순서 및 시계를 제외하고는 대부분 사용되지 않습니다. 나머지 대부분은 자동 또는 제조업체에서 설정해야합니다.
  • BIOS : 운영 체제가 하드웨어와 통신하는 데 도움이되는 입력 출력 루틴 라이브러리입니다. 불행히도 BIOS는 최신 버전이 아니고 최신 운영 체제에서 사용할 수 없으므로 크게 무시됩니다.

부트 로더는 BIOS의 일부입니다.
Daniel R Hicks

@Daniel 나는 더 명확하게하기 위해 다시 작성했습니다. 감사합니다.
ctrl-alt-delor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.