ความแตกต่างและความสัมพันธ์ระหว่างเฟิร์มแวร์และไดรเวอร์อุปกรณ์


27
  1. เฟิร์มแวร์และไดรเวอร์อุปกรณ์แตกต่างกันและเกี่ยวข้องกันอย่างไร ฉันคิดว่าอุปกรณ์ควบคุมทั้งสอง?
  2. เฟิร์มแวร์ทำการบู๊ตด้วยตนเองเสมอหรือไม่ในขณะที่ระบบปฏิบัติการจะต้องรัน / บู๊ตด้วยตัวเองหรือไม่?

คำตอบ:


24
  1. เฟิร์มแวร์เป็นซอฟต์แวร์ที่ทำงานบนอุปกรณ์ ไดรเวอร์คือซอฟต์แวร์ที่บอกระบบปฏิบัติการของคุณถึงวิธีการสื่อสารกับอุปกรณ์ ไม่ใช่ว่าอุปกรณ์ทั้งหมดจะมีเฟิร์มแวร์ แต่จะมีเฉพาะอุปกรณ์ที่มีความฉลาดระดับหนึ่ง

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

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


ขอบคุณ! ใน 2 โดยการบูทตนเองฉันหมายความว่าหากเฟิร์มแวร์นั้นดำเนินการโดยตัวของมันเองไม่ใช่ของผู้อื่นในขณะที่ไดร์เวอร์นั้นใช้งานโดย OS เองไม่ใช่หรือ? ฉันหยิบคำขึ้นเองจาก "ไม่มีระบบปฏิบัติการผู้ใช้ไม่สามารถเรียกใช้โปรแกรมแอปพลิเคชันบนคอมพิวเตอร์ของพวกเขายกเว้นว่าโปรแกรมแอปพลิเคชันคือการบูทด้วยตนเอง" ในen.wikipedia.org/wiki/Operating_system
Tim

1
เฟิร์มแวร์ดำเนินการโดยอุปกรณ์ฮาร์ดแวร์เอง ... ฉันคิดว่าจะตอบคำถามได้หรือไม่ พิจารณาสิ่งนี้: อุปกรณ์ที่ไม่ใช่คอมพิวเตอร์จำนวนมากมี "เฟิร์มแวร์" - เช่นกล้องดิจิทัลเครื่องเล่นดีวีดีโทรศัพท์มือถือ ฯลฯ ดังนั้นในกรณีเหล่านี้เห็นได้ชัดว่าเฟิร์มแวร์มีอยู่ในตัวเองโดยสมบูรณ์ในอุปกรณ์ แต่ถ้า / เมื่อคุณเสียบหนึ่งในอุปกรณ์เหล่านั้นลงในเครื่องคอมพิวเตอร์ของคุณคุณจะต้องมีคนขับรถ
Flimzy

1
ขอบคุณ! จากen.wikipedia.org/wiki/Computer_software : "เฟิร์มแวร์เป็นซอฟต์แวร์ระดับต่ำที่มักถูกจัดเก็บไว้ในอุปกรณ์หน่วยความจำที่ตั้งโปรแกรมได้ด้วยไฟฟ้าเฟิร์มแวร์ได้รับชื่อเนื่องจากได้รับการปฏิบัติเช่นฮาร์ดแวร์และเรียกใช้ (" ดำเนินการ ") โดยโปรแกรมซอฟต์แวร์อื่น ๆ " เฟิร์มแวร์รันโดยโปรแกรมซอฟต์แวร์อื่นหรือโดยตัวฮาร์ดแวร์เองหรือไม่?
ทิม

-1 ทำไมคุณพูดonly devices with some level of intelligence have firmware? ฉันจะบอกว่ามันเป็นวิธีอื่น ๆ อุปกรณ์ (อิเล็กทรอนิกส์) ที่เรียบง่ายอาจไม่มีระบบปฏิบัติการ แต่มีเฟิร์มแวร์
Celeritas

@Celeritas: เนื่องจากอุปกรณ์ที่มีระดับสติปัญญาเท่านั้นที่มีเฟิร์มแวร์ในทางตรงกันข้ามกับอุปกรณ์เหล่านั้น (เช่นพอร์ต RS-232) ซึ่งไม่มี หากคุณกำลังเปรียบเทียบอุปกรณ์ที่มีทั้งระบบปฏิบัติการ (โทรศัพท์มือถือ, iPod, GPS ที่ตั้งโปรแกรมได้ ฯลฯ ) คุณกำลังพูดถึงเลเยอร์นามธรรมที่แตกต่างอย่างสิ้นเชิงซึ่งไม่มีส่วนเกี่ยวข้องกับ "ไดรเวอร์อุปกรณ์" ในแง่ดั้งเดิม ซอฟต์แวร์การเข้าถึงระดับนี้มักเรียกว่า "ไดรเวอร์อุปกรณ์" แต่ในความเป็นจริงมันเป็นโปรโตคอลเครือข่ายแอปพลิเคชันที่ติดตั้งอยู่ด้านบนของไดรเวอร์อุปกรณ์ (เช่นที่สื่อสารกับพอร์ต USB หรือบลูทู ธ )
Flimzy

5

เฟิร์มแวร์ใช้รายละเอียดระดับต่ำที่จำเป็นสำหรับการใช้งานฮาร์ดแวร์และให้ API / ABI ในระดับที่สูงขึ้น ไดรเวอร์อุปกรณ์จัดเตรียมอะแด็ปเตอร์ระหว่าง OS และ API / ABI ที่เปิดเผยโดยเฟิร์มแวร์


