펌웨어와 장치 드라이버의 차이점과 관계


27
  1. 펌웨어와 장치 드라이버는 어떻게 다르고 관련이 있습니까? 두 제어 장치가 모두 같아요?
  2. OS가 드라이버를 실행 / 부팅해야하는 동안 펌웨어는 항상 자체 부팅됩니까?

답변:


24
  1. 펌웨어 실행되는 소프트웨어 장치. 드라이버는 운영 체제에 장치와 통신하는 방법을 알려주는 소프트웨어입니다. 모든 장치에 펌웨어가있는 것은 아니며 일정 수준의 지능을 갖춘 장치 만 있습니다.

  2. 정확히 무엇을 의미하는지 잘 모르겠습니다. 일반적으로 펌웨어는 "부팅"과 아무 관련이 없습니다 ... 아마도 여러분이 묻는 것은 펌웨어가있는 장치에 항상 펌웨어가 장치에 설치되어 있고, 또는 부팅 후로드 되었습니까? 그것이 당신이 요구하는 것이라면, 대답은 아니오입니다 ...

가장 일반적으로 펌웨어가있는 장치에는 펌웨어가 장치에 프로그래밍되어 있지만 (ROM 칩 또는 프로그래밍 가능한 ROM 칩이 있음) 초기화시 펌웨어가 장치에로드되는 장치가 있습니다. 이런 식으로 작동하는 일부 네트워크 카드와 웹캠은 생각할 수 있지만 다른 네트워크 카드도 있습니다.


감사! 2에서 자체 부팅을 통해 펌웨어가 다른 사람이 아닌 자체적으로 실행되고 드라이버가 OS 자체가 아닌 운영 체제에서 실행되는 경우? en.wikipedia.org/wiki/Operating_system
Tim

1
펌웨어는 하드웨어 장치 자체에 의해 실행됩니다. 질문에 대한 답변이라고 생각하십니까? 이것을 고려하십시오 : 많은 비 컴퓨터 장치에는 디지털 카메라, DVD 플레이어, 휴대폰 등과 같은 "펌웨어"가 있습니다. 따라서 이러한 경우 펌웨어는 장치 자체에 완전히 내장되어 있습니다. 해당 장치 중 하나를 컴퓨터에 연결 한 경우에만 드라이버 가 필요합니다 .
Flimzy

1
감사! 에서 en.wikipedia.org/wiki/Computer_software : "펌웨어는 종종 전기적으로 프로그램 가능한 메모리 장치에 저장된 낮은 수준의 소프트웨어가 하드웨어 및 실행처럼 취급하기 때문에 펌웨어는 이름이 지정됩니다. ("실행 ") 다른 소프트웨어 프로그램에 의해." 펌웨어는 다른 소프트웨어 프로그램이나 하드웨어 자체에 의해 실행됩니까?
Tim

-1 왜 그렇게 말 only devices with some level of intelligence have firmware합니까? 다른 방법으로 말하면, 간단한 (전자) 장치에는 운영 체제가 없지만 펌웨어가 있습니다.
Celeritas

@Celeritas : 일부 인텔리전스 수준의 장치 만 펌웨어가 있기 때문에 (RS-232 포트와 같은) 그렇지 않은 장치와는 다릅니다. 전체 OS (휴대폰, iPod, 프로그램 가능 GPS 등)가있는 장치를 비교하는 경우 완전히 다른 추상화 계층에 대해 이야기하는 것입니다. 이는 완전히 전통적인 의미에서 "장치 드라이버"와는 아무런 관련이 없습니다. 이러한 종류의 액세스 소프트웨어는 종종 "장치 드라이버"라고하지만 실제로는 장치 드라이버 위에 구현 된 네트워크 응용 프로그램 프로토콜 (예 : USB 포트 또는 Bluetooth와 통신하는 프로토콜)입니다.
Flimzy

5

펌웨어 는 하드웨어 작동에 필요한 하위 수준의 세부 정보를 구현하고 API / ABI를 더 높은 수준으로 제공합니다. 장치 드라이버는 펌웨어에 의해 노출 된 OS와 API / ABI 사이에 어댑터를 제공합니다.


1
감사! 장치 드라이버는 OS의 일부이며 OS 커널에 의해 실행됩니까? 펌웨어가 장치의 일부이며 어느 OS 커널 또는 펌웨어 자체에 의해 실행됩니까?
Tim

1
장치 드라이버는 OS의 일부로 간주되며 일반적으로 호스트 CPU에서 실행됩니다. 펌웨어는 일반적으로 장치에서 실행됩니다. 그러나 OS에 의해 장치에 업로드 될 수 있습니다.
Ignacio Vazquez-Abrams 5

이것이 정답입니다.
Eric Wang

4

