Tài liệu
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Wikipedia: BIOS

Go down

Wikipedia: BIOS Empty Wikipedia: BIOS

Bài gửi  Admin Mon Jul 09, 2012 7:35 am

BIOS ở đây là viết tắt của cụm từ tiếng Anh (Basic Input/Output System) có nghĩa là Hệ thống xuất nhập cơ bản. BIOS nằm bên trong máy tính cá nhân, trên bo mạch chính. BIOS được xem như là chương trình được chạy đầu tiên khi máy tính khởi động. Chức năng chính của BIOS là chuẩn bị cho máy tính để các chương trình phần mềm được lưu trữ trên các thiết bị lưu trữ (chẳng hạn như ổ cứng, đĩa mềm và đĩa CD) có thể được nạp, thực thi và điều khiển máy tính. Quá trình này gọi là khởi động.
Thuật ngữ này xuất hiện lần đầu trong hệ điều hành CP/M, là phần CP/M được tải lên trong suốt quá trình khởi động, tương tác trực tiếp với phần cứng (các máy CP/M thường có duy nhất một trình khởi động trong ROM). Các phiên bản nổi tiếng của DOS có một tập tin gọi là "IBMBIO.COM" hay "IO.SYS" có chứng năng giống như BIOS CP/M.
Tuy nhiên, thuật ngữ BIOS ngày nay chỉ một chương trình phần mềm khác được chứa trong các chip có sẵn trên bản mạch chính như PROM, EPROM và nó nắm giữ các chức năng chuẩn bị cho máy đồng thời tìm ra ổ nhớ cũng như liên lạc và giao sự điều hành máy lại cho hệ điều hành.
BIOS cũng là bộ phận chuẩn của máy tính. Một máy tính có thể thiếu màn hình, bàn phím, chuột, ổ cứng, ... nhưng không thể thiếu BIOS.

***Vận hành của BIOS

BIOS được chứa sẵn (thường ở dạng nén dữ liệu) trong các con chip như là PROM, EPROM hay bộ nhớ flash của bo mạch chính. Khi máy tính được mở qua công tắc bật điện hay khi được nhất nút reset, thì BIOS được khởi động và chương trình này sẽ tiến hành các thử nghiệm khám nghiệm trên các ổ đĩa, bộ nhớ, bo hình, các con chip có chức năng riêng khác và các phần cứng còn lại.
Thông thường, BIOS tự giải nén vào trong bộ nhớ chính của máy tính và bắt đầu vận hành từ đây. Hầu hết các lắp đặt của BIOS ngày nay có thể thực thi cài đặt các chương trình giao diện CMOS. Bộ phận này (CMOS) là nơi lưu giữ các dữ liệu cài đặt chuyên biệt của người dùng; như thời gian, các đặc tính chi tiết của ổ đĩa, việc gán chức năng khởi động cho bộ điều khiển (controller) nào, hay ngay cả mật mã khởi động máy, ... CMOS được truy cập bởi BIOS.
Đối với hệ kiến trúc 80x86, mã nguồn BIOS của các máy PC và AT thời kỳ đầu đã có kèm Bản tham chiếu kĩ thuật IBM.
Trong hầu hết các lắp đặt của BIOS ngày nay, người dùng có thể lựa chọn thiết bị nào được khởi động trước: CD, đĩa cứng, đĩa mềm, ổ USB, hay các thiết bị lưu trữ tương thích. Thủ tục này đặc biệt hữu ích cho việc cài đặt các hệ điều hành hay khởi động từ CD/DVD khởi động được hay ổ USB khởi động được và cho việc lựa chọn thứ tự của việc kiểm tra sự hiện hữu của các vật liệu (media) khởi động được.
Một số BIOS cho phép người dùng lựa chọn hệ điều hành để nạp vào bộ nhớ (thường thấy khả năng này trong các máy mới có kiến trúc 64-bit như các hệ máy chủ Itanium của HP chẳng hạn). Mặc dù vậy, thường thấy hơn, thì thao tác này được tiến hành bởi giai đoạn hai của bộ tải khởi động (boot loader).

***BIOS và chế độ thực (realmode)

Đối với các máy theo kiến trúc 8086, khi CPU bắt đầu hoạt động nó lập tức tự cài đặt vào chế độ thực và tìm đến vị trí của đúng 16 byte trên đỉnh của Mega byte của chế độ thực tại địa chỉ 0FFFF0h. Chính tại địa chỉ này, một lệnh jump sẽ dẫn tới nơi mà mã BIOS được bắt đầu thi hành.

