BIOS UEFI là một công nghệ mới. Uefi - nó là gì Ổ đĩa flash có khả năng khởi động Uefi. cài đặt uefi

EFI(E có thể mở rộng F phần mềm điều khiển TÔI giao diện)— giao diện dành cho thiết bị tập trung tại thời điểm hệ thống được bật. Điều chỉnh các quy trình xảy ra giữa hệ điều hành và chương trình cơ sở quản lý các chức năng phần cứng cấp thấp. EFI khởi động máy tính và sau đó chuyển quyền điều khiển sang bộ tải khởi động của hệ điều hành. Nó là sự thay thế hợp lý cho giao diện BIOS, thường được sử dụng bởi các máy tính tương thích với PC IBM.

Intel đã phát triển đặc tả EFI đầu tiên. Sau đó, giao diện đã đổi tên: phiên bản mới nhất của tiêu chuẩn được gọi là UEFI (bạn hợp nhất E có thể mở rộng F phần mềm điều khiển TÔI giao diện). Ngày nay, tiêu chuẩn UEFI đang được phát triển bởi hiệp hội Diễn đàn EFI Thống nhất.

Tiêu chuẩn EFI có hỗ trợ các menu đồ họa cũng như một số tính năng bổ sung (ví dụ: Aptio hoặc Great Wall UEFI).

Câu chuyện

Ban đầu, tiêu chuẩn EFI được thiết kế để sử dụng trong các hệ thống Intel-HP Itanium đầu tiên xuất hiện vào giữa những năm 90. Các khả năng hạn chế mà PC-BIOS thể hiện (mã 16 bit, bộ nhớ có thể định địa chỉ 1 MB, các giới hạn phần cứng IBM PC/AT, v.v.) là không thể chấp nhận được để sử dụng trên các nền tảng máy chủ lớn và Itanium đã được lên kế hoạch chính xác cho điều đó.

Đáng chú ý là EFI ban đầu được gọi là Sáng kiến ​​khởi động Intel, sau đó nó đã được đổi tên.

Thông số kỹ thuật

Lịch sử của tiêu chuẩn EFI bắt đầu với việc phát hành phiên bản 1.01, nhưng nó không được sử dụng rộng rãi vì nó nhanh chóng bị rút khỏi thị trường do các vấn đề pháp lý liên quan đến việc sử dụng nhãn hiệu.

Sau đó, vào ngày 1 tháng 12 năm 2002, phiên bản EFI 1.10 được giới thiệu, bao gồm mô hình trình điều khiển EFI, cũng như một số cải tiến “thẩm mỹ” so với phiên bản 1.02.

Năm 2005, Intel đã chỉ định đặc tả EFI cho Diễn đàn UEFI, sau đó trở thành nơi chịu trách nhiệm phát triển thêm giao diện. Đồng thời, tiêu chuẩn EFI được đổi tên thành Unified EFI (UEFI) nhằm nhấn mạnh sự thay đổi đã xảy ra. Điều đáng chú ý là dù đã thay đổi tên nhưng cả hai thuật ngữ này vẫn được sử dụng tự do trong hầu hết các tài liệu.

Vào ngày 7 tháng 1 năm 2007, Diễn đàn UEFI đã phát hành phiên bản UEFI 2.1, giới thiệu mật mã cải tiến, xác thực mạng và kiến ​​trúc giao diện người dùng được cập nhật.

Giao diện EFI chứa các bảng bao gồm nhiều dữ liệu khác nhau: thông tin về nền tảng, các dịch vụ khởi động và thời gian chạy có sẵn cho trình tải hệ điều hành và chính hệ điều hành đó. Một số phần mở rộng BIOS (ACPI hoặc SMBIOS) cũng được bao gồm trong EFI - chúng không yêu cầu giao diện thời gian chạy 16 bit.

Dịch vụ

EFI xác định các dịch vụ khởi động bao gồm hỗ trợ cho:

  • bảng điều khiển văn bản và đồ họa;
  • khối;
  • dịch vụ tập tin;

giao diện cũng xác định các dịch vụ thời gian chạy (ngày, giờ và bộ nhớ).

Trình điều khiển thiết bị

Tiêu chuẩn EFI, ngoài các trình điều khiển tiêu chuẩn, dành riêng cho kiến ​​trúc, còn xác định môi trường trình điều khiển độc lập với nền tảng. môi trường này được gọi là Mã byte EFI(EBC). Đặc tả UEFI yêu cầu phần mềm hệ thống cung cấp trình thông dịch cho mọi hình ảnh EBC được tải (thực tế hoặc có khả năng) vào môi trường.

Do đó, EBC có thể dễ dàng tương quan với Open Firmware độc ​​lập với phần cứng được sử dụng trong các máy tính Apple Macintosh và Sun Microsystems SPARC.

Một số loại trình điều khiển EFI theo kiến ​​trúc cụ thể có thể được trang bị giao diện để hệ điều hành sử dụng, cho phép chính hệ điều hành sử dụng EFI làm hỗ trợ đồ họa và mạng cơ bản trước khi tải trình điều khiển.

Quản lý download

Trình quản lý khởi động EFI được sử dụng để chọn và sau đó khởi động hệ điều hành. Do đó, nhu cầu về một thuật toán khởi động cụ thể sẽ bị loại bỏ: bộ nạp khởi động là một ứng dụng EFI.

Hỗ trợ đĩa

Ngoài phương pháp phân vùng đĩa tiêu chuẩn (MBR), EFI còn hỗ trợ Bảng phân vùng GUID (GPT). Lược đồ này không có bất kỳ hạn chế cụ thể nào về MBR. Tiêu chuẩn EFI không chỉ định hệ thống tệp, nhưng việc triển khai EFI thường hỗ trợ hệ thống tệp FAT32.

Vỏ bọc

Môi trường shell mở của tiêu chuẩn cho phép người dùng tải nó để thực hiện một số thao tác nhất định. Điều này thuận tiện hơn nhiều: người dùng không phải tải hệ điều hành. Shell là một ứng dụng EFI đơn giản có thể được lưu trữ trong ROM nền tảng (hoặc trên một thiết bị riêng biệt có trình điều khiển nằm trong ROM).

Ngoài ra, người dùng có thể sử dụng shell để chạy các ứng dụng EFI khác (ví dụ: định cấu hình hoặc cài đặt hệ điều hành hoặc chẩn đoán, định cấu hình hoặc cập nhật chương trình cơ sở). Các chức năng của shell cũng bao gồm phát phương tiện CD/DVD mà không cần tải hệ điều hành. Ngoài ra, trình bao EFI cho phép các hoạt động dựa trên lệnh sao chép hoặc di chuyển các tệp và thư mục, miễn là công việc được thực hiện trên các hệ thống tệp được hỗ trợ. Bạn cũng có thể tải xuống/dỡ bỏ trình điều khiển. Và cuối cùng, shell có thể sử dụng toàn bộ ngăn xếp TCP/IP.

Shell EFI có hỗ trợ các tập lệnh ở dạng tệp có phần mở rộng .nsh (tương tự như một tệp bó trong DOS).

Tên lệnh thường được mượn từ trình thông dịch dòng lệnh (COMMAND.COM hoặc Unix shell). Shell EFI hoàn toàn có thể hoạt động như một trình tương tự thay thế và hoàn chỉnh của trình thông dịch dòng lệnh hoặc giao diện văn bản BIOS.

Tiện ích mở rộng

Các tiện ích mở rộng EFI được tải từ hầu hết mọi thiết bị lưu trữ cố định được kết nối với PC.


Thực hiện

Khung đổi mới nền tảng Intel

Khung đổi mới nền tảng Intel (“Bộ công cụ đổi mới Intel”) là một bộ thông số kỹ thuật do Intel phối hợp với EFI phát hành. Trong trường hợp này, EFI xác định giao diện giữa hệ điều hành với phần cứng và phần mềm, còn bộ công cụ chịu trách nhiệm xác định cấu trúc được sử dụng để tạo phần mềm nhúng. Việc xác định này được thực hiện ở mức độ thấp hơn so với các chức năng được cung cấp trong EFI.

Ví dụ: bộ công cụ bao gồm tất cả các bước phải khắc phục để khởi động máy tính một cách chính xác kể từ thời điểm bật máy. Các khả năng của phần sụn bên trong này không phải là một phần của đặc tả EFI nhưng được bao gồm trong Đặc tả khởi tạo nền tảng UEFI. Bộ công cụ này đã được thử nghiệm trên nền tảng XScale, Itanium và IA-32.

Khả năng tương thích với hệ điều hành, trong trường hợp nền tảng x86, đạt được thông qua việc sử dụng Mô-đun hỗ trợ tương thích(CSM), chứa chương trình 16 bit (CSM16), được nhà sản xuất BIOS triển khai. Nó cũng bao gồm một lớp đặc biệt, các chức năng của nó bao gồm giao tiếp CSM16 với các công cụ.

Intel là tác giả của cách triển khai độc đáo cho bộ công cụ này, có tên mã là “Tiano”. Đây là triển khai phần mềm nhúng hoàn chỉnh với sự hỗ trợ của EFI. Nó thiếu phần 16-bit truyền thống của CSM, nhưng nó cung cấp các giao diện cần thiết cho các tiện ích bổ sung do nhà sản xuất BIOS triển khai. Intel không phân phối toàn bộ việc triển khai Tiano cho người dùng cuối. Một phần của việc triển khai này đã được phát hành dưới dạng mã nguồn cho dự án TianoCore, như Bộ công cụ phát triển EFI(EDK). Việc triển khai này bao gồm EFI và một phần mã khởi tạo phần cứng, nhưng đồng thời, nó ẩn đi các tính năng đặc trưng của chính phần mềm nhúng.

Bạn có thể mua các sản phẩm được xây dựng trên tiêu chuẩn EFI thông qua các nhà sản xuất BIOS bên thứ ba (ví dụ: American Megatrends (AMI) và Insyde Software). Một số triển khai hoàn toàn dựa trên Tiano, một số khác tuân thủ các thông số kỹ thuật nhưng không dựa trên triển khai của Intel.

Nền tảng sử dụng EFI; công cụ đi kèm

Năm 2000, Intel phát triển các hệ thống được xây dựng trên nền tảng Itanium. Họ đã hỗ trợ EFI 1.02.

Năm 2002, Hewlett-Packard phát hành các hệ thống được xây dựng trên nền tảng Itanium 2. Chúng hỗ trợ EFI phiên bản 1.10 và có thể khởi động các hệ điều hành Windows, Linux, FreeBSD và HP-UX.

Các hệ thống Itanium hoặc Itanium 2 được phát hành có phần mềm tích hợp tương thích với EFI phải tuân thủ thông số kỹ thuật DIG64.

Vào tháng 11 năm 2003, Gateway ra mắt Trung tâm truyền thông Gateway 610, đây là hệ thống x86 đầu tiên được xây dựng trên Windows. Nó sử dụng phần mềm nhúng dựa trên bộ công cụ, InsydeH2O của Insyde Software. Hỗ trợ BIOS được cung cấp thông qua Mô-đun hỗ trợ tương thích (CSM).

Tháng 1 năm 2006, Apple giới thiệu chiếc PC Macintosh đầu tiên được xây dựng trên nền tảng Intel. Các hệ thống sử dụng EFI và các công cụ liên quan, thay vì Open Firmware, được sử dụng trên các hệ thống nền tảng PowerPC trước đây.

