Máy Tính Khởi Động Như Thế Nào?
Mon Dec 10, 2012 12:51 pm
Máy Tính ngày nay đã trở thành một bộ phận không thể thiếu của con người hiện đại. Tuy Nhiên, ít có ai biết rằng nó sẽ hoạt động như thế nào, khởi động và làm việc ra sao. Bài viết hôm nay hi vọng sẽ mang lại cho các bạn một chút kiến thức về cơ chế hoạt động của chiếc máy tính thân thương.
Đầu tiên ta bắt đầu bật công tắc Power On để khởi động máy tính Bộ nguồn máy tính bắt đầu được cấp nguồn và thao tác đầu tiên của nó là bắt đầu thực thi bước đầu tiên trong giai đoạn POST (Power on self test),nó sẽ đi kiểm tra các giá trị điện thế logic ở ngõ ra đã thực sự ổn định chưa +5v, -5v,+12v,-12v, đúng chưa .Giai đoạn mà nó tự đi POST, nguồn này sẽ diễn ra rất nhanh, khoảng từ 0.5-2 giây.
Nếu trong quá trình kiểm tra có sự cố thì nó sẽ không cấp nguồn cho mainboard nữa và có thể treo máy luôn hoặc dùng tín hiệu âm thanh (Error Sound Code) để báo cho ta biết .Nếu như quá trình kiểm tra tốt không có chuyện gì thì lúc này nó sẽ gửi tín hiệu báo nguồn tốt PG (Power good signal),tín hiệu này sẽ kích vào một mạch định thời gian Timer Microcontroller trên main, cấp nguồn cho CPU và bắt đầu ở vào trạng thái sẵn sàng làm việc.
Sau khi được cấp nguồn, công việc đầu tiên CPU đi thực thi là nó sẽ tiến hành đi đọc ROM BIOS .Như vậy lúc này có thể nói Rom BIOS đóng vai trò là người dẫn đường đầu tiên cho CPU trong quá trình khởi động
Thực chất trong Rom BIOS sẽ mang một đoạn chương trình và yêu cầu CPU phải tiến hành thực thi đoạn chương trình này ở mỗi lần khởi động máy .Lúc này CPU sẽ lần lượt thực hiện các lệnh trong Rom BIOS theo từng bước sau:
Tiến hành kiểm tra các thiết bị cơ bản nhất trên hệ thống để xem tình trạng làm việc của các thiết bị này đã sẳn sàng chưa. Các thiết bị cơ bản này sẽ bao gồm :RAM, HDD, VGA, các bộ chipset và mainboard..Trong quá trình kiểm tra từng thiết bị, nếu tốt nó sẽ kiểm tra thiết bị kế tiếp, nhưng nếu gặp sự cố trong giai đọan này thì hoặc là máy sẽ treo luôn, không có hình ảnh âm thanh gì, hoặc là máy sẽ dùng tín hiệu báo lỗi âm thanh để thông báo cho ta biết .Lúc này chưa thể hiện hình được vì CPU chưa đọc Rom màn hình (Rom video ).
Khi kiểm tra RAM trong giai đoạn này thì thông thường ta sẽ gặp một số lỗi và tình trạng như sau : Nếu ta gắm RAM sai Bank thì máy sẽ không lên hình ảnh và không báo lỗi gì cả, nhưng nếu ta gắm RAM lõng chân hay RAM hư thì máy sẽ dùng tín hiệu âm thanh báo lỗi cho ta biết và thông thường mã âm thanh báo lỗi của RAM là nó sẽ bip từng tiếng ngắn và liên tục nhau . Khi kiểm tra đĩa cứng thì thông thường ta cũng sẽ gặp một số lỗi sau :Nếu ta gắn 1 đĩa cứng bị hư, gắn lỏng dây hoặc set Jumper đĩa cứng sai thì chẳng ảnh hưởng gì cả, máy vẫn làm việc bình thừong chỉ có ta không thể detect được đĩa cứng đó trong CMOS mà thôi và tất nhiên cũng chẳng thể vào Win đựơc.
Khi kiểm tra VGA :Nếu ta gắn VGA tốt, bình thường thì không có chuyện gì xảy ra cả, nhưng nếu ta gắn VGA bị hư hay chưa gắn thì lúc này máy sẽ phát tín hiệu báo lỗi và tín hiệu này sẽ là một tiếng bip kéo dài và 3 tiếng bip ngắn .Nhờ code báo lỗi của VGA ta có thể lợi dụng nó để xem mainboard hay CPU có hư hay không .Giả sử ta bật máy lên chẳng có âm thanh hình ảnh gì và ta nghi ngờ là có thể hư main hay CPU.
CPU tiếp tục đi đọc Rom màn hình và bắt đầu thông tin lên màn hình các thông tin đầu tiên mà nó sẽ thông báo cho ta biết là hãng sản xuất của card màn hình, model của card và dung lượng RAM màn hình của nó.Giai đoạn báo thông tin này đối với các máy đời cũ diễn ra khá chậm, nhưng đối với các máy ngày nay nó diễn ra rất nhanh đế nỗi có nhiều khi ta xem không kịp.
Tiếp theo, nó sẽ đi dò tìm trên hệ thống để xem ta có đang sử dụng một adapter card nào có gán Rom hay không, nếu không thì thôi nhưng nếu có thì nó sẽ đi đọc luôn thông tin trong Rom của các Adapter card đó .
Đọc và báo thông tin về CPU, main và Rom BIOS .Về CPU nó sẽ báo hãng sản xuất CPU, loại CPU và tần số làm việc của nó ;về main nó sẽ báo loại main, đời main và bộ chipset của main ;về Rom BIOS có thể nó sẽ báo hãng sản xuất, ngày sản xuất và version của nó .
Test RAM: Thông thường khi test RAM nó sẽ test RAM 3 lần và trong mỗi lần đó nó sẽ test đi test lại bộ nhớ qui ước 2 lần .
Đến 1 địa chỉ trên RAM để đọc 1 byte ở giá trị này xem hệ thống đang boot nóng (warm boot :boot bằng Ctrl-Alt-Del)hay boot lạnh (cold boot:Reset hay tắt máy ). Địa chỉ này là 0000:0472,nếu byte này có giá trị là 1234h thì hệ thống đang boot nóng, còn nếu là 1 giá trị khác thì hệ thống đang boot lạnh .
Nếu hệ thống đang boot lạnh thì khởi động lại nó phải thực thi từng bước giống như lúc đầu .Nhưng nếu hệ thống đang boot nóng thì khi boot lại nó sẽ bỏ qua các bước đã thực thi rồi ví dụ như đọc CPU, test RAM …để nhằm làm cho quá trình khởi động nhanh hơn .
CPU đi đọc CMOS : Đọc các thông tin đang được khai báo trong CMOS rồi so sánh với thực tế trên hệ thống, nếu đúng thì làm tiếp nhưng nếu thông tin đang khai báo trong CMOS bị sai thì có thể máy sẽ báo lỗi hoặc treo máy.
Như vậy thì CPU sẽ đi đọc CMOS ngay sau khi test RAM, nên thông thường nếu ta đang khởi động mà máy test RAM xong lại treo máy thì hầu hết 90 % nguyên nhân là do các thông số trong BIOS gây ra .Kiểm tra lại CMOS.
Đến mục thứ hai BIOS Features Setup trong CMOS đọc mục Boot Sequence để xem ta đang cho khởi động từ ổ đĩa nào :A:C hay C:A .Nếu biết được ổ đĩa đang được cho khởi động thì đi đọc ngay sector vật lý đầu tiên của ổ đĩa đó .Nếu ta đang cho boot A:C thì CPU sẽ đi đọc sector vật lý đầu tiên của đĩa A ;và đó chính là DBR của A ;nhưng nếu ta cho boot C:A thì nó sẽ đi đọc sector vật lý đầu tiên trên đĩa cứng và sector này chính là bảng Master partition table .Bây giờ giả sử ta đang cho boot A: C:,CPU sẽ đi đọc bảng partition chủ trên đĩa cứng.
Đọc bảng Partition của đĩa cứng -Đầu tiên nó sẽ đụng 446 bytes của đoạn chương trình ngắn và sẽ thực thi 3 lệnh trong đoạn chương trình ngắn này .
Kiểm tra 64 bytes của bảng thông số vật lý của partition bên dưới rồi so sánh với thực tế trên đĩa xem có đúng không .Nếu đúng thì làm tiếp nhưng nếu sai thì hoặc là treo máy, hoặc là sẽ báo một trong các câu thông báo lỗi sau :Invalid partition table, Error loading operating system, Missing operating system.
Kiểm tra xem ta đang chia làm bao nhiêu partition và partition nào đang được set active .Còn nếu trong quá trình kiểm tra nó không thấy partition nào được set active thì có thể ta sẽ nhận được thông báo P:ress any key to reboot, No Rom Basic, system halt ….
Nếu đã xác định được partition nào đang được set active rồi thì đi đọc sector logic đầu tiên của partition hay ổ đĩa logic đó hay nói cách khác lúc này CPU sẽ đi đọc MBR (Master Boot Record) của ổ đĩa này bởi vì theo qui định của Dos, sector logic đầu tiên của một ổ đĩa lúc nào cũng phải là MBR.
Khi đọc MBR, vì bảng thông số nội bộ của DBR lại nằm tr6en nên đầu tiên nó sẽ đọc 3 bytes nhảy trứoc EB 3C 90 hay EB 58 90 để nhảy qua bảng thông số nội bộ, đến và bắt đầu thực thi 2 lệnh của đạng chương trình mồi MBR.
Kiểm tra 59 bytes hay 87 bytes của bảng thông số nội bộ MBR bên trên rồi so sánh với thực tế nội bộ trên ổ đĩa đó xem có đúng không .Nếu đúng thì làm tiếp nhưng nếu sai thì hệ thống sẽ treo máy và không cho phép ta khởi động được nữa, có thể lúc này ta gặp một con trỏ nhấp nháy trên màn hình.
Đến các cluster đầu tiên trên đĩa, thông thường đối với Diskedit là cluster 2 để tải Io.sys lên RAM .Nếu không tìm thấy Io.sys ở vị trí này ta sẽ nhận được một câu thông báo :Non system Disk or Disk error .Replace and press any key ….Nhưng nếu tải được Io.sys lên RAM rồi thì ta có thể xem như quá trình khởi động đã thành công vì lúc này Ron BIOS trả quyền điều khiển lại cho hệ điều hành .
Có một số lưu ý về Io.sys :Io.sys chính là 1 phần của hệ điều hành và nó phải có vị trí xác định, nó phải nằm ngay các cluster đầu tiên và không bao giờ thay đổi tr6en đĩa .Nếu mất Io.sys đi, vì đặc điểm này nên ta không thể dùng lệnh copy bình thường để copy lại nó mà ta phải dùng Sys để tạo hay Disktool –make a disk bootable .Như vậy Sys hay Disktool cũng là một tập tin dùng để copy nhưng nó copy Io.sys vào đúng ngay vị trí của nó, ngoài ra nó còn tạo cho ta cả đoạn chương trình mồi của MBR.
Nguồn: sưu tầm
Đầu tiên ta bắt đầu bật công tắc Power On để khởi động máy tính Bộ nguồn máy tính bắt đầu được cấp nguồn và thao tác đầu tiên của nó là bắt đầu thực thi bước đầu tiên trong giai đoạn POST (Power on self test),nó sẽ đi kiểm tra các giá trị điện thế logic ở ngõ ra đã thực sự ổn định chưa +5v, -5v,+12v,-12v, đúng chưa .Giai đoạn mà nó tự đi POST, nguồn này sẽ diễn ra rất nhanh, khoảng từ 0.5-2 giây.
Nếu trong quá trình kiểm tra có sự cố thì nó sẽ không cấp nguồn cho mainboard nữa và có thể treo máy luôn hoặc dùng tín hiệu âm thanh (Error Sound Code) để báo cho ta biết .Nếu như quá trình kiểm tra tốt không có chuyện gì thì lúc này nó sẽ gửi tín hiệu báo nguồn tốt PG (Power good signal),tín hiệu này sẽ kích vào một mạch định thời gian Timer Microcontroller trên main, cấp nguồn cho CPU và bắt đầu ở vào trạng thái sẵn sàng làm việc.
Sau khi được cấp nguồn, công việc đầu tiên CPU đi thực thi là nó sẽ tiến hành đi đọc ROM BIOS .Như vậy lúc này có thể nói Rom BIOS đóng vai trò là người dẫn đường đầu tiên cho CPU trong quá trình khởi động
Thực chất trong Rom BIOS sẽ mang một đoạn chương trình và yêu cầu CPU phải tiến hành thực thi đoạn chương trình này ở mỗi lần khởi động máy .Lúc này CPU sẽ lần lượt thực hiện các lệnh trong Rom BIOS theo từng bước sau:
Tiến hành kiểm tra các thiết bị cơ bản nhất trên hệ thống để xem tình trạng làm việc của các thiết bị này đã sẳn sàng chưa. Các thiết bị cơ bản này sẽ bao gồm :RAM, HDD, VGA, các bộ chipset và mainboard..Trong quá trình kiểm tra từng thiết bị, nếu tốt nó sẽ kiểm tra thiết bị kế tiếp, nhưng nếu gặp sự cố trong giai đọan này thì hoặc là máy sẽ treo luôn, không có hình ảnh âm thanh gì, hoặc là máy sẽ dùng tín hiệu báo lỗi âm thanh để thông báo cho ta biết .Lúc này chưa thể hiện hình được vì CPU chưa đọc Rom màn hình (Rom video ).
Khi kiểm tra RAM trong giai đoạn này thì thông thường ta sẽ gặp một số lỗi và tình trạng như sau : Nếu ta gắm RAM sai Bank thì máy sẽ không lên hình ảnh và không báo lỗi gì cả, nhưng nếu ta gắm RAM lõng chân hay RAM hư thì máy sẽ dùng tín hiệu âm thanh báo lỗi cho ta biết và thông thường mã âm thanh báo lỗi của RAM là nó sẽ bip từng tiếng ngắn và liên tục nhau . Khi kiểm tra đĩa cứng thì thông thường ta cũng sẽ gặp một số lỗi sau :Nếu ta gắn 1 đĩa cứng bị hư, gắn lỏng dây hoặc set Jumper đĩa cứng sai thì chẳng ảnh hưởng gì cả, máy vẫn làm việc bình thừong chỉ có ta không thể detect được đĩa cứng đó trong CMOS mà thôi và tất nhiên cũng chẳng thể vào Win đựơc.
Khi kiểm tra VGA :Nếu ta gắn VGA tốt, bình thường thì không có chuyện gì xảy ra cả, nhưng nếu ta gắn VGA bị hư hay chưa gắn thì lúc này máy sẽ phát tín hiệu báo lỗi và tín hiệu này sẽ là một tiếng bip kéo dài và 3 tiếng bip ngắn .Nhờ code báo lỗi của VGA ta có thể lợi dụng nó để xem mainboard hay CPU có hư hay không .Giả sử ta bật máy lên chẳng có âm thanh hình ảnh gì và ta nghi ngờ là có thể hư main hay CPU.
CPU tiếp tục đi đọc Rom màn hình và bắt đầu thông tin lên màn hình các thông tin đầu tiên mà nó sẽ thông báo cho ta biết là hãng sản xuất của card màn hình, model của card và dung lượng RAM màn hình của nó.Giai đoạn báo thông tin này đối với các máy đời cũ diễn ra khá chậm, nhưng đối với các máy ngày nay nó diễn ra rất nhanh đế nỗi có nhiều khi ta xem không kịp.
Tiếp theo, nó sẽ đi dò tìm trên hệ thống để xem ta có đang sử dụng một adapter card nào có gán Rom hay không, nếu không thì thôi nhưng nếu có thì nó sẽ đi đọc luôn thông tin trong Rom của các Adapter card đó .
Đọc và báo thông tin về CPU, main và Rom BIOS .Về CPU nó sẽ báo hãng sản xuất CPU, loại CPU và tần số làm việc của nó ;về main nó sẽ báo loại main, đời main và bộ chipset của main ;về Rom BIOS có thể nó sẽ báo hãng sản xuất, ngày sản xuất và version của nó .
Test RAM: Thông thường khi test RAM nó sẽ test RAM 3 lần và trong mỗi lần đó nó sẽ test đi test lại bộ nhớ qui ước 2 lần .
Đến 1 địa chỉ trên RAM để đọc 1 byte ở giá trị này xem hệ thống đang boot nóng (warm boot :boot bằng Ctrl-Alt-Del)hay boot lạnh (cold boot:Reset hay tắt máy ). Địa chỉ này là 0000:0472,nếu byte này có giá trị là 1234h thì hệ thống đang boot nóng, còn nếu là 1 giá trị khác thì hệ thống đang boot lạnh .
Nếu hệ thống đang boot lạnh thì khởi động lại nó phải thực thi từng bước giống như lúc đầu .Nhưng nếu hệ thống đang boot nóng thì khi boot lại nó sẽ bỏ qua các bước đã thực thi rồi ví dụ như đọc CPU, test RAM …để nhằm làm cho quá trình khởi động nhanh hơn .
CPU đi đọc CMOS : Đọc các thông tin đang được khai báo trong CMOS rồi so sánh với thực tế trên hệ thống, nếu đúng thì làm tiếp nhưng nếu thông tin đang khai báo trong CMOS bị sai thì có thể máy sẽ báo lỗi hoặc treo máy.
Như vậy thì CPU sẽ đi đọc CMOS ngay sau khi test RAM, nên thông thường nếu ta đang khởi động mà máy test RAM xong lại treo máy thì hầu hết 90 % nguyên nhân là do các thông số trong BIOS gây ra .Kiểm tra lại CMOS.
Đến mục thứ hai BIOS Features Setup trong CMOS đọc mục Boot Sequence để xem ta đang cho khởi động từ ổ đĩa nào :A:C hay C:A .Nếu biết được ổ đĩa đang được cho khởi động thì đi đọc ngay sector vật lý đầu tiên của ổ đĩa đó .Nếu ta đang cho boot A:C thì CPU sẽ đi đọc sector vật lý đầu tiên của đĩa A ;và đó chính là DBR của A ;nhưng nếu ta cho boot C:A thì nó sẽ đi đọc sector vật lý đầu tiên trên đĩa cứng và sector này chính là bảng Master partition table .Bây giờ giả sử ta đang cho boot A: C:,CPU sẽ đi đọc bảng partition chủ trên đĩa cứng.
Đọc bảng Partition của đĩa cứng -Đầu tiên nó sẽ đụng 446 bytes của đoạn chương trình ngắn và sẽ thực thi 3 lệnh trong đoạn chương trình ngắn này .
Kiểm tra 64 bytes của bảng thông số vật lý của partition bên dưới rồi so sánh với thực tế trên đĩa xem có đúng không .Nếu đúng thì làm tiếp nhưng nếu sai thì hoặc là treo máy, hoặc là sẽ báo một trong các câu thông báo lỗi sau :Invalid partition table, Error loading operating system, Missing operating system.
Kiểm tra xem ta đang chia làm bao nhiêu partition và partition nào đang được set active .Còn nếu trong quá trình kiểm tra nó không thấy partition nào được set active thì có thể ta sẽ nhận được thông báo P:ress any key to reboot, No Rom Basic, system halt ….
Nếu đã xác định được partition nào đang được set active rồi thì đi đọc sector logic đầu tiên của partition hay ổ đĩa logic đó hay nói cách khác lúc này CPU sẽ đi đọc MBR (Master Boot Record) của ổ đĩa này bởi vì theo qui định của Dos, sector logic đầu tiên của một ổ đĩa lúc nào cũng phải là MBR.
Khi đọc MBR, vì bảng thông số nội bộ của DBR lại nằm tr6en nên đầu tiên nó sẽ đọc 3 bytes nhảy trứoc EB 3C 90 hay EB 58 90 để nhảy qua bảng thông số nội bộ, đến và bắt đầu thực thi 2 lệnh của đạng chương trình mồi MBR.
Kiểm tra 59 bytes hay 87 bytes của bảng thông số nội bộ MBR bên trên rồi so sánh với thực tế nội bộ trên ổ đĩa đó xem có đúng không .Nếu đúng thì làm tiếp nhưng nếu sai thì hệ thống sẽ treo máy và không cho phép ta khởi động được nữa, có thể lúc này ta gặp một con trỏ nhấp nháy trên màn hình.
Đến các cluster đầu tiên trên đĩa, thông thường đối với Diskedit là cluster 2 để tải Io.sys lên RAM .Nếu không tìm thấy Io.sys ở vị trí này ta sẽ nhận được một câu thông báo :Non system Disk or Disk error .Replace and press any key ….Nhưng nếu tải được Io.sys lên RAM rồi thì ta có thể xem như quá trình khởi động đã thành công vì lúc này Ron BIOS trả quyền điều khiển lại cho hệ điều hành .
Có một số lưu ý về Io.sys :Io.sys chính là 1 phần của hệ điều hành và nó phải có vị trí xác định, nó phải nằm ngay các cluster đầu tiên và không bao giờ thay đổi tr6en đĩa .Nếu mất Io.sys đi, vì đặc điểm này nên ta không thể dùng lệnh copy bình thường để copy lại nó mà ta phải dùng Sys để tạo hay Disktool –make a disk bootable .Như vậy Sys hay Disktool cũng là một tập tin dùng để copy nhưng nó copy Io.sys vào đúng ngay vị trí của nó, ngoài ra nó còn tạo cho ta cả đoạn chương trình mồi của MBR.
Nguồn: sưu tầm
- Quản GiaAdmin
- Tổng số bài gửi : 86
Được Cảm Ơn : 17
Join date : 04/11/2012
Re: Máy Tính Khởi Động Như Thế Nào?
Mon Dec 10, 2012 5:01 pm
Giớ mới biết, hehe
Permissions in this forum:
Bạn không có quyền trả lời bài viết