***BIOS như là phần sụn
Wikipedia: BIOS 150px-Phoenix_bios
ROM có BIOS

BIOS đôi khi được gọi là phần sụn vì nó là phần tích hợp trong một hệ thống phần cứng.
Trước năm 1990, BIOS được lưu giữ trong các con chip ROM và do đó không thể thay đổi (ngoại trừ phải có các thiết bị đặc biệt để đổi phần mềm cho con chip BIOS). Do BIOS ngày càng phức tạp và nhu cầu cập nhật trở nên ngày càng cao, phần sụn BIOS nay thường được chứa trong EEPROM hay trong bộ nhớ flash để người dùng có thể cập nhật chúng dễ dàng hơn (qua đĩa mềm, ổ USB, hay các CD khởi động được). Mặc dù vậy, nếu công việc cập nhật BIOS được tiến hành với sai sót hoặc không được tiến hành trong thời gian đủ dài thì có thể dẫn đến tình trạng máy tính hay thiết bị không sử dụng được nữa (do BIOS bị hỏng hoặc không tương thích với đòi hỏi mới của hệ điều hành). Để tránh hỏng hóc BIOS, một số bo mạch chính loại mới có thêm chức năng lưu giữ lại một phiên bản BIOS cũ. Ngoài ra, hầu hết các BIOS còn có một khối khởi động mà chúng là một phần của ROM được chạy trước tiên và không thể đổi mới được. Khối mã này sẽ kiểm nghiệm xem các phần còn lại của BIOS có còn hoạt động hay không (thông qua các thao tác như là checksum, băm (hash),... v.v.) trước khi thực thi chúng. Nếu khối khởi động này tìm ra hỏng hóc, thì nó thường sẽ tự khởi động từ ổ mềm để cho người dùng có thể thử đổi mới BIOS lại. Các nhà hãng sản xuất phần cứng thường xuất bản các cập nhật BIOS để cải tiến sản phẩm của họ và sửa các trục trặc trong phiên bản cũ.

***Phần sụn trong các bộ điều hợp