Vào ngày 5 tháng 4 năm 2006, Apple giới thiệu Boot Camp, một gói tiêu chuẩn cho phép bạn tạo đĩa bằng trình điều khiển Windows XP. Ngoài ra, gói mới còn chứa một công cụ phân vùng đĩa cho phép bạn cài đặt Windows XP trong khi vẫn để Mac OS X hiện tại hoạt động. Ngoài ra, bản cập nhật chương trình cơ sở đã được phát hành. Nó đã thêm hỗ trợ BIOS để triển khai EFI. Các dòng máy tính Macintosh tiếp theo được phát hành với phần mềm cập nhật và tích hợp sẵn. Vì vậy, ngày nay tất cả các máy tính Macintosh đều có khả năng tải các hệ điều hành tương thích với BIOS.

Bo mạch chủ mang nhãn hiệu "Intel" được sản xuất chủ yếu bằng phần mềm nhúng được xây dựng trên cơ sở các công cụ (ví dụ: DP35DP). Như vậy, trong năm 2005, hơn 1 triệu hệ thống Intel đã được sản xuất. Việc sản xuất điện thoại di động, máy tính để bàn và máy chủ mới chạy trên bộ công cụ này bắt đầu vào năm 2006. Ví dụ: tất cả các bo mạch chủ được xây dựng trên bộ logic hệ thống Intel 945 đều sử dụng các công cụ trong công việc của chúng. Tuy nhiên, phần mềm nhúng, theo quy định, không bao gồm hỗ trợ EFI; nó chỉ giới hạn ở hỗ trợ BIOS.

Từ năm 2005, tiêu chuẩn EFI đã được đưa vào các kiến ​​trúc không phải PC (ví dụ: các hệ thống nhúng được xây dựng trên XScale). EDK bao gồm một mục tiêu NT32 riêng biệt cho phép phần mềm EFI và các ứng dụng của nó được nhúng vào các ứng dụng Windows. Năm 2007, Hewlett-Packard giới thiệu máy in dòng 8000. Đây là máy in đầu tiên có phần mềm nhúng tương thích với EFI. Năm 2008, MSI giới thiệu dòng bo mạch chủ được xây dựng trên chipset Intel P45; chúng có hỗ trợ EFI.

hệ điều hành

  • Từ những năm 2000, hệ điều hành GNU/Linux thường sử dụng EFI để khởi động.
  • Từ năm 2002, hệ điều hành HP-UX bắt đầu sử dụng EFI làm cơ chế khởi động trong các hệ thống được xây dựng trên nền tảng IA-64. Hệ điều hành OpenVMS đã sử dụng tiêu chuẩn này từ đầu năm 2005.
  • Apple đã áp dụng tiêu chuẩn EFI bằng cách phát hành một dòng máy tính được xây dựng trên kiến ​​trúc Intel. Mac OS X 10.4 (Tiger) cho Intel và Mac OS X 10.5 (Leopard) đã hỗ trợ EFI v1.10 không chỉ ở chế độ 32 bit mà còn trên CPU 64 bit. Do đó, việc sử dụng bộ tải khởi động EFI, việc cài đặt Microsoft Windows 7 trên máy tính Apple vẫn không thể thực hiện được vì hệ điều hành này yêu cầu UEFI hoặc phiên bản mới hơn.
  • Microsoft Windows có hỗ trợ EFI cho kiến ​​trúc 64-bit. Microsoft lưu ý rằng việc thiếu hỗ trợ EFI trên CPU 32 bit là do thiếu đầu vào từ nhà sản xuất PC. Việc Microsoft chuyển sang hệ điều hành 64 bit không cho phép sử dụng EFI 1.10 vì các tiện ích mở rộng 64 bit không được môi trường bộ xử lý hỗ trợ. Hỗ trợ x86-64 được bao gồm trong UEFI 2.0. Các phiên bản Itanium của Windows 2000 (Advanced Server Limited Edition và Datacenter Server Limited Edition) có hỗ trợ EFI 1.1.Windows Server 2003 cho IA-64, các phiên bản 64-bit của Windows XP và Windows 2000 Advanced Server Limited Edition, được thiết kế riêng cho Intel Họ bộ xử lý Itanium, có hỗ trợ EFI, được xác định cho nền tảng này theo thông số kỹ thuật DIG64. Các nhà phát triển của Microsoft đã giới thiệu hỗ trợ UEFI trong hệ điều hành Windows 64-bit bắt đầu với Windows Server 2008 và Windows Vista Service Pack 1.

sai sót

Tiêu chuẩn EFI đã bị chỉ trích nặng nề vì đã tăng thêm độ phức tạp cho hệ thống. Nhiều chuyên gia lưu ý rằng EFI không mang lại cho hệ điều hành những lợi thế chính nhưng đồng thời cũng làm nó phức tạp đáng kể. Ngoài ra, việc triển khai BIOS thay thế hoàn toàn là nguồn mở (OpenBIOS và coreboot) đã bị loại bỏ để chuyển sang sử dụng EFI.

Vào tháng 9 năm 2011, Microsoft thông báo rằng việc chứng nhận máy tính tương thích Microsoft Windows 8 có thể dẫn đến việc sản xuất các thiết bị tiếp theo, trong mọi trường hợp, sẽ không hỗ trợ bất kỳ hệ điều hành nào khác. Microsoft đã làm rõ rằng các nhà cung cấp có thể thêm các chữ ký khác. Một lát sau, điều này đã trở thành một yêu cầu chứng nhận bắt buộc. Tuy nhiên, đối với các thiết bị trên ARM, trong trường hợp của chúng, yêu cầu như sau: tắt hoàn toàn chức năng “khởi động an toàn”. Trong trường hợp này, việc cài đặt các hệ điều hành khác cũng không thể thực hiện được.

BIOS là một thuật ngữ quen thuộc của các chủ sở hữu máy tính đã được sử dụng trong nhiều năm. Vào mùa thu năm 2017, Intel đã công bố kế hoạch từ bỏ hoàn toàn BIOS trên tất cả các nền tảng của mình vào năm 2020. Thay vì BIOS bây giờ nó sẽ được sử dụng chỉ một UEFI, điều này có thể khiến nhiều người đặt ra một câu hỏi hợp lý: tại sao UEFI tốt hơn BIOS và sự khác biệt giữa chúng là gì?

Chip BIOS trên bo mạch chủ Gigabyte.

UEFI và BIOS thuộc loại phần mềm được gọi là phần mềm “cấp thấp”, khởi động ngay cả trước khi máy tính bắt đầu tải hệ điều hành. UEFI là một giải pháp hiện đại hơn và nó hỗ trợ một số lượng lớn các tính năng tiện lợi, hữu ích trên các máy tính hiện đại. Điều thường xảy ra là các nhà sản xuất gọi UEFI trên máy tính của họ bằng từ truyền thống “BIOS” để không gây nhầm lẫn cho người dùng. Tuy nhiên, có sự khác biệt lớn giữa UEFI và BIOS và các máy tính hiện đại hầu hết đều được trang bị UEFI.

BIOS là gì

BIOS là viết tắt của “ Nền tảngĐầu vào-NgoàiHệ thống" hoặc " hệ thống đầu vào/đầu ra cơ bản". Nó sống trên một con chip đặc biệt bên trong bo mạch chủ (hình trên) và không phụ thuộc vào việc ổ cứng có được lắp vào máy tính hay không. Khi bạn bật máy tính, thứ đầu tiên bật lên là BIOS. Hệ thống này chịu trách nhiệm “đánh thức” các thành phần phần cứng trong máy tính của bạn, kiểm tra hoạt động bình thường của chúng, kích hoạt bộ nạp khởi động và sau đó khởi động hệ điều hành.

BIOS cũ như thời gian.

Người dùng có thể cấu hình một số lượng lớn các thông số khác nhau trong BIOS. Cấu hình thành phần, thời gian hệ thống, thứ tự khởi động, v.v. Bạn có thể vào BIOS bằng một phím đặc biệt khi bật PC. Nó có thể khác nhau đối với các máy tính khác nhau. Ví dụ: Esc, F2, F10 hoặc Xóa. Nhà sản xuất tự quyết định chọn cái nào. Sau khi thay đổi cài đặt, tất cả các tham số sẽ được ghi vào bản thân bo mạch chủ.

BIOS cũng chịu trách nhiệm cho một quá trình gọi là POST – “ Quyền lực-TRÊNBản thân-Bài kiểm tra hoặc " kiểm tra bật nguồn". POST kiểm tra sự phù hợp của cấu hình máy tính và tình trạng của các thành phần phần cứng. Nếu có sự cố xảy ra, lỗi tương ứng sẽ hiển thị trên màn hình hoặc máy tính bắt đầu phát ra một số âm thanh nhất định (cũng có khái niệm về mã POST và một số bo mạch chủ thậm chí còn được cài đặt màn hình tương ứng để hiển thị chúng). Cường độ của những âm thanh này tùy thuộc vào loại lỗi và để giải mã chúng, bạn cần tham khảo trang web của nhà sản xuất hoặc hướng dẫn sử dụng.

Sau khi POST hoàn tất, BIOS sẽ tìm Bản ghi khởi động chính (MBR) được lưu trữ trên phương tiện lưu trữ của máy tính. Sau đó, bộ nạp khởi động được khởi tạo và hệ điều hành khởi động. BIOS cũng thường sử dụng thuật ngữ CMOS, viết tắt của " Bổ túcKim loại-OxitChất bán dẫn" hoặc " chất bán dẫn oxit kim loại phụ trợ". Đây là tên gọi dành cho bộ nhớ đặc biệt được cấp nguồn bằng pin tích hợp trong bo mạch chủ. Bộ nhớ lưu trữ nhiều cài đặt BIOS khác nhau và người ta thường khuyên nên tháo pin ra khỏi bo mạch chủ để thiết lập lại cài đặt BIOS. Trong các máy tính hiện đại, CMOS đã được thay thế bằng bộ nhớ flash (EEPROM).

Tại sao BIOS lại lỗi thời?

BIOS là một hệ thống rất cũ tồn tại từ năm 1980 (và thậm chí còn được phát triển sớm hơn), tại thời điểm MS-DOS ra mắt. Tất nhiên, theo thời gian, BIOS đã phát triển và cải tiến nhưng khái niệm và nguyên lý hoạt động cơ bản vẫn được giữ nguyên. Sự phát triển của BIOS gần như bằng 0 khi so sánh với sự phát triển của máy tính và công nghệ nói chung.

BIOS truyền thống có nhiều hạn chế nghiêm trọng. Ví dụ: nó chỉ có thể khởi động hệ thống từ một phân vùng không lớn hơn 2,1 TB (tối đa 4 phân vùng) trở xuống. Trong thực tế hiện đại, người dùng mua những ổ đĩa có dung lượng rất lớn, dung lượng của chúng thường vượt quá 4, thậm chí 8 TB. BIOS sẽ không thể hoạt động với phương tiện như vậy. Điều này là do cách MBR hoạt động (bản ghi khởi động chính sử dụng các phần tử 32 bit). Ngoài ra, BIOS hoạt động ở chế độ 16 bit (vì nó được phát triển từ những năm 70) và chỉ có 1 MB dung lượng có thể định địa chỉ để hoạt động. BIOS cũng gặp vấn đề khi khởi tạo một số lượng lớn thành phần cùng lúc, dẫn đến máy tính khởi động chậm.

