IT 그리고 정보보안/Knowledge base

BIOS (Basic Input/Output System)

plummmm 2021. 4. 17. 12:23
반응형

BIOS는 쉽게 얘기해서 PC 주변장치들 즉, 하드웨어 기기들을 제어하는 기능을 제공하는 시스템이다.

보통 부팅이 시작될 때 F2, F3, F9, F10, DEL키를 연타로 갈겨서 접근한다. (PC 메인보드 제조 브랜드 별로 다른데, 보통 F9나 DEL키 갈기면 뜨더라)

BIOS에 대해 알아보기 전에 .. 자주 혼동되는 CMOS와의 차이점을 알아보고 가자.

CMOS (Complementary metal-oxide semiconductor) 와 BIOS는 어떤 차이점이 있나?

CMOS라는 명칭은 원래 전자 부품을 만드는 "기술"의 이름이다. A 라는 Chip(칩)이 CMOS 방식으로 제작되었다. 이런 느낌이다.

메인보드에 보면 CMOS Chip 이라 불리는 RTC(Real-time Clock)/NVRAM(Non-Volatile RAM) 부품이 있는데, 이 놈 안에 CMOS Setup 진입 시에 확인 가능한 내용들이 포함되어 있다. 시스템 시간 정보, 메모리, 하드웨어 드라이브 정보 등.. BIOS는 RTC/NVRAM 에 담긴 내용을 출력하기 위한 펌웨어 라고 보면 된다.

CMOS Chip에 담긴 내용을 BIOS라는 펌웨어를 통해 화면에 출력하고 제어한다. << 이렇게 정리하면 될듯. 결론은 걍 같은 말이다.

자 그럼.. CMOS 와의 차이점은 알아보았다. 그럼 이제 BIOS에 대해 자세히 알아보자.

BIOS는 우리가 평소에 사용하는 라이브러리 파일과 달리, 자신의 기능을 특별한 방법으로 외부에 제공한다.

함수의 주소를 인터럽트 백터 테이블(Interrupt Vector Table) 이라는 곳에 집어 넣고, 소프트웨어 인터럽트를 호출하는 방법으로 사용한다.

인터럽트 백터 테이블은 메모리 주소 0에 있는 테이블로, 특정 인터럽트가 발생했을 때 인터럽트 핸들러를 검색한다.

테이블의 각 항목들은 인덱스에 해당하는 인터럽트가 발생했을 시에 처리하는 핸들러 주소가 담겨있고, 리얼모드에서 각 항목은 4바이트 크기를 갖는다. 최대 256개의 인터럽트를 설정할 수 있다. 테이블에서 주요한 항목들을 한번 보자.

더 많은데 일부만 작성한 것이다. 일단 이런게 있다 알고 넘어가면 된다. (다음에 참고용으로 작성해둔것)

BIOS를 사용할 때, BIOS가 제공하는 디스크 서비스를 이용하려면 int 0x13 을 발생시켜야 한다.

위에 표에서 보면 알 수 있다. 이 때 소프트웨어 인터럽트 명령을 사용하는 것이다.

소프트웨어 인터럽트는 CPU에 가상의 특정 인터럽트가 발생했을 시에, int 0x13 형태로 사용한다.

우리가 만든 핸들러의 어드레스를 인터럽트 백터 테이블에 집어넣어 두었으면,

언제든지 int 명령을 이용하여 핸들러에 접근할 수 있다.

하지만 BIOS를 이용하여 작업을 할 때 핸들러 호출 만으로는 디테일한 작업이 불가능하다. 함수니까 파라미터를 넘겨줘야지.

이 때 레지스터를 이용하여 파라미터를 넘겨 준다. AX, BX, CX, DX 레지스터와 ES 세그먼트 레지스터를 사용하여 파라미터를 넘겨주며

결과값도 레지스터를 통해 전달받는다.

핸들러 마다 요구하는 파라미터가 다르기때문에 호출할 때 항상 파라미터로 정의된 레지스터를 확인해야한다.

리셋과 디스크 제어를 예로들어 레지스터들이 어떠한 역할을 하는지 알아보자

위 표 내용처럼 레지스터의 기능들을 확인하고 파라미터로 사용하면 된다.

참고 URL

http://forensic-proof.com/archives/181

참고 도서

<IT EXPERT, 64비트 멀티코어 OS 원리와 구조 1권: OS 개발 60일 프로젝트> - 저자 한승훈

반응형

'IT 그리고 정보보안 > Knowledge base' 카테고리의 다른 글

IP Class  (0) 2021.04.17
디스크 가용공간 관리  (0) 2021.04.17
교착상태 (Deadlock)  (0) 2021.04.17
운영체제(Operating System) 개요  (0) 2021.04.17
플로피 디스크 (Floppy Disk)  (0) 2021.04.17