Một máy tính có thể có nhiều chip có phần sụn BIOS. BIOS của bo mạch chính thường chỉ chứa mã để truy cập các thành phần cơ bản của phần cứng như bàn phím, ổ đĩa mềm, các bộ điều khiển ATA (IDE), các giao diện nhân tính USB (USB human interface) và các thiết bị lưu trữ. Thêm vào đó, các bộ điều hợp được cắm thêm vào máy, chẳng hạn các loại bộ điều khiển SCSI, RAID, NIC và các bo video, thường có BIOS của riêng mình với mục đích để hoàn thiện hay để thay thế mã của hệ thống BIOS cho chính các bộ phận đó.
Trong nhiều trường hợp, khi các thiết bị được sử dụng bởi các bộ điều hợp cắm thêm và được trực tiếp tích hợp trên bo mạch chính, thì ROM cắm thêm có thể cũng được lưu trữ như là một khối mã riêng biệt trong con chip BIOS chính. Phần này có thể được cập nhật một cách riêng biệt tùy theo BIOS "cắm thêm" (đôi khi còn được gọi là "option ROM").
Các bo cắm thêm thường chỉ đòi hỏi có thêm BIOS nếu chúng:
_Cần được sử dụng trước khi có mặt hệ điều hành (nghĩa là chúng có thể được dùng như là một phần của quá trình tải các khởi động mồi (bootstrap) của hệ điều hành (chẳng hạn như các cài đặt RAID cho ổ cứng trên các bộ điều khiển RAID Array cần được tiến hành trước khi cài đặt hệ điều hành)
_Không quá đơn giản hay quá chung chung trong hoạt động. (Vì nếu quá đơn giản hoặc quá chung chung thì có thể tiến hành trực tiếp qua BIOS chính.)
Các hệ điều hành cũ như DOS, cũng như các bộ tải khởi động, có thể tiếp tục sử dụng BIOS để xử lý vào ra dữ liệu (thông qua các ngắt BIOS (BIOS interrupt) mà thường thấy nhất là INT 13h). Mặc dù vậy, hầu hết các hệ điều hành ngày nay sẽ trực tiếp liên lạc với các thiết bị phần cứng bằng cách sử dụng trình điều khiển (device driver) của chính các phần cứng đó để truy cập chúng. Đôi khi các BIOS cắm thêm này cũng được gọi bởi các hệ điều hành hiện đại, nhằm thực thi các thao tác đặc biệt chẳng hạn việc khởi tạo cho các thiết bị đó.
Trong khi khởi động, để tìm ra địa chỉ của ROM mở rộng được ánh xạ vào bộ nhớ chính, các kiến tạo của PC BIOS sẽ đọc quét bộ nhớ thực từ địa chỉ 0xC0000 đến địa chỉ 0xF0000, nội trong giới hạn 2 kilobyte để tìm ra hai byte chữ ký (signature byte) có giá trị lần lượt là 0x55 và 0xAA, nằm ngay sau hai byte đó sẽ là một byte cho biết số lượng của các khối 512 byte mà ROM mở rộng chiếm chỗ trong bộ nhớ thực.
BIOS sau đó sẽ thường dùng lệnh jump nhảy tới offset (khoảng cách/địa chỉ tương đối) được ghi ngay sau byte chứa kích thước nói trên. Từ đây, các mã ROM mở rộng sẽ lấy quyền điều hành và gọi các dịch vụ BIOS để cung cấp một giao diện cấu hình cho người dùng, đăng kí các vector ngắt cho các ứng dụng sau khởi động, hay hiển thị thông tin khám nghiệm.
Đối với các hệ thống UNIX và Windows/DOS, có một số tiện ích dành cho việc đọc phần sụn BIOS tại địa chỉ http://www.linuks.mine.nu/ree/

***Đặc tả BIOS Khởi động

Nếu ROM mở rộng muốn thay đổi cách thức khởi động hệ thống (chẳng hạn từ một thiết bị mạng hay từ một bộ điều hợp SCSI mà BIOS chính không có mã điều vận), nó có thể dùng API của Đặc tả BIOS Khởi động (BIOS Boot Specification -- BBS) để đăng kí khả năng này của mình -- Trên các NIC, khả năng này thường được gọi là Thức giấc bằng LAN (wake up on LAN) nghĩa là qua một mệnh lệnh truyền qua mạng, ta có thể khởi động một máy tính có mã BIOS hỗ trợ chức năng này).
Một khi các ROM mở rộng đã đăng kí dùng các API của BBS, người dùng máy có thể lựa chọn trong số các chức năng thêm vào này để khởi động qua giao diện sử dụng của BIOS. Đây cũng là lý do tại sao các BIOS sẽ không cho phép người dùng vào được giao diện sử dụng của BIOS cho tới khi tất cả các ROM mở rộng đã hoàn tất việc tự thực thi và đăng ký phần của chúng với API của BBS.

***Tăng và giảm chức năng

Các hệ điều hành cũ như DOS dùng BIOS để thực thi hầu hết các thao tác xuất nhập trên máy PC. Với sự xuất hiện của các hệ điều hành mới hơn như Microsoft Windows, Linux, BIOS gần như cơ bản chỉ dùng để cung cấp cài đặt khởi động phần cứng và khởi động mồi. Một khi đã chạy được, hệ điều hành ít khi phụ thuộc vào BIOS.
Trong những năm gần đây, nhờ các hệ thống thiết kế như ACPI, BIOS nhận thêm nhiều chức năng phức tạp, chẳng hạn các khía cạnh của quản lý năng lượng, cắm nóng (hotplug), quản lý nhiệt độ ... v.v. Điều này dẫn tới đổi mới trách vụ của BIOS thông qua các nhà sản xuất hệ điều hành, và độ phức tạp của mã BIOS cũng tăng lên.

***Hạn chế của BIOS

Sau hơn 30 năm hoạt động trong hầu hết PC trên thế giới, BIOS dần trở nên lỗi thời, bộc lộ nhiều hạn chế. Một ví dụ, BIOS chỉ có 1.024 KB (Kilobyte) dung lượng thực thi. Điều đó có nghĩa là BIOS gặp khó khăn trong việc khởi động các thiết bị ngoại vi đa giao tiếp qua các cổng như USB, eSATA, ThunderBolt,…, và các bộ điều khiển trên một chiếc PC đời mới. Đặc biệt là BIOS không thể thực thi khởi động các thiết bị trong vòng 30 giây sau khi bật công tắc để sẵn sàng cho quá trình nạp hệ điều hành trên máy tính.
BIOS cũng không thể khởi động từ các đĩa cứng với dung lượng lớn hơn 2,19TB (terabyte). Giới hạn này là do hạn chế từ Bản ghi khởi động chủ (MBR - Master Boot Record) trong phần cung mồi (sector 0). Trong BIOS MBR, dung lượng cực đại cho một ổ đĩa bằng 232 x 512byte (tối đa 232 sector; kích thước mỗi sector là 512 byte), tức tương đương với 2,19TB. Đây là một "lược đồ" địa chỉ cho ổ đĩa cứng đời cũ. Nghĩa là, máy tính của bạn không thể khởi động từ các ổ đĩa cứng dung lượng lớn hơn 2,2TB.

