conghieu8x
02-09-2007, 03:21 PM
Chúng ta thường nghe nhắc nhiều đến Bios nhưng có ai hiểu Bios là gì và hoạt động như thế nào chưa.Hiếu post bài này để các bạn tham khỏa nhé.Chúc vui vẻ :k6
BIOS được viết tắt từ Basic Input – Output System , ngày nay BIOS được lưu trong bộ nhớ kiểu Flash .
http://tuvantinhoc1088.com/my_documents/my_pictures/Giainghia2/BIOS/bios-ch.jpg
Hầu hết mọi máy tính hiện nay BIOS được dùng trên những thiết bị khác như : ổ cứng CPU , Card màn hình ...
Mọi máy tính ngày nay đều có cấu hình chung bao gồm bộ vi xử lí như là một đơn vị xử lí trung tâm . Bộ vi xử lí là thiết bị phần cứng , để cho nó làm việc cần cho nó xử lí những lệnh gọi là phần mềm . Có 02 kiểu phần mềm bao gồm :
· Hệ điều hành : hệ điều hành cung cấp những dịch vụ cho những ứng dụng được chạy trên máy tính , nó cung cấp những quy tắc cơ bản giao diện với người sử dụng . ( Ví dụ : Windows 98, XP , Linux ...)
· Những chương trình ứng dụng . Chúng là những phần mềm được lập trình để thực hiện những nhiệm vụ nào đó . ( Ví dụ : Chương trình duyệt Web , nhận và gửi thư .... )
BIOS là kiểu thứ ba của phần mềm máy tính để cho những hoạt động được thành công .
BIOS làm những gì ?
Phần mềm BIOS của Mainboard có một số vai trò khác nhau , nhưng nhiệm vụ quan trong nhất của nó là tải hệ điều hành . Khi bạn bật máy tính và bộ vi xử lí cố gắng thực hiện những lệnh đầu tiên , nó sẽ nhận những lệnh này ở đâu đó . Nó không thể nhận được những lệnh này từ hệ điều hành bới vì hệ điều hành nằm trên ở cứng . Chính là BIOS cung cấp những lệnh này . BIOS cung cấp những lệnh thực hiện những việc chung như sau :
POST (power-on self-test - Tự kiểm tra khi bật nguồn ) cho tất cả những phần cứng khác nhau trong hệ thống và chắc chắn chúng làm việc được phù hợp .
Kích hoạt những BIOS của những Card khác nhau cài đặt trong máy tính ( Ví dụ : Card SCSI , Card đồ hoạ ... những Card này có Chip BIOS riêng ) .
Cung cấp những thủ tục mức thấp nhất mà hệ điều hành dùng để giao tiếp với những thiết bị phần cứng khác ( Những thủ tục này được lưu trong BIOS và có những cách sử dụng riêng biệt ) . Chúng quản lí những công việc như Keyboard , màn hình hiển thị , cổng nối tiếp , cổng song song ... trong khi máy tính bắt đầu khởi dộng .
Quản lí những thiết lập của ổ cứng , của đồng hồ ...
BIOS là phần mềm chuyên dụng để cung cấp những giao diện để kết nối những phần cứng chính với hệ điều hành . Nó thường được lưu trữ trong bộ nhớ Flash trên Mainboard , đối với những Mainboard trước kia được lưu trữ trong ROM .
http://tuvantinhoc1088.com/my_documents/my_pictures/Giainghia2/BIOS/ROM.jpg
Với loại ROM trên có thể Ghi/Xoá được . Để xoá nội dung trong đó thông thường dùng ánh sánh tia cực tím chiếu vào vùng có vòng tròn khoanh đỏ . Nội dung trong BIOS được ghi bằng thiết bị ghi ROM chuyên dụng . Ghi xong chúng ta phải bị chỗ có vòng tròn đỏ để tránh xảy ra hiện tượng mất dữ liệu .
Đối với những máy tính đời cũ nữa thì nội dung của BIOS được lưu vào trong 02 ROM một cho Odd và một cho Even với mục đích tăng tốc độ khi truy cập vào ROM . Ngày nay tốc độ của bộ nhớ Flash nhanh nên nội dung BIOS chỉ ghi vào trong một bộ nhớ Flash duy nhất . Đồng thờii khi bất máy tính những nội dung của BIOS sau khi kiểm tra một số bước cũng được tải thẳng vào bộ nhớ để việc truy cập được nhanh hơn .
Khi bật máy tính , BIOS thực hiện những lệnh bao gồm những công việc sau :
· Kiểm tra CMOS Setup cho những thiết lập cuỉa hệ thống .
· Tải những điều khiển ngắt và những Driver của thiết bị .
· Thiết lập những giá trị ban đầu cho những thanh ghi và quản lí nguồn cung cấp .
· Thực hiện POST
· Hiển thị những thiết lập hệ thống .
· Xác định những thiết bị nào tham gia quá trình khởi động .
· Thiết lập những thứ tự khởi động hệ thống .
Đầu tiên BIOS kiểm tra những thông tin được lưu trữ trong một bộ nhớ RAM nhỏ có dung lượng 64 byte ( hoặc 128 byte ) trong Chip với công nghệ CMOS (complementary metal oxide semiconductor) – dùng công nghệ CMOS cho phép tiêu thụ năng lượng ít nên dễ dàng dùng Pin Li-Ion để lưu trữ dữ liệu hàng năm mà không phải thay . CMOS Setup cung cấp những thông tin chi tiết liên quan đến hệ thống máy tính của bạn và có thể thay đổi được .
Điều khiển những ngắt là những đoạn chương trình nhỏ làm việc như là bộ phận chuyển đổi giữa phần cứng và hệ điều hành . Ví dụ khi bấm bàn phím , tín hiệu được gửi từ bộ phận điều khiển ngắt sẽ nói cho CPU cái gì đã được ấn và gửi tới hệ điều hành . Những Driver thiết bị là những những đoạn chương trình khác mà nhận dạng những phần cứng cơ bản như bàn phím , chuột , ổ cứng , ổ mềm . Khi đó BIOS luôn luôn chặn những tín hiệu tới và từ phần cứng , thông thường được Copy ( được Shadow ) vào RAM để cho hoạt động được nhanh hơn .
Interrupt
Quá trình Boot máy tính
Khi bật máy tính điều đầu tiên được nhìn thấy là phần mềm BIOS đang làm những công việc của nó . Đối với nhiều máy tính , BIOS hiển thị những đoạn Text để mô tả như : tổng dung lượng bộ nhớ được cài đặt , kiểu ổ cứng ...
http://tuvantinhoc1088.com/my_documents/my_pictures/Giainghia2/BIOS/SOYO-KT400-BIOS-Post.jpg
Sau quá trình này là thứ tự khởi động hệ thống , BIOS làm một loạt những công việc để máy tính của bạn sẵn sàng hoạt động . Phần này sẽ mô tả ngắn gọn một loạt những công việc của một máy tính thông thường
Sau khi kiểm tra CMOS Setup và tải những điều khiển ngắt , BIOS sẽ xác định xem Card màn hình có làm việc được hay không . Hầu hết những Card màn hình có BIOS riêng của chúng để thiết lập giá trị ban đầu cho bộ vi xử lí đồ hoạ và bộ nhớ dành riêng cho đồ hoạ . Nếu không thì có những thông tin Card màn hình thông thường trong những ROM khác trên Mainboard mà BIOS có thể tải .
Tiếp theo BIOS kiểm tra xem trạng thái Cold Boot hoắc Reboot . Nó làm bằng cách kiểm tra giá trị ô nhớ tại địa chỉ 0000:0472 . Nếu giá trị là 1234h ( h- hecxa ) có nghĩa là Reboot ( khởi động lại ) và BIOS bỏ qua bước kiểm tra POST , ngoài ra thì có nghĩa là Cold Boot ( khởi động bắt đầu quá trình bật nguồn ) .
Nếu là Cold Boot thì BIOS kiểm tra RAM bằng cách kiểm Đọc/Ghi tại mỗi địa chỉ ô nhớ . Nó kiểm tra cổng PS/2 hoặc cổng USB cho bàn phím và Mouse . Nó tìm kiếm Bus PCI (peripheral component interconnect ) nếu tìm ra một thiết bị PCI và kiểm tra những Card PCI .
Nếu BIOS tìm ra bất kì lỗi nào trogn quá trình POST , nó sẽ cảnh báo cho người sử dụng biết thông qua những tín hiệu Beep riêng hoặc hiển thị thong báo lỗi . Những lỗi xảy ra hầu hết do phần cứng có vấn đề .
BIOS hiển thị một vài chi tiết về hệ thống máy tính , thông thường như :
Bộ vi xử lí
Ổ mềm và ổ cứng .
Dung lượng bộ nhớ
Ngày sửa chữa BIOS
Màn hình .
Nếu có bất kì Những Driver đặc biệt như Card SCSI (small computer system interface) thì BIOS sẽ hiển thị những thông tin về Card SCSI trên màn hình . Tiếp theo BIOS sẽ tìm kiếm những thiết bị lưu trữ như ổ cứng như là một ổ khởi động trong CMOS Setup . Nó sẽ tìm kiếm ổ nào được khởi động trước , ổ đĩa nào khởi động tiếp theo nếu như ổ thứ nhất không khởi động cứ như vậy . Nếu không tìm thấy phần khởi động nó sẽ ra bảng thông báo
http://tuvantinhoc1088.com/my_documents/my_pictures/Giainghia2/BIOS/bios-screen1.jpg
Đối với những máy tính đời cũ khi không tìm thấy phần khởi động chương trình trong BIOS dùng Ngắt 18h ( Int 18h ) để khởi động ROM BASIC
Vùng dữ liệu của BIOS trong bộ nhớ
Khi quá trình khởi động kết thúc , trong bộ nhớ từ vị trí 00400:0000 với kích thước 255 byte là vùng dữ liệu BIOS
Làm thế nào để BIOS nhận ra Driver của các thiết bị cắm thêm vào
Mỗi một thiết bị vào có một dãy địa chỉ được định sẵn nên phần mềm trong BIOS trong quá trình kiểm tra hệ thống sẽ quét qua toàn bộ những nội dung trong các dùng địa chỉ dành riêng . Tại đâu nó tìm thấy ô nhớ có giá trị là 55 AA , theo ví dụ dưới đây
2B6F:0100 55 AA 10 EB 03 E9 2A 08-E9 7F 00 28 43 29 20 43 U.....*....(C) C
2B6F:0110 6F 70 79 72 69 67 68 74-20 31 39 38 34 20 57 65 opyright 1984 We
2B6F:0120 73 74 65 72 6E 20 44 69-67 69 74 61 6C 20 43 6F stern Digital Co
2B6F:0130 72 70 6F 72 61 74 69 6F-6E CF 02 25 02 08 2A FF rporation..%..*.
2B6F:0140 50 F6 19 04 64 02 04 65-02 65 02 0B 05 64 02 00 P...d..e.e...d..
2B6F:0150 00 00 00 00 64 02 02 80-00 80 00 0B 05 64 02 00 ....d........d..
2B6F:0160 00 00 00 00 64 02 04 65-02 80 00 0B 05 64 02 00 ....d..e.....d..
2B6F:0170 00 00 00 00 32 01 04 32-01 00 00 0B 05 32 01 00 ....2..2.....2..
nó đọc tiếp giá trị ô nhớ tiếp theo sau 55 AA là 10 nó sẽ dùng phép toán Checksum để kiểm tra 10h khối dữ liệu , mỗi khối là 512byte – theo ví dụ trên tổng cộng là 8KB ( tương đương với EPROM 2764 ) sẽ được kiểm tra Checksum . Nếu giá trị của Checksum có kết quả của 02 byte sau là 00 thì BIOS hiểu vùng đó chính là chứa Driver của thiết bị cắm thêm vào , ví dụ : giá trị là EA00h . Và chương trình Driver sẽ bắt đầu chứa mã lệnh từ EB trở đi , theo ví dụ trên .
Hay thì thank nha.Hiếu sẽ post nhiều bài cực "hot" luôn.
BIOS được viết tắt từ Basic Input – Output System , ngày nay BIOS được lưu trong bộ nhớ kiểu Flash .
http://tuvantinhoc1088.com/my_documents/my_pictures/Giainghia2/BIOS/bios-ch.jpg
Hầu hết mọi máy tính hiện nay BIOS được dùng trên những thiết bị khác như : ổ cứng CPU , Card màn hình ...
Mọi máy tính ngày nay đều có cấu hình chung bao gồm bộ vi xử lí như là một đơn vị xử lí trung tâm . Bộ vi xử lí là thiết bị phần cứng , để cho nó làm việc cần cho nó xử lí những lệnh gọi là phần mềm . Có 02 kiểu phần mềm bao gồm :
· Hệ điều hành : hệ điều hành cung cấp những dịch vụ cho những ứng dụng được chạy trên máy tính , nó cung cấp những quy tắc cơ bản giao diện với người sử dụng . ( Ví dụ : Windows 98, XP , Linux ...)
· Những chương trình ứng dụng . Chúng là những phần mềm được lập trình để thực hiện những nhiệm vụ nào đó . ( Ví dụ : Chương trình duyệt Web , nhận và gửi thư .... )
BIOS là kiểu thứ ba của phần mềm máy tính để cho những hoạt động được thành công .
BIOS làm những gì ?
Phần mềm BIOS của Mainboard có một số vai trò khác nhau , nhưng nhiệm vụ quan trong nhất của nó là tải hệ điều hành . Khi bạn bật máy tính và bộ vi xử lí cố gắng thực hiện những lệnh đầu tiên , nó sẽ nhận những lệnh này ở đâu đó . Nó không thể nhận được những lệnh này từ hệ điều hành bới vì hệ điều hành nằm trên ở cứng . Chính là BIOS cung cấp những lệnh này . BIOS cung cấp những lệnh thực hiện những việc chung như sau :
POST (power-on self-test - Tự kiểm tra khi bật nguồn ) cho tất cả những phần cứng khác nhau trong hệ thống và chắc chắn chúng làm việc được phù hợp .
Kích hoạt những BIOS của những Card khác nhau cài đặt trong máy tính ( Ví dụ : Card SCSI , Card đồ hoạ ... những Card này có Chip BIOS riêng ) .
Cung cấp những thủ tục mức thấp nhất mà hệ điều hành dùng để giao tiếp với những thiết bị phần cứng khác ( Những thủ tục này được lưu trong BIOS và có những cách sử dụng riêng biệt ) . Chúng quản lí những công việc như Keyboard , màn hình hiển thị , cổng nối tiếp , cổng song song ... trong khi máy tính bắt đầu khởi dộng .
Quản lí những thiết lập của ổ cứng , của đồng hồ ...
BIOS là phần mềm chuyên dụng để cung cấp những giao diện để kết nối những phần cứng chính với hệ điều hành . Nó thường được lưu trữ trong bộ nhớ Flash trên Mainboard , đối với những Mainboard trước kia được lưu trữ trong ROM .
http://tuvantinhoc1088.com/my_documents/my_pictures/Giainghia2/BIOS/ROM.jpg
Với loại ROM trên có thể Ghi/Xoá được . Để xoá nội dung trong đó thông thường dùng ánh sánh tia cực tím chiếu vào vùng có vòng tròn khoanh đỏ . Nội dung trong BIOS được ghi bằng thiết bị ghi ROM chuyên dụng . Ghi xong chúng ta phải bị chỗ có vòng tròn đỏ để tránh xảy ra hiện tượng mất dữ liệu .
Đối với những máy tính đời cũ nữa thì nội dung của BIOS được lưu vào trong 02 ROM một cho Odd và một cho Even với mục đích tăng tốc độ khi truy cập vào ROM . Ngày nay tốc độ của bộ nhớ Flash nhanh nên nội dung BIOS chỉ ghi vào trong một bộ nhớ Flash duy nhất . Đồng thờii khi bất máy tính những nội dung của BIOS sau khi kiểm tra một số bước cũng được tải thẳng vào bộ nhớ để việc truy cập được nhanh hơn .
Khi bật máy tính , BIOS thực hiện những lệnh bao gồm những công việc sau :
· Kiểm tra CMOS Setup cho những thiết lập cuỉa hệ thống .
· Tải những điều khiển ngắt và những Driver của thiết bị .
· Thiết lập những giá trị ban đầu cho những thanh ghi và quản lí nguồn cung cấp .
· Thực hiện POST
· Hiển thị những thiết lập hệ thống .
· Xác định những thiết bị nào tham gia quá trình khởi động .
· Thiết lập những thứ tự khởi động hệ thống .
Đầu tiên BIOS kiểm tra những thông tin được lưu trữ trong một bộ nhớ RAM nhỏ có dung lượng 64 byte ( hoặc 128 byte ) trong Chip với công nghệ CMOS (complementary metal oxide semiconductor) – dùng công nghệ CMOS cho phép tiêu thụ năng lượng ít nên dễ dàng dùng Pin Li-Ion để lưu trữ dữ liệu hàng năm mà không phải thay . CMOS Setup cung cấp những thông tin chi tiết liên quan đến hệ thống máy tính của bạn và có thể thay đổi được .
Điều khiển những ngắt là những đoạn chương trình nhỏ làm việc như là bộ phận chuyển đổi giữa phần cứng và hệ điều hành . Ví dụ khi bấm bàn phím , tín hiệu được gửi từ bộ phận điều khiển ngắt sẽ nói cho CPU cái gì đã được ấn và gửi tới hệ điều hành . Những Driver thiết bị là những những đoạn chương trình khác mà nhận dạng những phần cứng cơ bản như bàn phím , chuột , ổ cứng , ổ mềm . Khi đó BIOS luôn luôn chặn những tín hiệu tới và từ phần cứng , thông thường được Copy ( được Shadow ) vào RAM để cho hoạt động được nhanh hơn .
Interrupt
Quá trình Boot máy tính
Khi bật máy tính điều đầu tiên được nhìn thấy là phần mềm BIOS đang làm những công việc của nó . Đối với nhiều máy tính , BIOS hiển thị những đoạn Text để mô tả như : tổng dung lượng bộ nhớ được cài đặt , kiểu ổ cứng ...
http://tuvantinhoc1088.com/my_documents/my_pictures/Giainghia2/BIOS/SOYO-KT400-BIOS-Post.jpg
Sau quá trình này là thứ tự khởi động hệ thống , BIOS làm một loạt những công việc để máy tính của bạn sẵn sàng hoạt động . Phần này sẽ mô tả ngắn gọn một loạt những công việc của một máy tính thông thường
Sau khi kiểm tra CMOS Setup và tải những điều khiển ngắt , BIOS sẽ xác định xem Card màn hình có làm việc được hay không . Hầu hết những Card màn hình có BIOS riêng của chúng để thiết lập giá trị ban đầu cho bộ vi xử lí đồ hoạ và bộ nhớ dành riêng cho đồ hoạ . Nếu không thì có những thông tin Card màn hình thông thường trong những ROM khác trên Mainboard mà BIOS có thể tải .
Tiếp theo BIOS kiểm tra xem trạng thái Cold Boot hoắc Reboot . Nó làm bằng cách kiểm tra giá trị ô nhớ tại địa chỉ 0000:0472 . Nếu giá trị là 1234h ( h- hecxa ) có nghĩa là Reboot ( khởi động lại ) và BIOS bỏ qua bước kiểm tra POST , ngoài ra thì có nghĩa là Cold Boot ( khởi động bắt đầu quá trình bật nguồn ) .
Nếu là Cold Boot thì BIOS kiểm tra RAM bằng cách kiểm Đọc/Ghi tại mỗi địa chỉ ô nhớ . Nó kiểm tra cổng PS/2 hoặc cổng USB cho bàn phím và Mouse . Nó tìm kiếm Bus PCI (peripheral component interconnect ) nếu tìm ra một thiết bị PCI và kiểm tra những Card PCI .
Nếu BIOS tìm ra bất kì lỗi nào trogn quá trình POST , nó sẽ cảnh báo cho người sử dụng biết thông qua những tín hiệu Beep riêng hoặc hiển thị thong báo lỗi . Những lỗi xảy ra hầu hết do phần cứng có vấn đề .
BIOS hiển thị một vài chi tiết về hệ thống máy tính , thông thường như :
Bộ vi xử lí
Ổ mềm và ổ cứng .
Dung lượng bộ nhớ
Ngày sửa chữa BIOS
Màn hình .
Nếu có bất kì Những Driver đặc biệt như Card SCSI (small computer system interface) thì BIOS sẽ hiển thị những thông tin về Card SCSI trên màn hình . Tiếp theo BIOS sẽ tìm kiếm những thiết bị lưu trữ như ổ cứng như là một ổ khởi động trong CMOS Setup . Nó sẽ tìm kiếm ổ nào được khởi động trước , ổ đĩa nào khởi động tiếp theo nếu như ổ thứ nhất không khởi động cứ như vậy . Nếu không tìm thấy phần khởi động nó sẽ ra bảng thông báo
http://tuvantinhoc1088.com/my_documents/my_pictures/Giainghia2/BIOS/bios-screen1.jpg
Đối với những máy tính đời cũ khi không tìm thấy phần khởi động chương trình trong BIOS dùng Ngắt 18h ( Int 18h ) để khởi động ROM BASIC
Vùng dữ liệu của BIOS trong bộ nhớ
Khi quá trình khởi động kết thúc , trong bộ nhớ từ vị trí 00400:0000 với kích thước 255 byte là vùng dữ liệu BIOS
Làm thế nào để BIOS nhận ra Driver của các thiết bị cắm thêm vào
Mỗi một thiết bị vào có một dãy địa chỉ được định sẵn nên phần mềm trong BIOS trong quá trình kiểm tra hệ thống sẽ quét qua toàn bộ những nội dung trong các dùng địa chỉ dành riêng . Tại đâu nó tìm thấy ô nhớ có giá trị là 55 AA , theo ví dụ dưới đây
2B6F:0100 55 AA 10 EB 03 E9 2A 08-E9 7F 00 28 43 29 20 43 U.....*....(C) C
2B6F:0110 6F 70 79 72 69 67 68 74-20 31 39 38 34 20 57 65 opyright 1984 We
2B6F:0120 73 74 65 72 6E 20 44 69-67 69 74 61 6C 20 43 6F stern Digital Co
2B6F:0130 72 70 6F 72 61 74 69 6F-6E CF 02 25 02 08 2A FF rporation..%..*.
2B6F:0140 50 F6 19 04 64 02 04 65-02 65 02 0B 05 64 02 00 P...d..e.e...d..
2B6F:0150 00 00 00 00 64 02 02 80-00 80 00 0B 05 64 02 00 ....d........d..
2B6F:0160 00 00 00 00 64 02 04 65-02 80 00 0B 05 64 02 00 ....d..e.....d..
2B6F:0170 00 00 00 00 32 01 04 32-01 00 00 0B 05 32 01 00 ....2..2.....2..
nó đọc tiếp giá trị ô nhớ tiếp theo sau 55 AA là 10 nó sẽ dùng phép toán Checksum để kiểm tra 10h khối dữ liệu , mỗi khối là 512byte – theo ví dụ trên tổng cộng là 8KB ( tương đương với EPROM 2764 ) sẽ được kiểm tra Checksum . Nếu giá trị của Checksum có kết quả của 02 byte sau là 00 thì BIOS hiểu vùng đó chính là chứa Driver của thiết bị cắm thêm vào , ví dụ : giá trị là EA00h . Và chương trình Driver sẽ bắt đầu chứa mã lệnh từ EB trở đi , theo ví dụ trên .
Hay thì thank nha.Hiếu sẽ post nhiều bài cực "hot" luôn.