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.