BIOS에 일반적인 '드라이버'가 있습니까?


22

BIOS는 어떤 형태의 드라이버없이 I / O 장치를 어떻게 제어합니까?

예를 들어 BIOS에 그래픽 카드 용 드라이버가없는 경우 컴퓨터가 부팅되는 동안 이미지가 어떻게 표시됩니까?

모든 BIOS와 하드웨어에서 표준으로 제공되는 일반적인 드라이버가있어 어떤 하드웨어가 설치되어 있더라도 BIOS가 기본 기능을 수행 할 수 있습니다.

도움을 주시면 감사하겠습니다.

감사.


해결하려는 특정 문제가 있습니까? BIOS가 범용 일반 드라이브를 사용하는지 묻는다면 그렇지 않습니다.
Ramhound

나는 최소한의 표준 출력 형식 (vesa)이 있고 비디오 카드에는 자체 바이오스가 있다고 생각합니다. 게다가, 그것은 당신의 바이오스 / uefi 펌웨어가 3D로 실시간 렌더링되는 것과 다릅니다.
Journeyman Geek

5
@Ramhound 문제를 해결하는 것이 일반적인 문제 일뿐입니다. 시스템에 넣은 그래픽 카드가 무엇이든 부팅하는 동안 디스패치를 ​​여전히 볼 수 있으므로 BIOS에 프로그래밍 된 독립형 인터페이스가 있습니까?
RJSmith92

4
Do you have a specific problem your trying to solve? 예, 그들은 질문에 대한 답변을 찾는 문제를 해결하려고 노력하고 있습니다. ¬_¬
Synetech

답변:


13

BIOS에 일반적인 '드라이버'가 있습니까?

BIOS는 어떤 형태의 드라이버없이 I / O 장치를 어떻게 제어합니까?

표준. 모든 구성 요소는 기본 인터페이스를 구현하며 BIOS는이를 사용하도록 프로그래밍되어 있습니다. 물론 기본 인터페이스 이기 때문에 (BIOS의 'B'가 의미하는 것이므로) 하드웨어의 모든 기능을 활용할 수 없습니다. 즉, 하드웨어에 직접 액세스 할 수있는 드라이버를 통해 소프트웨어를 구현해야합니다.

원래 BIOS 제조업체 는 장치가 호환되기를 원할 경우 장치가 사용할 API 세트를 만들었습니다 . 그들은“ 인터럽트 (interrupts) ”를 통해이 작업을 수행했다. 이것은 장치가 프로그램을 방해 하여 어떤 일이 발생했음을 알리고 그 반대의 방법을 알려주는 방법이다.

예를 들어 BIOS에 그래픽 카드 용 드라이버가없는 경우 컴퓨터가 부팅되는 동안 이미지가 어떻게 표시됩니까?

사전 부팅 디스플레이의 경우 비디오 어댑터의 펌웨어 는 디스플레이 하드웨어에 대한 액세스를 단순화하기 위해 만든 표준 인 VESA (Video Electronics Standards Association)를 구현 합니다. BIOS는 제공된 표준 기능을 사용하여 비디오 하드웨어에 액세스하는 방법을 알고 있습니다. DirectX가 하드웨어에 대한 고급 API로 구현 된 방식과 다소 유사하므로 프로그래머가 모든 단일 하드웨어 구성을 설명하지 않아도됩니다.

어떤 BIOS가 설치되어 있더라도 BIOS가 기본 기능을 수행 할 수 있도록하는 모든 BIOS 및 하드웨어에 적합한 일종의 일반 드라이버가 있습니까?

일종의. 드라이버는 아니지만 표준 API입니다 . 장치 초기화 또는 입력 및 출력 데이터와 같은 기본 작업을 수행하는 데 사용할 수있는 프로그래밍 기능 세트.

제조업체가 제품을 판매하려는 경우 최소한 표준 API를 구현하여 호환되도록해야합니다. 이렇게하면 시스템이 하드웨어를 감지 할 수 있으며 부팅에 중요한 장치의 경우 완전히 액세스하는 방법을 알고있는 소프트웨어 드라이버가로드 될 때까지 기본 수준에서 해당 장치에 액세스 할 수 있습니다.


고마워, 좋은 대답. 따라서 OS가로드 될 때까지 BIOS 인터럽트 호출 (사용하는 DOS 시스템)은 여전히 ​​사용됩니까?
RJSmith92

1
예, BIOS는 사용할 수있는 여러 가지 인터럽트를 제공합니다 (모든 BIOS가 모든 기능을 제공하는 것은 아닙니다). DOS 시스템은 그 기능을 사용했지만 DOS는 INT 21 및 2F를 작성하여 더 높은 수준의 소프트웨어 인터럽트를 제공하여 작업을 수행했습니다 (DOS / 하드웨어 어셈블러 프로그래밍이 너무 그립습니다). 사실, EFI 및 향후 다른 기능과의 호환성을 제공하는 데 필요한 기본 저수준 기능이 항상 필요합니다. 형식이 다를 수 있지만, 공용어가 없으면 시스템이 하드웨어 장치를 사용할 수있는 방법이 없습니다.
Synetech