BIOS đã cần được thay thế trong một thời gian dài. Intel bắt đầu phát triển EFI (Giao diện phần mềm mở rộng) từ năm 1998 và Apple chuyển sang EFI vào năm 2006, khi quá trình chuyển đổi sang kiến ​​trúc Intel diễn ra. Năm 2007, Intel, AMD, Microsoft và nhiều nhà sản xuất máy tính khác đã phê duyệt thông số kỹ thuật UEFI - " Giao diện phần mềm mở rộng hợp nhất" hoặc " giao diện phần mềm mở rộng thống nhất". Windows đã nhận được hỗ trợ UEFI trong Windows Vista SP1 và Windows 7. Ngày nay, hầu hết tất cả các máy tính đều sử dụng UEFI thay vì BIOS.

Tại sao UEFI tốt hơn BIOS

UEFI được cài đặt thay vì BIOS trên nhiều PC khác nhau mà bạn có thể tìm thấy ở các cửa hàng điện tử. Cần lưu ý ngay rằng người dùng không thể chuyển từ BIOS sang UEFI trên phần cứng hiện có. Để làm điều này, bạn cần mua phần cứng mới hỗ trợ UEFI. Đại đa số máy tính UEFI bao gồm mô phỏng BIOS (thường được gọi là Legacy BIOS) để cho phép người dùng cài đặt và khởi động hệ điều hành cũ hơn yêu cầu BIOS để chạy. Nói cách khác, UEFI tương thích ngược.

Giao diện UEFI hiện đại và thân thiện hơn nhiều.

Tiêu chuẩn mới đã loại bỏ những hạn chế khó chịu của BIOS. Máy tính có UEFI có thể khởi động từ ổ đĩa lớn hơn 2,2 TB. Về mặt lý thuyết, dung lượng lưu trữ tối đa cho UEFI là 9,4 Tb (9,4 nghìn tỷ gigabyte). Đó là rất nhiều. Điểm mấu chốt là UEFI sử dụng sơ đồ GPT với các phần tử 64 bit..

UEFI chạy ở chế độ 32 và 64 bit và cũng có nhiều bộ nhớ hơn để hoạt động. Ngược lại, điều này chuyển thành tải bộ xử lý nhanh hơn và dễ sử dụng. Hệ thống UEFI thường có giao diện đẹp hỗ trợ nhập liệu bằng chuột (trong ảnh chụp màn hình ở trên). Ngoài ra còn có một số lợi thế khác. Ví dụ: UEFI hỗ trợ Khởi động an toàn. Đây là một quy trình đặc biệt nhằm kiểm tra hệ điều hành đang được tải và đảm bảo rằng không có phần mềm độc hại hoặc bên thứ ba nào can thiệp vào quá trình tải. UEFI cũng hỗ trợ nhiều chức năng mạng khác nhau, rất hữu ích khi giải quyết các vấn đề kỹ thuật với máy tính của bạn. Trong BIOS truyền thống, người dùng phải có quyền truy cập vật lý vào máy tính, trong khi ở UEFI có tùy chọn truy cập từ xa để cấu hình.

Nhìn chung, UEFI là một hệ điều hành nhỏ. Nó có thể được lưu trữ trên bộ nhớ flash của bo mạch chủ hoặc có thể được tải từ ổ cứng/ổ đĩa mạng. Các máy tính khác nhau có UEFI khác nhau có giao diện và khả năng khác nhau như nhau. Tất cả phụ thuộc vào sở thích của nhà sản xuất máy tính của bạn.

UEFI là một bản nâng cấp lớn cho các máy tính hiện đại, nhưng đại đa số người dùng khó có thể nhận thấy bất kỳ sự khác biệt đáng kể nào. Và nhiều người không hề quan tâm đến câu hỏi này. Tuy nhiên, chúng ta phải hiểu rằng sự ra đời của UEFI thay vì BIOS đã trở thành một sự thay đổi tiến hóa cực kỳ tích cực trong thế giới máy tính hiện đại, ngay cả khi tất cả sức hấp dẫn và đổi mới của nó vẫn ẩn sâu trong bo mạch chủ của máy tính. Hiện nay ngành công nghiệp vẫn đang trong giai đoạn chuyển đổi từ BIOS sang UEFI nên mọi thú vui của chuẩn mới sẽ được hé lộ trong thời gian sắp tới. Để tăng tốc quá trình này, Intel đã quyết định từ bỏ hoàn toàn BIOS cho đến năm 2020, và đó là một điều tốt.

Cả hai chương trình này đều là ví dụ về phần mềm cấp thấp chạy khi máy tính khởi động, trước khi hệ điều hành khởi động. UEFI là một giải pháp mới hơn, nó hỗ trợ ổ cứng lớn hơn, khởi động nhanh hơn, an toàn hơn - và rất thuận tiện, có giao diện đồ họa và hỗ trợ chuột.

Một số máy tính mới hơn được trang bị UEFI vẫn gọi nó là "BIOS" để tránh nhầm lẫn cho người dùng đã quen với BIOS PC truyền thống. Nhưng ngay cả khi bạn thấy nó được đề cập, hãy biết rằng máy tính mới của bạn rất có thể sẽ được trang bị UEFI chứ không phải BIOS.

BIOS là gì?

BIOS là viết tắt của Basic input-output system, một hệ thống đầu vào-đầu ra cơ bản. Đây là một chương trình cấp thấp được lưu trữ trên một con chip trên bo mạch chủ máy tính của bạn. BIOS tải khi bạn bật máy tính và chịu trách nhiệm đánh thức các thành phần phần cứng của nó, đảm bảo chúng hoạt động bình thường, sau đó khởi chạy chương trình bộ tải khởi động, khởi động hệ điều hành Windows hoặc bất kỳ hệ điều hành nào khác mà bạn đã cài đặt.

Màn hình thiết lập BIOS cho phép bạn thay đổi nhiều cài đặt. Cấu hình phần cứng máy tính, thời gian hệ thống, thứ tự khởi động. Màn hình này có thể được gọi lên khi bắt đầu khởi động máy tính bằng cách nhấn một phím nhất định - nó khác nhau trên các máy tính khác nhau, nhưng các phím Esc, F2, F10, Delete thường được sử dụng. Bằng cách lưu cài đặt, bạn lưu nó vào bộ nhớ bo mạch chủ. Khi bạn khởi động máy tính, BIOS sẽ cấu hình nó như được chỉ định trong cài đặt đã lưu.

Trước khi tải hệ điều hành, BIOS sẽ trải qua POST hoặc Tự kiểm tra khi bật nguồn, tự kiểm tra sau khi bật. Nó kiểm tra xem phần cứng có được cấu hình đúng và hoạt động tốt không. Nếu có sự cố xảy ra, bạn sẽ thấy một loạt thông báo lỗi trên màn hình hoặc nghe thấy tiếng rít bí ẩn từ thiết bị hệ thống. Ý nghĩa chính xác của tín hiệu âm thanh được mô tả trong hướng dẫn máy tính.

Khi máy tính khởi động sau POST, BIOS sẽ tìm Master Boot Record hoặc MBR - bản ghi khởi động chính. Nó được lưu trữ trên thiết bị khởi động và được sử dụng để khởi chạy bộ tải khởi động hệ điều hành.

Bạn cũng có thể đã thấy từ viết tắt CMOS, viết tắt của Chất bán dẫn oxit kim loại bổ sung. Nó đề cập đến bộ nhớ trong đó BIOS lưu trữ các cài đặt khác nhau. Việc sử dụng nó đã lỗi thời vì phương pháp này đã được thay thế bằng bộ nhớ flash (còn gọi là EEPROM).

Tại sao BIOS lại lỗi thời?

BIOS đã có từ lâu và có rất ít sự phát triển. Ngay cả các máy tính MS-DOS được phát hành vào những năm 1980 cũng có BIOS.

Tất nhiên, theo thời gian, BIOS đã thay đổi và cải tiến. Các phần mở rộng của nó đã được phát triển, đặc biệt là ACPI, Cấu hình nâng cao và Giao diện nguồn (giao diện quản lý nguồn và cấu hình nâng cao). Điều này cho phép BIOS dễ dàng cấu hình các thiết bị hơn và quản lý nguồn điện tiên tiến hơn, chẳng hạn như chế độ ngủ đông. Nhưng BIOS đã không phát triển nhiều như các công nghệ máy tính khác kể từ MS-DOS.

BIOS truyền thống vẫn còn những hạn chế nghiêm trọng. Nó chỉ có thể khởi động từ ổ cứng có dung lượng không quá 2,1 TB. Ngày nay, đĩa 3 TB đã phổ biến và máy tính có BIOS sẽ không khởi động được từ chúng. Đây là một hạn chế của BIOS MBR.

BIOS phải hoạt động ở chế độ bộ xử lý 16-bit và chỉ có 1 MB bộ nhớ dành cho nó. Nó gặp sự cố khi khởi tạo nhiều thiết bị cùng lúc, dẫn đến quá trình khởi động chậm trong đó tất cả các giao diện phần cứng và thiết bị đều được khởi tạo.

BIOS đã quá hạn lâu để thay thế. Intel bắt đầu phát triển Giao diện phần mềm mở rộng (EFI) từ năm 1998. Apple đã chọn EFI khi chuyển sang kiến ​​trúc Intel trên máy Mac vào năm 2006, nhưng các nhà sản xuất khác lại không làm theo.

Năm 2007, các nhà sản xuất Intel, AMD, Microsoft và PC đã đồng ý về một thông số kỹ thuật mới, Giao diện phần mềm mở rộng hợp nhất (UEFI), một giao diện phần mềm mở rộng hợp nhất. Đây là tiêu chuẩn ngành được duy trì bởi diễn đàn UEFI và không chỉ phụ thuộc vào Intel. Hỗ trợ UEFI trong Windows đã được giới thiệu cùng với việc phát hành Windows Vista Service Pack 1 và Windows 7. Hầu hết các máy tính bạn mua ngày nay đều sử dụng UEFI thay vì BIOS.

UEFI thay thế và cải thiện BIOS như thế nào


UEFI thay thế BIOS truyền thống trên PC. Không có cách nào để thay đổi BIOS thành UEFI trên PC hiện có. Bạn cần mua phần cứng hỗ trợ UEFI. Hầu hết các phiên bản UEFI đều hỗ trợ mô phỏng BIOS nên bạn có thể cài đặt và chạy hệ điều hành cũ yêu cầu BIOS thay vì UEFI - vì vậy chúng tương thích ngược.

Tiêu chuẩn mới bỏ qua các hạn chế của BIOS. Phần sụn UEFI có thể khởi động từ các ổ đĩa lớn hơn 2,2 TB - giới hạn lý thuyết đối với chúng là 9,4 zettabyte. Con số này gấp khoảng ba lần lượng dữ liệu có trên Internet ngày nay. UEFI hỗ trợ các khối lượng như vậy do sử dụng phân vùng GPT thay vì MBR. Nó cũng có quy trình khởi động được tiêu chuẩn hóa và chạy các chương trình thực thi EFI thay vì mã nằm trong MBR.

UEFI có thể hoạt động ở chế độ 32 bit hoặc 64 bit và không gian địa chỉ của nó lớn hơn BIOS - đồng nghĩa với việc khởi động nhanh hơn. Điều này cũng có nghĩa là màn hình thiết lập UEFI có thể được làm đẹp hơn màn hình của BIOS, bao gồm cả hỗ trợ đồ họa và chuột. Nhưng đây là tùy chọn. Nhiều máy tính cho đến ngày nay chạy UEFI với chế độ văn bản, trông và hoạt động giống như màn hình BIOS cũ.

Có rất nhiều tính năng khác được tích hợp trong UEFI. Nó hỗ trợ Khởi động an toàn, trong đó bạn có thể xác minh rằng khởi động hệ điều hành chưa bị sửa đổi bởi bất kỳ chương trình độc hại nào. Nó có thể hỗ trợ hoạt động mạng, cho phép cấu hình và gỡ lỗi từ xa. Với BIOS truyền thống, bạn phải ngồi trực tiếp trước máy tính để thiết lập máy tính của mình.

