Firmware

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm
Một thiết bị điều khiển bằng firmware điển hình, một bộ điều khiển từ xa với Ti vi

Firmware là một thuật ngữ thỉnh thoảng được dùng để biểu thị những phần mềm cố định, thường là khá nhỏ, để điều khiển nội quan nhiều thiết bị điện tử. Những điển hình trải rộng từ những sản phẩm cho người dùng cuối như bộ điều khiển từ xa hoặc máy tính bỏ túi, thông qua những thiết bị và bộ phận máy tính như ổ cứng, bàn phím, màn hình LCD bóng bán dẫn mỏng hoặc thẻ nhớ, thậm chí đến cả những dụng cụ khoa họcngười máy công nghiệp. Cũng có mặt trong những thiết bị tiêu dùng phức tạp hơn, như điện thoại di động, máy quay số, máy hòa âm, vân vân..., để đáp ứng những quy trình cơ bản của thiết bị cũng như thực hiện những chức năng cao cấp hơn.

Một cách tự nhiên, không có ranh giới gì rõ rệt hoặc được định nghĩa chỉnh giữa firmware và software. Tuy nhiên, firmware chủ yếu liên quan tới những quy trình hết sức cơ bản và thấp cấp trong một thiết bị, không có chúng thì thiết bị hoàn toàn không thể hoạt động. Firmware cũng là một thuật ngữ tương đối, khi mà phần lớn những thiết bị nhúng firmware chứa firmware ở nhiều hơn một cấp nội hàm. Các phân hệ như cấu kiện màn hình tinh thể lỏng, chíp nháy, bộ điều khiển giao tiếp vân vân, điều có những đoạn mã chương trình riêng (thường là cố định) và/hoặc vi mã, được coi như 'bộ phận của phần cứng' nếu xét ở cấp độ firmware cấp cao hơn.

Firmware đơn giản chủ yếu thường trú ở bộ nhớ chỉ đọc, hoặc OTP/Bộ nhớ chỉ đọc khả dĩ lập trình, khi mà những firmware phức tạp hơn thường lưu trú ở bộ nhớ nháy để có thể cập nhật. Những lý do thông thường để cập nhật firmware bao gồm sửa lỗi hoặc thêm chức năng vào thiết bị. Làm như vậy thường sẽ liên quan tới việc tải một ảnh số được nhà sản xuất cung cấp vào thiết bị, theo một quy trình nhất định; thỉnh thoảng việc này được hiểu là do người dùng cuối thực hiện.

Nguồn gốc thuật ngữ[sửa | sửa mã nguồn]

Thuật ngữ "firmware" đã được Ascher Opler đặt ra năm 1967 trong một bài báo ở tờ Datamation [1] Ban đầu nó có nghĩa là nội dung vi mã của một phân khu điều khiển khả dĩ ghi liệu (một bộ phận nhỏ chuyên môn hóa của bộ nhớ truy xuất ngẫu nhiên), định nghĩa và thi hành tập lệnh của bộ vi xử lý trung tâm. Firmware có thể được tái tải nếu cần để đặc trưng hóa hoặc chỉnh sửa tập lệnh của máy tính. Như được sử dụng ban đầu, từ firmware đối lập với từ hardware (bản thân CPU) và software (những chương trình chạy trên CPU). Nó không được hợp thành bởi những lệnh CPU, mà bởi những vi mã thấp cấp hơn tham gia vào sự thi hành những lệnh máy. Nó tồn tại ở biên giới của hardwaresoftware, đó là thuật ngữ firmware.

Sau này thuật ngữ được mở rộng ra để bao gồm bất kỳ vi mã nào, cho dù trong RAM hay ROM.

Lại sau này, thuật ngữ lại một lần nữa mở rộng ra để chỉ bất kỳ thứ gì thường trú ở ROM, kể cả những lệnh của bộ xử lý cho BIOS, bộ tải khởi động, hoặc những ứng dụng chuyên hóa.

Firmware ngày nay[sửa | sửa mã nguồn]

Firmware đã tiến tới mức chỉ gần như mọi nội dung khả dĩ lập trình của một thiết bị phần cứng, không chỉ là ngôn ngữ máy cho vi xử lý mà còn chỉ những tùy chọn và dữ liệu cho mạch tích hợp chuyên dụng, thiết bị logic khả dĩ lập trình, vân vân. Mặc dù những thiết bị hiện đại có thể được cập nhật bằng firmware thường bố trí những phương pháp bán tự động, thỉnh thoảng một bộ nhớ trung bình, như một bộ nhớ chỉ đọc lắp vào đế, vẫn phải thay thế (là một quy trình điển hình tới tận giữa những năm 1990).

Các thiết bị ngoại vi[sửa | sửa mã nguồn]

Phần lớn những thiết bị ngoại vi đều rõ ràng là những máy tính có mục đích đặc biệt. Khi mà những thiết bị ngoại vi có firmware trữ sẵn bên trong, những thẻ ngoại vi máy tính hiện đại thường có một phần lớn firmware tải bởi hệ thống chủ vào lúc khởi động máy, vì như thế linh hoạt hơn. Những phần cứng như vậy do vậy sẽ không thể hoạt động hoàn toàn cho tới khi máy làm chủ đã cung cấp firmware cần thiết, thường là qua bộ lái thiết bị (hoặc, chính xác hơn, một phân hệ bên trong gói bộ lái thiết bị). Những bộ lái thiết bị hiện đại cũng có thể trình bày một giao diện người dung trực tiếp để tùy chỉnh bổ sung cho những cuộc gọi / giao diện căn bản và/hoặc giao diện chương trình ứng dụng ở tầng lập trình.

Những thách thức về firmware với máy tính cá nhân[sửa | sửa mã nguồn]

