Phần 1: Lịch sử và nguyên nhân I/ Giới thiệu về Mac OS X Lịch sử Mac OS: Mac OS (viết tắt của Macintosh Operating System) là hệ điều hành có giao diện cửa sổ và được phát triển bởi công ty Apple Computer cho các máy tính Apple Macintosh. Phiên bản đầu tiên ra đời năm 1984. Thật ra ban đầu Mac OS cũng chả có tên, chỉ mang cái tiếng là phần mềm kèm theo máy Macintosh, thời năm 1984 người ta vẫn gọi nó là “System software”. Mac OS 1984 Ngay sau khi Mac OS ra mắt 1 năm, năm 1985 Windows danh tiếng của bác Bill ra đời. Mang tiếng là hệ điều hành, Windows lúc bấy giờ vẫn chỉ là một add-on cho MS-DOS để có thêm tí giao diện đồ họa, chạy theo trào lưu nhà nhà dùng GUI lúc bấy giờ. Tất nhiên, Windows ra mắt vì mục đích cạnh tranh với Mac OS, và chiếm cứ kiến trúc x86 của Intel trên các máy IBM compatible làm đại bản doanh của mình. Sau hàng mấy chục năm phát triển và không ngừng đấu tranh, cho tới nay thì Mac OS đã bị Windows vượt mặt xa lắc, tỉ lệ phần trăm thị trường lần lượt là 90% và 7% gì đó. Điều này có được chủ yếu do phương pháp kinh doanh khác biệt của 2 hãng, chứ cũng không liên quan nhiều đến việc Windows và Mac OS, ai tốt hơn ai. Trở lại với Mac, máy Macintosh ban đầu sử dụng CPU Motorola 68000, cho tới khi Apple, Moto và IBM chế ra kiến trúc PowerPC (Không phải Apple hâm tới mức vác PC vào người đâu nhé, đó là viết tắt của “Performance Optimization With Enhanced RISC – Performance Computing”, tên dài vãi đạn), thì Mac OS cũng chuyển qua hỗ trợ thêm kiến trúc này. 8.1 là bản cuối cùng của Mac OS hỗ trợ 68000-class CPU. Sau này Intel x86 cũng nhảy vào chiếm phần, và như chúng ta đã biết, Mac OS vừa đi qua một mốc lịch sử khác bằng việc từ bỏ hỗ trợ PowerPC, bắt đầu với phiên bản Snow Leopard 10.6. Mac OS X nói riêng: Xét riêng bản Mac OS X, phiên bản Mac OS đầu tiên sử dụng chữ số la mã để đặt tên (trước đó là Mac OS 9), đây là seri OS đã trải qua 6 phiên bản khác nhau của Apple. Đánh dấu sự trở lại chói sáng của Steve Jobs, ông cũng mang theo vào Mac OS X những thành tựu có được với Nextstep OS khi còn ở NeXT – công ty do chính ông sáng lập và sau được Apple mua lại. Mac OS X là hệ điều hành BSD-based, sử dụng microkernel có tên Mach kernel. Mac OS X mang trong mình nền tảng cốt lõi của Unix, đặc điểm mang lại cho nó tính ổn định và bảo mật cao, cũng như nhiều khả năng ưu việt khác. Từ trái qua phải: 10.0 (Cheetah) và 10.1 (Puma) dùng chung vỏ hộp, 10.2 (Jaguar), 10.3 (Panther), 10.4 (Tiger), 10.5 (Leopard), 10.6 (Snow Leopard). Các phiên bản Mac OS X được đặt tên theo các con vật lớn họ nhà mèo (chủ yếu là các loại báo – không phải newspaper). Phiên bản hiện tại 10.6 có tên Snow Leopard – Báo tuyết. Có lẽ khi nào không còn loài nào họ mèo để đặt tên nữa thì Apple mới chuyển lên Mac OS XI được. Mac OS X desktop Mac OS X còn mang trong nó một ý nghĩa lớn đối với cộng đồng hackintosh (những người chuyên chọc phá tìm cách đem Mac sang chạy trên các nền tảng khác). Kể từ bản Tiger 10.4, Mac OS X chính thức thực hiện bước chuyển đổi sang sử dụng nền tảng Intel x86, có nghĩa là hầu hết linh kiện phần cứng của một chiếc Macintosh đều giống y xì một chiếc PC thứ thiệt. Điều này đem lại cơ hội lớn cùng nhiều thách thức cho việc cài đặt Mac OS X lên một chiếc Intel PC (tất nhiên là rẻ hơn nhiều so với Macintosh tương đương). Đây cũng là mục đích chính của loạt bài này. II/ Khác biệt giữa Intel Mac và PC – OSX86 project ra đời Khác biệt về hardware & firmware: Nếu bỏ qua các thế hệ máy Macintosh sử dụng chip Motorola và PowerPC vì khác biệt kiến trúc, thì máy Macintosh ra đời năm 2006 trở về sau, về cơ bản, có các thành phần và cấu trúc giống hệt như một chiếc PC dùng CPU Intel phổ thông. Nói rằng về cơ bản giống nhau không có nghĩa là không có khác biệt, cũng không có nghĩa là bạn có thể mua một chiếc DVD Mac OS X để cài đặt lên PC ở nhà của mình. Và đây cũng là thời điểm OSX86 project ra đời. Tiếp tục bỏ qua các thế hệ tiền bối đã từng nghiên cứu giả lập Mac trên PC, OSX86 project ra đời với điều kiện khách quan và lực lượng hỗ trợ đông đảo hơn rất nhiều. Sự tương đồng trong kiến trúc x86 đã giúp cho việc chạy OS X thực (run natively) trên PC thành hiện thực. Nói về khác biệt giữa Intel Mac và PC, thật ra cũng không có nhiều. Chúng ta chủ yếu nói về khác biệt phần cứng hoặc firmware, xử lý nó ổn thỏa là có thể san bằng khác biệt về phần mềm. Các khác biệt chủ yếu: - Mac không thể chạy tất cả các thiết bị của PC: Máy Mac sử dụng các linh kiện giống với PC, có điều không nhiều chủng loại và nhà sản xuất như PC. Điều này có nghĩa là Mac OS X chỉ có sẵn driver cho một số thiết bị có device ID và vendor ID đặc thù. VD như onboard Ethernet Realtek RTL8139 có mã IOPCIPrimaryMatch là 0×813910EC, có thể chạy ngay khi cài đặt (run out-of-the-box) do driver có sẵn, nhưng các thế hệ Ethernet Realtek khác thì không. Điều này dẫn đến việc chỉ một bộ phận PC có cấu hình hợp lý (ý ở đây là giống với một máy Mac tương ứng, có thể là Macbook hay iMac, Mac Pro) có thể chạy được Mac OS X mà thôi. - Mac có những thiết bị có firmware riêng biệt: Đối với các thiết bị có firmware như VGA, card Ethernet, và wireless card, Apple còn có thể đặt hàng một seri sản phẩm sản xuất riêng cho mình, có firmware riêng biệt khác với thiết bị sử dụng trên PC. Điều này có thể làm một số thiết bị, VD như Geforce GTX 285 trên PC không thể chạy trên Mac, do nó có firmware khác với GTX 285 Mac edition. - Mac sử dụng EFI: EFI được mệnh danh là hệ điều hành thu nhỏ trên mainboard. Đây là một kĩ thuật mới do Intel phát triển nhằm giao tiếp tốt hơn với system firmware, EFI có nhiều ưu thế vượt trội so với BIOS truyền thống. BIOS trên PC viết bằng assembly, trong khi EFI viết bằng C. Một vài hệ thống như HP Itanium cũng đã chuyển sang sử dụng EFI từ lâu. Trên PC đã phát triển thế hệ Unified EFI và tương lai các mainboard sẽ chuyển qua sử dụng hệ thống EFI này. Trước đây từng có một mainboard MSI giới thiệu UEFI, MSI P45D3 Platinum. - Mac sử dụng bảng DSDT khác với PC: DSDT trên Mac chi là một bản không hoàn chỉnh của DSDT trên PC. Do vậy việc patching DSDT là cần thiết để Mac OS X có thể giao tiếp và hỗ trợ tốt các thiết bị trên PC. - Mac sử dụng SMC khác với PC: firmware SMC (System Management Controller) trên Mac giúp hệ điều hành điều khiển một vài tính năng phần cứng (chẳng hạn như đọc temp CPU và điều chỉnh tốc độ quạt). SMC cũng tồn tại trên PC, nhưng hoàn toàn không giống Mac. - Mac sử dụng keyboard khác với PC: Đương nhiên trên bàn phím của Mac không thể có nút Windows, và đồng thời có một số nút cũng không có trên bàn phím PC, như Command và Option. OSX86 Project: OSX86 project là dự án mở (GNU Public License) của cộng đồng công nghệ toàn thế giới, ra đời nhằm khắc phục những khác biệt trên, đem Mac OS X đến với thế giới x86 của PC. OSX86 project bắt nguồn chủ yếu từ cộng đồng thành viên diễn đàn InsanelyMac. Rất nhiều dự án nhỏ đã ra đời từ cộng đồng OSX86 này, thành tựu tiêu biểu phải kể đến Chameleon bootloader, Voodoo group, 4500MHD opensource driver project… . tồn tại trên PC, nhưng hoàn toàn không giống Mac. - Mac sử dụng keyboard khác với PC: Đương nhiên trên bàn phím của Mac không thể có nút Windows, và đồng thời có một số nút cũng không có trên bàn. UEFI, MSI P45D3 Platinum. - Mac sử dụng bảng DSDT khác với PC: DSDT trên Mac chi là một bản không hoàn chỉnh của DSDT trên PC. Do vậy việc patching DSDT là cần thiết để Mac OS X có thể giao tiếp. giữa Intel Mac và PC – OSX8 6 project ra đời Khác biệt về hardware & firmware: Nếu bỏ qua các thế hệ máy Macintosh sử dụng chip Motorola và PowerPC vì khác biệt kiến trúc, thì máy Macintosh