Mặc dù về lý thuyết, người ta có thể viết BIOS bằng bất kỳ ngôn ngữ nào, nhưng thực tế hiện đại là hầu hết BIOS được viết bằng cách sử dụng hội, C hoặc kết hợp cả hai .
BIOS phải được viết bằng ngôn ngữ có thể biên dịch thành mã máy , được hiểu bởi máy phần cứng vật lý. Điều này giúp loại bỏ các ngôn ngữ được dịch trực tiếp hoặc trung gian ly (Perl, Python, PHP, Ruby, Java, C #, JavaScript, v.v.) là phù hợp để viết BIOS. (Mặc dù, về mặt lý thuyết, người ta có thể triển khai một trong những ngôn ngữ này để biên dịch trực tiếp thành mã máy tĩnh hoặc bằng cách nào đó có thể nhúng trình thông dịch vào BIOS. Ví dụ, có dự án GCJ từ bỏ phần mềm cho Java.)
Hầu hết các OEM triển khai BIOS bằng cách mở rộng các triển khai BIOS chung, độc quyền của các công ty như Megatrends và Phoenix Techology của Mỹ . (Bạn có thể đã thấy một trong những công ty được hiển thị trên màn hình khởi động đầu tiên của máy tính trước đó.) Mã nguồn cho các triển khai này không có sẵn công khai, nhưng một số công ty đã bị rò rỉ. Tôi không muốn liên kết trực tiếp đến mã nguồn C và mã nguồn lắp ráp này, nhưng có những nơi trên Internet nơi mã nguồn này được thảo luận cho những ai quan tâm.
Một số nhà sản xuất phần cứng, như những người nhắm vào thị trường trò chơi và hiệu năng cao, đã bão hòa việc triển khai BIOS của họ với các tính năng tùy chỉnh, số liệu thống kê và giao diện người dùng hấp dẫn được thiết kế để triển khai chính xác. Nhiều tính năng trong số này vượt xa những gì được cung cấp trong các sản phẩm chung được sản xuất bởi Megatrends của Mỹ và các sản phẩm khác. Thật không may, các công ty này thường xem việc phát hành mã nguồn của họ là một rủi ro bảo mật , vì vậy rất ít thông tin về các triển khai cao cấp này vì rất ít chia sẻ về chúng. Tất nhiên người ta có thể tìm cách truy cập và biên dịch các triển khai BIOS như vậy nhưng làm như vậy có thể khó khăn và có thể là bất hợp pháp.
Quay trở lại câu hỏi ban đầu, vì nhu cầu sản xuất mã máy gốc, BIOS sẽ phải được thực hiện bằng ngôn ngữ lập trình được hỗ trợ bởi trình biên dịch mã máy gốc . Mặc dù có nhiều ngôn ngữ như vậy và trong khi tôi chắc chắn trong vài thập kỷ qua, một số ngôn ngữ đã được sử dụng trong thử nghiệm, mọi triển khai BIOS mở tôi đều có thể tìm thấy cụ thể dựa trên sự kết hợp giữa C và / hoặc lắp ráp. Các triển khai BIOS có nguồn mở mà tôi đã xem xét để hình thành kết luận này bao gồm OpenBIOS , tinyBIOS , coreboot , Intel BIOS và Libreboot. Tôi cũng đã xem xét một số triển khai BIOS rất cũ không liên quan ngày hôm nay nhưng cũng tuân theo quy tắc C và / hoặc lắp ráp.
Tôi nghĩ cũng có liên quan để xem xét các phần mềm khác được xây dựng để tương tác trực tiếp với phần cứng. Ví dụ, chúng ta biết rằng Linux Kernel , kernel OS X và kernel Windows phần lớn là C với một số phần lắp ráp và một số ngôn ngữ cấp cao hơn cho các tác vụ cụ thể. Chúng tôi cũng biết rằng trình điều khiển phần cứng trên Linux và trình điều khiển phần cứng trên Windows được viết chủ yếu bằng C.
Quay trở lại BIOS, tôi nghĩ điều quan trọng là phải xem xét tính kinh tế của ngôn ngữ lập trình đã chọn. BIOS thường được viết như là một điều cần thiết để bổ sung cho doanh số phần cứng. Các hệ thống BIOS hiện đại được biết đến phần lớn được viết bằng C và / hoặc lắp ráp. Việc chuyển sang một số công cụ khác sẽ thêm chi phí đáng kể vào những gì thường được coi là sản phẩm hàng hóa có thể ảnh hưởng xấu đến doanh số bán hàng. Không cần vào Kinh tế 101, tôi có thể đảm bảo với bạn rằng có lẽ nó không xứng đáng với một OEM để đi chệch khỏi các công cụ đã thử và đã được chứng minh qua nhiều thập kỷ.
Tất nhiên, cũng có và sẽ có các dự án sở thích để viết BIOS. Những điều này cũng vậy, cho đến nay, dường như đang chọn C và / hoặc lắp ráp. Có lẽ một ngày nào đó các công nghệ khác sẽ được sử dụng. Nhưng ngày nay, sự lựa chọn được xác định rõ.