Và đây không chỉ là sự thay thế BIOS. UEFI là một hệ điều hành nhỏ chạy trên phần sụn của PC, vì vậy nó có thể làm được nhiều việc hơn BIOS. Nó có thể được lưu trữ trong bộ nhớ flash trên bo mạch chủ hoặc được tải từ ổ cứng hoặc mạng.

Các máy tính khác nhau có giao diện và thuộc tính UEFI khác nhau. Tất cả phụ thuộc vào nhà sản xuất máy tính, nhưng các khả năng cơ bản là như nhau đối với mọi người.

Cách truy cập cài đặt UEFI trên PC hiện đại

Nếu là người dùng thông thường, bạn sẽ không nhận thấy sự chuyển đổi sang máy tính có UEFI. Máy tính sẽ khởi động và tắt nhanh hơn, đồng thời bạn cũng sẽ có quyền truy cập vào các ổ đĩa lớn hơn 2,2 TB.

Nhưng quy trình truy cập cài đặt sẽ hơi khác một chút. Để truy cập màn hình cài đặt UEFI, bạn có thể cần sử dụng menu khởi động Windows. Các nhà sản xuất PC không muốn làm chậm máy tính khởi động nhanh bằng cách chờ nhấn phím. Nhưng chúng tôi cũng bắt gặp UEFI trong đó các nhà sản xuất để lại khả năng nhập cài đặt theo cách tương tự như trong BIOS - bằng cách nhấn một phím trong khi khởi động.

UEFI là một bản cập nhật lớn nhưng nó diễn ra một cách âm thầm. Hầu hết người dùng PC sẽ không nhận thấy điều đó và không phải lo lắng về việc máy tính mới của họ sử dụng UEFI thay vì BIOS thông thường. Đơn giản là PC sẽ hoạt động tốt hơn và hỗ trợ phần cứng và tính năng hiện đại hơn.

Để được giải thích chi tiết hơn về sự khác biệt trong quá trình khởi động UEFI, hãy xem

1. UEFI là gì?
UEFI (Unified Extensible Firmware Interface) là sự thay thế cho BIOS, đáp ứng tốt hơn yêu cầu của phần cứng đa dạng hiện đại. Về cốt lõi, UEFI là giao diện chịu trách nhiệm về môi trường tiền khởi động của hệ điều hành.

2. Ưu điểm của UEFI so với BIOS là gì?

  • Hỗ trợ phương tiện >2TB
  • Chuẩn bị phương tiện khởi động dễ dàng hơn, không cần phải ghi các phần khởi động khác nhau
  • Sự sẵn có của trình quản lý tải xuống của riêng bạn. Giờ đây, không cần thiết phải tạo bước nhảy vọt đa cấp của bộ tải khởi động để tổ chức môi trường multiboot; EFI NVRAM thường xuyên lưu trữ tất cả các bản ghi về bộ tải khởi động hiện có và việc chuyển đổi giữa các hệ điều hành có khả năng khởi động được thực hiện giống như giữa các phương tiện có khả năng khởi động.
  • Môi trường khởi động an toàn hơn
  • Chế độ cấu hình đồ họa UEFI, có hỗ trợ đồ họa và chuột

3. Có thể cập nhật BIOS của tôi lên UEFI không?
Không thực sự. UEFI không thể flash thay BIOS vì nó chiếm nhiều bộ nhớ hơn. Nhưng có một thứ gọi là DUET. Đây là môi trường UEFI có khả năng khởi động BIOS và có thể hữu ích nếu bạn định sử dụng ổ đĩa >2TB trên phần cứng BIOS cũ hơn của mình.

4. Có thể khởi động từ UEFI như trước đây thông qua các cung khởi động và đĩa MBR không?
Có, nếu hỗ trợ Legacy Boot được bật trong cấu hình UEFI

5. GPT là gì?
Bảng phân vùng GUID, GPT - định dạng tiêu chuẩn để đặt bảng phân vùng trên ổ cứng. Nó là một phần của giao diện EFI. EFI sử dụng GPT trong đó BIOS sử dụng MBR.

6. Ưu điểm của GPT so với MBR là gì?

  • Hỗ trợ phương tiện >2,2TB
  • Không giới hạn 4 phân vùng chính nên không cần phân vùng logic
  • Tăng cường bảo mật - GPT lưu trữ một bản sao lưu của bảng phân vùng ở cuối đĩa, vì vậy trong trường hợp có sự cố, có thể khôi phục phân vùng bằng bảng dự phòng.
  • Bảo vệ chống tham nhũng bằng các chương trình lỗi thời sử dụng MBR bảo vệ
  • Có thể sử dụng các boot boot cũ.

7. Các cung khởi động tương đương được lưu trữ trong GPT ở đâu?
EFI sử dụng thư mục EFI/boot, nằm ở thư mục gốc của phân vùng FAT32, để lưu trữ bộ tải khởi động. Tệp mặc định phải là /EFI/boot/bootx64.efi
Nếu đĩa khởi động được phân vùng theo kiểu MBR, thì sự hiện diện của hệ thống tệp FAT32 trên phân vùng đầu tiên (nếu có một vài trong số chúng) và tệp có bộ tải khởi động nằm trên đường dẫn mặc định là điều kiện duy nhất để khởi động từ phương tiện này (CD/DVD cũng được hỗ trợ). Nếu đĩa được phân vùng theo kiểu GPT thì phân vùng đó không nhất thiết phải là phân vùng đầu tiên nhưng phải có cờ khởi động (bạn có thể kiểm tra và thiết lập nó bằng gparted)

8. Có thể chuyển đổi đĩa từ MBR sang GPT và ngược lại mà không mất dữ liệu không?
Đúng. Để thực hiện việc này, bạn sẽ cần một ổ đĩa flash/đĩa khởi động được với Gparted. Sau khi khởi động từ phương tiện có thể khởi động, cửa sổ gparted sẽ mở với đĩa cào (thường là /dev/sda) hiển thị ở góc trên bên phải. Bạn cần nhớ tên của đĩa mà bạn muốn chuyển đổi, mở một thiết bị đầu cuối và nhập sudo gdisk /dev/sda trong đó thay vì sda, nếu cần, bạn cần thay thế tên đĩa của mình. Sau đó, bạn cần nhập lệnh w và xác nhận ghi bảng GPT vào đĩa. Vậy là đĩa đã được chuyển sang bảng GPT. Để chuyển đổi trở lại MBR, bạn cần mở gdisk cho đĩa của mình theo cách tương tự và gõ tuần tự lệnh r, sau đó là g, sau đó xác nhận mục nhập của bảng mới bằng lệnh w.

9. Vỏ UEFI là gì?
Đây là môi trường để làm việc với môi trường EFI (giống như thiết bị đầu cuối), cho phép bạn chạy bộ tải khởi động tương thích với efi khi đang di chuyển, thực hiện các thao tác đơn giản với tệp và cũng vận hành trình quản lý khởi động tích hợp.

10. Làm cách nào để chỉnh sửa/xóa/thêm các mục khởi động vào menu khởi động UEFI?
Tải xuống UEFI Shell, sao chép nó vào tệp /EFI/boot/bootx64.efi trên ổ flash FAT32 và khởi động từ nó. Sau khi shell được nạp thành công, một dấu nhắc lệnh sẽ xuất hiện
Vỏ>
Phía trên lời nhắc, bạn sẽ thấy danh sách các ổ đĩa được kết nối có sẵn (fs0:, fs1:, BLK0, v.v.). Để gọi lại danh sách này nếu cần, hãy sử dụng lệnh
bản đồ fs*
Từ tên ổ đĩa đầy đủ, bạn có thể thu thập được một số thông tin về ổ đĩa. Ví dụ:
PciRoot(0x0)/Pci(0x1,0x1)/Ata(0x0)/HD(1,MBR,0x27212721,0x3F,0x13FA6D9)
từ đây
Ata(0x0) - giao diện kết nối đĩa, cũng như cổng điều khiển
HD là ổ cứng
1 - số lượng phân vùng trên đĩa
Sơ đồ phân vùng MBR

Sau khi tìm thấy đĩa cần thiết theo cách này, bạn cần vào nó
fs0:
sau đó, bằng cách sử dụng các lệnh dir và cd cũ của DOS, bạn cần tìm và chuyển đến thư mục chứa các tệp efi khởi động. Đây thường là /EFI/boot/. Sau đó, khi ở trong thư mục này, bạn có thể nhập tên của tệp bootloader và khởi động ngay vào đó. Để thêm tệp mong muốn vào danh sách các mục khởi động, trước tiên bạn nên đọc các mục hiện có bằng lệnh
kết xuất khởi động bcfg
Sau đó, để thêm file boot vào danh sách này, bạn cần nhập
bcfg boot thêm N filename.efi "nhãn"
Trong đó N là số sê-ri của mục nhập (nếu có gì đó ở vị trí của nó, mục này sẽ bị ghi đè)
filename.efi - tên của tệp có trình tải
tên nhãn mà mục này sẽ được hiển thị trong danh sách
Bạn có thể xem lại danh sách các mục khởi động thông qua
kết xuất khởi động bcfg
và đảm bảo mọi thứ đều đúng chỗ. Bạn có thể khởi động lại và kiểm tra.
Để xóa một mục khỏi danh sách, hãy sử dụng lệnh
bcfg khởi động rm N
trong đó N là số bản ghi

11. Khởi động an toàn là gì?
Đặc tả Secure Boot được Microsoft phát triển như một phần của dự án UEFI và cho phép bạn bảo vệ môi trường khởi động khỏi giả mạo các tệp khởi động bằng cách giám sát chữ ký của các tệp khởi động để tuân thủ danh sách trắng các khóa được mã hóa cứng vào uefi là đáng tin cậy. Một “tác dụng phụ” của việc bảo vệ chống lại rootkit như vậy là không thể cài đặt một hệ điều hành khác ngoài Windows 8 (hiện tại chỉ có nó hỗ trợ Khởi động an toàn) và cũng loại trừ khả năng khởi động từ đĩa mbr cũ và đĩa CD/ổ đĩa flash có khả năng khởi động.

12. Làm cách nào để tắt Secure Boot?


13. Làm cách nào để tạo ổ đĩa flash tương thích UEFI với bản phân phối hệ điều hành?
Trong hầu hết các trường hợp, mọi thứ đều rất đơn giản:

  1. Định dạng ổ đĩa flash thành hệ thống tệp FAT32
  2. Sao chép toàn bộ nội dung của image iso phân phối vào nó

Nhưng trong trường hợp hệ điều hành Windows Vista/7, trước tiên bạn cần chuẩn bị bộ phân phối, vì ban đầu chúng không chứa các tệp EFI ở đúng vị trí. Chỉ là một tuyên bố từ chối trách nhiệm nhỏ - Windows chỉ hỗ trợ hoạt động với uefi trong các phiên bản 64 bit.

14. Làm thế nào để bạn biết rằng ổ flash USB có khả năng khởi động được tạo chính xác và sẽ khởi động ở chế độ UEFI?
Nếu mọi thứ được thực hiện chính xác, thì hai thiết bị có cùng tên nhưng tiền tố khác nhau sẽ xuất hiện trong danh sách phương tiện có thể khởi động, UEFI:USB:. Qua lần đầu tiên, quá trình tải được thực hiện ở chế độ UEFI, qua lần thứ hai, tải Legacy từ khu vực khởi động.

