Thứ Sáu, 30 tháng 9, 2011

Bootstrap Loader

·        Đọc sector đầu tiên của đĩa cứng lưu vào b  
Mov             cx, 4
Mov             SI, 1BE h
Locate_active:
Mov             AL, masterboot[SI]
          Cmp             AL, 80h
          Je                Active
          Add              SI, 16
          Loop            Locate_active              
No_active:
          .........
Active:
          .........
Ví dụ 2: Để đọc nội dụng boot sector của đĩa cứng C ghi vào biến BootDat ta phải thực hiện lần lượt các bược sau đây:
·        Đọc sector đầu tiên của đĩa cứng lưu vào biến masterboot
·        Tìm partition active (phần tử trong bảng partition có offset 00 bằng 80h)
·        Đọc buye tại offset 01h và word tại offset 02 của phần tử partition tương ứng ở trên (head, sector và cylinde), để xác định số hiệu sector bắt đầu của partition active, đây chính là boot sector của đĩa cứng.
·        Đọc nội dung của sector xác định được ở trên lưu vào BootDat.
Active:
Mov             ax, 0201h                                           ; đọc 1 sector
Mov             cx, word PTR  mastorboot         [SI+2]        ; sector & cylinder
Mov             dh, byte PTR  mastorboot[SI+1]                   ; head
Mov             dl, 80h                                               ; đĩa cứng    
Mov             es,cs                                        ; trỏ ES:BX về
Lea              bx, BootDat                              ; đầu vùng BootDAt lưu
Int               13h
Nếu PC được khởi động bằng đĩa mềm (FDD) khởi động thì sau quá trình POST hệ thống sẽ nạp boot sector trên đĩa mềm vào bộ nhớ tại địa chỉ 0:7C00h sau đó quyền điều khiển được trao cho cho boot sector, để nó tiếp tục điều khiển quá trình khởi động. Nếu PC được khởi động bằng đĩa cứng khởi động (HDD/C:) thì sau quá trình POST hệ thống sẽ nạp sector phân khu của đĩa cứng vào bộ nhớ tại địa chỉ 0:7C00h, sau đó boot code trong sector phân khu thực hiện việc xác định partition active và nạp boot sector trên partition active vào bộ nhớ cũng tại địa chỉ 0:7C00h, sau đó quyền điều khiển được trao cho cho boot sector, để nó tiếp tục điều khiển quá trình khởi động tương tự như trong trường hợp đĩa mềm. Chính vì vậy sector phân khu thường được gọi là Master Boot Record, nó cũng được gọi là bảng partition. 

Quản lý file trên đĩa của MS_DOS

Trong quá trình định dạng một đĩa mềm, hoặc một đĩa logic trên các phân khu trên đĩa cứng, hệ điều hành chia không gian lưu trữ của đĩa thành 2 vùng: vùng dữ liệu (Data Area) và vùng hệ thống (System Area), đồng thời ghi những thông tin cần thiết vào vùng hệ thống để chuẩn bị cho việc quản lý lưu trữ sau này.
·                    Vùng dữ liệu: bao gồm các bolck có kích thước bằng nhau và được đánh địa chỉ (12 bít hoặc 16 bít) để phân biệt, đây chính là các cluster trên đĩa mà chúng ta đã nói đến ở trên. Nội dung của các tập tin cũng được chia thành các bolck có kích thước bằng kích thước của một cluster. Các cluster trên đĩa dùng để chứa nội dung của các tập tin trên đĩa. Các thông tin liên quan đến một tập tin trên đĩa được chứa ở vùng hệ thống.
·                    Vùng hệ thống: bao gồm các đoạn chương trình, các thông tin hệ thống, các thông tin liên quan đến các tập tin/thư mục trên đĩa mà hệ điều hành dùng để quản lý việc lưu trữ tập tin/thư mục trên đĩa sau này. Cụ thể nó bao gồm các thành phần sau đây: Boot sector, FAT1, FAT2 và Root Directory.
Sau đây chúng ta sẽ khảo sát các thành phần trong vùng hệ thống, để thấy được cách mà DOS quản lý các file và các thư mục được lưu trữ trên đĩa.












Ø    Boot sector: còn được gọi là boot record (bản ghi khởi động), dài 512 byte (1 sector) được đặt tại sector logic 0 trên đĩa mềm hay sector logic đầu tiên của partition (đĩa logic) trên ổ đĩa cứng. Tất cả các đĩa va mang trinhdo choi tinh ducam dao giaphau thuat tham my (FDD và đĩa logic trên đĩa cứng) sau khi được định dạng đều có boot record và đều chứa các thông tin liên quan về đĩa trong đó, nhưng chỉ có đĩa được định dạng là đĩa khởi động mới có chứa một đọan code Bootstrap Loader. Bootstrap Loader thực hiện việc nạp thành phần cốt lõi của DOS như io.sys, msdos.sys, command.com vào bộ nhớ RAM (chính xác hơn là chỉ nạp IO.SYS vào RAM sau đó IO.SYS sẽ tìm nạp các tập tin tiếp theo) trong quá trình khởi động máy tính. Chính vì vậy bootstrap loader còn được gọi là chương trình mồi  

Không có nhận xét nào:

Đăng nhận xét