펌웨어 의 최신 정의 또는 일반적인 사용법은 특정 소프트웨어 기능과 관련이 없습니다. 펌웨어는 단순히 하드 드라이브와 같은 대용량 저장 장치가 아닌 비 휘발성 반도체 메모리 (예 : PROM, EEPROM 또는 플래시) 칩에 저장된 소프트웨어입니다. 저장된 소프트웨어는 모 놀리 식 링크 바이너리이거나 로더, 커널 및 응용 프로그램 모듈로 구성 될 수 있습니다. (OTOH 초기화를 완료하기 위해 Linux 커널에서 "펌웨어"를로드해야하는 PC 용 TV 튜너 카드를 보았습니다.)

이 용어의 기원은 프로세서 제어 논리 대 하드 와이어 논리와 관련이 있습니다. 하드 드라이브에 저장된 소프트웨어는 쉽게 수정하고 업데이트 할 수 있습니다. 하드 와이어 로직에 대한 개정 및 업데이트에는 보드 또는 모듈 재 설계 및 교체가 필요했습니다. 중간 단계는 하드웨어를 제어하기 위해 소프트웨어를 실행하는 프로세서였습니다. 이 소프트웨어는 호출 된 회사 사이의 중간 반영하기 위해 도자기 소프트 대 도자기 하드 유선 논리를. 원래 보드 모듈성을 유지하기 위해 펌웨어는 ROM, PROM 또는 EPROM 칩에 저장되었습니다. EEPROM 및 플래시 칩의 발전으로 펌웨어의 회로 내 및 온보드 업데이트가 가능했습니다.

프로세서 (및 주변 장치)가 점점 작아지고 전력 소비가 줄어들면서 모든 종류의 장치 / 기기에 프로세서를 내장 할 수있는 가능성이 확대되었습니다. 소프트웨어가 이러한 장치를 견고하고 안전하게 작동하게하기 위해 소프트웨어는 하드 드라이브가 아닌 플래시 메모리 칩에 저장됩니다. 또한 장치를 작고 저렴하게 만듭니다. 저장된 코드의 일부가 하드 와이어 로직을 대체하는 것과는 관련이 없지만 펌웨어라는 용어는 내장 프로세서가있는 장치 / 기기의 모든 소프트웨어를 포함하도록 확장되었습니다.


그렇다면 대용량 스토리지에 펌웨어를 설치한다는 것은 무엇을 의미합니까? 이 데비안 패키지 처럼 ?
xuhdev

1
@xuhdev-데비안 패키지는 다양한 Linux 장치 드라이버에서 사용할 수있는 파일로 구성됩니다. 파일은 Linux 드라이버에 의해 연결된 장치에 쓰여지기 때문에 "펌웨어"라고 합니다. 파일에는 장치의 내장 uC / uP에 대한 작동 데이터 또는 코드가 포함될 수 있습니다. 장치로 전송 된이 파일은 장치의 휘발성 메모리에로드되며 모든 장치 또는 시스템을 재설정 한 후에로드해야합니다. "설치" 이의 "펌웨어" 호스트의 대용량 저장 장치에 단지 절차 적 메커니즘 (예 : 패키지 처리)입니다.
톱밥

3

누군가이 질문을 최근에 게시했습니다 .

펌웨어는 영구 메모리, 프로그램 코드 및 저장된 데이터의 조합입니다. 펌웨어가 포함 된 장치의 일반적인 예는 신호등, 가전 제품, 디지털 시계, 컴퓨터, 컴퓨터 주변 장치, 휴대폰 및 디지털 카메라와 같은 내장 시스템입니다. 이 장치에 포함 된 펌웨어는 장치에 대한 제어 프로그램을 제공합니다.

실제로 수퍼 유저 drivers태그는 다음과 같이 정의됩니다.

장치 드라이버 또는 소프트웨어 드라이버라고도하는 드라이버는 고급 컴퓨터 프로그램이 하드웨어 장치와 상호 작용할 수 있도록하는 소프트웨어입니다. 컴퓨터 프로그램이 특정 하드웨어 장치와의 상호 작용을 요청하면 드라이버는 장치와 드라이버를 호출하는 컴퓨터 프로그램 간의 명령 및 출력 변환을 처리합니다.

그리고, firmware태그는 정의된다 :

일반적으로 소프트웨어와 펌웨어의 차이점은 하드웨어와 상호 작용하는 수준입니다. 펌웨어는 매우 낮은 수준의 하드웨어에서 상호 작용하고 소프트웨어는 높은 수준에서 상호 작용합니다. 펌웨어는 일반적으로 하드웨어의 기본 타이밍, 제어 및 기능을 제어합니다.

원래 나는 그것이 firmware칩이나 보드에 직접 설치되어 거기에 살았다 고 생각했기 때문에 driver운영 체제 위에 설치하는 동안 "플래시"해야 합니다.

결론:

Firmware하드웨어가 물건을 "수행"하고 drivers소프트웨어가 하드웨어와 상호 작용할 수 있도록합니다.

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