Khác biệt giữa Mac và PC – Cách giải quyết - pdf 17

Download miễn phí Khác biệt giữa Mac và PC – Cách giải quyết



DSDT (Differentiated System Description Table) là một bảng quan trọng trong đặc tả ACPI,
compiled dưới dạng file .aml (ACPI Machine Language), cung cấp thông tin cho hệ điều hành về
một số thiết bi bên dưới. Thiếu hay sai bảng DSDT thường dẫn đến những trục trặc như không
thể sleep, quạt không điều chỉnh tốc độ được, màn hình không tắt khi đóng laptop (close lid),
v.v. Vấn đề là đa số PC đều được sản xuất với DSDT đặc tả cho Windows, vì vậy ngay cả
Linux đôi khi cũng phải sửa đổi DSDT để có thể hoạt động trơn tru. Mac thì như chúng ta đã
biết, đỏng đảnh hơn nhiều chứ đâu bình dân như Linux, vì vậy Mac sử dụng hẳn một bảng
DSDT khác (đúng hơn là một subset không hoàn chỉnh) với DSDT của đặc tả ACPI trên PC



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

Phần 2: Khác biệt giữa Mac và PC – Cách giải quyết
III/ Giới thiệu về EFI và DSDT, hệ thống driver trên Windows và kext trên Mac OS X
EFI là gì?
EFI là từ viết tắt của Extensible Firmware Interface, một bộ đặc tả giao thức phần mềm chịu
trách nhiệm giao tiếp giữa hệ điều hành (OS) và firmware hệ thống. Nói tới EFI thì quả là lạ lẫm,
nhưng nếu nói tới BIOS (Basic Input/Output System) thì chắc các bạn, nhất là anh em tại vOz
chẳng xa lạ gì. Và thật vui khi biết rằng, EFI và BIOS thực ra có thể coi là huynh đệ của nhau.
BIOS chính xác cũng là một firmware interface, viết bằng assembly, có chức năng tự chạy đầu
tiên khi bật máy tính, nó thực hiện quá trình Power On-Self Test, kiểm tra các thiết bị và rồi giao
hết lại cho hệ điều hành (như Windows chẳng hạn). OS vẫn phải dựa vào BIOS để liên lạc với
một số thiết bị, chẳng hạn như pin trên laptop hay đọc một số thông số hệ thống. Do việc phải
thức khuya dậy sớm như vậy nên BIOS được đặc cách ngủ một phòng riêng có tên là EPPROM
ngay trong nhà mainboard. EFI thì khác, viết bằng C, đô con hơn, mở rộng tốt hơn, phức tạp hơn
và giống một hệ điều hành thu nhỏ hơn. EFI được phát triển bởi Intel, tương lai sẽ là kẻ kế vị
cho BIOS khi gã cao tuổi này về hưu.
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Nhưng vì sao chúng ta phải nhắc đến EFI nhỉ? À, thật ra là vì Mac dùng EFI (hay đúng hơn là
một mô tả riêng từ chuẩn EFI ban đầu của Intel), chứ không phải BIOS như PC. Đây là vấn đề
gay go đầu tiên cho mộng ước hợp nhất của chúng ta. Ngoài việc nó khác nhau ra, thì EFI còn
nắm giữ nhiều thành phần quan trọng của một hệ điều hành mà không nhắc tới nó không được:
service, protocol, device driver, driver cho file system, disk support, và cả boot manager.
Ngày xưa, dân OSX86 ta đơn giản bỏ qua EFI vì nó phức tạp và khó nhai quá, trực tiếp sửa đổi
kernel của Mac OS X cho nó chạy trên PC là xong. Nhưng sự thực thì sau đó không ít phiền toái
kéo tới. Các kext (kernel extension) chuẩn không chạy được với kernel sửa đồi, rồi thì mỗi lần
Apple tung gói update mới lại phải hì hụi sửa lại cái kernel. Sau này phương pháp giả lập EFI
thông qua bootloader được đưa ra bởi các bạn hacker Nga khét tiếng (Netkas), giúp cho dân đen
chúng ta tránh được rất nhiều phiền phức.
Về thiết bị phần cứng, có một thiết bị gọi là EFI-X được bày bán, cắm vào máy là chạy EFI
được ngay. Đáng tiếc công ty sản xuất thiết bị hay ho này về sau bị pháp luật tóm gáy, và vậy là
OSX86 cho ra đời phương pháp giả lập EFI khác có tên Boot-132, hoạt động y chang thiết bị kia
(đúng hơn thì Boot-132 có trước và EFI-X bắt chước mà thôi). Chúng ta sẽ sử dụng phương pháp
giả lập Boot-132 này trong phần 3 của loạt bài.
DSDT là gì?
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Thêm một thuật ngữ khó nhằn khác cần được giải thích, rất may là phần DSDT này cũng ngắn
mà thôi.
DSDT (Differentiated System Description Table) là một bảng quan trọng trong đặc tả ACPI,
compiled dưới dạng file .aml (ACPI Machine Language), cung cấp thông tin cho hệ điều hành về
một số thiết bi bên dưới. Thiếu hay sai bảng DSDT thường dẫn đến những trục trặc như không
thể sleep, quạt không điều chỉnh tốc độ được, màn hình không tắt khi đóng laptop (close lid),
v..v.. Vấn đề là đa số PC đều được sản xuất với DSDT đặc tả cho Windows, vì vậy ngay cả
Linux đôi khi cũng phải sửa đổi DSDT để có thể hoạt động trơn tru. Mac thì như chúng ta đã
biết, đỏng đảnh hơn nhiều chứ đâu bình dân như Linux, vì vậy Mac sử dụng hẳn một bảng
DSDT khác (đúng hơn là một subset không hoàn chỉnh) với DSDT của đặc tả ACPI trên PC.
Việc thay đổi DSDT thường được thực hiện như sau: trích xuất DSDT từ ACPI trên mainboard -
> patching & modifying DSDT -> chỉ dẫn bootloader sử dụng DSDT mới này thay vì DSDT
nguyên gốc trong BIOS (tránh việc ghi đè lại DSDT của hệ thống). Công việc patching khó khăn
này giờ đã được đảm nhận bởi những công cụ với giao diện đồ họa, sử dụng hết sức đơn giản.
Hệ thống driver trên Windows và kernel extensions trên Mac:
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Do sử dụng 2 trường phái kernel khác nhau, Windows với monolithic kernel (vâng, “thiết kế
nguyên khối” y như quảng cáo Sony Bravia gần đây) còn Mac sử dụng microkernel nên 2 hệ
điều hành này cũng có hệ thống driver cho thiết bị khác nhau. Bản chất các file .kext (kernel
extension) cũng giống với device driver trên Windows, giúp mở rộng khả năng của nhân hệ điều
hành, điều khiển và tích hợp các thiết bị phần cứng khác của máy tính.
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Vậy điều khác biệt ở đây là gì? Driver Windows được các hãng sản xuất thiết bị viết ra theo một
chuẩn chung (nói nôm na là driver interface) do Microsoft ban hành, và Microsoft không can
thiệp gì vào quá trình viết driver này. Ví dụ như driver wireless card nào cũng phải tuân theo
nguyên tắc chung: capture broadcast SSID, signal strength, encryption method, etc rồi trả về cho
Windows. Các chức năng đặc trưng của mỗi NSX tính sau. Chính nhờ hệ thống driver interface
này mà Windows có thể kết nối với vô số thiết bị, miễn là NSX viết driver theo đúng chuẩn của
Microsoft. Microsoft không phải và không cần can thiệp vào quá trình viết driver, chỉ việc ngồi
đóng dấu chứng chỉ WHQL là xong. Các NSX cũng không phải ngồi chầu chực đợi nói chuyện
với Microsoft về vấn đề viết driver như thế nào, chỉ việc viết xong đem test WHQL là xong. Do
vậy số thiết bị được sản xuất cho PC (một nền tảng mở) và tương thích với Windows (driver
interface mở) là nhiều hơn rất nhiều so với Mac.
Về phần Apple, ngược lại, do sử dụng microkernel và không thiết lập chuẩn chung cho driver,
Mac OS lại mang tính chất proprietary (sở hữu riêng, mã đóng), nên các thiết bị sử dụng cho
Mac OS phải được Apple và NSX cùng nhau viết driver. Thêm một quy định khác của Apple là
Mac OS chỉ chạy trên máy Macintosh, vì vậy kext của các thiết bị được tích hợp sẵn vào Mac
OS luôn cho tiện, chứ ít được phân phối bởi NSX thiết bị như trên Windows.
Các kext của Mac OS X nằm trong thư mục /System/Library/Extensions/ (đường dẫn Unix),
cách cài đặt và gỡ bỏ “driver” này cũng hết sức đơn giản, chúng ta sẽ nói thêm ở phần 3 của bài.
IV/ Giới thiệu Chameleon – bootloader cho Mac OS X
Bootloader là gì?
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Bootloader, hiểu đơn giản, là một đoạn mã chỉ dẫn nằm ở phần Master Boot Record (đối với
MBR disk) hay EFI parition (đối với GPT disk). Sau khi BIOS giao lại quyền boot hệ thống cho
đĩa cứng, đây là đoạn mã được chạy đầu tiên để từ đó dò tìm file boot của hệ điều hành tương
ứng. Do mỗi hệ điều hành có file boot đặc trưng nên bootloader của mỗi OS cũng sẽ khác nhau.
Windows NT sử dụng file ntldr, Vista và 7 sử dụng bootmgr. Trong các hệ thống có nhiều OS,
bootloader còn kiêm luôn chức năng hiển thị menu lựa chọn và boot vào OS tương ứng.
Chameleon là gì?
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
Do Mac OS X sử dụng file system thuộc dạng “nông thôn miền núi” mang tên HFS+ (kiểu nh...
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status