“ เฟิร์มแวร์” ในคำศัพท์ Linux คืออะไร


15

ฉันสับสนกับการใช้เฟิร์มแวร์ในบริบทของ Linux

ความเข้าใจของฉันเกี่ยวกับเฟิร์มแวร์และไดรเวอร์คือเฟิร์มแวร์คือรหัสที่ทำงานบนโลหะเปลือยของอุปกรณ์เช่นบลูทู ธ IC หรือตัวควบคุมแป้นพิมพ์หรือการ์ดวิดีโอหรือไมโครคอนโทรลเลอร์แบบใช้ครั้งเดียว เฟิร์มแวร์จะเปิดเผยอินเตอร์เฟสสำหรับระบบปฏิบัติการเพื่อใช้บริการ

ในการเปรียบเทียบไดรเวอร์นั้นเป็นซอฟต์แวร์ที่เคอร์เนลใช้เพื่อสื่อสารกับอินเทอร์เฟซที่ระบุไว้ก่อนหน้านี้ที่จัดทำโดยเฟิร์มแวร์ ดังนั้นไดรเวอร์วิดีโอไดรเวอร์แป้นพิมพ์ไดรเวอร์วิทยุบลูทู ธ

เหตุใดฉันจึงต้องอ่านเกี่ยวกับไฟล์เฟิร์มแวร์ของ Linux ที่ต้องติดตั้ง (เช่นที่นี่ ) สิ่งเหล่านี้จะถูกอัพโหลดเข้าสู่ฮาร์ดแวร์หรือไม่? ไฟล์เหล่านี้ถูกใช้โดยเคอร์เนลหรือไม่ ความหมายของเฟิร์มแวร์ในบริบทนี้คืออะไร?


1
โดยทั่วไปการพูด: ซอฟต์แวร์เป็นโปรแกรม ฮาร์ดแวร์เป็นอุปกรณ์ทางกายภาพ เฟิร์มแวร์เป็นโปรแกรมที่รวมเข้ากับฮาร์ดแวร์ โดยทั่วไปแล้วสำหรับวัตถุประสงค์ในการกำหนดค่าวิธีการทำงานของฮาร์ดแวร์ (ดังนั้นจึงเป็นประเภทระหว่างซอฟต์แวร์และฮาร์ดแวร์เช่นเดียวกับ 'บริษัท ' อยู่ระหว่าง 'นุ่ม' และ 'ยาก' ในระดับของทื่อ) โดยทั่วไปเฟิร์มแวร์เป็นผู้ไม่เชื่อเรื่องพระเจ้า (ตัวอย่างเช่นการกำหนดค่า RAID บนคอนโทรลเลอร์ SCSI RAID)
DopeGhoti

เพื่อเพิ่มความคิดเห็นของ DopeGhoti ตอนนี้อุปกรณ์จำนวนมากอนุญาตให้โหลดเฟิร์มแวร์สดทำให้มีความยืดหยุ่น / วิวัฒนาการมากกว่าการใช้งานคงที่
Julie Pelletier

1
@DopeGhoti ไม่เพียง แต่กำหนดค่าฮาร์ดแวร์ แต่ทำงานบนฮาร์ดแวร์ เฟิร์มแวร์บางตัวนั้นซับซ้อนมากและใช้งานระบบปฏิบัติการขนาดเล็ก
Stephen Kitt

ฉันเห็นด้วยแม้ว่าฉันจะขอยืนยันว่า "ซอฟต์แวร์ที่รวมเข้ากับฮาร์ดแวร์" หมายความว่าฮาร์ดแวร์เป็นสิ่งที่ซอฟต์แวร์ดังกล่าวทำงานอยู่ (:
DopeGhoti

คำตอบ:


23

ในบริบท Linux kernel เฟิร์มแวร์เป็นซอฟต์แวร์ที่ทำงานบนโปรเซสเซอร์อื่นในระบบเช่นคอนโทรลเลอร์ไร้สาย, GPU, คอนโทรลเลอร์ SCSI ... ซอฟต์แวร์นี้ใช้เพื่อเก็บไว้ใน ROM (ชนิดต่าง ๆ ) ที่ต่ออยู่กับคอนโทรลเลอร์ที่เกี่ยวข้อง แต่เพื่อลดค่าใช้จ่ายและทำให้การอัพเกรดง่ายขึ้นตอนนี้ผู้ควบคุมมักจะพึ่งพาระบบปฏิบัติการโฮสต์เพื่อโหลดเฟิร์มแวร์สำหรับพวกเขา

ดังนั้นไฟล์เฟิร์มแวร์จะไม่ถูกใช้โดยเคอร์เนล แต่จะถูกโหลดโดยเคอร์เนลไปยังฮาร์ดแวร์อื่น ๆ นี่เป็นสิ่งที่ทำให้การยอมรับซอฟต์แวร์โดยไม่ต้องมีซอร์สโค้ดในระบบ FLOSS ก็เป็นที่ยอมรับกันอย่างไม่น่าเชื่ออาร์กิวเมนต์นี้ไม่ได้ทำงานบน CPU หลัก แต่ใช้กับอุปกรณ์อื่น


1
คุณมีน้ำใจมากกับการใช้ "ยอมรับไม่ได้"
Rui F Ribeiro

2
ไม่ใช่ทุกคนที่สามารถเป็น RMS ได้
DopeGhoti

ไม่เพียง แต่ในบริบทเคอร์เนลของ Linux แต่เป็นคำจำกัดความทั่วไปของ“ เฟิร์มแวร์” ในบริบทของระบบมัลติโปรเซสเซอร์
Gilles 'หยุดความชั่วร้าย'

ดังนั้น/ etc / lib / firmwaresจริง ๆ แล้วประกอบด้วย firmwares และไม่ ไดรเวอร์โหลดโดยเคอร์เนลที่บูต? แต่คอนโทรลเลอร์ไร้สายและการ์ดกราฟิกมี ROM ของตนเองพร้อมเฟิร์มแวร์ที่เขียนโดยผู้ผลิต
defalt

3
@defalt ใช่/lib/firmware(เอกพจน์ไม่มี/etc) มีเฟิร์มแวร์ที่ใช้โดยอุปกรณ์อื่น อุปกรณ์จำนวนมาก (รวมถึงตัวควบคุมไร้สายและ GPU) จำเป็นต้องมีเฟิร์มแวร์จากระบบโฮสต์แม้ว่าพวกเขาอาจมี ROM (หรือแฟลช) ของตัวเองที่มีเฟิร์มแวร์
Stephen Kitt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.