1
ขอบคุณ! ไดรเวอร์อุปกรณ์เป็นส่วนหนึ่งของระบบปฏิบัติการหรือไม่และทำงานโดยเคอร์เนลระบบปฏิบัติการ เฟิร์มแวร์เป็นส่วนหนึ่งของอุปกรณ์หรือไม่และทำงานโดยที่เคอร์เนลระบบปฏิบัติการหรือเฟิร์มแวร์เอง
ทิม

1
ไดรเวอร์อุปกรณ์ถือเป็นส่วนหนึ่งของระบบปฏิบัติการและมักจะทำงานบนโฮสต์ CPU อุปกรณ์มักจะรันเฟิร์มแวร์ มันอาจถูกอัปโหลดไปยังอุปกรณ์โดยระบบปฏิบัติการแม้ว่า
Ignacio Vazquez-Abrams

นี่ควรเป็นคำตอบที่ยอมรับได้
Eric Wang

4

คำจำกัดความที่ทันสมัยหรือการใช้งานทั่วไปของเฟิร์มแวร์ไม่เกี่ยวข้องกับฟังก์ชันซอฟต์แวร์เฉพาะ เฟิร์มแวร์เป็นซอฟต์แวร์ที่เก็บไว้ในหน่วยความจำเซมิคอนดักเตอร์ที่ไม่ลบเลือน (เช่นชิป PROM, EEPROM หรือแฟลช) แทนที่จะเป็นอุปกรณ์จัดเก็บข้อมูลขนาดใหญ่เช่นฮาร์ดไดรฟ์ ซอฟต์แวร์ที่เก็บไว้อาจเป็นไบนารีที่เชื่อมโยงแบบเสาหินหรือประกอบด้วยโหลดเดอร์เคอร์เนลและโมดูลแอปพลิเคชัน (OTOH ฉันเคยเห็นการ์ด TV tuner สำหรับพีซีที่ต้องโหลด "เฟิร์มแวร์" โดยเคอร์เนล Linux เพื่อเริ่มต้นการทำงานให้เสร็จสมบูรณ์)

ต้นกำเนิดของคำนี้เกี่ยวข้องกับตรรกะที่ควบคุมด้วยตัวประมวลผลเปรียบเทียบกับตรรกะการเดินสาย ซอฟต์แวร์ที่จัดเก็บในฮาร์ดไดรฟ์สามารถแก้ไขและอัปเดตได้ง่าย การแก้ไขและการปรับปรุงตรรกะการเดินสายที่จำเป็นต้องมีการออกแบบและเปลี่ยนบอร์ดหรือโมดูล พื้นกลางเป็นตัวประมวลผลซอฟต์แวร์ที่ควบคุมฮาร์ดแวร์ ซอฟแวร์ที่ได้รับการเรียกว่าบริษัทเครื่องสะท้อนให้เห็นถึงพื้นกลางระหว่างนุ่มเครื่องเมื่อเทียบกับฮาร์ดตรรกะแบบใช้สาย เดิมทีเฟิร์มแวร์นั้นถูกเก็บไว้ในชิป ROM, PROM หรือ EPROM เพื่อรักษาความเป็นโมดูลของบอร์ด ความก้าวหน้าของ EEPROM และชิปแฟลชช่วยให้สามารถอัปเดตเฟิร์มแวร์ในวงจรและออนบอร์ด

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


ถ้าอย่างนั้นการติดตั้งเฟิร์มแวร์ในที่เก็บข้อมูลขนาดใหญ่หมายความว่าอะไร? ชอบแพ็คเกจ Debianนี้หรือไม่?
xuhdev

1
@xuhdev - แพ็คเกจ Debian นั้นประกอบด้วยไฟล์ที่สามารถใช้งานได้โดยไดรเวอร์อุปกรณ์ Linux ต่างๆ ไฟล์จะถูกอ้างอิงเป็น"เฟิร์มแวร์"เนื่องจากไฟล์เหล่านั้นถูกเขียนไปยังอุปกรณ์ต่อพ่วงโดยไดรเวอร์ Linux ไฟล์อาจมีข้อมูลการใช้งานหรือรหัสสำหรับ uC / uP ในตัวของอุปกรณ์ โปรดทราบว่าไฟล์นี้ถ่ายโอนไปยังอุปกรณ์จะถูกโหลดลงในหน่วยความจำที่ระเหยได้ของอุปกรณ์และการโหลดจะต้องเกิดขึ้นหลังจากการรีเซ็ตอุปกรณ์หรือระบบ "การติดตั้ง"นี้"เฟิร์ม"ในการเก็บรักษามวลของโฮสต์เป็นเพียงกลไกในการดำเนินการ (การจัดการแพคเกจ IE)
ขี้เลื่อย

3

มีคนโพสต์คำถามนี้เมื่อเร็ว ๆ นี้โดยพูดว่า:

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

ในความเป็นจริงแล้วdriversแท็กของ SuperUser นั้นถูกกำหนดไว้:

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

และfirmwareแท็กถูกกำหนด:

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

เดิมทีฉันคิดว่าfirmwareมันถูกติดตั้งลงบนชิปหรือบอร์ดโดยตรงและอาศัยอยู่ที่นั่นนั่นเป็นเหตุผลว่าทำไมจึงต้องมีการ "ประกาย" ในขณะที่คุณจะติดตั้งdriverระบบปฏิบัติการที่ด้านบน

สรุป:

Firmwareอนุญาตให้ฮาร์ดแวร์ทำสิ่งต่าง ๆ และdriversอนุญาตให้ซอฟต์แวร์โต้ตอบกับฮาร์ดแวร์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.