15. Chế độ khởi động nhanh là gì?
Chế độ khởi động nhanh, trong đó quyền điều khiển gần như được chuyển ngay lập tức sang hệ điều hành, ngay cả trước khi thiết bị sẵn sàng hoạt động, chế độ này do chính hệ điều hành khởi tạo. Khởi động nhanh giúp loại bỏ sự chậm trễ do khởi tạo thiết bị hai lần. Ở chế độ “cổ điển”, sau khi nhận được quyền điều khiển, hệ điều hành sẽ khởi động lại các thiết bị BIOS đã khởi tạo trước đó. Vì việc khởi tạo một số loại thiết bị là một quá trình khá dài nên tốc độ tăng lên là điều hiển nhiên. Khi bật Fast Boot, quyền điều khiển sẽ được chuyển đến hệ thống trước khi USB được khởi tạo, điều này khiến ổ USB và bàn phím không khả dụng trước khi bắt đầuđược cài đặt trên đĩa hệ thống. Do Microsoft có yêu cầu khá nghiêm ngặt về thời gian cài đặt chương trình cơ sở khi chế độ Khởi động nhanh được bật và quá trình khởi tạo thiết bị USB có thể mất vài giây nên vào thời điểm hệ thống khởi động, các thiết bị USB vẫn chưa được khởi tạo. Trong trường hợp này, mặt khác của đồng xu xuất hiện - người dùng máy tính có bàn phím USB không thể làm gián đoạn quá trình khởi động và bắt đầu cài đặt hệ thống khác, vì bàn phím vẫn không hoạt động cho đến khi hệ điều hành khởi động. Hơn nữa, việc khởi tạo chip i8042 cũng mất thời gian và trên một số máy tính xách tay, các nhà sản xuất chương trình cơ sở không khởi tạo bàn phím PS/2 tích hợp.

Sự chỉ rõ UEFI(Giao diện chương trình cơ sở mở rộng hợp nhất, Giao diện chương trình cơ sở mở rộng hợp nhất hoặc Giao diện chương trình cơ sở mở rộng), trước đây gọi là Giao diện chương trình cơ sở mở rộng (EFI), xác định giao diện giữa hệ điều hành và (các) vi mã điều khiển phần cứng. Nói cách khác, UEFI là một giao diện nằm “trên cùng” các thành phần phần cứng của máy tính, do đó, các thành phần này hoạt động trên phần sụn (vi mã) của riêng chúng.

Trong chính cái tên UEFI, định nghĩa về “giao diện mở rộng” gợi ý rằng đây là một hệ thống mô-đun có thể dễ dàng mở rộng và nâng cấp về mặt chức năng.

Để hiểu rõ hơn, UEFI So với BIOS, nói một cách đại khái, đây là một loại phần mềm mới hoặc thế hệ phần sụn tiếp theo và nó không còn chỉ giới hạn ở máy tính cá nhân x86 (PC IBM) mà còn được tuyên bố là một tiêu chuẩn đa nền tảng. Tuy nhiên, không giống như BIOS, UEFI dựa trên cấu trúc liên kết mã mới về cơ bản được gọi là “dựa trên trình điều khiển”.

  • Mục đích chính của EFI là thay thế công nghệ BIOS đã lỗi thời (mất liên quan) và những hạn chế liên quan đến nó.
  • Mục tiêu chính của việc phát triển UEFI là chuẩn hóa sự tương tác của hệ điều hành với phần sụn nền tảng trong quá trình khởi động. Trong BIOS cổ điển, các ngắt phần mềm và cổng I/O là cơ chế chính để tương tác với phần cứng trong giai đoạn khởi động, nhưng các hệ thống hiện đại có thể cung cấp các hoạt động I/O hiệu quả hơn giữa phần cứng và phần mềm.
  • Nhiệm vụ chính của EFI là khởi tạo chính xác phần cứng và chuyển điều khiển sang bộ nạp hệ điều hành. Về mặt này, nhiệm vụ không khác mấy so với nhiệm vụ của BIOS truyền thống, nhưng các thuật toán về cơ bản là khác nhau.

UEFI có thể được gọi một cách an toàn là một hệ điều hành thu nhỏ độc lập, là giao diện giữa hệ điều hành người dùng chính chạy trên máy tính và vi mã phần cứng.

Bây giờ chúng ta hãy thực hiện một chuyến tham quan ngắn gọn về lịch sử của máy tính cá nhân để hiểu lý do dẫn đến nỗ lực thay thế BIOS tiêu chuẩn bằng một thứ gì đó mới về cơ bản.

BIOS cũ tốt

Các nguyên tắc cơ bản về hoạt động của BIOS (hệ thống đầu vào-đầu ra cơ bản) cho máy tính cá nhân đã được xác định từ cuối những năm 70 của thế kỷ trước. Trong một khoảng thời gian khá dài kể từ đó, ngành công nghiệp máy tính đã phát triển nhanh chóng, dẫn đến thực tế là ở một số giai đoạn nhất định, khả năng của BIOS là không đủ, vì các thiết bị do nhà sản xuất sản xuất đều có sẵn công nghệ mới, thường không tương thích. với các phiên bản BIOS hiện tại. Để tránh những vấn đề như vậy, các nhà phát triển đôi khi phải sửa đổi đáng kể mã BIOS, nhưng một số hạn chế vẫn không thay đổi cho đến ngày nay. Và, nếu ban đầu kiến ​​​​trúc BIOS khá đơn giản, thì theo thời gian, nó trở nên phức tạp hơn, thích ứng với ngày càng nhiều công nghệ mới, do đó, đến một thời điểm nhất định, nó bắt đầu giống một đống các loại mã lỗi thời và tương tác kém. Những hạn chế vẫn còn tồn tại trong mã BIOS ngày nay được giải thích là do nhu cầu duy trì khả năng tương thích với các chức năng cơ bản cần thiết cho hoạt động của phần mềm cũ hơn. Tất cả những điều này đã dẫn đến thực tế là BIOS về cơ bản đã trở thành thành phần lỗi thời nhất của PC hiện đại. Hiện tại, BIOS không đáp ứng được yêu cầu của thiết bị mới nhất và có những nhược điểm sau:

  1. Mã 16 bit, chế độ thực. BIOS được viết bằng ngôn ngữ hợp ngữ và hoạt động trên mã 16 bit ở chế độ thực của bộ xử lý với những hạn chế cố hữu, trong đó đáng kể nhất là giới hạn không gian địa chỉ bộ nhớ là 1 Megabyte.
  2. Thiếu quyền truy cập vào phần cứng 64-bit. BIOS không có khả năng tương tác trực tiếp với phần cứng 64-bit hiện đang thống trị thị trường.
  3. Thiếu một tiêu chuẩn thống nhất. Không có thông số kỹ thuật duy nhất cho BIOS - mỗi nhà sản xuất cung cấp các biến thể triển khai riêng.
  4. Sự phức tạp của sự phát triển. Vấn đề là đối với hầu hết mọi mẫu bo mạch chủ mới, nhà sản xuất đều phát triển phiên bản BIOS riêng, phiên bản này triển khai các tính năng kỹ thuật độc đáo của thiết bị này: tương tác với các mô-đun chipset, thiết bị ngoại vi, v.v. Quá trình phát triển BIOS có thể được chia thành hai giai đoạn. Ở giai đoạn đầu tiên, một phiên bản cơ bản của phần sụn được tạo ra, phiên bản này thực hiện các chức năng không phụ thuộc vào thông số kỹ thuật của thiết bị. Các nhà phát triển mã như vậy đều nổi tiếng, đây là những công ty như American Megatrends (AMIBIOS), Phoenix Technologies (+ Award Software huyền thoại (AwardBIOS) được nó mua lại) và một số công ty khác. Ở giai đoạn thứ hai, các lập trình viên từ nhà sản xuất bo mạch chủ tham gia vào quá trình phát triển BIOS. Ở đây việc lắp ráp cơ bản được sửa đổi để phù hợp với đặc thù của từng mẫu bo mạch cụ thể, các tính năng của nó được tính đến. Sau khi bo mạch chủ gia nhập thị trường, công việc trên phần sụn vẫn tiếp tục, các bản cập nhật thường xuyên được phát hành để sửa lỗi, thêm hỗ trợ cho phần cứng mới (ví dụ: bộ xử lý) và đôi khi còn mở rộng chức năng của phần sụn.

Tất cả những điều này, cũng như một số thiếu sót khác, của mô hình BIOS truyền thống đã dẫn đến việc một liên minh các nhà sản xuất phần cứng và phần mềm bắt đầu nghiên cứu việc tạo ra thông số kỹ thuật UEFI. Theo quan sát của riêng tôi, bắt đầu từ khoảng năm 2010, thông số kỹ thuật UEFI bắt đầu được đưa ồ ạt vào tất cả các bo mạch chủ mới ra mắt của các nhà sản xuất hàng đầu, nên hiện tại gần như không thể tìm được một máy tính mới có BIOS truyền thống. Tuy nhiên, bạn không nên quá lo lắng về điều này vì nhiều nhà sản xuất duy trì khả năng tương thích với chức năng của BIOS truyền thống trong bo mạch chủ của họ. Ví dụ, việc hỗ trợ chế độ khởi động truyền thống sử dụng MBR là một điểm rất quan trọng. Với mục đích này, mô-đun chế độ mô phỏng BIOS UEFI đã được phát triển, được gọi là Mô-đun hỗ trợ tương thích (CSM). Đúng, tôi tin rằng theo thời gian, ngày càng ít nhà sản xuất hỗ trợ chế độ này trong chương trình cơ sở của họ.

Lợi ích của UEFI