Theo một số phương diện, nhiều thành phần firmware quan trọng ngang với hệ điều hành trong một chiếc máy tính đang hoạt động. Tuy nhiên, không giống như phần lớn hệ điều hành hiện đại, firmware hiếm khi có một cơ chế được phát triển tốt để tự cập nhật nhằm sửa lỗi chức năng được phát hiện sau khi hàng đã được giao.

BIOS khá đơn giản cập nhật trong một máy tính cá nhân hiện đại; những thiết bị như card đồ họamodem thường dựa trên firmware được tải một cách linh động qua một bộ lái thiết bị và vì vậy có thể được cập nhật một cách rõ ràng qua cơ chế cập nhật của hệ điều hành. Ngược lại, firmware trong những thiết bị lưu trữ hiếm khi được cập nhật, cơ chế phát hiện những phiên bản firmware và cập nhật chúng không được tiêu chuẩn hóa. Những thiết bị này vì vậy có xu hướng có những vấn đề chức năng cao hơn, so với những bộ phận khác của một hệ thống máy tính hiện đại.

[cần dẫn nguồn]

Máy nghe nhạc lưu động[sửa | sửa mã nguồn]

Một số công ty sử dụng những cập nhật firmware để thêm những định dạng tập tin mới có thể chơi được (mã hóa) như Iriver đã thêm định dạng Ogg như thế. Những chức năng khác có thể thay đổi với những cập nhật firmware là giao diện người dùng đồ họa và thậm chí là tuổi thọ pin. Phần lớn những máy chơi nhạc hiện đại hỗ trợ cập nhật firmware.

Điện thoại di động[sửa | sửa mã nguồn]

Phần lớn điện thoại di động đều có firmware có khả năng cập nhật với những lý do phần nhiều là tương tự như trên, nhưng một số thậm chí có thể được nâng cấp đề được tiếp nhận tốt hơn, hoặc cải thiện chất lượng âm thanh.

Định nghĩa IEEE[sửa | sửa mã nguồn]

Từ điển chuyên ngành chuẩn về Thuật ngữ học Kỹ thuật máy tính của Học viện Điện và Điện tử (IEEE) Std 610.12-1990, định nghĩa firmware như sau:

"Sự kết hợp của thiết bị phần cứng và các lệnh máy tính và dữ liệu lưu trú dưới dạng phần mềm chỉ đọc trên thiết bị đó.
Ghi chú: (1) Thuật ngữ này thường được sử dụng chỉ để nói về thiết bị phần cứng hoặc chỉ là những lệnh máy tính hoặc dữ liệu, nhưng những nghĩa này bị phản đối. (2) Sự rối loạn xung quanh thuật ngữ này đã khiến một vài người đề nghị rằng nên tránh dùng nó trên mọi phương diện."

Thí dụ[sửa | sửa mã nguồn]

Những thí dụ về firmware bao gồm:

  • Hệ thống điều khiển và định giờ cho máy giặt
  • BIOS trong những máy tính cá nhân tương thích với sản phẩm IBM;
  • Những mã nền trong những hệ thống ITanium, những máy Mac OS X dựa trên sản phẩm Intel, và nhiều máy để bàn Intel có firmware tương thích EFI;
  • Firmware mở, dùng trong những máy tính của Sun Microsystems, Apple Computer, và Genesi;
  • ARCS, dùng trong những máy tính của Silicon Graphics;
  • Kickstart dùng trong dòng máy Amiga, nó là một ví dụ hiếm thấy của một firmware trộn với những khả năng của BIOS (POST, khởi tạo phần cứng + Tự tùy biến của những thiết bị ngoại vi mang tính Cắm và chạy, vân vân.), lõi của AmigaOS bản thân nó và những thành phần bộ mã sử dụng trong hệ điều hành này (như những Giao diện đồ họa nguyên thủy và những thư viện)
  • RTAS (Run-Time Abstraction Services hay Những dịch vụ trừu tượng hóa chạy thực), trong những máy tính của IBM;
  • EPROM chíp dùng trong dòng máy Eventide H-3000 về những bộ xử lý nhạc số.
  • Môi trường Firmware phổ thông
  • Những thuộc tính điều khiển âm thanh và phim cũng như danh sách kênh trong những Ti vi hiện đại

"Hack" firmware[sửa | sửa mã nguồn]

Thỉnh thoảng một phiên bản mới hoặc được tùy chỉnh không chính thức của firmware được tạo nên bởi các tổ chức thứ ba để cung cấp những chức năng mới hoặc mở khóa những chức năng còn bị ẩn. Ví dụ như Rockbox về máy nghe nhạc kỹ thuật số. CHDK về những máy quay phim kỹ thuật số Canon, và OpenWRT cho những bộ định tuyến không dây, thoải mái vùng firmware cho những đầu DVD, không tự do cho vùng với những firmware chính thức, cũng như nhiều dự án hombrew với những máy chơi game. Những firmware này thường có thể mở khóa chức năng đa dụng của máy tính về tổng quát trên những thiết bị trước đây bị hạn chế (ví dụ, chơi Doom trên iPod). Phần lớn các bản hack của firmware cũng đều miễn phímã nguồn mở.

Những bản hack thường lợi dụng sự dễ dàng trong cập nhật firmware trên nhiều thiết bị để bản thân nó cài đặt và hoạt động. Một số, tuy nhiên, lại phải dựa vào lợi dụng lỗi để hoạt động được, bởi vì nhà sản xuất đã cố tình khóa phần cứng để nó không thể chạy mã không đăng ký

Xem thêm[sửa | sửa mã nguồn]

Nguồn[sửa | sửa mã nguồn]

  1. ^ Opler, Ascher (January năm 1967). “Fourth-Generation Software”. Datamation 13 (1): 22–24.