Bối cảnh và lý do thực hiện đề tài Đồ án các môn học chính của Khoa Công nghệ thông tin nói chung và môn họcNguyên lý hệ điều hành các Máy tính điện tử nói riêng nhằm tạo điều kiện cơ bả
CƠ SỞ LÝ THUYẾT
Tìm hiểu cấu tạo phần cứng và cấu trúc logic của Đĩa cứng
1.1.1 Cấu tạo vật lý của Đĩa cứng Ổ đĩa cứng là thiết bị lưu trữ có thể đọc ghi dữ liệu nhanh chóng bằng một tập hợp các phân tử từ hóa trên các đĩa quay. Ổ đĩa cứng gồm các thành phần, bộ phận như sau:
Hình 1: Cấu trúc ổ đĩa cứng.
Ổ cứng bao gồm các đĩa từ (platter) làm bằng nhôm hoặc thủy tinh, phủ lớp vật liệu từ tính lưu trữ dữ liệu, trục quay và động cơ Mỗi đĩa có thể sử dụng một hoặc hai mặt, số lượng đĩa tùy thuộc dung lượng và công nghệ sản xuất.
Đĩa cứng chứa nhiều đĩa từ, mỗi đĩa có hai mặt sử dụng được và hoạt động đồng tốc, cùng quay quanh một trục.
Hình 2: Cấu tạo đĩa từ.
Track trên ổ đĩa cứng là các vòng tròn đồng tâm trên bề mặt đĩa từ, tương tự rãnh đĩa nhạc nhưng không có gờ phân cách Số lượng track mỗi đĩa từ dao động từ 312 đến 2048 và vị trí của chúng có thể thay đổi sau định dạng cấp thấp.
Track trên đĩa cứng được chia thành các sector, là đơn vị dữ liệu nhỏ nhất Mỗi sector chuẩn chứa 512 byte, nhưng dung lượng thực tế của mỗi sector có thể thay đổi tùy thuộc vị trí track: các track ngoài có sector lớn hơn track trong.
Cylinder trên ổ cứng là tập hợp các track cùng bán kính trên các mặt đĩa khác nhau Khi một đầu đọc/ghi hoạt động trên một track cụ thể, toàn bộ các track tương ứng trên các mặt đĩa khác tạo thành một cylinder Một ổ cứng có nhiều cylinder tương ứng với số lượng track trên mỗi mặt đĩa.
Hình 3: Cấu trúc đĩa từ. b Trục quay
Truyền chuyển động của đĩa từ.
Trục quay, kết nối trực tiếp với động cơ, truyền chuyển động quay đến các đĩa từ trong ổ cứng.
Trục quay, chế tạo từ vật liệu nhẹ như hợp kim nhôm, đòi hỏi độ chính xác tuyệt đối để đảm bảo trọng tâm không bị lệch.
Sai lệch nhỏ trong hoạt động của ổ cứng, đặc biệt ở tốc độ cao, gây rung lắc và dẫn đến đọc/ghi dữ liệu không chính xác Động cơ bước, gắn đồng trục với trục quay và đĩa, điều khiển bằng tín hiệu điện tử, khác biệt với động cơ điện thông thường.
Động cơ đồng bộ bước biến đổi tín hiệu điều khiển (xung điện rời rạc) thành chuyển động góc quay của rôto, định vị chính xác rôto ở các vị trí mong muốn.
1.1.1.2 Cụm đầu đọc a Đầu đọc (Head)
Ổ cứng sử dụng đầu đọc riêng biệt trên mỗi mặt đĩa để đọc/ghi dữ liệu Đầu đọc, cấu tạo đơn giản từ lõi ferit và cuộn dây, ngày càng nhỏ gọn nhờ công nghệ sắp xếp hạt từ vuông góc với bề mặt đĩa, cho phép mật độ lưu trữ cao hơn.
Đầu đọc trong đĩa cứng (Hình 5) đọc và ghi dữ liệu bằng cách từ hóa bề mặt đĩa.
Số đầu đọc bằng số mặt hoạt động của ổ cứng, tối đa là hai lần số đĩa, nhưng có thể ít hơn nếu không sử dụng hết tất cả các mặt.
Dung lượng đĩa cứng = số head*số cylinder*số sector/track*số mặt*512byte. b Cần di chuyển đầu đọc (head arm hoặc actuator arm):
Đầu đọc/ghi cần di chuyển song song với đĩa từ, giữ khoảng cách nhất định và định vị chính xác trên toàn bộ bề mặt đĩa, từ mép ngoài đến trục quay.
Đầu đọc được gắn đồng trục, đảm bảo hoạt động đọc/ghi dữ liệu đồng thời trên mọi bề mặt đĩa, ở cùng một vị trí tương ứng.
Sự di chuyển cần có thể được thực hiện theo hai phương thức:
-Sử dụng động cơ bước để truyền chuyển động.
-Sử dụng cuộn cảm để di chuyển cân bằng lực từ.
1.1.1.3 Cụm mạch điện a Mạch điều khiển:
Tìm hiểu hệ thống File của hệ điều hành Windows
1.2.1 Khái niệm Để hệ thống máy tính tiện dụng, hệ điều hành cung cấp một tầm nhìn luận lý không đổi của việc lưu trữ thông tin Hệ điều hành định nghĩa một đơn vị lưu trữ thông tin là tập tin (File) File được ánh xạ bởi hệ điều hành trên các thiết bị vật lý Các thiết bị lưu trữ được dùng thường ổn định vì thế nội dung của File không bị mất khi mất điện hay khởi động lại hệ thống.
Tập tin máy tính có thể là văn bản, định dạng cố định hoặc bất kỳ dạng dữ liệu nào khác, về bản chất là chuỗi bit, byte, dòng hoặc mẫu tin.
… được định nghĩa bởi người tạo ra nó Do đó khái niệm tập tin là cực kỳ tổng quát.
Tập tin lưu trữ nhiều loại thông tin khác nhau do người tạo định nghĩa, bao gồm chương trình nguồn, chương trình đối tượng, chương trình thực thi, dữ liệu số, văn bản, mẫu tin, hình ảnh, và âm thanh.
Mỗi loại tập tin có cấu trúc riêng: tập tin văn bản là chuỗi ký tự theo dòng; tập tin nguồn là chuỗi thủ tục/hàm theo khai báo; tập tin đối tượng là chuỗi byte theo khối, hiểu được bởi bộ liên kết.
Mỗi tập tin có một số thuộc tính mà đối mỗi hệ điều hành thì các thuộc tính này rất khác nhau, nhưng điển hình chúng bao gồm:
-Tên (name): tên tập tin là thông tin được lưu ở dạng mà người dùng có thể đọc.
-Định danh (identifier): là thẻ duy nhất, thường là số, xác định tập tin trong hệ thống tập tin Nó là tên mà người dùng không thể đọc.
-Kiểu (type): thông tin này được yêu cầu cho hệ thống hỗ trọ các kiểu khác nhau.
-Vị trí (location): thông tin này là một con trỏ chỉ tới một thiết bị và tới vị trí tập tin trên thiết bị đó.
-Kích thước (size): kích thước hiện hành của tập tin (tính bằng byte, word hay khối) và kích thước cho phép tối đa chứa trong thuộc tính này.
Thời gian, ngày tạo/sửa đổi và định danh người dùng được lưu trữ để quản lý phiên bản, tăng cường bảo mật và kiểm soát truy cập tập tin.
Tập tin là kiểu dữ liệu trừu tượng, được định nghĩa bởi các thao tác có thể thực hiện trên đó Hệ điều hành cung cấp các lời gọi hệ thống hỗ trợ các thao tác này.
Tạo file gồm hai bước: tìm không gian trống trong hệ thống file và tạo mục nhập cho file mới trong thư mục.
Trước khi truy cập dữ liệu, hệ thống cần mở tập tin để thiết lập các thuộc tính và địa chỉ bộ nhớ, tối ưu hóa tốc độ truy xuất.
-Đóng: khi chấm dứt truy xuất, thuộc tính và địa chỉ trên đĩa không còn dùng nữa, tập tin được đóng lại để giải phóng vùng nhớ.
Việc ghi tập tin yêu cầu gọi hệ thống, chỉ định tên tập tin và dữ liệu cần ghi Hệ thống xác định vị trí tập tin dựa trên tên, quản lý con trỏ ghi để xác định vị trí viết tiếp theo và cập nhật con trỏ sau mỗi thao tác ghi.
-Chèn cuối: giống thao tác ghi nhưng dữ liệu luôn được ghi vào cuối tập tin.
Hệ thống đọc dữ liệu từ tập tin bằng cách xác định tên và vị trí bộ nhớ của khối dữ liệu tiếp theo Con trỏ tập tin theo dõi vị trí đọc hiện tại, đảm bảo thao tác đọc tiếp diễn chính xác.
Để xóa file, tìm thư mục chứa file cần xóa, giải phóng không gian lưu trữ và xóa file khỏi thư mục.
-Tìm: thư mục được tìm mục từ tương ứng và vị trí con trỏ hiện hành được đặt tới giá trị được cho.
-Lấy thuộc tính: lấy thuộc tính tập tin cho quá trình.
-Đổi tên: thay đổi tên tập tin đã tồn tại.
Thiết kế hệ thống tập tin cần xem xét khả năng hỗ trợ các kiểu tập tin của hệ điều hành Hệ điều hành nhận biết kiểu tập tin sẽ cho phép thao tác phù hợp với từng loại.
Tên tập tin thường gồm hai phần: tên và phần mở rộng (phân cách bởi dấu chấm), kỹ thuật phổ biến để xác định loại tập tin là sử dụng phần mở rộng này.
Các hệ điều hành thường hỗ trợ các kiểu tập tin sau:
-Tập tin thường: là tập tin văn bản hay tập tin nhị phân chứa thông tin của người sử dụng.
-Tập tin có ký tự đặc biệt: liên quan đến nhập/xuất thông qua các thiết bị nhập/xuất tuần tự như màn hình, máy in,…
-Tập tin khối: dùng để truy xuất trên thiết bị đĩa.
Cấu trúc tập tin ảnh hưởng đến khả năng hiển thị nội dung và tương thích với hệ điều hành Hệ điều hành hỗ trợ các cấu trúc tập tin cụ thể, cho phép thực hiện các thao tác đặc biệt trên chúng.
Các hệ điều hành thường hỗ trợ ba cấu trúc tập tin thông dụng là:
-Không có cấu trúc: tập tin là một dãy tuần tự các byte.
-Có cấu trúc: tập tin là một dãy các mẫu tin có kích thước cố định.
Cấu trúc dữ liệu dạng cây lưu trữ các mẫu tin không cần thiết cùng chiều dài, mỗi mẫu tin có trường khóa để tăng tốc tìm kiếm.
1.2.6 Hệ thống file trong Windows:
Hệ thống FAT32
FAT32, ra mắt trong Windows 95 Service Pack 2, là phiên bản mở rộng của FAT16, tận dụng không gian đĩa cứng hiệu quả hơn nhờ khả năng hỗ trợ nhiều cluster và phân vùng lên đến 2TB, cùng tên tập tin tối đa 255 ký tự Tuy nhiên, FAT32 có nhược điểm về bảo mật và khả năng chịu lỗi.
Boot sector, nằm ở đầu mỗi phân vùng đĩa, chứa thông tin cấu hình đĩa, kích thước và hệ điều hành, cùng mã lệnh khởi động Vì là mục tiêu của virus, nhiều BIOS hiện đại tích hợp bảo vệ boot sector, yêu cầu BIOS xác nhận trước khi cho phép bất kỳ ứng dụng nào sửa đổi Người dùng có thể bật/tắt tính năng này trong BIOS Setup.
Ví dụ về nội dung của một Boot Sector:
Hình 13: Nội dung một boot sector.
Máy tính dùng boot sector để chạy những chỉ dẫn trong suốt quá trình khởi động. Quá trình đó được tóm tắt như sau:
-BIOS và CPU sẽ nạp power-on self test (POST).
-BIOS sẽ tìm một boot device.
-BIOS nập physical sector đầu tiên của boot device vào bộ nhớ và chuyển quyền điều khiển cho sector này.
When the boot device is a HDD, the BIOS loads the Master Boot Record (MBR) The MBR code then loads the boot sector of the active partition, transferring control to it In Windows 2000, the boot sector's executable code locates and loads NTLDR into memory, passing execution to that file.
BIOS nạp boot sector của floppy disk vào bộ nhớ Nếu là đĩa khởi động định dạng DOS, boot sector thực thi mã lệnh, chuyển quyền điều khiển cho file hệ thống lo.sys của MS-DOS.
-Sau khi nạp OS vào memory, lúc này OS sẽ điều khiển hệ thống.
FAT1 và FAT2 là các bảng phân bổ tập tin, cung cấp thông tin chỉ mục cho phép hệ điều hành truy xuất tập tin chính xác, xác định dung lượng trống và các sector bị lỗi (bad sector) trên đĩa.
Bảng FAT ánh xạ tất cả các cluster trên ổ đĩa, nhưng chỉ chứa thông tin vị trí, không lưu trữ dữ liệu thực tế.
Bảng thư mục gốc (root directory) tương tự mục lục sách, chứa thông tin về tập tin và thư mục như tên, thời gian tạo, và thuộc tính.
Nơi lưu trữ thông tin thực sự của các file hoặc các thư mục con.
MBR là mảng dữ liệu chứa thông tin phân vùng ổ cứng, được hệ điều hành tạo ra với cách thức riêng biệt Ví dụ, WinNT4 và Win2k sử dụng file boot.ini Quá trình khởi động máy, bootloader sẽ tham khảo boot.ini để tải hệ điều hành.
Windows 98 và Windows ME khác với các phiên bản sau này vì chúng thiếu trình quản lý khởi động như NT bootloader Hệ điều hành sẽ tự động được tải từ phân vùng đầu tiên trên ổ cứng, thường là phân vùng C.
BIOS tìm đến MBR, nằm ở phân vùng đầu tiên của ổ cứng thứ tự thấp nhất (thường là ổ 0), để khởi động máy MBR đóng vai trò quan trọng trong quá trình khởi động hệ thống.
MBR chứa chương trình khởi động và bảng phân vùng (partition table) Bảng phân vùng cung cấp thông tin về số lượng, vị trí và kích thước của các ổ cứng (primary partition).
Hệ thống NTFS
NTFS (New Technology File System), ra đời cuối những năm 1990, là hệ thống tập tin mới của Microsoft, khắc phục điểm yếu của hệ thống FAT trong MS-DOS và Windows 3.x, đảm bảo độ tin cậy cao cho Windows NT và trở thành nền tảng cốt lõi của hệ điều hành này.
NTFS, hệ thống tập tin chính của Windows, đã liên tục được cải tiến từ Windows NT đến Windows Server 2003, đáp ứng nhu cầu về dung lượng lưu trữ lớn và bảo mật ngày càng cao.
1.4.2 Cấu trúc phân vùng NTFS
Định dạng NTFS tạo bảng boot sector gồm 16 sector đầu tiên của ổ đĩa, chứa thông tin khởi động và mã lệnh thực thi.
Vị trí Độ dài Tên
0x24 48 bytes Dành cho phần mở rộng
0x54 426 bytes Chứa lệnh thực thi
0x01FE 2 bytes Tín hiệu kết thúc
Trên NTFS, dữ liệu được sắp xếp tuần tự từ BPB Khác với các hệ thống khác, MFT trên NTFS không nằm ở sector cố định, cho phép hệ thống di chuyển MFT nếu sector chứa nó bị hư hỏng Ntdlr được kích hoạt trong quá trình khởi động.
Định dạng ổ đĩa NTFS trên Windows tạo ra MFT, một cơ sở dữ liệu quan hệ lưu trữ thông tin về các file và thuộc tính của chúng, bao gồm cả bản ghi về chính MFT.
MFT lưu trữ thông tin đòi hỏi truy cập dữ liệu từ phân vùng NTFS.
Hệ thống NTFS sử dụng Master File Table (MFT) – một file đặc biệt chứa bản ghi của mỗi file MFT có 16 bản ghi đầu tiên dành cho thông tin hệ thống, gồm bản ghi chính và bản sao Boot sector lưu vị trí các segment dữ liệu của MFT và bản sao, đảm bảo khả năng phục hồi dữ liệu nếu bản ghi đầu tiên bị lỗi Bản sao của boot sector cũng được lưu trữ ở giữa đĩa.
Bản ghi thứ ba của MFT (Log File) đóng vai trò quan trọng trong khôi phục dữ liệu Từ bản ghi thứ 17 trở đi, mỗi file và thư mục trên đĩa đều được ghi nhận.
MFT (Master File Table) xác định vùng trống cho mỗi bản ghi file, lưu trữ các thuộc tính file trong vùng trống đó Files dung lượng nhỏ hoặc thư mục được quản lý tương tự.
1500 bytes hoặc nhỏ hơn), như là những file được minh họa trong bảng số liệu trên, có thể được chứa toàn bộ trong bản ghi MFT.
Thư mục trong MFT lưu trữ thông tin chỉ mục thay vì dữ liệu Các thư mục nhỏ nằm trong cấu trúc MFT, thư mục lớn được tổ chức thành cây nhị phân, nhưng một số bản ghi có thể nằm ngoài MFT.
Hệ thống tệp NTFS dành 16 record đầu tiên của bảng phân bố tệp chính (MFT) – khoảng 16KB – để lưu trữ siêu dữ liệu mô tả chính MFT Siêu dữ liệu này gồm các tập tin hệ thống có tên bắt đầu bằng dấu đô la ($), và các record còn lại chứa thông tin về các tệp và thư mục trên ổ đĩa.
System File File Name MFT Record Purpose of the File
Bảng Master File Table ($MFT) với chỉ mục 0 lưu trữ thông tin về các file và thư mục cơ bản trên ổ đĩa NTFS Bản sao $MFTMirr (chỉ mục 1) đảm bảo khả năng truy cập dữ liệu MFT khi gặp sự cố.
Log file $LogFile 2 Chứa đựng những thông tin của NTFS cho quá trình khôi phục nhanh hơn.
Volume $Volume 3 Chứng đựng những thông tin nói về ổ đĩa như nhãn đĩa,…
$AttrDef 4 Danh sách những thuộc tính, những con số,…
Cluster bitmap $Bitmap 6 Mô tả ổ đĩa bằng hình ảnh mà không dùng tới Cluster.
Boot sector $Boot 7 Bao gồm BPB sử dụng để lắp đặt ổ đĩa và thêm vào lệnh thực thi.
Bad cluster file $BadClus 8 Chứa đựng những Cluster hỏng của ổ đĩa.
Security file $Secure 9 Chứa đựng những mô tả về bảo mật. Upcase table $Upcase 10 Chuyển đổi sang chữ hoa trong
$Extend 11 Dùng để sử dụng nâng cấp sau này.
Lưu trữ thông tin, những thứ không chứa trong Master File Table.
Hệ thống sao lưu dữ liệu tự động giúp phục hồi thông tin quan trọng, đảm bảo an toàn dữ liệu khi file hệ thống gặp sự cố.
So sánh giữa hệ thống FAT32 và NTFS
Bảng so sánh tính năng của NTFS, FAT32, FAT16
Tính năng NTFS FAT32 FAT16
DOS, mọi phiên bản của Win Giới hạn
Kích thước tối đa của phân vùng 2 TB 2 TB 2 GB
Số tập tin tối đa trên một phân vùng
Không giới hạn Không giới hạn ~65.000
Kích thước tối đa trên một phân vùng
Giới hạn bởi kích thước phân vùng 4 GB 2 GB
Số Cluster tối đa Không giới hạn 268.435.456 65.535
Chiều dài tối đa của tên tập tin 255 255
Hỗ trợ Unicode Có Có Có
Systemrecord Mirror Tập tin ảnh MFT Bảng FAT thứ hai Bảng FAT thứ hai
Vị trí Boot sector Đầu và cuối Chuẩn Chuẩn
Thuộc tính của file Chuẩn hoặc tự thiết lập Chuẩn Chuẩn
Khả năng nén Có Không Không
Tính bảo mật Có Không Không
Khả năng phục hồi Có Không Không
Tận dụng không gian đĩa Cao Thấp Thấp
Khả năng chịu lỗi Cao Thấp Thấp
NTFS vượt trội hơn FAT32 với các tính năng hiện đại, hỗ trợ dung lượng lớn hơn và bảo mật tốt hơn, là lựa chọn tối ưu để thay thế FAT32.
FAT32 thiếu các tính năng bảo mật của NTFS như phân quyền và mã hóa, gây bất lợi cho người dùng Windows NTFS tích hợp sẵn các tính năng này, loại bỏ nhu cầu sử dụng phần mềm bên ngoài tiềm ẩn rủi ro.
NTFS vượt trội hơn FAT32 về khả năng phục hồi và chịu lỗi, cho phép xác định nhanh chóng các file bị lỗi mà không cần quét toàn bộ hệ thống, đảm bảo quá trình phục hồi dữ liệu nhanh chóng và tin cậy FAT32 thiếu hẳn ưu điểm này.
Windows 98, 2000, XP sử dụng FAT32 cần quét đĩa khi khởi động lại sau mất điện đột ngột, trong khi NTFS không cần vì tự động kiểm tra và phục hồi lỗi NTFS ưu việt hơn với khả năng bảo vệ dữ liệu và công cụ sửa chữa đĩa tốt hơn, giúp hệ thống Windows ổn định hơn khi cài trên phân vùng NTFS.
NTFS hỗ trợ truy cập và xử lý file nén hiệu quả như file chưa nén, giúp tiết kiệm dung lượng lưu trữ và kéo dài tuổi thọ ổ cứng.
Hệ điều hành DOS, Windows 98 và ME lỗi thời không hỗ trợ NTFS, gây khó khăn khi truy cập ổ cứng định dạng này Việc sử dụng các hệ điều hành hiện đại hơn được khuyến nghị.
NTFS hỗ trợ quota người dùng, giải pháp hữu ích cho doanh nghiệp, đặc biệt trong việc quản lý và hạn chế truy cập dữ liệu nhạy cảm, ví dụ như ngăn chặn con cái sao chép nội dung độc hại vào máy tính.
NTFS cung cấp nhiều tính năng nâng cao cho người dùng chuyên nghiệp, bao gồm khả năng gắn kết phân vùng (mount partition), tạo liên kết cứng (hard link) cho file và hỗ trợ RAID.
NTFS vượt trội hơn FAT32 nên bạn có thể chuyển đổi hoàn toàn sang NTFS Nhiều phần mềm hỗ trợ chuyển đổi, trong đó tiện lợi nhất là các công cụ có sẵn trong Hiren's BootCD.
FAT32 vẫn hữu ích trên máy tính cấu hình thấp, chỉ chạy được Windows 98 Thẻ nhớ thường dùng định dạng FAT16 và FAT32 vì sự tương thích rộng rãi, đặc biệt với máy ảnh và máy nghe nhạc FAT16 lý tưởng khi sao chép dữ liệu giữa Windows và hệ điều hành khác như macOS, vì khả năng tương thích tốt hơn FAT32 trên các máy Macintosh.
THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH
Phân tích yêu cầu
Chương trình hiển thị thông tin chi tiết ổ đĩa: tên, serial number, trạng thái, định dạng, dung lượng, dung lượng trống, kích thước sector và cluster.
Phân tích các chức năng
Ta sẽ xây dựng chương trình thực hiện các chức năng sau:
-Đọc thông tin các logical partitions (phân vùng logic) của ổ cứng và hiển thị lên màn hình thông qua giao diện Thông tin của partitions logical bao gồm:
volumeName : Tên phân vùng logic (logical partition).
filesystemName : Tên định dạng (NTFS,FAT32,…).
numberOfFreeClusters : Số Clusters chưa sử dụng (dung lượng còn trống của phân vùng logic).
totalNumberOfClusters : Tổng số Clusters (Dung lượng phân vùng logic).
volumeSerialNumber : Số hiệu phân vùng logical.
type : Kiểu của phân vùng logical.
-Đọc thông tin của HardDisk (ổ đĩa cứng) và hiển thị lên màn hình thông qua giao diện Thông tin của HardDisk bao gồm:
vendorId : Tên nhà sản xuất HardDisk.
productId : Mã sản phẩm HardDisk.
bytePerSector : Số Bytes/Sector (thông thường là 512 bytes).
cylinders : Số Cylinders có trong HardDisk.
Xây dựng các chức năng
Ta xây dựng class DiskInfo để thực hiện các chức năng đã đề cập ở trên.
Ta sẽ xây dựng cấu trúc LogicalPartitionInfo chứa các giá trị thông tin của Logical Partition và cấu trúc HardiskInfo chứa các giá trị thông tin của HardDisk.
Tiếp theo định nghĩa 2 danh sách để lưu kết quả đọc được: typedef vector ListLogicalPartitionInfo; typedef vector ListHardiskInfo;
Sau đó ta xây dựng các hàm thực hiện việc đọc và in thông tin Logical Partition và HardDisk:
-ListAllLogicalPartitions() : In thông tin tất cả các Logical Partition.
-ListAllHardisks() : In thông tin tất cả các HardDisk.
-ReadHardisksInfo() : Đọc thông tin tất cả các HardDisk.
-ReadLogicalPartitionsInfo(): Đọc thông tin tất cả các Partition Logical.
-getString () : Lấy thông tin về dưới dạng String từ bộ nhớ đệm. -DestroyAll() : Giải phóng bộ nhớ sau khi dùng. struct LogicalPartitionInfo
{ string rootPathName, volumeName, fileSystemName; unsigned long sectorsPerCluster, numberOfFreeClusters, totalNumberOfClusters; unsigned long volumeSerialNumber; long long size; int type;
{ string vendorId, productId, serialNumber; unsigned long bytePerSector, sectorsPerTrack, tracksPerCylinder; long long diskSize, cylinders; int driverType;
Hàm này sử dụng API của Windows để đọc thông tin từng ổ cứng và thêm vào danh sách kết quả.
-Hàm CreateFile(): tạo hoặc mở một file hay thiết bị IO.
in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
-Hàm DeviceIoControl(): Gửi mã thiết bị tương ứng để xác định thao tác thực hiện tương ứng với từng thiết bị.
-Struct STORAGE_PROPERTY_QUERY: Truy vấn thông tin lưu trữ. typedef struct _STORAGE_PROPERTY_QUERY {
} STORAGE_PROPERTY_QUERY, *PSTORAGE_PROPERTY_QUERY;
-Struct STORAGE_DEVICE_DESCRIPTOR: Truy vấn thông tin mô tả của thiết bị. typedef struct _STORAGE_DEVICE_DESCRIPTOR {
-Struct DISK_GEOMETRY_EX: Mô tả về mặt hình học cho thiết bị. typedef struct _DISK_GEOMETRY_EX {
} DISK_GEOMETRY_EX, *PDISK_GEOMETRY_EX;
Hàm này sử dụng API của Windows để đọc thông tin từng Logical Partition và thêm vào danh sách phân vùng.
-Hàm GetLogicalDriveStrings(): Trả về buffer cho chuỗi các giá trị drive hợp lệ của hệ thống.
-Hàm GetDriveType(): Lấy thông tin kiểu thiết bị như có thể tháo được, cố định, CD-ROM, RAM disk,…
-Hàm GetDiskFreeSpace(): Trả về thông tin xác định của Disk, bao gồm dung lượng trống, tổng dụng lượng, số Sectors,…
Hàm `GetVolumeInformation()` truy vấn thông tin hệ thống tập tin, bao gồm cả thông tin về thư mục gốc Kết quả được trả về thông qua các tham số hàm.
Hàm này phân tích dữ liệu từ buffer, trích xuất thông tin quan trọng như tên nhà sản xuất, mã sản phẩm và số hiệu.
Hiểm thị tất cả các phân vùng và thông tin của tất cả các phân vùng đó ra màn hình console.
Hiểm thị tất cả các ổ cứng và thông tin của tất cả các ổ cứng đó ra màn hình console.
TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
Môi trường triển khai và lựa chọn ngôn ngữ
Sử dụng môi trường Visual C++ 2010 Express để triển khai xây dựng chương trình.
Visual Studio 2010 Express cung cấp bộ công cụ phát triển ứng dụng tùy chỉnh trên Windows, hỗ trợ cả thiết lập cơ bản và nâng cao.
Ngôn ngữ lựa chọn: Visual C++.
Visual C++ là ngôn ngữ lập trình mạnh mẽ, hỗ trợ kiểm soát chi tiết ứng dụng Windows (COM+) và ứng dụng NET Framework.
Hỗ trợ mạnh cho lập trình, cung cấp đầy đủ thư viện cho lập trình ứng dụngWindows, quá trình debug dễ dàng và trực quan,…
Kết quả các chức năng của chương trình
3.2.1 Giải thích các chức năng của chương trình
Chương trình được chia ra làm 3 mục chính:
Giới thiệu thông tin chung về đồ án, đề tài, sinh viên thực hiện đề tài và giáo viên hướng dẫn đề tài.
Mục thông tin các phân vùng:
Hiển thị danh sách các phân vùng hiện có của máy tính, người dùng sẽ chọn phân vùng cần xem và các thông tin sẽ được hiển thị ở dưới.
Mục thông tin các ổ cứng:
Ứng dụng hiển thị danh sách ổ cứng khả dụng Người dùng chọn ổ cứng, thông tin chi tiết sẽ được trình bày ngay bên dưới.
3.2.2 Demo giao diện chương trình
Hình 17: Thông tin chung về đồ án
Hình 18: Thông tin phân vùng
Chương trình cho phép xem một số thông tin của ổ cứng, và các phân vùng logic được định dang theo NTFS hoặc FAT32 của máy tính.
Kết quả chương trình được thể hiện qua giao diện demo (các hình ảnh ở phần trên).
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1 Những kết quả đạt được Đồ án đã tìm hiểu được hệ thống quản lý tệp của hệ điều hành MS Windows, các chức năng cơ bản và cách thức hoạt động quản lý của hệ thống tệp, cấu trúc của đĩa cứng và các định dạng NTFS, FAT32… của hệ điều hành MS Windows. Đồng thời, trong đồ án cũng đã xây dựng thành công chương trình demo đọc và hiển thị thông tin của các ổ đĩa, và các phân vùng, cho phép người sử dụng biết một thông tin chi tiết như nhãn đĩa, số hiệu, nhà sản xuất, dung lượng còn trống, dung lượng đã sử dụng… được hiển thị một cách trực quan bằng giao diện người dùng khá thân thiện.
Đồ án đã giúp nhóm học hỏi kiến thức lý thuyết hệ thống tệp, cấu trúc ổ đĩa và kỹ năng lập trình Visual C++ trên Visual Studio 2010.
2 Những vấn đề tồn tại
Bài viết này đề cập đến những thành tựu đã đạt được, song vẫn còn một số khó khăn và trở ngại chưa được giải quyết.
Giao diện phần mềm hiện còn đơn giản, thiếu đồ thị trực quan hóa dữ liệu chi tiết về ổ đĩa và phân vùng.
Phần mềm hiện chỉ liệt kê thông tin phân vùng trên mỗi ổ đĩa mà chưa thể hiện vị trí bắt đầu và kết thúc cụ thể của từng phân vùng, gây khó khăn trong việc phân biệt các phân vùng khác nhau trên cùng một ổ đĩa.
Quá trình xây dựng, nghiên cứu và trình bày báo cáo, cũng như xây dựng chương trình còn tồn tại một số hạn chế chưa được hoàn thiện.
Bài viết này sẽ tập trung nghiên cứu sâu hơn về lý thuyết để phục vụ tốt cho các môn học tương lai.
Chương trình sẽ được cải thiện, khắc phục lỗi và bổ sung tính năng hiển thị đồ thị trực quan dung lượng ổ cứng, phân vùng Các tính năng mở rộng như thông tin điểm bắt đầu/kết thúc phân vùng, số lượng và thuộc tính phân vùng cũng sẽ được xem xét hoàn thiện.
Kính gửi cô Trần Hồ Thủy Tiên, nhóm em xin chân thành cảm ơn sự hướng dẫn tận tâm và giúp đỡ nhiệt tình của cô trong suốt quá trình thực hiện đồ án, giúp chúng em hoàn thành tốt đẹp.