Ở đây tôi xin xác định những ưu điểm của giao diện UEFI:

  1. Hỗ trợ phương tiện lưu trữ lớn (đĩa). UEFI hỗ trợ các ổ đĩa lớn nhờ tiêu chuẩn bảng phân vùng mới có tên là GPT (Bảng phân vùng GUID). Phương pháp khởi động BIOS truyền thống sử dụng cung khởi động Bản ghi khởi động chính (MBR), chứa một bảng phân vùng mô tả vị trí của các phân vùng đĩa. Các mục trong bảng phân vùng trong MBR có một nhược điểm đáng kể: số lượng khu vực đầu tiên của phần đầu phân vùng ở định dạng LBA (độ lệch 08h so với phần đầu của mục phân vùng) có chiều rộng tương ứng chỉ 4 byte (32 bit). , chỉ có 4 tỷ lĩnh vực có thể được giải quyết. Và điều này, với kích thước cung “cổ điển” là 512 byte, chỉ có ~2 terabyte dung lượng ổ đĩa. UEFI, sử dụng GPT, cho phép đánh địa chỉ các đĩa có dung lượng lên tới 18 exabyte.
  2. Hỗ trợ trực tiếp cho hệ thống tập tin và bảng phân vùng. UEFI có các mô-đun để hỗ trợ hệ thống tệp và bảng phân vùng, nghĩa là nó có thể hoạt động trực tiếp với cả bảng phân vùng và hệ thống tệp. Thông số kỹ thuật ngụ ý hỗ trợ cho bảng phân vùng GPT, hệ thống tệp FAT12, FAT16, FAT32 trên ổ đĩa cứng và hệ thống tệp ISO9660 trên ổ đĩa CD/DVD. Điều này giúp chúng ta không phải viết mã bootstrap (tương tự như MBR), mã này sẽ tải bộ tải khởi động ở các giai đoạn khác nhau trong một chuỗi.
  3. Không có hạn chế MBR truyền thống nào khác. Ví dụ: bạn không còn cần phải nén mã bootstrap vào một khu vực nhỏ 512 byte nữa. Bạn có thể tập trung vào việc viết một mô-đun tải duy nhất sẽ kết hợp tất cả các giai đoạn cần thiết.
  4. Trình điều khiển phần cứng độc lập với nền tảng. UEFI có quyền truy cập vào phần cứng của máy tính thông qua trình điều khiển độc lập với nền tảng. Nhà sản xuất thiết bị chỉ cần viết một phiên bản trình điều khiển cho tất cả các nền tảng (x86, ARM, Itanium, Alpha) và điều này giúp đơn giản hóa đáng kể việc phát triển và tăng tốc quá trình xác định lỗi. Thông số kỹ thuật UEFI mô tả sự tương tác của trình điều khiển UEFI với hệ điều hành, do đó, trong trường hợp HĐH không có trình điều khiển, chẳng hạn như thẻ video, nhưng trong UEFI, nó hiện diện, được tải và hoạt động, thì HĐH có khả năng xuất dữ liệu ra màn hình bằng giao diện UEFI tiêu chuẩn.
  5. Hỗ trợ ngăn xếp giao thức TCP: IPv4/IPv6. Cho phép bạn sử dụng các khả năng kết nối mạng phong phú trực tiếp từ giao diện UEFI. Giờ đây, bạn có thể phát triển nhiều bản tải xuống khác nhau bằng cách sử dụng giao thức http/ftp; bản tải xuống ngay lập tức xuất hiện trong tâm trí bạn chỉ ra URL nơi đặt mô-đun EFI thông thường hoặc hình ảnh ISO chính thức. Có thể bỏ qua những gì đã trở thành lựa chọn khả thi duy nhất, tải qua mạng bằng PXE/TFTP. Một số, đặc biệt là các triển khai nâng cao, có thể triển khai hỗ trợ PXE qua IPv6.
  6. Hỗ trợ mô hình BIOS truyền thống. UEFI không yêu cầu BIOS cổ điển nhưng nhiều nhà sản xuất nhúng mã mô phỏng BIOS để hỗ trợ các hệ điều hành cũ hơn. Mô-đun này được gọi là Mô-đun hỗ trợ tương thích (CSM). CSM bao gồm mô-đun 16 bit (CSM16) do nhà sản xuất BIOS triển khai và một lớp liên kết CSM16 với thiết bị đo (giao diện và phần cứng). Khả năng tương thích ngụ ý hỗ trợ khởi động qua MBR và hỗ trợ ở cấp độ mã cho các ngắt phần mềm (int 10h - dịch vụ video, int 13h - dịch vụ đĩa, int 15h - chức năng dịch vụ, int 16h - dịch vụ bàn phím, int 18h - dịch vụ ROM-BASIC, int 19h - dịch vụ tải bootstrap). Do đó, những hệ điều hành và phần mềm cần BIOS cũ tốt để hoạt động như không khí có thể dễ dàng hoạt động trên các máy có UEFI.
  7. Giao diện UEFI trực quan. Cái gọi là “sự dễ dàng kiểm soát”. Đây là một điểm khá gây tranh cãi, không thể phân loại rõ ràng nó là điểm cộng hay điểm trừ. Người ta cáo buộc rằng việc quản lý BIOS không trực quan, trình bày một giao diện văn bản khổ hạnh, được ghi chép kém mà chỉ người dùng am hiểu về máy tính mới có thể hiểu được. Ngược lại, nhiều shell UEFI hỗ trợ giao diện đồ họa và chuột, những thứ này đơn giản là không được triển khai trong hầu hết các BIOS. Tuy nhiên, nếu bộ nhớ của tôi hoạt động bình thường, thì vào những năm 90, tôi đã quan sát thấy những nỗ lực triển khai hỗ trợ chuột trong BIOS từ (tôi nghĩ) Phoenix. Theo ý kiến ​​​​của một số người, bản thân giao diện có thể là đồ họa - thân thiện và trực quan hơn đối với đa số, nhưng nó cũng có thể là giao diện truyền thống, nghĩa là tương tự như giao diện văn bản cổ điển, tất cả phụ thuộc vào sở thích của nhà phát triển và vị trí của thiết bị. Có thể hỗ trợ nhiều ngôn ngữ.
  8. Tốc độ UEFI. Người ta khẳng định rằng mã UEFI chạy nhanh hơn mã BIOS truyền thống (mặc dù nó được viết bằng C), do thực tế là nó hoàn toàn được viết “từ đầu” mà không cần phải “kéo” một chuỗi mã lỗi thời vào hỗ trợ nhiều phần cứng không chuẩn và các lỗi thời hợp lý khác nhau.
  9. Tốc độ tải hệ điều hành. Người ta khẳng định rằng việc khởi động bằng UEFI nhanh hơn đáng kể. Điều này đạt được bằng cách song song hóa việc khởi tạo thiết bị, trái ngược với BIOS, khởi tạo thiết bị một cách tuần tự, cũng như giảm thời gian khởi động do không cần phải tìm kiếm bộ nạp khởi động bằng cách liệt kê tất cả các thiết bị (bộ nạp khởi động được chỉ định trong UEFI và gọi trực tiếp). Tôi có xu hướng tin vào điều đó vì tôi không thể xác nhận hay phủ nhận nó vào lúc này. Tuy nhiên, nếu đo xem máy cũ của tôi dùng Celeron 450/GA-G31M-ES2L với ổ SSD từ lúc bật lên cho đến khi xuất hiện cửa sổ ủy quyền cho Windows XP tối ưu hóa thì sẽ chỉ là 23. giây. Điều này có thể sẽ không đủ đối với một số loại thiết bị nhất định.
  10. UEFI là một hệ điều hành mini. Tất nhiên, bạn có thể gọi UEFI là một hệ điều hành thu nhỏ và điều này một phần sẽ công bằng, nhưng sẽ đúng hơn nếu coi nó là một nền tảng ảo cung cấp giao diện cho thiết bị. Bạn chỉ có thể làm việc trong bảng điều khiển hoặc bạn có thể viết một giao diện đồ họa hoàn chỉnh. Ví dụ: UEFI, nếu có các mô-đun chức năng cần thiết, có thể giúp hiểu các vấn đề khi tải hệ điều hành chính hoặc thực hiện các chức năng dịch vụ khác.
  11. Các mô-đun phần mềm bổ sung. Ngay trước khi tải hệ điều hành từ phương tiện UEFI, nó cho phép bạn khởi chạy các mô-đun và trình điều khiển UEFI của riêng mình cho các mục đích chung: để làm việc với mạng, đĩa (lưu trữ/sao lưu/chống vi-rút), cấu hình các tham số, thiết bị kiểm tra. Rõ ràng, với việc phổ biến tiêu chuẩn này, danh sách các ứng dụng UEFI sẽ ngày càng mở rộng. Ngày nay, bạn thậm chí có thể viết một trò chơi hoàn chỉnh, phát triển bảng điều khiển của riêng mình cho các nhu cầu dịch vụ dưới dạng mô-đun UEFI riêng biệt (ví dụ: shell.efi), trình duyệt Internet, cung cấp công việc với dữ liệu đa phương tiện (xem phim, nghe nhạc ) và tổ chức sao lưu đĩa.
  12. UEFI chứa trình quản lý tải xuống tích hợp. Nghĩa là, nó triển khai trình tải mã hệ điều hành của riêng mình, rất có chức năng và có thể hoạt động như một trình tương tự của các trình tải đa năng của một số hệ điều hành quen thuộc với chúng ta từ quá khứ không xa.
  13. Kích thước khối I/O. Trong UEFI, khi đọc, kích thước khối I/O EFI đặc biệt được sử dụng, cho phép đọc 1 MB dữ liệu (trong BIOS giới hạn là 64 KB).
  14. Sự an toàn. Giả sử UEFI được bảo vệ khỏi mã độc trong giai đoạn khởi động. Người ta cho rằng mã độc không thể tự tải trước khi hệ điều hành khởi động, từ đó chiếm quyền kiểm soát. Điều này đạt được bằng cách ký mọi thứ vào chính chương trình cơ sở và bằng cách có quy trình khởi động an toàn được gọi là “Khởi động an toàn”.
  15. Dễ dàng mở rộng chức năng. Phần sụn UEFI có thể được mở rộng dễ dàng - chỉ cần lắp ổ đĩa được hỗ trợ (ví dụ: ổ flash USB). Sau này, bạn có thể kết nối trình điều khiển bổ sung và ứng dụng UEFI từ thiết bị bên ngoài. Nếu bạn nghĩ về nó, điều này mở ra những cơ hội tuyệt vời để mở rộng chức năng mà BIOS truyền thống không thể có được, vì nó chỉ bị giới hạn bởi mã được gắn cứng vào ROM. Trong UEFI, bạn có thể “trượt” trình điều khiển của một phần cứng mới trực tiếp ở giai đoạn vận hành UEFI, tức là trước khi hệ điều hành bắt đầu tải và có quyền truy cập vào chức năng của thiết bị này.
  16. Mã UEFI hoạt động ở chế độ 32/64-bit. Với tất cả những... lợi ích tiếp theo. Thành thật mà nói, UEFI vẫn sử dụng chế độ thực ngay từ đầu để thực hiện một số tác vụ khởi tạo nền tảng, nhưng rất nhanh chóng chuyển sang chế độ được bảo vệ/dài.
  17. Hỗ trợ các phương tiện đầu vào thay thế. UEFI cung cấp hỗ trợ cho phương tiện đầu vào thay thế, chẳng hạn như bàn phím ảo và màn hình cảm ứng. Điều này khá phù hợp trong thời đại chúng ta có nhiều tiện ích di động khác nhau.

Nhược điểm của UEFI

