Về mặt kỹ thuật, Firmware chỉ là một tập con của Software, vì thuật ngữ sau bao gồm mọi đoạn mã hữu ích. Trong thực tế, tuy nhiên, thuật ngữ software đề cập đến một lớp chương trình rất khác biệt.
Nói chung, firmware là tên gọi cho mã cấp thấp (low-level code) giao tiếp trực tiếp với phần cứng. Bất kỳ chương trình nào hoạt động trên lớp này đều thuộc phần software. Bối rối? Dưới đây là cái nhìn sâu hơn.
Nhiều Loại Software
Vấn đề với thuật ngữ software là nó quá rộng. Bất kỳ tập hợp hướng dẫn nào có thể điều khiển máy tính — hoặc bất kỳ thiết bị điện tử nào, về mặt đó — đều có thể được coi là software.
Điều này không phải vấn đề trong những ngày đầu của máy tính khi tất cả chương trình được viết bằng assembly và giao tiếp trực tiếp với phần cứng để thực hiện bất kỳ nhiệm vụ nào. Nhưng hiện nay, thiết bị điện tử chạy trên lớp sau lớp mã, với người dùng chỉ tiếp xúc với các chương trình ở lớp trên cùng.
Được gọi là Application Software (Phần mềm ứng dụng), loại chương trình thân thiện với người dùng này bao gồm tất cả ứng dụng và tiện ích bạn dùng trên PC, như trình duyệt web hoặc trình soạn thảo văn bản. Dưới đó là Operating System (Hệ điều hành), xử lý các chi tiết cấp thấp như hiển thị hình ảnh lên màn hình và xử lý đầu vào.
Hầu hết mọi người nghĩ rằng nó kết thúc ở đây, nhưng hệ điều hành hiếm khi giao tiếp trực tiếp với phần cứng. Có một lớp khác dưới OS cung cấp cho system software cách dễ dàng truy cập các chức năng phần cứng. Và đó là Firmware.
Firmware: Lớp Nền tảng của Software
Trong hầu hết ngôn ngữ lập trình cấp cao, việc làm những điều như hiển thị hình ảnh lên màn hình là một lệnh đơn giản. Tuy nhiên, ở đâu đó trong máy tính, có một đoạn mã chịu trách nhiệm dịch lệnh đó thành hướng dẫn xử lý thực tế.
Firmware là cầu nối giữa phần cứng và phần mềm, cho phép các nhà phát triển sử dụng khả năng của thiết bị qua giao diện lập trình đơn giản thay vì hướng dẫn chuyên biệt cho CPU. Đối với máy tính, firmware này là Basic Input Output System (BIOS) nổi tiếng, có thể truy cập ngay cả khi không có hệ điều hành.
Trong các thiết bị điện tử đơn giản hơn như điều khiển TV hoặc router, firmware đóng vai trò kép là hệ điều hành. Những máy này không dành cho việc cài đặt phần mềm ứng dụng của bên thứ ba như PC và dựa vào firmware để thực hiện tất cả các nhiệm vụ cần thiết.
Firmware Được Cài đặt Trên Thiết Bị Như Thế Nào?
Không có thiết bị điện tử nào có thể dùng được mà không có firmware. Đây là lý do tất cả các linh kiện điện tử đều có firmware cài đặt sẵn bởi nhà sản xuất.
Ngay cả trên máy tính, chương trình này được lưu trữ trên một chip flash chuyên dụng trên bo mạch chủ, không phải ổ cứng. Điều này làm cho việc khởi động máy tính và định cấu hình cài đặt phần cứng mà không cần hệ điều hành được cài đặt trở nên khả thi.
Cập nhật firmware không dễ dàng cũng không cần thiết trên hầu hết thiết bị. Với tư cách là mã điều khiển cơ bản cho máy tính, làm hỏng nó có thể khiến phần cứng không thể sử dụng. Máy tính là ngoại lệ, cho phép nâng cấp BIOS được cài đặt bởi người dùng bằng cách flash chip.
Firmware vs Software: So sánh Nhanh
| Firmware | Software |
|---|---|
| Mã thiết yếu điều khiển trực tiếp các thành phần phần cứng. | Chương trình tùy chọn sử dụng firmware để thực hiện tác vụ phức tạp. |
| Lưu trữ trên chip chuyên dụng trên thiết bị. | Cài đặt trên bộ nhớ ổ cứng. |
| Được cài đặt sẵn bởi nhà sản xuất. | Có thể cài đặt và cấu hình bởi người dùng. |
| Lớp mã thấp nhất hỗ trợ hệ điều hành và phần mềm khác. | Mã cấp cao hơn dựa vào firmware dưới nó để trừu tượng hóa phần cứng. |
| Thường là chương trình điều khiển duy nhất trong thiết bị điện tử đơn giản. | Không thể hoạt động mà không có firmware. |
| Đặc thù phần cứng. Firmware khác nhau cho các kiến trúc xử lý khác nhau và không thể hoán đổi. | Độc lập phần cứng. OS hoạt động giống nhau trên các họ xử lý khác nhau, tuy nhiên phần mềm ứng dụng thường phụ thuộc OS. |
| Cập nhật rất hiếm, nếu có. Không thể gỡ cài đặt. | Dễ dàng nâng cấp và gỡ bỏ. |
Firmware Khác Biệt Với Software Như Thế Nào?
Phần cứng và Phần mềm thường được gọi là hai thành phần của thiết bị điện tử, nhưng đó không phải là bức tranh hoàn chỉnh. Hệ điều hành và ứng dụng không thể giao tiếp trực tiếp với phần cứng, đòi hỏi một lớp mã chuyên biệt để lấp đầy khoảng trống.
Và yếu tố liên kết đó là Firmware. Nó bao gồm các hướng dẫn đặc thù kiến trúc điều khiển trực tiếp phần cứng, và trong điện tử đơn giản, đóng vai trò là OS cơ bản. Trong các thiết bị khác, firmware cung cấp giao diện trừu tượng cho software, cho phép OS sử dụng phần cứng mà không cần quan tâm về kiến trúc bên dưới.
Vì bản chất thiết yếu của nó, firmware được tải sẵn trên chip flash trên bo mạch chủ, độc lập với bất kỳ phần mềm nào ghi trên ổ đĩa. Nó chỉ có thể được cập nhật (tức là "flash") bằng quy trình chuyên biệt, khác với việc cài đặt gói phần mềm đơn giản.
Tất cả thiết bị điện tử và linh kiện ngoại vi đều có firmware riêng. Máy ảnh kỹ thuật số, smartphone, SSD, thậm chí USB drive — nếu nó có phần cứng cần điều khiển, có firmware trên đó để quản lý.