Hành trình phức tạp đưa giao diện Windows 95 lên Windows NT

bởi Phát Lâm

Chuyên gia lập trình kỳ cựu Raymond Chen lại một lần nữa đưa chúng ta trở về quá khứ, khi Windows 95 còn là “vua” của thế giới phần mềm. Ông tiết lộ một sự thật thú vị: việc lập trình thời đó hoàn toàn khác biệt! Giao diện người dùng (GUI) đẹp mắt, dễ dùng của Win95 sau này đã được “bê” sang dòng hệ điều hành Windows NT chuyên nghiệp, nhưng để làm được điều đó, các kỹ sư Microsoft đã phải trải qua một hành trình phức tạp, thậm chí là sử dụng những thủ thuật thông minh, vì công cụ quản lý mã nguồn thời đó còn rất thô sơ.

Windows 95 đã ra đời được 30 năm, và Raymond Chen, người đã làm việc lâu năm tại Microsoft, vẫn thường chia sẻ những câu chuyện hậu trường thú vị về cách hệ điều hành mang tính biểu tượng này được tạo ra. Phát triển Windows 95 đã là một nỗ lực đầy áp lực về thời gian, nhưng mọi chuyện còn trở nên đau đầu hơn khi các kỹ sư phải tìm cách chuyển đổi giao diện người dùng hoàn toàn mới đó sang nền tảng Windows NT.

Windows 95 và Windows NT: Hai thế giới, một giao diện

Như nhiều người yêu công nghệ đã biết, Windows NT có mục đích và nguồn gốc rất khác biệt so với Windows 95 vốn dành cho người dùng cá nhân (consumer). Ông Chen giải thích trong bài đăng gần đây trên blog Old New Thing của mình: Một đội ngũ của Microsoft bận rộn xây dựng Windows 95, trong khi một đội khác đang hoàn tất công việc trên phiên bản Windows NT 3.1. Hai nền tảng này bắt đầu có sự kết nối và hội tụ vào thời điểm ra mắt bản Windows NT 4.0.

Hành Trình Phức Tạp đưa Giao Diện Windows 95 Lên Windows Nt 01

Lúc này, ban lãnh đạo quyết định phải mang giao diện người dùng hiện đại của Windows 95 sang cho NT. Các lập trình viên đã chuyển mã của Windows 95 “đã hoàn thành” sang NT. Các thành viên của đội thiết kế giao diện Windows 95 đã phải thường xuyên họp mặt với các đồng nghiệp NT để đảm bảo họ nắm bắt được những thay đổi mới nhất.

Vào năm 1995, GUI của Windows 95 là một thiết kế mang tính đột phá, nhằm làm cho máy tính dễ dùng và thân thiện hơn. Microsoft quyết định mang giao diện đó lên nền tảng NT, hợp nhất hai công nghệ này với Windows NT 4.0. Đây là một bản phát hành quan trọng, đặt nền móng cho hệ điều hành máy trạm Windows 2000 sau này. Nhóm Windows NT bắt đầu điều chỉnh giao diện Win9x trong giai đoạn cuối của dự án Windows 95. Cả hai hệ thống đều có chung nguồn gốc quản lý cửa sổ (window managers) từ Windows 3.1, và đã chia sẻ nhiều nguyên tắc thiết kế cốt lõi. Tuy nhiên, các nhà phát triển NT phải tập trung giải quyết những khác biệt lớn đã xuất hiện giữa hai bộ mã. Vì việc sao chép trực tiếp mã Windows 95 là không khả thi do kiến trúc khác nhau, họ phải dùng mã đó làm tài liệu tham khảo để viết lại các tính năng tương tự trong NT.

Quá trình sao chép thủ công và công cụ “Slime” lỗi thời

May mắn thay, việc chuyển đổi trình quản lý tệp Explorer và các thành phần khác lại dễ dàng hơn. Các nhà phát triển có thể nhập mã hiện có, tinh chỉnh cho phù hợp với quy tắc của Windows NT, và tích hợp các khả năng đặc trưng của NT như hỗ trợ tên tệp Unicode. Đáng chú ý, các lập trình viên hài lòng với kết quả chuyển đổi trên NT đến mức họ quyết định đưa những cải tiến này trở lại cơ sở mã Windows 95! Để làm điều này, họ chỉ cần đánh dấu các phần dành riêng cho NT bằng các chỉ thị đặc biệt để trình biên dịch bỏ qua chúng khi xây dựng Windows 95.

Hành Trình Phức Tạp đưa Giao Diện Windows 95 Lên Windows Nt 02

Vấn đề lớn nhất nằm ở công cụ. Vào những năm 1990, Microsoft quản lý mã nguồn nội bộ bằng một hệ thống gọi là Source Library Manager (SLM), thường được các kỹ sư gọi vui là “slime” (chất nhờn). Công cụ này thiếu các khả năng quản lý phiên bản hiện đại, chẳng hạn như khả năng phân nhánh (branching) mà chúng ta có trong Git ngày nay. Vì vậy, các nhà phát triển phải sao chép thủ công từng thay đổi giữa Windows 95 và Windows NT bằng cách tự cập nhật từng tệp nguồn đã sửa đổi.

Tôi nghi ngờ rằng quy trình thủ công này phần lớn đã được tự động hóa, nhưng nó không hề đơn giản như một thao tác hợp nhất trong Git (git merge) hiện đại”, Chen nhận xét. Sự thiếu vắng một công cụ quản lý mã nguồn tiên tiến đã biến quá trình chuyển giao diện tưởng chừng đơn giản này trở thành một công việc phức tạp, đòi hỏi sự kiên nhẫn và chính xác cực cao.

Cuối cùng, Chen tiết lộ rằng nhóm chịu trách nhiệm chuyển giao diện shell của Windows 95 sang Windows NT có sự tham gia của Dave Plummer. Plummer là một cựu binh nổi tiếng khác của Microsoft, người đã có nhiều đóng góp quan trọng, bao gồm cả việc thiết kế hệ thống Kích hoạt Sản phẩm Windows (Windows Product Activation) ban đầu – hệ thống mà sau này đã bị vượt qua bởi khóa cấp phép nổi tiếng FCKGW bị rò rỉ.

Bài viết liên quan

Đăng bình luận