***BIOS trong thương vụ

Hầu hết các nhà cung cấp bo mạch chính PC mua quyền sử dụng một "cốt lõi" BIOS và bộ công cụ từ các hãng thương mại, nơi đã tạo ra và bảo trì các "cốt lõi" đó. Sau đó, các nhà máy sản xuất bo mạch chính sẽ điều chỉnh BIOS này cho hợp với phần cứng của họ - vì lí do này, việc cập nhật các BIOS thường được tiếp nhận trực tiếp từ các hãng chế tạo main.

***Danh mục các nhà cung cấp BIOS

American Megatrends Inc.
Phoenix Technologies
Award Software International
MicroID Research (MRBIOS)
Insyde Software (Insyde)
General Software (General Software)

Tìm hiểu thêm:
(1) Khởi động máy tính
Trong máy tính, khởi động máy tính (booting) là một quá trình tự mồi (bootstrapping) để khởi động sự làm việc của hệ điều hành khi người dùng bật một hệ thống máy tính. Một trình tự khởi động (boot sequence) là một tập hợp các lệnh ban đầu được máy tính thực hiện khi nó được khởi động. Trình khởi động (bootloader) sẽ nạp hệ điều hành chính vào máy tính để hoạt động.

**Trình nạp khởi động (Boot loader)

Các hệ thống tính toán hoạt động được nhờ bộ xử lý trung tâm (hay một tập hợp các bộ xử lý), chỉ có thể thực thi các đoạn mã ở bộ nhớ điều hành, được biết đến với tên gọi là bộ nhớ hệ thống, với nhiều loại tùy thuộc vào công nghệ sản xuất như: ROM (Read-Only Memory - bộ nhớ chỉ đọc), hay RAM (Random Access Memory - bộ nhớ truy cập ngẫu nhiên). Mã của các hệ điều hành, các chương trình ứng dụng và dữ liệu hiện nay thường được lưu trữ trên các bộ nhớ bền, bộ nhớ ngoại vi, hay bộ nhớ thứ cấp. Các ví dụ của các loại bộ nhớ đó là: hard disk (ổ cứng), CD, USB, đĩa mềm. Khi một máy tính được bật, ban đầu nó dựa hoàn toàn vào các mã và dữ liệu nằm trên những phần có sẵn của bản đồ bộ nhớ hệ thống, như ROM, NVRAM hay CMOS RAM. Các đoạn mã và dữ liệu "cứng" được lưu trữ trên bản đồ bộ nhớ hệ thống này là những hướng dẫn cần thiết tối thiểu để truy nhập vào những thiết bị cứng ngoại vi và nạp vào bộ nhớ hệ thống tất cả những phần cần thiết của hệ điều hành. Có thể nói trong khoảng thời gian khởi động máy tính, hệ thống máy tính không có hệ điều hành nào trong bộ nhớ trong. Tuy nhiên, nếu chỉ có phần cứng máy tính không thôi (vi xử lý hay bộ nhớ hệ thống) thì không thể thực hiện được những thao tác phức tạp để nạp các tệp tin chương trình từ hệ thống lưu trữ vào bộ nhớ, mà đây vốn là một trong những tác vụ quan trọng nhất.
Chương trình giúp bắt đầu một chuỗi các lệnh được kết thúc bằng việc toàn bộ hệ điều hành được nạp vào hệ thống gọi là "bootstrap loader". Những nhà thiết kế máy tính thời kỳ đầu đã từng có ý tưởng: trước khi một máy tính ở trạng thái hoạt động hoạt động, nó phải trải qua một giai đoạn khởi động hay "mồi". Do đó, để thiết lập trạng thái hoạt động cho hệ thống máy tính, một chương trình đặc biệt, dung lượng nhỏ, gọi là "trình nạp khởi động" (tiếng Anh: "bootstrap loader" hay "bootstrap" hay "boot loader"), sẽ được thực thi trước tiên. Chương trình này chỉ có nhiệm vụ duy nhất là nạp các phần mềm khác để hệ điều hành có thể bắt đầu hoạt động. Thường thì trình nạp khởi động gồm nhiều giai đoạn, mỗi giai đoạn là một chương trình nhỏ hơn được thực hiện tuần tự, sau khi chương trình này kết thúc sẽ gọi tiếp đến chương trình kia, cho đến khi chương trình cuối cùng nạp hệ điều hành.
Những máy tính thời kỳ đầu có một dãy công tắc chuyển mạch (toggle switch) ở bảng điều khiển cho phép người điều hành có thể nhập bằng tay những lệnh khởi động bằng dưới dạng các số hệ nhị phân vào bộ nhớ trước khi chuyển tiếp điều khiển cho CPU. Trình nạp khởi động sau đó sẽ đọc hệ điều hành từ một bộ nhớ ngoài như băng đục lỗ, thẻ đục lỗ, hay đĩa nhớ.
Mã giả với ngôn ngữ Assembly mô tả một quá trình nạp hệ thống đơn giản gồm 8 bước:
0: Đặt thanh ghi P là 8
1: Kiểm tra thiết bị đọc băng đục lỗ sẵn sàng chưa
2: Nếu chưa sẵn sàng, nhảy đến 1
3: Đọc 1 byte từ băng đục lỗ vào bộ lưu
4: Nếu kết thúc băng, nhảy đến 8
5: Lưu bộ lưu vào địa chỉ trong thanh ghi P
6: Tăng thanh ghi P lên
7: Nhảy đến 1

