Một số khái niệm căn bảnLà những đường tròn đồng tâm trên mặt đĩa dùng để lưu dữ liệu... Một số khái niệm căn bảnLà 1 phần nhỏ của track, là vùng vật lý chứa dữ liệu nhỏ nhất trong ổ
Trang 2GVHD & Sinh viên thực hiện
GVHD: Nguyễn Trần Thi Văn
Sinh viên thực hiện:
Nguyễn Phú Cường
Vũ Minh Hải Phan Đức Linh Nguyễn Kim Sơn
Đỗ Đăng Trường
Trang 43 Hàm getfat & getfatd
4 Hàm handler & harderr
Trang 5Nội dung chính
3 Demo
1 Format nhanh đĩa mềm
2 Ghi file lên đĩa A
3 Đọc file từ thư mục gốc đĩa A
Trang 61 Một số khái niệm căn bản
DISK
TRACK
SECTOR
SIDE
Trang 71 Một số khái niệm căn bản
Là những đường tròn đồng tâm trên mặt đĩa dùng để lưu dữ liệu
1 track có thể lưu được 100,000 bytes
dữ liệu hoặc hơn
Được đánh số từ ngoài vào trong theo
thứ tự 0 -> n
TRACK
Trang 81 Một số khái niệm căn bản
Là 1 phần nhỏ của track, là vùng vật lý
chứa dữ liệu nhỏ nhất trong ổ cứng
Trên mỗi loại đĩa khác nhau thì số lượng
sector được chia trên 1 track cũng khác
Trang 91 Một số khái niệm căn bản
Là đơn vị lưu trữ cơ bản được chỉ định
của đĩa từ
Bao gồm 1 hoặc nhiều sector nằm liền
nhau trên 1 track
Số lượng sector trên 1 cluster tùy vào hệ điều hành áp đặt cho từng loại đĩa có
dung lượng thích hợp
CLUSTER
Trang 101 Một số khái niệm căn bản
Không gian lưu trữ của đĩa được xác định
dựa trên những cluster, nghĩa là khi 1
file (hoặc một phần của file) chỉ chiếm
dụng một phần hoặc toàn bộ không gian
của cluster thì điều đó cũng được coi là
đã sử dụng một phần không gian của đĩa, tức là đã sử dụng hết 1 cluster
CLUSTER
Trang 111 Một số khái niệm căn bản
Gây lãng phí không gian trên đĩa, nhưng giúp hệ điều hành quản lý không gian đĩa tốt hơn
CLUSTER
Trang 121 Một số khái niệm căn bản
2 track đối xứng ở 2 mặt của đĩa gọi là
1 cylinder.
Đầu đọc đọc-ghi dữ liệu ở 2 track đối
xứng này trước khi chuyển tới track tiếp theo
Được đánh số thứ tự theo thứ tự của
track, nghĩa là những track 0 hợp thành cylinder 0.
CYLINDER
Trang 131 Một số khái niệm căn bản
Là 1 sector đặc biệt nằm ở đầu mỗi phân vùng ổ đĩa, nó chứa các thông tin hoạt
động của phân vùng tương ứng(độ lớn,
sector bắt đầu và kết thúc phân vùng, …)
và các chương trình cần hệ điều hành
nạp vào máy
BOOT SECTOR
Trang 141 Một số khái niệm căn bản
Boot sector nắm vai trò quan trọng trong quá trình khởi động máy, nên thường
được BIOS bảo vệ rất nghiêm ngặt
Là nơi dễ bị các loại boot-virus tấn công phá hoại ổ đĩa, bằng cách chỉnh sửa lại nội dung của sector này
BOOT SECTOR
Trang 151 Một số khái niệm căn bản
Với đĩa mềm thì boot sector luôn là sector đầu tiên của đĩa Những thông tin ở
sector đầu tiên này được gọi là Master
boot record – MBR
BOOT SECTOR
Trang 161 Một số khái niệm căn bản
Là bảng định vị các files trên đĩa, bảng
này liệt kê tuần tự số thứ tự của các
cluster dành cho file lưu trú trên đĩa
Mỗi đĩa có 2 bảng FAT giống hệt nhau FAT thứ nhất bắt đầu ngay sau Boot
Sector và chiếm dụng nhiều sector tiếp
theo, FAT thứ 2 để lưu đề phòng sự cố
nằm tiếp theo sau FAT thứ nhất.
FAT(File Allocation Table)
Trang 171 Một số khái niệm căn bản
Hiện tại có 3 loại FAT:
FAT 12 dành cho đĩa mềm hoặc đĩa cứng có dung lượng rất bé
FAT 16 dành cho đĩa cứng có dung lượng từ 1GB trở xuống
FAT 32 dành cho đĩa cứng có dung lượng từ vài GB trở lên
FAT(File Allocation Table)
Trang 181 Một số khái niệm căn bản
Độ dài của mối phần tử của FAT được
tính bằng số bit Độ dài này biểu thị khả năng chỉ thị số đếm của phần tử FAT
Với các đĩa mềm, số lượng các cluster là nhỏ nên chỉ cần 12 bit đủ để chỉ thị số đếm này vì vậy các đĩa mềm dùng FAT
12 bit
FAT(File Allocation Table)
Trang 192 Một số hàm đọc ghi đĩa
Absread() sử dụng lệnh ngắt 0x25 để đọc những sector đặc trưng của đĩa, nó sẽ bỏ qua những cấu trúc logic của đĩa và khi thực hiện nó không chú ý tới những File, FAT hoặc những thư mục…
ABSREAD
Trang 202 Một số hàm đọc ghi đĩa
Cú pháp:
int absread (int driver , int nsects , long lect , void * buffer );
Driver: số thứ tự của ổ đĩa cần đọc
Nsects: số lượng sector cần đọc
Lsect: sector bắt đầu
Buffer: địa chỉ nơi lưu các giá trị đọc được
ABSREAD
Trang 222 Một số hàm đọc ghi đĩa
Abswrite() là hàm ghi đặc trưng của
những cung từ đĩa,nó sẽ bỏ qua những
cấu trúc logic của môt đĩa và khi thực
hiện nó không chú ý tới những File, FAT (bảng phân bố tệp), hoặc những thư
mục…, nó sử dụng hệ điều hành DOS
gián đoạn 0x26 dùng để ghi những sector đặc trưng của đĩa
ABSWRITE
Trang 232 Một số hàm đọc ghi đĩa
Cú pháp:
int abswrite (int driver , int nsects , long lect , void * buffer) ;
Driver: số thứ tự của ổ đĩa cần ghi
Nsects: số lượng sector cần ghi
Lsect: sector bắt đầu
Buffer: địa chỉ nơi lưu các giá trị để ghi
ABSWRITE
Trang 242 Một số hàm đọc ghi đĩa
Công dụng:
Ghi dữ liệu từ vùng nhớ buffer vào nsects
sectors của đĩa, bắt đầu từ sector lect
Nếu thành công, trả về giá trị 0, ngược lại, trả về -1
ABSWRITE
Trang 252 Một số hàm đọc ghi đĩa
Cú pháp:
void getfat ( unsigned char drive, struct fatinfo *dtable);
Drive: đĩa mà hàm getfat lấy thông tin từ bảng FAT(0 = default, 1 = A, 2 = B, etc.).
Dtable: trỏ đến cấu trúc fatinfo để điền thông tin vào đó.
GETFAT & GETFATD
Trang 262 Một số hàm đọc ghi đĩa
Hàm GETFAT lấy thông tin bảng FAT từ một đĩa nào đó và điền thông tin vào cấu trúc fatinfo
GETFAT & GETFATD
Trang 283 Demo
Trang 29The End!