Giáo trình Kỹ thuật sửa chữa máy tính - Chương 2: Các hệ điều hành và quá trình khởi động máy PC

pdf 9 trang phuongnguyen 2930
Bạn đang xem tài liệu "Giáo trình Kỹ thuật sửa chữa máy tính - Chương 2: Các hệ điều hành và quá trình khởi động máy PC", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_ky_thuat_sua_chua_may_tinh_chuong_2_cac_he_dieu_h.pdf

Nội dung text: Giáo trình Kỹ thuật sửa chữa máy tính - Chương 2: Các hệ điều hành và quá trình khởi động máy PC

  1. 24 CHƯƠNG 2 : CÁC HỆ ĐIỀU HÀNH VÀ QUÁ TRÌNH KHỞI ĐỘNG MÁY PC Mục tiêu : Sau khi học xong, học sinh có khả năng - Phân biệt các hệ thống cấp bậc trong PC. - Liệt kê công dụng của các hệ điều hành thông dụng. - Nắm các chức năng của hệ điều hành MS-DOS hoặc Windows. - Vẽ chu trình khởi động máy. Yêu cầu : Nắm được nguyên lý hoạt động của máy tính Nội dung : - Hệ thống cấp bậc trong PC - Tìm hiểu các hệ điều hành thông dụng - Khảo sát hệ điều hành MS - DOS - Quá trình khởi động của máy Là kỹ thuật viên máy tính, điều quan trọng sống còn đối với bạn là hiểu được mối quan hệ giữa phần cứng và phần mềm của PC. Vào những ngày máy tính mới xuất hiện người ta chỉ chú ý đến phần cứng. Do bởi những phần mềm thửa ban đầu ấy chỉ được viết cho máy tính cụ thể thôi (như máy PDP của DEC hoặc IBM 7094 của IBM chẳng hạn) và các máy tính lúc ấy rất hạn chế về khả năng lưu trữ và xử lý, nên các phần mềm chỉ xuất hiện như một giải pháp sau cùng" (hiện nay, chúng ta vẫn thấy sự phát triển phần mềm bị tụt hậu so với phần cứng). Với sự ra đời của các máy tính cá nhân vào giữa những năm 1970, các nhà thiết kế máy nhận ra rằng cần có một sự lựa chọn rộng rãi về phần mềm để làm cho các máy PC hấp dẫn công chúng. Thay vì viết những phần mềm dành riêng cho các máy cụ thể, có lẽ cần có một môi trường đồng nhất hơn để quản lý các tài nguyên hệ thống và làm nền tảng để chạy các chương trình ứng dụng. Theo cách đó các ứng dụng phải có tính dễ trao đổi giữu các máy, nơi mà trước đó các tài nguyên phần cứng vốn không tương thích với nhau. Cái "môi trường ứng dụng đồng nhất" này trở thành cái gọi là Hệ điều hành (Operating System - OS). Khi IBM thiết kế máy PC, họ đã chọn cấp phép cho một hệ điều hành đơn giản, được phát triển từ một công ty mới ra đời Microsoft. Mặc dù chúng ta làm việc thường xuyên với phần cứng, nhưng phải nhận thức rằng hệ điều hành có ảnh hưởng sâu sắc lên các tài nguyên của PC, và lên cách thức cấp phát các tài nguyên đó cho mỗi ứng dụng phần mềm riêng lẻ. Điều này đặc biệt đúng đối với những hệ điều hành phức tạp hơn sau này, như Windows XP và Linux chẳng hạn. Mọi kỹ thuật viên "có nghề" đều cảm nhận sự thật rằng mọi trục trặc của hệ điều hành đều gây ra vấn đề với hiệu năng hoạt động của PC. Phần này giải thích mối quan hệ giữa phần cứng và phần mềm PC, minh hoạ một số đặc điểm chính trong các hệ điều hành tiêu biểu, và các bước của quá trình khởi động tiêu biểu của một máy PC. I. HỆ THỐNG CẤP BẬC TRONG PC Trước khi đi sâu vào hệ điều hành, chúng ta phải hiểu được mối quan hệ phức tạp (và thường khiến người ta rối trí) giữa phần cứng và phần mềm của PC. Mối quan hệ này được minh hoạ bởi hình sau : Bài giảng KTSC Máy tính H Hardware H.V.Hà H
  2. 25 Hình : Hệ thống cấp bậc trong một máy PC thông thường I.1. Phần cứng Phần cứng tạo nên cốt lõi của một máy PC, không có máy tính nào là không có phần cứng bao gồm các mạch điện tử, các ổ đĩa, các bo mạch mở rộng, các bộ nguồn, các thiết bị ngoại vi, những dây và cáp nối giữa chúng với nhau. Không chỉ bản thân PC, nó còn bao gồm cả monitor, bàn phím, thiết bị trot, máy in Bằng cách gởi những thông tin số hoá đến những cổng hoặc địa chỉ khác nhau trong bộ nhớ, nó có thể điều tác (điều động và tác động) lên hầu như mọi thứ có nối với CPU của máy. Đáng tiếc là, việc điều khiển phần cứng là một quá trình khó khăn, đòi hỏi phải có sự hiểu biết cặn kẽ về kiến trúc điện tử (và kỹ thuật số) của PC. Làm thế nào mà Microsoft có thể phát triển hệ điều hành mà hoạt động được trên máy AT dùng chip 286 cũng như máy đời mới dựa trên chip Pentium? Do bởi mỗi nhà chế tạo PC đều thiết kế hệ thống mạch điện điện tử trong máy của họ (đặc biệt là mạch điện của bo mạch chính) một cách khác biệt, nên hầu như không thể nào tạo ra một hệ điều hành "vạn năng" (dùng được cho mọi máy) mà không có một phương tiện giao tiếp (interface) nào đó giữa hệ điều hành chuẩn ấy và những phần cứng vô cùng đa dạng trên thi trường. Phương tiện giao tiếp này được thực hiện bởi BIOS (Basic Input/Output System) I. 2. BIOS Nói một cách đơn giản, BIOS là một tập hợp các đoản trình hay dịch vụ (service), theo cách gọi chính thức của các nhà lập trình, vốn được thiết kế để điều hành từng tiểu hệ thống (subsystem) phần cứng chính của PC (tức các tiểu hệ thống hiển thị hình, đĩa, bàn phím, v v ), có một tập hợp các lời gọi (call) chuẩn, ban đầu được IBM phát minh ra để gọi ra thực hiện các dịch vụ này của BIOS và "người" ban ra những lời gọi đó chính la hệ điều hành. Khi hệ điều hành yêu cầu một dịch vụ BIOS chuẩn, đoản trình BIOS cụ thể sẽ thực hiện chức năng (hay hàm function) thích hợp, vốn được chuẩn bị sẵn cho tiểu hệ thống phần cứng tương ứng. Như vậy, mỗi kiểu thiết kế PC cần phải có BIOS riêng của nó khi dùng phương pháp này, BIOS đóng vai trò như một "chất keo" cho phép các phần cứng khác nhau (và cũ kỹ) đều làm việc được với chỉ một hệ điều hành duy nhất. Ngoài các dịch vụ ra, BIOS còn chạy một chương trình tự kiểm tra (POST : Power On Self Test) mỗi lần máy được khởi động. Chương trình POST này kiểm tra các hệ thống chính của PC trước khi cố gắng nạp một hệ điều hành. Bởi vì BIOS là riêng cho từng kiểu thiết kế PC cụ thể, nên nó nằm trên bo mạch chính, dưới dạng một IC bộ nhớ chỉ đọc (ROM). Các máy đời mới hiện nay thì dùng những con ROM có thể ghi lại bằng điện được (gọi là "Flash" ROM), vốn cho phép BIOS được cập nhật mà không cần phải thay chip ROM BIOS. Vì lý do đó, chắc hẳn chúng ta đã thấy BIOS gọi là phần dẻo (Firmware) chứ không phải phần mềm (software). Sự hữu hiệu và chính xác của mã chương trình BIOS sẽ có một tác động sâu sắc lên hoạt động tổng thể của PC, các đoản trình càng tốt thì sẽ dẫn đến hiệu năng hệ thống càng tốt, còn các đoản trình BIOS không hiệu quả có thể dễ dàng làm sa lầy hệ thống. Các bug (lỗi phần mềm) trong BIOS có thể có những hậu quả nghiêm trọng sau đó đối với hệ thống (mất mát các tập tin và hệ thống bị treo chẳng hạn) Bài giảng KTSC Máy tính H.V.Hà
  3. 26 I.3. Hệ điều hành Hệ điều hành: thuật ngữ tiếng Anh gọi là “Operating System”. • Góc độ người dùng: ¾ Hệ điều hành là hệ thống các chương trình cho phép khai thác thuận tiện các tài nguyên của hệ thống tính toán (máy tính). ¾ Tài nguyên: CPU, bộ nhớ, thiết bị ngoại vi, chương trình. • Người lập trình: ¾ Hệ điều hành là môi trường cho phép người lập trình xây dựng các ứng dụng phục vụ các nhu cầu thực tiễn. Hệ điều hành phục vụ hai chức năng rất quan trong các máy PC hiện đại : • Hệ điều hành tương tác với và cung cấp một phần mở rộng cho BIOS. Phần mở rộng này cung cấp cho các ứng dụng một tuyển tập phong phú các Function điều khiển đĩa và xử lý các tập tin ở mức cao. Chính số lượng các hàm liên quan tới đĩa này đã khiến tên của hệ điều hành này có thêm thuật ngữ disk phía trước (disk operating system - DOS). Khi một chương trình ứng dụng cần thực hiện việc truy cập đĩa hoặc xử lý file, lớp Dos này sẽ thực thi hầu hết các công việc đó. Nhờ khả năng truy cập vào một thư viện các hàm thường dùng thông qua Dos, người ta có thể viết các chương trình ứng dụng mà không cần phải kết hợp phần mã lệnh dành cho những function phức tạp như vậy vào trong bản thân chương trình ứng dụng đó. Trong hoạt động thực tế, hệ điều hành và BIOS phối hợp nhau chặt chẽ để mang lại các ứng dụng khả năng truy cập dễ dàng vào các tài nguyên của hệ thống. • Hệ điều hành hình thành một môi trường (environment hoặc shell) để thông qua đó mà thi hành các ứng dụng được và cung cấp một giao diện người dùng (interface, tức một phương tiện để giao tiếp với người dùng), cho phép bạn và khách hàng của bạn tương tác với PC. Hệ điều hành MS-DOS dùng giao diện kiểu dòng lệnh, được điều khiển bởi bàn phím, với các dấu hiệu tiêu biểu là dấu nhắc đợi lệnh (command-line prompt, chẳng hạn c:>\_) mà những người dùng máy tính lâu năm hẳn đã quá quen thuộc. Ngược lại, các hệ điều hành thuộc họ windows lại được cung cấp một giao diện người dùng đồ hoạ (graphic user interface - GUI), trông cậy vào các ký hiệu và hình tượng vốn được người dùng chọn bằng con chuột hay các thiết bị điểm trỏ khác. I.4. Các chương trình ứng dụng Cuối cùng mục tiêu của máy tính là thi hành các chương trình ứng dụng (các chương trình xử lý từ chương, xử lý bảng tính, các trò chơi ). Hệ điều hành nạp và cho phép người dùng khởi chạy (các) ứng dụng họ cần. Nếu (các) ứng dụng ấy đòi hỏi tài nguyên hệ thống trong khi chạy, nó sẽ thực hiện một lời gọi dịch vụ thích hợp đến DOS hoặc BIOS; DOS và BIOS, đến lượt nó sẽ truy cập function cần thiết và gửi thông tin nào cần thiết về lại cho ứng dụng đang gọi. Những hoạt động thực tế của một cuộc trao đổi như vậy phức tạp hơn đã mô tả ở đây. Chúng ta đã có một cái nhìn khái quát về hệ thống cấp bậc trong một PC thông thường và đã hiểu được cách thức mà mỗi lớp đó tương tác với nhau. II. TÌM HIỂU ĐẶC ĐIỂM CÁC HỆ ĐIỀU HÀNH THÔNG DỤNG Có nhiều hệ điều hành khác nhau được viết cho các máy tính ngày nay. Phạm vi và độ phức tạp của các hệ điều hành này vô cùng đa dạng. Một số là những phần mềm hệ điều hành khổng lồ, phức tạp, đầy tính thương mại (như windows chẳng hạn), trong khi số khác lại chỉ là những gói phần mềm nhỏ, được phân phối tự do (như FreeBSD chẳng hạn). Có những hệ điều hành được thiết kế để có được những tính năng như hoạt động theo thời gian thực (real-time operation), đa nhiệm thực sự hoặc với hiệu năng cao (true or high-performance multitasking), hoặc có khả năng kết nối mạng (networking). Các hệ điều hành được chuyên biệt hoá thì thường được giới thiệu là yểm trợ các loại máy đặc biệt, chẳng hạn máy điều khiển qui trình sản xuất, máy chế tạo sản phẩm, hoặc những nhu cầu "nhiệm vụ tối quan trong" khác. Bài giảng KTSC Máy tính H.V.Hà
  4. 27 Với nhiệm vụ là một kỹ thuật viên, bạn phải hiểu được những tính năng, đặc điểm quan trọng của các hệ điều hành hiện nay và hiểu được tại sao hệ điều hành này được chọn chứ không phải hệ điều hành kia. Những mục dưới đây sẽ cho biết một số đặc điểm nổi bật của các hệ điều hành thương mại : III. KHẢO SÁT HỆ ĐIỀU HÀNH MS-DOS MS-DOS cung cấp những tài nguyên nhập/xuất cho các chương trình ứng dụng, cũng như môi trường để thi hành các chương trình hoặc tương tác với các hệ điều hành. Để thực hiện nhiệm vụ này, MS-DOS sử dụng 3 file : IO.SYS, MSDOS.SYS và COMMAND.COM. Chú ý tuy có nhiều file khác đi kèm với MS-DOS, nhưng về mặt kỹ thuật, chúng không phải là những thành phần của bản thân hệ điều hành này, mà chỉ là một thư viện các tiện ích nhằm giúp tối ưu hoá và bảo trì duy tu hệ thống thôi. Các mục nhỏ dưới đây sẽ khảo sát từng file một trong số 3 file cốt lõi của MS-DOS này một cách chi tiết hơn. Tuy nhiên xin nhớ rằng, việc nạp và chạy một hệ điều hành đúng đắn hay không còn phụ thuộc vào các tài nguyên xử lý, bộ nhớ và hệ thống đĩa thích đáng nữa. III.1. IO.SYS File IO.SYS cung cấp nhiều đoản trình (hoặc trình điều khiển thiết bị - Driver) cấp thấp, vốn tương tác với BIOS (đôi khi tương tác với phần cứng của máy luôn). Một số phiên bản IO.SYS được tuỳ biến (sửa lại theo ý riêng) của các nhà sản xuất thiết bị cơ bản để bổ sung cho BIOS cụ thể trên máy của họ. Tuy nhiên, chuyện tuỳ biến hệ điều hành như thế hiện nay cũng hiếm gặp, bởi vì nó dẫn đến sự bất tương thích của hệ thống. Ngoài các Driver cấp thấp ra, IO.SYS cong chứa một đoản trình khởi sự hệ thống. Toàn bộ nội dung của IO.SYS (ngoại trừ phần thủ tục khởi sự hệ thống) được chứa trong phần bộ nhớ dưới thấp (low memory) trong suốt quá trình hoạt động của hệ thống. IO.SYS là file được cấp cho thuộc tính hidden, cho nên sẽ không thấy nó khi rà duyệt một đĩa khởi động nào đó bằng một lệnh DIR bình thường. Tuy Microsoft đặt cho file này cái tên IO.SYS, nhưng các nhà chế tạo DOS khác có thể dùng một cái tên khác ví dụ tên file tương ứng với IO.SYS trong PC-DOS của IBM là IBMBIO.COM. Để một đĩa (đĩa mềm hoặc đĩa cứng) có thể khởi động được bên dưới MS-DOS 3.x hoặc 4.x, IO.SYS phải là file đầu tiên trong thư mục gốc của đĩa và nó phải chiếm ít nhất là cluster đầu tiên có thể dùng được trên đĩa (thường là cluster 2). (Vị trí này ghi rõ ở bootsetor của đĩa). Dĩ nhiên, các cluster sau đó chứa IO.SYS có thể nằm ở bất kỳ vị trí khác trong đĩa, giống như mọi file bình thường khác vậy. MS-DOS 5.x (và sau này) loại bỏ yêu cầu này và cho phép IO.SYS được đặt ở bất kỳ Bài giảng KTSC Máy tính H.V.Hà
  5. 28 trong thư mục gốc của ổ đĩa. Khi việc truy cập đĩa bắt đầu diễn ra trong quá trình boot máy, boot sector của ổ đĩa boot được đọc vào xử lý và nó nạp IO.SYS vào bộ nhớ rồi trao cho nó quyền điều khiển hệ thống. Sau khi IO.SYS chạy rồi, quá trình boot process có thể tiếp tục. Nếu các file này bị lạc hoặc mất sẽ thấy thông điệp báo lỗi boot nào đó hoặc có thể hệ thống bị khoá cứng luôn. III.2. MSDOS.SYS Đây là phần cốt lõi của các phiên bản MS-DOS cho đến v6.22, File MSDOS.SYS được liệt kê thứ nhì trong thư mục gốc của đĩa khởi động và là file thứ nhì được nạp trong quá trình boot. Nó chứa các đoản trình có chức năng xử lý đĩa hệ thống và truy cập file. Giống như IO.SYS, file MSDOS.SYS được nạp vào trong vùng bộ nhớ thấp, nơi nó thường trú trong suốt quá trình hoạt động của hệ thống. Nếu file này bị mất hoặc sai lạc sẽ xuất hiện thông điệp thông báo lỗi boot nào đó hoặc hệ thống có thể bị treo cứng luôn. III.3. Các biến thể của IO.SYS và MSDOS.SYS dưới Windows Với sự xuất hiện của Windows 95 các file hệ thống cổ điển của DOS đã được thiết kế lại để tổ chức quá trình boot tốt hơn. Windows 95 đặt tất cả các chức năng có trong IO.SYS và MSDOS.SYS vào trong một file ẩn duy nhất, tên là IO.SYS (file này có thể bị đổi thành WIN-BOOT.SYS nếu khởi động máy PC bằng một phiên bản hệ điều hành đời trước). Hầu hết các tuỳ chọn lúc trước được ấn định bằng các mục trong file CONFIG.SYS giờ đây được tích hợp luôn vào trong IO.SYS của Windows 95. IO.SYS qui định một số chọn lựa mặc định. Tuy nhiên vẫn có thể bi thay thế bởi các đề mục trong một file CONFIG.SYS, nhưng các giá trị này được liệt kê như sau : dos=high Các thành phần hệ thống của Dos được tự động nạp vào trong bộ nhớ cao himem.sys Trình quản lý bộ nhớ được nạp ifshlp.sys Tiện ích tăng cường cho hệ thống file được nạp setver.exe Tiện ích qui định phiên bản DOS được nạp Files=60 Số đề mục quản lý file được cấp phát lastdriver=z Chỉ định mẫu tự ổ đĩa cuối cùng có thể phân bổ buffers=30 Số ngăn đệm cache dùng trong truy cập file stacks=9,256 Số chồng ngăn xếp được được tạo ra Shell=command.com Ấn định trình xử lý lệnh cần dùng fcbs=4 Ấn định số lượng tối đa các khối kiểm soát file Điều chỉnh MSDOS.SYS bên dưới MS-DOS 7.x : về cơ bản windows 95 đã loại bỏ chức năng của file MSDOS.SYS củ, giờ đây chỉ là file dạng văn bản, vốn được dùng để điều chỉnh quá trình khởi động hệ thống. Bình thường thì rất ít lý do để truy cập file này. file thường có dạng sau : [pahts] WinDir=C:\WINDOWS WinBootDir=C:\WINDOWS HostWinBootDrv=C [options] BootMulti=1 BootGui=1 ; ; The following lines are required for compatibility with orther program. ; Do not remove them (MSDOS.SYS needs to be > 1024 bytes) ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc . Network=1 Có hai đoạn chính trong file MSDOS.SYS : đoạn path và đoạn Options + Đoạn Path : qui định các đường dẫn thư mục dẫn đến nơi chứa các file chính của windows. Bài giảng KTSC Máy tính H.V.Hà
  6. 29 + Đoạn [Options] cho phép ấn định nhiều thuộc tính có thể dùng được khi khởi động một máy trong trong Windows. WinDir= : Cho biết vị trí chứa các file chính của WINDOWS WinBootDir= : Cho biết vị trí các file khởi sự cần thiết HostWinBootDrv= : Cho biết vị trí thư mục gốc của ổ đĩa boot BootMulti= : Cho phép hay không cho phép boot từ nhiều hệ điều hành BootGui= : Cho phép hay không cho phép hiển thị menu khởi động của windows BootKeys= : Cho phép hay cho phép sử dụng các phím chọn lựa lúc khởi động BootWin= : Cho phép/không cho phép windows đóng vai trò hệ điều hành mặc định BootDelay=n : Cho phép ấn định khoảng thời gian trì hoãn khởi động hệ thống n giây (mặc định là 2 giây) III.4 COMMAND.COM File COMMAND.COM có chức năng tạo ra môi trường (shell) cho MS-DOS và là bộ xử lý (hay thông dịch) lệnh của nó. Đây chính là chương trình mà tương tác tại dấu nhắc đợi lệnh. COMMAND.COM là file thứ ba được nạp vào bộ nhớ khi máy khởi động và được chứa trong vùng bộ nhớ thấp, cùng với IO.SYS và MSDOS.SYS. Số lượng lệnh có thể dùng được tuỳ thuộc vào phiên bản MS-DOS đang dùng. Trong những hoạt động bình thuờng, MS-DOS sử dụng hai loại lệnh : thường trú (resident) và trạm trú (transient). Các lệnh thường trú (còn được gọi là lệnh nội trú - internal command) là những thủ tục vốn được mã hoá ngay bên trong COMMAND.COM, kết quả là các lệnh thường trú được thi hành hầu như ngay lập tức khi được gọi từ dòng lệnh. Các lệnh tạm tú (còn được gọi là lệnh ngoại trú - external command) thuộc nhóm lệnh lớn hơn và mạnh mẽ hơn, thế nhưng các lệnh ngoại trú không được nạp cùng với COMMAND.COM, thay vì vậy chúng xuất hiện dưới dạng những file tiện ích *.COM, *.EXE kích thước nhỏ trong thư mục DOS, các lệnh ngoại trú được nạp từ đĩa vào bộ nhớ rồi mới thi hành. III.5. Việc nhận ra và giải quyết những trục trặc của hệ điều hành. Bởi vì hệ điều hành là những phần không thể thiếu của hệ thống máy tính, nên mọi vấn đề trong việc sử dụng và nâng cấp hệ điều hành đều có thể ảnh hưởng xấu đối với hoạt động của hệ thống. Phần mềm không hỏng hóc như phần cứng, một khi phần mềm đã được nạp vào hệ thống và chạy, nó sẽ không bị hỏng hóc do do nhiệt hoặc sức ép về mặt vật lý. Nhưng đáng tiếc là phần mềm khó hoàn hảo được. Việc nâng cấp từ một hệ điều hành này lên một hệ điều hành khác có thể làm xáo trộn hoạt động của hệ thống và những lỗi (bug) nào đó trong hệ điều hành có thể khiến hoạt động của hệ thống không thể đoán trước được, có thể phá huỷ hoàn toàn tính tin cậy của hệ thống. Hầu như tất cả các phiên bản (version) của hệ điều hành đều có lỗi bên trong chúng, đặc biệt là các ấn bản (release) ban đầu. Trong hầu hết trường hợp, những lỗi như thế được tìm thấy trong các lệnh ngoại trú, vốn chạy từ dòng lệnh, chứ không phải trong ba file cốt lõi. Lỗi phần mềm cũng có thể biểu hiện như lỗi phần cứng tức là khi gặp lỗi phần cứng của máy có thể làm việc không đúng đắn hoặc từ chối trả lời. Lúc này hãy theo dõi các hãng chế tạo hệ điều hành để tìm các ấn bản và phần mềm sửa lỗi mới nhất của họ. Microsoft duy trì cả một Web site lớn để yểm trợ các hệ điều hành của họ. Chúng ta nên kiểm tra thường xuyên xem những báo cáo lỗi và phần nâng cấp nào mới hay không? Một vấn đề đáng quan tâm khác đối với các kỹ thuật viên là việc xử lý như thế nào đối với các phiên bản cũ của một hệ điều hành. Xin nhớ rằng, một phần công việc của hệ điều hành là quản lý các tài nguyên hệ thống (tức lượng chỗ trữ của đĩa, bộ nhớ ). IV. QUÁ TRÌNH KHỞI ĐỘNG MÁY Sự khởi động của máy tính là cả một quá trình chứ không phải chỉ là một sự kiên xảy ra trong chớp mất. Từ lúc điện năng được đưa vào cho đến khi hệ thống chạy không tải tại dấu nhắc đợi lệnh hoặc màn hình Desktop kiểu đồ hoạ, quá trình khởi động máy là cả một chuổi những bước có thể dự đoán được, vốn thực chất là thẩm tra lại hệ thống và chuẩn bị đưa nó vào hoạt động. Bằng cách hiểu Bài giảng KTSC Máy tính H.V.Hà
  7. 30 được từng bước trong quá trình khởi động hệ thống, các kỹ thuật viên có thể phát triển thành một sự đánh giá đúng đắn về mối tương quan giữa phần cứng và phần mềm. Chúng ta cũng có thể có nhiều cơ hội trong việc nhận diện và giải quyết trục trặc khi một máy không khởi động một cách đúng đắn. Mục này sẽ mang lại cho bạn một cái nhìn bao quát về từng bước một của quá trình khởi động máy PC thông thường IV.1. Đưa điện vào máy Quá trình khởi động máy PC bắt đầu khi mở máy. Nếu các điện thế ngõ ra của bộ nguồn đều hợp lệ, bộ nguồn sẽ phát ra một tín hiệu luận lý gọi là Power Good (PG). Có thể mất từ 100ms đến 500 ms bộ nguồn mới phát ra được một tín hiệu PG. Khi IC đếm thời gian của bo mach chính nhận được tín hiệu PG, nó sẽ thôi không gửi tín hiệu RESET đến CPU nữa. Khi đó CPU sẽ bắt đầu xử lý công việc. IV.2. Quá trình khởi động (bootstrap) Hoạt động mà CPU thực hiện trước hết là lấy lệnh (instruction) từ địa chỉ FFFF:0000h về. Bởi vì địa chỉ này hầu như nằm ngay ở chỗ cuối của vùng ROM có thể dùng được, nên lệnh ấy hầu như luôn luôn là một lệnh nhảy (jump : JMP), theo sau là các địa chỉ khởi đầu của BIOS ROM. Nhờ làm cho tất cả các CPUs đều phải bắt đầu từ cùng một điểm xuất phát như nhau nên sau đó ROM BIOS có thể gửi quyền điều khiển chương trình đến một chổ nào đó trong ROM cụ thể của máy( và mỗi ROM thường đều khác nhau). Việc truy tìm lúc đầu địa chỉ FFFF: 0000h này và sự định hướng lại sau đó của CPU theo truyền thống được gọi là sự tự khởi động(bootstrap), trong đó PC tự thân vận động, tức tự tìm đường để đi tiếp. Hiện nay, người ta đã rút ngắn thuật ngữ đó thành chỉ còn Boot thôi và đã mở rộng ý nghĩa của nó ra để gộp luôn toàn bộ quá trình khởi động máy IV.3. Những cuộc kiểm tra cốt lõi. Những cuộc kiểm tra cốt lõi này là một phần của toàn bộ chuổi tự kiểm tra lúc mở máy (Power-On-Seft-Test : POST), vốn là công cụ quan trọng nhất của BIOS trong quá trình khởi động hệ thống. Việc cho phép hệ thống khởi động và chạy với những sai sót nào đó trong bo mạch chính, bộ nhớ, hoặc các hệ thống đĩa có thể gây ra những hậu quả thảm khóc đối với các file trong bộ nhớ hoặc trên đĩa. Để đảm bảo rằng hệ thống toàn vẹn lúc khởi động, một bộ thủ tục (chương trình nhỏ) tự kiểm tra dành riêng cho phần cứng sẽ kiểm tra các thành phần chính yếu của bo mạch chính và nhận ra sự hiện diện của mọi chip BIOS chuyên dụng nào khác trong hệ thống (chẳng hạn BIOS của bộ điều khiển ổ đĩa, BIOS của mạch điều hợp màn hình, BIOS dành cho Bus SCSI ) BIOS bắt đầu bằng một cuộc kiểm tra phần cứng trên bo mạch chính, chẳng hạn như CPU, bộ đồng xử lý toán học, các IC đếm thời gian (timer), các chip điều khiển DMA (Direct Memory Access) và các chip điều khiển ngắt (IRQ). Nếu phát hiện được lỗi gì trong giai đoạn thử nghiệm lúc đầu này, sẽ có một chuổi mã bip (beep codes) được tạo ra. Nếu biết nhà sản xuất BIOS chúng ta sẽ dễ dàng xác định được bản chất của trục trặc đó. Kế đó, BIOS tìm xem có sự hiện diện của một ROM hiển thi hình ở các địa chỉ bộ nhớ từ C000:0000h đến C780:000h hay không. Hầu như trong các máy PC, cuộc truy tìm sẽ phát hiện ra một BIOS ROM hiển thị hình trên bo mạch điều hợp mở rộng hiển thị hình (tức card màn hình), được cắm vào một khe mở rộng được dùng. Nếu một BIOS hiển thị hình mở rộng được tìm thấy, thì nội dung của nó sẽ được đánh giá bằng một cuộc kiểm mã checksum. Nếu cuộc kiểm nghiệm đó thành công, quyền điều khiển sẽ được chuyển sang cho BIOS hiển thị ấy, BIOS này sẽ nạp và khởi động card hiển thị hình ấy. Khi việc khởi động này hoàn tất chúng ta sẽ thấy một con trỏ trên màn hình hiển thị, rồi quyền điều khiển trả lại cho BIOS hệ thống. Nếu không tìm ra được BIOS điều hợp mở rộng nào, thì BIOS hệ thống sẽ cung cấp một thủ tục khởi động cho mạch điều hợp hiển thị của bo mạch chính và rồi cũng có một con trỏ hiện ra. Sau khi hệ thống đã hiển thi xong, nhiều khả năng chúng ta sẽ thấy một ít hiện ra trên màn hình hiển thị, cho biết nhà chế tạo ROM BIOS của card mở rộng hoặc các mạch hiển thị trên bo mạch chính cùng với mã số phiên bản của nó. Nếu cuộc kiểm nghiệm Checksum thất bại chúng ta sẽ thấy một thông báo lỗi chẳng hạn như : C000P ROM Error hoặc Video ROM. Khi gặp lỗi như vậy thường thì quá trình khởi động sẽ troe máy. Bài giảng KTSC Máy tính H.V.Hà
  8. 31 Sau khi hệ thống đã hiển thị sẵn sàng. BIOS của hệ thống sẽ rà tìm trong bộ nhớ từ địa chỉ C800:0000h cho tới địa chỉ DF80:0000h, từng khoảng tăng 2KB một, để xem có thể có ROM nào khác trên các card điều hợp khác trong hệ thống hay không. Nếu những ROM nào khác được tìm thấy, thì nội dung của chúng sẽ được kiểm tra rồi chạy. Khi mỗi ROM bổ sung này được thi hành, chúng sẽ trình bày các thông tin về nhà sản xuất và mã nhận diện phiên bản. Trong một số trường hợp có thể một ROM (hoặc bo mạch mở rộng) bổ sung làm thay đổi luôn một Routine có sẵn của ROM BIOS của máy. Khi một ROM nào đó bị thất bại trong cuộc kiểm tra Checksum của nó, chúng ta sẽ thấy một thông báo lỗi, chẳng hạn như "XXXX ROM Error" XXXX cho biết địa chỉ phân đoạn (segnemt address) của nơi phát hiện ROM có lỗi. Nếu phát hiện một ROM có lỗi, thường thì việc khởi động của hệ thống cũng dừng lại luôn. IV.4. Quá trình POST Sau đó, BIOS kiểm tra ô nhớ ở địa chỉ 0000:0472h, địa chỉ này chứa cờ (flag, tức một số bits với một giá trị nào đó) xác định rằng sự khởi động này là một sự khởi động nguội (cold start tức dòng điện mới được đưa vào lần đầu tiên) hay một sự khởi động nóng (warm start, tức dùng nút Reset hoặc tổ hợp phím + + . Giá trị 1234h tại địa chỉ này sẽ biểu thị một warm start, trong trường hợp đó thủ tục POST sẽ được bỏ qua. Nếu tìm thấy một vị trí khác tại ô nhớ này thì BIOS coi như đây là một cold start và có thể là thủ tục POST đầy đủ sẽ được thi hành. Quá trình POST kiểm tra đầy đủ các bộ phận chức năng cao cấp khác trên bo mạch chính, bộ nhớ, bàn phím, mạch điều hợp hiển thị, ổ đĩa mềm, bộ đồng xử lý toán học, cổng song song, cổng tuần tự, ổ đĩa cứng và các tiểu hệ thống khác. Có rất nhiều cuộc kiểm tra trong quá trình POST thực hiện. Khi gặp phải một lỗi nào đó, sẽ có một mã POST một byte được ghi vào cổng I/O số 80h, nơi đó sẽ được đọc bởi một trình đọc mã POST (POST - Code reader). Trong những trường hợp khác có thể sẽ thấy một thông báo hiện lên màn hình (và hệ thống sẽ dừng lại). Chú ý : Các mã POST và ý nghĩa của chúng hơi khác nhau một chút đối với các nhà chế tạo BIOS khác nhau. Nếu quá trình POST thành công, hệ thống sẽ hồi đáp bằng một tiếng Beep ở loa. IV.5. Tìm kiếm hệ điều hành Bây giờ, hệ thống cần nạp hệ điều hành (thông thường là DOS hoặc Windows). Bước đầu tiên được tiến hành ở đây là BIOS tìm kiếm một Boot sector của Volume DOS trên ổ đĩa A:, nếu không có đĩa nào trong ổ đĩa ấy, sẽ thấy một đèn báo của ổ đĩa sẽ sáng lên một thoáng, tồi BIOS sẽ tìm sang đĩa kế tiếp theo thứ tự boot (thông thường là ổ đĩa C:). Nếu có đĩa trong ổ đĩa A:, BIOS sẽ nạp nội dung của sector 1 (head 0, cylinder 0) từ sector khởi động volume (volume boot sector - VBS) DOS của đĩa đó vào trong bộ nhớ, bắt đầu từ địa chỉ 0000:7C00h. Có thể xảy ra nhiều vấn đề khi cố gắng nạp VBS DOS đó. Bằng không thì chương trình đầu tiên trong thư mục gốc (tức IO.SYS) sẽ bắt đầu được nạp, kế đó đến MSDOS.SYS. + Nếu byte đầu tiên của VBS DÓ có giá trị nhỏ hơn 06h (hoặc nếu nó lớn hơn hoặc bằng 06h) sẽ thấy một thông báo lỗi có dạng như "Diskette boot record error". + Nếu IO.SYS và MSDOS.SYS không phải là hai files đầu tiên trong thư mục gốc (hoặc gặp phải vấn đề khác trong khi nạp chúng) sẽ xuất hiện thông báo lỗi, chẳng hạn như : "Non-system disk or disk error" + Nếu bootsector trên đĩa mềm ấy bị sai lạc và không thể đọc được sẽ xuất hiện thông báo lỗi "Disk boot failure" Nếu không nạp được hệ điều hành từ ổ đĩa mềm A; hệ thống sẽ truy tìm trên ổ đĩa cố định (thường là ổ cứng) đầu tiên. Các ổ đĩa cứng thì phức tạp hơn. BIOS nạp sector 1 (head 0, cylinder 0) từ bootsector của phân khu chủ (master partition) của ổ đĩa (gọi là master boot sector - MBS) vào trong bộ nhớ, bắt đầu tại địa chỉ 0000:7C00h, và hai byte cuối của sector đó sẽ được kiểm tra. Nếu hai byte cuối cùng của bootsector của master partition không phải lần lượt 55h và AAh, thì boot sector ấy không hợp lệ và hệ thống sẽ xuất hiện thông báo "No boot device available and system Bài giảng KTSC Máy tính H.V.Hà
  9. 32 initialization will halt". Các hệ thống khác nhau có thể "hiểu" lỗi này khác nhau, hoặc cố gắng nạp ROM BASIC. Nếu BIOS cố gắng nạp ROM BASIC mà trong BIOS lại không có tính năng nào như vậy cả, sẽ xuất hiện một thông báo lỗi "ROM BASIC error". Khi không nạp được boot sector của phân khu chủ sẽ xuất hiện thông báo lỗi "Error loading operating system" hoặc "Missing operating system". Trong cả hai trường hợp đó, việc khởi động hệ thống sẽ dừng ngay. Nếu boot setor bị sai lệnh sẽ xuất hiện thông báo "Disk boot failure" IV.6. Nạp hệ điều hành Nếu không có trục trặc nào được phát hiện ra trong VBS DOS của đĩa, thì IO.SYS (hoặc IBMBIO.COM) sẽ được nạp vào bộ nhớ và được thi hành. Nếu có hệ điều hành Windows được cài đặt trên máy thì IO.SYS có thể được đổi tên thành WINBOOT.SYS và như thế file này sẽ được thi hành chứ không phải IO.SYS. IO.SYS chứa những phần mở rộng thêm cho BIOS, vốn khởi động những trình điều khiển thiết bị cấp thấp như bàn phím, máy in, ). Ngoài ra IO.SYS còn chứa phần mã lỗi chương trình khởi động hệ thống, được dùng đến trong khi khởi động hệ thống. Phần mã khởi động này được chép vào chỗ trên cùng của vùng bộ nhớ qui ước và nó tiếp quản quyền điều khiển phần còn lại của quá trình khởi động. Bước tiếp theo là nạp MSDOS.SYS vào bộ nhớ. File này được nập lấn chồng lên phần IO.SYS có chứa đoạn mã khởi động. Sau đó, MSDOS.SYS (tức phần nhân của MSDOS) sẽ được thi hành để khởi động các trình điều khiển thiết bị cơ sở (base device driver), nhận tình trạng của hệ thống, tái lập lại (reset) hệ thống đĩa, khởi động các thiết bị (như máy in và các cổng tuần tự ). rồi thiết lập các thông số mặc định của hệ thống. Đến đây những phần thiết yếu nhất của MSDOS đã được nạp xong, và quyền điều khiển được trả lại cho phần mã chương trình khởi động của IO.SYS/WINBOOT.SYS trong bộ nhớ. IV.7 Thiết lập môi trường làm việc Đến đây, nếu có một file CONFIG.SYS hiện diện trong thư mục gốc của đĩa khởi động, thì nó sẽ được IO.SYS/WINBOOT.SYS mở ra và đọc. thứ tự thực hiện như sau : + Các câu lệnh DEVICE (nếu có) được xử lý trước, theo thứ tự mà chúng xuất hiện trong CONFIG.SYS; + Các câu lệnh INSTALL + Câu lệnh Shell nếu không có thì sẽ nạp COMMAND.COM. Khi COMMAND.COM được nạp vào bộ nhớ, nó sẽ đè lên phần mã chương trình khởi động còn sót lại từ IO.SYS (lúc này không còn nữa). Dưới WINDOWS thì COMMAND.COM chỉ được nạp nếu có một file AUTOEXEC.BAT hiện diện trên thư mục gốc của đĩa khởi động (để nó xử lý các câu lệnh của AUTOEXEC.BAT) + Tất cả các câu lệnh khác trong CONFIG.SYS sẽ được xử lý. Khi có mặt file AUTOEXEC.BAT, thì File COMMAND.COM sẽ được nạp vào bộ nhớ và thi hành file ấy. Sau khi việc xử lý tập tin lô này hoàn tất, dấu nhắc DOS sẽ xuất hiện. Trong WINDOWS thì IO.SYS\WINBOOT.SYS tự động nạp HIMEM.SYS, IFSHLP.SYS và SETVER.EXE, sau đó nạp phần nhân (kernel) của WINDOWS tức WIN.COM để chính thức khởi động Windows. Bài giảng KTSC Máy tính H.V.Hà