Một ví dụ liên quan dựa trên một trình nạp hệ thống trong một máy tính cá nhân của tập đoàn Nicolet Instrumet vào những năm 1970. Lưu ý: các byte trong bước thứ hai (bước số 1) được đọc từ băng đục lỗ theo chiều ngược.
0: Đặt thanh ghi P là 106
1: Kiểm tra thiết bị đọc băng đục lỗ sẵn sàng chưa
2: Nếu chưa sẵn sàng, nhảy đến 1
3: Đọc 1 byte từ băng đục lỗ vào bộ lưu
4: Lưu bộ lưu vào địa chỉ trong thanh ghi P
5: Giảm thanh ghi P
6: Nhảy đến 1

(2) Boot record
Boot record (hay còn gọi là bản ghi khởi động) là một chương trình dùng để khởi động máy tính, chứa mã lệnh thực thi và BPB. Boot record chiếm duy nhất một sector, là sector đầu tiên của một đĩa mềm hay của một primary partition (còn gọi là phân vùng chính) trên đĩa cứng. Sector chứa boot record được gọi là boot sector (tên khác là cung khởi động).

**Hoạt động

_Khởi động máy tính từ đĩa mềm:
Sau khi bật máy tính, chương trình nằm trong ROM đọc dữ liệu trong boot sector, nạp vào RAM tại địa chỉ 7C00:0000 và chuyển quyền điều khiển cho chương trình này. Chương trình này tiến hành nạp hệ điều hành vào RAM và chuyển quyền điều khiển cho hệ điều hành.
_Khởi động máy tính từ đĩa cứng:
Sau khi bật máy tính, chương trình nằm trong ROM đọc dữ liệu trong master boot record, nạp vào RAM tại địa chỉ 7C00:0000 và chuyển quyền điều khiển cho chương trình này. Chương trình này sẽ tìm kiếm phân vùng có quyền khởi động, nếu tìm thấy sẽ nạp boot record của phân vùng đó vào RAM và lại chuyển quyền điều khiển. Chương trình trong boot record này tiến hành nạp hệ điều hành vào RAM và chuyển quyền điều khiển cho hệ điều hành.

**Cấu trúc

Offset......Chiều dài (bytes).......Mô tả
...0.............3....................Lệnh JMP để nhảy qua BPB
...3.............27...................BPB
...30...........482..................Mã lệnh thực thi dùng để nạp hệ điều hành
Từ DOS 2.0 trở về sau, 2 bytes cuối của boot record luôn có giá trị là 55AA (hệ thập lục phân).

http://www.pcworld.com.vn/articles/cong-nghe/cong-nghe/2011/11/1229102-1/bios-loi-thoi-uefi-the-cho/

Nguồn: vi.Wikipedia.org
Admin
Admin
Admin

Tổng số bài gửi : 104
Join date : 25/06/2012
Age : 34
Đến từ : Hồ Chí Minh

https://luli.1talk.net

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết