Linux 용어에서 "펌웨어"란 무엇입니까?


15

Linux와 관련하여 펌웨어 를 사용하는 데 혼란을 겪고 있습니다 .

펌웨어 및 드라이버에 대한 이해는 펌웨어가 Bluetooth IC, 키보드 컨트롤러, 비디오 카드 또는 단일 목적의 마이크로 컨트롤러와 같은 장치의 베어 메탈에서 실행되는 코드라는 것입니다. 펌웨어는 OS가 서비스를 사용하기위한 인터페이스를 제공합니다.

드라이버는 그에 비해 커널이 펌웨어에서 제공하는 이전에 언급 한 인터페이스와 통신하는 데 사용하는 소프트웨어입니다. 따라서, 비디오 드라이버, 키보드 드라이버, 블루투스 무선 드라이버.

따라서 설치해야하는 Linux 펌웨어 파일에 대해 계속 읽는 이유는 무엇입니까 (예 : here ). 이것들은 하드웨어에 업로드됩니까? 이 파일들이 커널에서 사용됩니까? 이 맥락에서 펌웨어 의 의미는 무엇입니까 ?


1
일반적으로 말하기 : 소프트웨어는 프로그램입니다. 하드웨어는 물리적 장치입니다. 펌웨어는 집적 된 프로그램 으로 하드웨어; 일반적으로 하드웨어 작동 방식을 구성 할 목적으로 ( '펌프'가 '무음'과 '하드'사이에있는 것처럼 무모한 규모 인 것처럼 소프트웨어와 하드웨어 사이에 있습니다). 일반적으로 펌웨어는 OS에 구애받지 않습니다 (예 : SCSI RAID 컨트롤러의 RAID 구성).
DopeGhoti

DopeGhoti의 의견에 덧붙여, 많은 장치는 이제 실시간 펌웨어로드를 허용하여 고정 구현보다 더 유연하고 진화 적입니다.
Julie Pelletier

1
@DopeGhoti 하드웨어를 구성하는 것이 아니라 하드웨어에서 실행됩니다. 일부 펌웨어는 실제로 매우 복잡하며 기본적으로 미니 OS를 실행합니다.
Stephen Kitt

"하드웨어에 통합 된 소프트웨어"는 하드웨어가 해당 소프트웨어가 실행되는 하드웨어임을 암시한다고 동의합니다. (:
DopeGhoti

답변:


22

Linux 커널 컨텍스트에서 펌웨어는 시스템의 다른 프로세서 ( 예 : 무선 컨트롤러, GPU, SCSI 컨트롤러)에서 실행되는 소프트웨어입니다.이 소프트웨어는 관련 컨트롤러에 연결된 ROM (다양한 유형)에 저장되었습니다. 그러나 비용을 절감하고 업그레이드를 단순화하기 위해 컨트롤러는 이제 호스트 운영 체제에 의존하여 펌웨어를로드하는 경향이 있습니다.

따라서 펌웨어 파일은 커널에서 사용되지 않고 커널에 의해 다른 하드웨어에로드됩니다. 이것은 또한 FLOSS 시스템에 소스 코드가없는 소프트웨어를 갖는 것이 모호하게 허용되는 이유입니다. 논쟁은 그것이 메인 CPU가 아니라 다른 장치에서 실행되고 있다는 것입니다.


1
"모호하게 허용되는"사용으로 매우 자비 롭습니다.
Rui F Ribeiro

2
모든 사람이 RMS가 될 수있는 것은 아닙니다.
DopeGhoti

이는 Linux 커널 컨텍스트뿐만 아니라 다중 프로세서 시스템의 컨텍스트에서 "펌웨어"에 대한 상당히 일반적인 정의입니다.
Gilles 'SO- 악마 그만해

그렇게 은 / etc / lib 디렉토리 / 펌웨어는 실제로 펌웨어 및 포함 되지 드라이버 부팅시 커널에 의해로드를? 그러나 무선 컨트롤러 및 그래픽 카드에는 제조업체에서 구운 펌웨어가있는 자체 ROM이 있습니다.
8:27에

3
@defalt yes, /lib/firmware(singular, no /etc)에는 다른 장치에서 사용하는 펌웨어가 포함되어 있습니다. 무선 컨트롤러 및 GPU를 포함한 많은 장치에는 펌웨어가 포함 된 자체 ROM (또는 플래시)이 있더라도 호스트 시스템에서 제공하는 펌웨어가 필요합니다.
Stephen Kitt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.