Và bây giờ tôi xin nêu ra những nhược điểm của công nghệ UEFI:

  1. Tăng độ phức tạp của kiến ​​trúc. Tất cả các ưu điểm của EFI đều không đáng kể so với nhược điểm chính của nó - sự phức tạp của cấu trúc mã. Sự gia tăng đáng kể về khối lượng mã và sự phức tạp về mặt logic của nó không hề góp phần làm cho việc phát triển trở nên dễ dàng hơn mà ngược lại. Nhưng trước và song song với UEFI, đã có những triển khai mở thay thế cho mô hình BIOS lỗi thời, chẳng hạn như OpenBIOS, đã bị từ chối.
  2. Khởi động an toàn. Tại đây, các nhà phát triển hệ điều hành đã giải quyết một số vấn đề cùng một lúc: một phần là vấn đề vi phạm bản quyền, loại bỏ việc bỏ qua kích hoạt bằng cách đưa các trình kích hoạt vào giai đoạn khởi động, vấn đề về mã độc (vi rút) ở giai đoạn khởi động và vấn đề hệ điều hành lỗi thời. vẫn phổ biến mà người dùng không muốn rời bỏ :) Trên thực tế, hóa ra là ở một số thiết bị đặc biệt thông minh, do không thể tắt tùy chọn “Khởi động an toàn” nên thường không thể cài đặt bất kỳ hệ điều hành nào khác với các hệ thống Windows phiên bản 8+, vì hiện tại chỉ có hệ thống sau mới có bộ tải khởi động được chứng nhận. Đồng ý rằng, đây có vẻ là một cách đối phó khá vụng về với những người dùng và đối thủ keo kiệt, mặc dù bản thân Microsoft phủ nhận mạnh mẽ tình huống như vậy. Nói một cách dễ hiểu, công nghệ này có thể gây ra nhiều bất tiện, nhưng ít nhất hầu hết các nhà cung cấp đều tắt tùy chọn này (hiện tại) trong cài đặt.
  3. Không thể cài đặt hệ điều hành cũ hơn (trong một số trường hợp). Không thể cài đặt các hệ thống cũ hơn nếu không có Chế độ tương thích (CSM).
  4. Sự sai lệch so với tiêu chuẩn. Mỗi nhà sản xuất thành phần phần cứng sửa đổi UEFI theo quyết định riêng của mình, từ đó tạo thêm khó khăn cho người dùng, về cơ bản khiến chúng ta rơi vào tình trạng hỗn loạn BIOS? Ví dụ: trên các thiết bị khác nhau, trình quản lý khởi động có thể được triển khai khác nhau, đồng thời có những sai lệch khá đáng kể so với khuyến nghị của thông số kỹ thuật UEFI. Trong thực tế, đôi khi tôi gặp các UEFI bị lỗi bỏ qua các tham số danh sách khởi động NVRAM và chỉ tải mã từ \EFI\Microsoft\Boot\bootmgfw.efi hoặc EFI/BOOT/bootx64.efi . Hoặc trình quản lý khởi động trong một số triển khai có thể chứa danh sách kết hợp các thiết bị MBR và GPT, trong khi ở những triển khai khác có các danh sách khởi động khác nhau, điều này gây ra một số nhầm lẫn.
  5. Triển khai các công cụ kiểm soát nội dung. Tiêu chuẩn UEFI cung cấp sự hiện diện của một số trình điều khiển nhất định sẽ chặn các cuộc gọi đến hệ điều hành, do đó DRM (Quản lý hạn chế kỹ thuật số, phương tiện kỹ thuật bảo vệ bản quyền) có thể được triển khai. Bản chất của thuật toán như sau: một người mà mọi thứ đều hoạt động được, bằng chi phí của mình, cài đặt phần mềm hoặc thiết bị đó để một số chức năng trong hệ thống làm việc của anh ta nhằm tái tạo nội dung số (máy tính, trình phát đa phương tiện, v.v. .) không còn hoạt động theo cách thông thường nữa. Có những lo ngại hợp lý rằng việc tạo ra UEFI là một cách che đậy để đưa các chức năng không mong muốn của người dùng cuối vào PC.
  6. Khả năng giới thiệu các mô-đun không mong muốn. Không thể đảm bảo rằng hệ điều hành có quyền kiểm soát 100% máy tính nếu nó khởi động bằng UEFI!

Thuật toán hoạt động UEFI

Trong quá trình phát triển UEFI, ngay từ đầu, nhà phát triển đã thiết lập các ranh giới nghiêm ngặt cho từng quy trình liên quan đến việc thực thi. Ba giai đoạn đầu tiên (SEC, PEI, DXE) chuẩn bị nền tảng cho bộ tải khởi động hệ điều hành, giai đoạn thứ tư (BDS) tải trực tiếp bộ tải khởi động hệ điều hành. Hãy thử phân tích thuật toán vận hành UEFI và xem xét kỹ hơn tất cả các giai đoạn của nó.

  • Giai đoạn SEC. (An toàn an ninh). Giai đoạn bảo mật. Mọi thứ phải được ký và xác minh nếu không nó sẽ không chạy!
    • Xóa bộ nhớ đệm của CPU.
    • Chạy thủ tục khởi tạo chính trong ROM.
    • Chuyển sang chế độ hoạt động của bộ xử lý được bảo vệ.
    • MTRR (Thanh ghi phạm vi loại bộ nhớ) cho BSP được khởi tạo.
    • Chạy các bản vá vi mã cho tất cả các bộ xử lý đã cài đặt.
    • Bắt đầu với BSP/AP. BSP = Gói hỗ trợ bảng. AP = Bộ xử lý ứng dụng. Mỗi lõi có thể được biểu diễn dưới dạng BSP + AP. IIPI (Ngắt bộ xử lý ban đầu) được gửi đến tất cả các AP, sau đó là SIPI (Ngắt bộ xử lý khởi động).
    • Truyền dữ liệu và điều khiển sang pha PEI.
  • Giai đoạn PEI (Khởi tạo trước EFI, Khởi tạo trước EFI). Chuẩn bị nền tảng (bộ nhớ và các thiết bị được phát hiện) cho quy trình khởi tạo hệ thống chính trong giai đoạn DXE.
    • Chuyển dữ liệu từ ROM sang bộ đệm.
    • Khởi tạo CRTM (Core Root for Trust of Measure). Đây là một tập hợp các hướng dẫn được nền tảng thực thi trong quá trình hoạt động RTM.
    • Trình quản lý PEI đang tải. Bộ điều phối tải một loạt mô-đun (PEIM) khác nhau tùy thuộc vào nền tảng. Các mô-đun này hoàn thành các nhiệm vụ còn lại của PEI. Giai đoạn kết thúc khi tất cả các mô-đun được tải.
    • PEIM: Các mô-đun khởi tạo bộ xử lý được tải và khởi chạy. (ví dụ: mô-đun bộ đệm bộ xử lý, mô-đun chọn tần số bộ xử lý). Bộ xử lý được khởi tạo.
    • PEIM: Giao diện tích hợp nền tảng được khởi tạo (SMBus). MCH (Trung tâm điều khiển bộ nhớ), ICH (Trung tâm điều khiển I/O) được khởi tạo.
    • PEIM: Khởi tạo bộ nhớ. Đang khởi tạo bộ nhớ chính và truyền dữ liệu từ bộ đệm vào bộ nhớ đệm.
    • Kiểm tra chế độ S3. Không - chuyển quyền điều khiển sang pha DXE. Có - khôi phục trạng thái ban đầu của bộ xử lý và tất cả các thiết bị và chuyển sang HĐH.
  • Giai đoạn DXE. (Môi trường thực thi trình điều khiển, Môi trường tải trình điều khiển). Việc tải các thành phần trong giai đoạn này dựa trên các tài nguyên đã được khởi tạo trong giai đoạn PEI. Giai đoạn khởi tạo cuối cùng cho tất cả các thiết bị. Bắt đầu các dịch vụ UEFI: Dịch vụ khởi động, Dịch vụ thời gian chạy và Dịch vụ DXE.
    • Hạt nhân DXE đã được tải. Cơ sở hạ tầng DXE được tạo: các cấu trúc dữ liệu cần thiết và cơ sở dữ liệu xử lý được tạo. Bao gồm các giao diện DXE cơ bản. Ra mắt một số dịch vụ: Boot Services, Runtime Services, DXE Services.
    • Khởi chạy Trình quản lý DXE. Sử dụng cấu trúc Khối chuyển giao (danh sách HOB) được chuyển từ PEI, nó xác định Khối lượng chương trình cơ sở có sẵn (FV, cơ sở dữ liệu có cấu trúc của các mô-đun thực thi DXE: trình điều khiển và ứng dụng) và tìm kiếm trình điều khiển trong đó, khởi chạy chúng, quan sát các phần phụ thuộc. Tại thời điểm này, một số thành phần còn lại được kích hoạt cùng lúc. Trình quản lý tải tất cả các trình điều khiển có sẵn từ tất cả các phương tiện có sẵn.
    • Đang tải trình điều khiển SMM Init. Bắt đầu một giai đoạn phụ. SMM (Chế độ quản lý hệ thống) là một trong những chế độ thực thi mã đặc quyền của bộ xử lý x86, trong đó bộ xử lý chuyển sang không gian địa chỉ độc lập, lưu ngữ cảnh của tác vụ hiện tại, sau đó thực thi mã cần thiết, sau đó quay lại chế độ chính. Tại sao chúng ta cần SMM? Nhưng vì ở chế độ này, bạn có thể làm bất cứ điều gì bạn muốn với hệ thống, bất kể hệ điều hành. Mã SMM có thể được thực thi sau khi giai đoạn DXE kết thúc.
    • Trình quản lý khởi động UEFI khởi động. Điều này xảy ra sau khi tất cả các trình điều khiển đã bắt đầu. Điều khiển được chuyển sang giai đoạn BDS.
  • Giai đoạn BDS (Lựa chọn thiết bị khởi động). Thực hiện chính sách tải nền tảng. Nhiệm vụ chính là kết nối các thiết bị cần thiết để khởi động, chọn (thủ công hoặc tự động) thiết bị khởi động và khởi động từ nó. Thông thường, nó thực hiện tìm kiếm đệ quy thông qua tất cả các FV có sẵn và cố gắng tìm nội dung có sẵn để tải xuống.
    • Các thiết bị Console được khởi tạo, mô tả bằng các biến môi trường ConOut (ConsoleOutHandle), ConIn (ConsoleInHandle), StdErr (StandardErrorHandle).
    • Trình điều khiển thiết bị UEFI được liệt kê trong biến môi trường DriverOrder (chứa các tùy chọn Driver#### theo thứ tự khởi động) đã được tải.
    • Ứng dụng UEFI được tải từ thiết bị khởi động Boot####. Danh sách các thiết bị được chứa trong biến môi trường BootOrder theo thứ tự khởi động.
    • Nếu chúng tôi không thể thực hiện bất kỳ thao tác nào ở trên, hãy gọi cho người quản lý DXE để kiểm tra xem phần phụ thuộc của trình điều khiển bổ sung đã được cung cấp kể từ lần cuối cùng người quản lý được gọi hay chưa. Sau đó điều khiển quay lại giai đoạn BDS một lần nữa.

Thuật toán vận hành UEFI Boot Manager

Khái niệm khởi động UEFI khác biệt đáng kể so với khái niệm khởi động BIOS. Nếu bạn còn nhớ BIOS, mã bootstrap int 19h (bộ tải khởi động) chịu trách nhiệm tải ở đó, nhiệm vụ của mã này chỉ là tải bản ghi khởi động chính (MBR) từ thiết bị khởi động vào bộ nhớ và chuyển quyền điều khiển sang nó. Trong UEFI, mọi thứ thú vị hơn một chút, nó chứa bộ tải khởi động tích hợp đầy đủ của riêng nó, được gọi là UEFI Boot Manager (UEFI Boot Manager hoặc đơn giản là Boot Manager), có chức năng phong phú hơn nhiều.

UEFI Boot Manager là một mô-đun UEFI chung tiêu chuẩn.

Boot Manager thực hiện một loạt các chức năng, bao gồm tải hình ảnh UEFI như: trình tải hệ điều hành giai đoạn đầu UEFI, trình điều khiển UEFI, ứng dụng UEFI. Việc khởi động có thể được thực hiện từ bất kỳ hình ảnh UEFI nào nằm trên bất kỳ hệ thống tệp nào được UEFI hỗ trợ nằm trên bất kỳ phương tiện lưu trữ vật lý nào được nền tảng hỗ trợ. UEFI Boot Manager có cấu hình riêng, các tham số của nó nằm ở dạng một số biến trong một NVRAM chung (RAM không bay hơi).

EFI NVRAM là vùng bộ nhớ dùng chung được thiết kế để lưu trữ các tham số cấu hình UEFI, có sẵn để các nhà phát triển chương trình cơ sở, nhà sản xuất phần cứng, nhà phát triển hệ điều hành và người dùng sử dụng.

Các tham số UEFI được lưu trữ trong NVRAM dưới dạng các biến, được biểu thị một cách cổ điển bằng cặp "tên tham số" = "giá trị". Các biến này chứa một số lượng lớn các tham số liên quan đến các phần chức năng khác nhau của UEFI, nghĩa là ngoài các tham số UEFI Boot Manager, NVRAM còn lưu trữ nhiều tham số UEFI khác.Tuy nhiên, trong khuôn khổ chương này chúng ta chỉ quan tâm đến các biến liên quan đến Trình quản lý khởi động UEFI Đây chủ yếu là biến BootOrder, trỏ đến các biến mô tả khởi động có tên Boot#### Mỗi phần tử Boot#### là một con trỏ tới một thiết bị vật lý và (tùy chọn) thậm chí có thể mô tả một tệp đại diện một hình ảnh UEFI, hình ảnh này sẽ khởi động từ thiết bị vật lý này.

Tất cả các thiết bị khởi động được mô tả dưới dạng một đường dẫn đầy đủ, nghĩa là chúng chứa tên tệp khởi động có thể đọc được để chúng có thể được thêm vào menu khởi động.

Đây đại khái là cách tôi tưởng tượng thuật toán liệt kê phương tiện trong quá trình hoạt động của UEFI:

Như chúng ta có thể thấy, UEFI Boot Manager phân tích BootOrder , nghĩa là nó tải đường dẫn thiết bị của từng phần tử Boot#### theo thứ tự được chỉ định trong biến BootOrder và cố gắng khởi động từ thiết bị được chỉ định. Nếu có lỗi, trình quản lý khởi động sẽ chuyển sang phần tử tiếp theo. Ngoài ra, cái gọi là danh sách tải xuống sẽ được tạo ra. Danh sách này phù hợp với giao diện cài đặt UEFI và trông giống như menu khởi động tiêu chuẩn quen thuộc. Danh sách khởi động UEFI được tạo dựa trên biến BootOrder và được sử dụng để cho phép người dùng thực hiện các thay đổi về thứ tự và cấu hình của thiết bị khởi động.
Bản thân BootOrder được hình thành như thế nào? Và rất đơn giản, chẳng hạn, trong quá trình cài đặt hệ điều hành Windows, trình cài đặt tạo một phân vùng ESP (nếu nó không tồn tại) trên đĩa cài đặt, định dạng phân vùng này vào hệ thống tệp FAT, sau đó đặt bộ tải khởi động của nó ( đối với Windows 7+ đây là tệp bootmgfw.efi) và một số tệp khác dọc theo đường dẫn \EFI\Microsoft\Boot\ . Sau khi quá trình cài đặt hệ điều hành hoàn tất, trình cài đặt Windows sẽ tạo một biến trong EFI NVRAM có tên Boot#### (trong đó #### là số thập lục phân) tham chiếu đến trình quản lý khởi động Windows có tên bootmgfw.efi . Sau đó, đặt biến BootOrder?

Yêu cầu về phương tiện có khả năng khởi động UEFI

Đặc tả UEFI, trong số những thứ khác, mô tả các yêu cầu nhất định đối với các quy tắc đặt phân vùng và bộ tải khởi động trên phương tiện. Và đối với các loại thiết bị khác nhau, như chúng ta sẽ thấy sau, chúng có sự khác biệt đáng kể.

Yêu cầu về ổ cứng

Mỗi ổ cứng có khả năng khởi động phải chứa Phân vùng hệ thống EFI (ESP) đặc biệt. Phân vùng ESP phải tuân theo hệ thống phân cấp thư mục (cấu trúc) được xác định trước theo tiêu chuẩn: thư mục /EFI phải nằm ở thư mục gốc của phân vùng ESP. Ngược lại, thư mục /EFI sẽ chứa các thư mục con của nhà cung cấp hệ điều hành, nhà sản xuất phần cứng, công cụ và trình điều khiển chung:

\EFI\<директория вендора ОС 1> <файл-загрузчик-ОС1>.efi\<директория вендора ОС 2> <файл-загрузчик-ОС2>.efi. . . \<директория вендора ОС N> <файл-загрузчик-ОСN>.efi\<директория производителя оборудования (OEM)> .efi\<директория BIOS вендора> <приложение-BIOS-вендора>.efi\<директория вендора стороннего ПО> <стороннее-приложение>.efi \BOOT BOOT(architecture_type).efi

\<директория вендора ОС 1>

<файл-загрузчик-ОС1>.efi

\<директория вендора ОС 2>

Đăng ký các thư mục con.

Các nhà cung cấp có thư mục không được mô tả trong thư mục con của nhà cung cấp và không có thư mục con riêng trong thư mục /EFI thường đặt bộ nạp khởi động của họ làm "bộ nạp khởi động mặc định". Ví dụ: đối với hệ thống x64 dọc theo đường dẫn: /EFI/Boot/bootx64.efi.

Tệp bộ tải khởi động là một ứng dụng UEFI điển hình, có định dạng PE32+ và chứa mã cho giai đoạn đầu tải hệ điều hành, tức là nó bắt đầu quá trình khởi động hệ điều hành. Mục đích của nó là chuẩn bị cấu trúc dữ liệu, tải nhân hệ điều hành vào bộ nhớ và chuyển quyền điều khiển sang nó.
Thông số kỹ thuật mô tả thư mục con /EFI/Boot. Thư mục con này được sử dụng làm vị trí "mặc định", nghĩa là trong trường hợp vì lý do nào đó, một số bộ tải khởi động bị mất (không được định cấu hình) trong NVRAM. Trong trường hợp như vậy, thư mục này chứa cái gọi là “bộ tải khởi động mặc định”, có tên tiêu chuẩn BOOT (architecture_type).efi

Một số triển khai UEFI cũ hơn đã bị lỗi, chúng chỉ đơn giản bỏ qua danh sách khởi động trong NVRAM và tải trực tiếp các mô-đun hoặc /EFI/BOOT/bootx64.efi . Khác, không kém các tùy chọn UEFI “trực tiếp” không hỗ trợ menu khởi động và cũng luôn được tải /EFI/Boot/bootx64.efi hoặc /EFI/Microsoft/Boot/bootmgfw.efi tùy theo sở thích bí ẩn của bạn.

Khởi động ở chế độ Legacy

UEFI không chạy bất kỳ mã nào từ MBR cổ điển, bất kể khu vực này có hiện diện trên phương tiện được cài đặt trên hệ thống hay không. Ngoại lệ là các phiên bản UEFI triển khai hỗ trợ “chế độ tương thích”. Do đó, để tải các hệ điều hành truyền thống (cũ) tương thích với tiêu chuẩn đánh dấu MBR, UEFI cung cấp các mô-đun đặc biệt có thể được đưa vào chương trình cơ sở (theo quyết định của nhà cung cấp). Bạn có thể tìm hiểu xem chương trình cơ sở UEFI cụ thể của mình có hỗ trợ “chế độ tương thích” hay không bằng cách tìm kiếm các tham số như Legacy, Legacy CSM, Launch CSM, CSM Boot, CSM OS, Launch CSM hoặc CSM Support. Cần lưu ý rằng chế độ này hiện diện trong phần lớn phần sụn, giúp đơn giản hóa đáng kể cuộc sống của những người dùng mua máy tính xách tay hoặc bo mạch chủ mới nhưng vẫn không thay đổi thói quen sử dụng hệ điều hành “cũ” từ MS :)
Thật hợp lý khi cho rằng nếu có mô-đun CSM, mã chương trình cơ sở khi khởi động ở chế độ truyền thống phải càng gần với các tính năng chức năng tương tự của BIOS truyền thống càng tốt, chỉ cần mô phỏng các công nghệ chính. Chúng ta hãy xem Mô-đun hỗ trợ tương thích UEFI (CSM) làm gì khi khởi động ở chế độ cũ.
Hiện tại, tôi sẽ chỉ cung cấp ở đây một thuật toán tải có điều kiện trừu tượng trong chế độ Mô-đun hỗ trợ tương thích/kế thừa (CSM):

  1. Có cần khởi động ở chế độ cũ không? Nếu không thì chúng ta chuyển sang chuỗi UEFI Boot thông thường.
  2. Tải mô-đun Trình điều khiển kế thừa.
  3. Tải mô-đun BIOS kế thừa.
  4. Có cần hỗ trợ các chức năng BIOS video truyền thống không (triển khai các chức năng ngắt int 10h)? Có - chúng tôi đang tải.
  5. Có cần hỗ trợ các phần mở rộng BIOS truyền thống khác (int 13h..) không? Có - chúng tôi đang tải.
  6. Đang tải hệ điều hành truyền thống (cũ)? Không - chúng tôi chuyển sang khởi động UEFI bình thường.
  7. Chúng tôi hình thành các cấu trúc SMBIOS.
  8. Chúng tôi hình thành các cấu trúc Thiết bị kế thừa.
  9. Chúng tôi tạo thành cấu trúc ngắt int 15h, cấu trúc API BBS (Đặc tả khởi động BIOS).
  10. Chúng tôi tạo ra ACPI RSD PTR.
  11. Tải lên mã SMM tương thích.
  12. Chúng tôi tải mã từ MBR và chuyển quyền kiểm soát sang nó.