인터럽트 호출은 여전히 ​​커널 및 커널 수준 서비스에서 사용된다는 것을 이해하고 있습니다. 그렇지 않습니까?
BlueRaja-대니 Pflughoeft

@BlueRaja, 부팅 중 ( 하드웨어에 액세스하는 방법이 필요할 수 있음 ) 탐지 루틴을 실행 한 후 적절한 드라이버 (낮은 수준의 프로그램)를 사용하여 하드웨어에 직접 액세스합니다. 커널조차도 하드웨어를 최대한 활용하기 위해 직접 액세스해야합니다 (예 : 고급 CPU 기능 활용 또는 메모리 컨트롤러 및 칩셋 사용 최적화).
Synetech

22

PC의 BIOS는 8 비트 CP / M 시스템의 BIOS와 유사한 기능을 수행하기위한 것으로 80 년대 중반 PC가 인수되기 전에 널리 사용되었습니다. BIOS에는 최소한의 부트 로더 및 하드웨어 종속 저수준 루틴이 포함되어 소수의 장치 (화면, 디스크, 테이프, COM 포트)에 입력 및 출력을 수행합니다. 이를위한 지식은 ROM에 내장되어 있으며 드라이버가 필요하지 않으며이 ROM에서 지원하는 추가 하드웨어도 없습니다. (전원 관리 및 ACPI와 같은 것은 PC가 유비쿼터스 플랫폼으로 자리 매김 한 90 년대 후반에 나왔습니다.)

(CP / M "파일 시스템"은 BDOS라는 디스크에로드 된 구성 요소에있었습니다. 마찬가지로 FAT 파일 시스템에 대한 지식도 있으며 인터페이스는 두 개의 숨겨진 파일 인 MSDOS.SYS 또는 IO.SYS에 있습니다. BIOS ROM의

그러나 ... PC BIOS는 CP / M과 달리 확장 카드에 포함될 수있는 "옵션 ROM"개념을 지원했습니다. 따라서 BIOS를 확장하는 최소한의 메커니즘이있었습니다. CGA로 시작하는 비디오 카드 (CGA의 전신 인 MDA도 마찬가지 일 수 있음)에는 BIOS 인터페이스에 I / O 기능을 확장하거나 추가 한 옵션 ROM이 있습니다. (BIOS 부팅 전에 NVidia 메시지가 나타나는 이유입니다.) 하드 컨트롤러와 SCSI 카드도 마찬가지입니다. 이 모든 것들이 여전히 그렇습니다. 많은 오래된 네트워크 카드에는 부팅 ROM 용 소켓이 있습니다.

또한 80 년대에 등장한 PC 클론 제조업체들은 호환 가능한 BIOS 인터페이스 만 제공하지 않기로 결정했지만 결국 타이머 칩과 같은 모든 저수준 하드웨어를 포함하여 PC 플랫폼 전체를 복사해야했습니다. (인터럽트 컨트롤러 등) (이것은 IBM 독점이 아니기 때문에 상대적으로 쉬웠습니다.) 이는 BIOS가 작업을 수행하는 데 시간이 오래 걸리고 프로그래머가 특히 게임을 위해 하드웨어에 직접 액세스했기 때문입니다.

따라서 옵션 ROM과 PC 플랫폼을 형성하는 표준 하드웨어에 대한 합의와 PC가 발전하는 동안 역 호환성을 유지한다는 사실과 함께 드라이버없이 디스플레이를 사용하려는 경우 :

  • 비디오 하드웨어의 옵션 ROM에 의해 "후킹"될 수있는 표준 BIOS 인터페이스 사용
  • 또는 시스템에 어떤 하드웨어가 있는지 가정하고 기본 하드웨어에 직접 액세스

모든 PC 디스플레이 하드웨어는 부팅시 여전히 "VGA 호환"모드로 작동합니다. 원래 IBM VGA 어댑터에는 이전 EGA, CGA 및 MDA 카드와 호환되는 모드가있었습니다. 이 모든 의미는 BIOS에서 또는 OS 외부에서 실행되는 무언가가 1985 년과 같은 방식으로 디스플레이에 연결된 동일한 메모리를 여전히 규칙적으로 읽고 쓸 수 있다고 가정 할 수 있다는 것입니다.


답변 해주셔서 감사합니다. 확장 카드의 BIOS는 어떤 종류의 표준을 따라야 마더 보드 바이오스에서 사용할 수 있습니까?
RJSmith92

1
그것이 오랜 전통이 아닌 표준만큼이나 확실하지는 않지만 그런 식입니다. 여기서는 BIOS 부트 사양 (BBS)이 공식적인 표준이라고 생각합니다. en.wikipedia.org/wiki/Option_ROM
LawrenceC

네, 제가 찾던 그런 것입니다. 다시 감사합니다
RJSmith92
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.