Đa khởi động trong UEFI

Ngay từ khi bắt đầu phân phối hàng loạt máy tính cá nhân, đôi khi nảy sinh nhiệm vụ triển khai một số hệ điều hành trên một PC, có thể lưu trữ một hoặc nhiều phương tiện vật lý. Cách đây không lâu, tình hình đã thay đổi đáng kể nhờ sự phát hiện ra công nghệ ảo hóa, nhưng điều này không loại bỏ được hoàn toàn vấn đề. Theo nghĩa cổ điển, liên quan đến các trạm khởi động bằng phương pháp PC/AT BIOS truyền thống bằng cách sử dụng đánh dấu MBR cổ điển, multiboot là mã của bên thứ ba trong khu vực khởi động chính (MBR), tải cái gọi là trình quản lý khởi động ( multibooter), lưu trữ các cài đặt cho từng hệ điều hành được cài đặt trên máy tính và cung cấp menu để chọn cách khởi động một hệ điều hành cụ thể. Nếu chúng ta nói về thời đại của chúng ta, tức là về khả năng khởi động đa điểm liên quan đến phương tiện được phân vùng bằng cách sử dụng đánh dấu GPT, thì bây giờ rất nhiều thứ đã thay đổi. Như chúng tôi đã lưu ý, UEFI có thể hoạt động trực tiếp với đĩa GPT, do đó nhiệm vụ cài đặt nhiều hệ điều hành được đơn giản hóa rất nhiều. Giờ đây, tất cả các chức năng của multibooter đều được đảm nhận bởi UEFI Boot Manager tích hợp, các nguyên tắc hoạt động mà chúng tôi đã mô tả ở trên. Trình cài đặt hệ điều hành chỉ cần thực hiện rất tốt những gì nó đã làm rất tốt: đặt bộ tải khởi động trên một phân vùng ESP đặc biệt trong hệ thống phân cấp thư mục “của nó”, sau đó bộ tải khởi động này sẽ “hiển thị” trong cài đặt UEFI. Ngoài trình cài đặt hệ điều hành, giờ đây, chính người dùng, sử dụng cài đặt (giao diện đồ họa/văn bản UEFI), có thể thêm bộ tải khởi động theo cách thủ công nằm trên bất kỳ phương tiện vật lý nào được kết nối và hiển thị với hệ thống. Tất cả các bộ tải khởi động này được thêm vào theo nhiều cách khác nhau đều có sẵn thông qua Menu Khởi động, người dùng có thể định cấu hình/gọi trực tiếp trong khi UEFI đang chạy, tức là ở giai đoạn đầu khởi động PC. Nói cách khác, khởi động đa điểm trong UEFI chỉ đơn giản là vấn đề chạy các ứng dụng UEFI (bộ tải khởi động dành riêng cho hệ điều hành) nằm trên phương tiện được gắn trên một phân vùng ESP đặc biệt trong hệ thống phân cấp thư mục bắt nguồn từ /EFI.