Microsoft thực sự mê linux

15 năm sau khi CEO Steve Ballmer lớn tiếng miệt thị Linux là "ung nhọt", Microsoft bất ngờ ra mắt tính năng hỗ trợ đầy đủ các phần mềm Linux trên Windows thông qua một hệ thống tích hợp trên Windows có tên Windows Subsystem for Linux (WSL).

Được dự kiến sẽ phát hành trong bản cập nhật lớn Anniversary Update cho Windows 10 vào mùa hè tới đây, WSL bao gồm 2 phần: hệ thống thực thi Linux chính (core subsystem) và một gói công cụ do Canonical cung cấp. Hệ thống thực thi sẽ mang các API Linux lên Windows, cho phép chạy các file thực thi và các thư viện Linux trên Windows. Canonical, nhà phát triển của bộ distro Linux nổi tiếng Ubuntu, sẽ cung cấp phần mềm bash và các công cụ dòng lệnh khác thường có trên Linux.

Microsoft coi WSL là một công cụ dành riêng cho giới lập trình viên với mục đích đặc biệt là hỗ trợ các nhà phát triển web tốt hơn trước đây. Rất nhiều nhà phát triển web phụ thuộc vào các gói phần mềm mã nguồn mở và cũng sử dụng thành thục phần mềm dòng lệnh bash, vốn được dùng để build (tạo file thực thi) thông qua các công cụ tích hợp trong bash như make, gcc hoặc chỉnh sửa file mã nguồn qua vi và emacs. WSL sẽ mang tới trải nghiệm sử dụng các công cụ này gần như giống hệt như trên Linux.

Microsoft thực sự mê linux

Với mục đích tập trung hỗ trợ các nhà phát triển, Microsoft không hề coi WSL là một nền tảng để triển khai (deploy) phần mềm. Điều này có nghĩa rằng bạn có thể cài đặt và sử dụng Apache Server lên WSL thay vì một phiên bản Linux đầy đủ, nhưng mục tiêu cuối cùng không phải là dùng Apache trên WSL để đưa vào sử dụng thực tế (production).

WSL có lẽ đã được Microsoft "tái chế" từ Project Astoria, dự án phát triển công cụ để chuyển đổi ứng dụng Android thành ứng dụng Windows 10 Mobile. Do đó, rất có thể trong giai đoạn đầu, WSL sẽ hỗ trợ các API của Android tốt nhất. Nói cách khác, trong khi WSL sẽ hỗ trợ phần lớn các ứng dụng Linux, Windows sẽ không thể chạy tất cả các ứng dụng Linux. WSL không hề bao gồm bộ kernel Linux, do đó các hệ thống tập tin như ZFS hay btrfs có lẽ sẽ không được hỗ trợ trên Windows. Các ứng dụng đòi hỏi quyền truy cập sâu vào các thiết bị phần cứng, ví dụ như Wireshark, có lẽ sẽ không thể chạy trên WSL. Cuối cùng, WSL cũng không hề hỗ trợ X Windows hay các hệ thống giao diện khác của Windows – đây sẽ chỉ là một công cụ hỗ trợ cho các ứng dụng dòng lệnh.

Vì sao lại phải làm vừa lòng các nhà phát triển?

Nhưng quyết định hỗ trợ phần mềm Linux, dù ở bất cứ mức độ nào, cũng là hết sức bất ngờ.

Microsoft thực sự mê linux

Vì sao Microsoft lại đưa ra quyết định này? Nhìn từ bề nổi, câu trả lời là rất dễ dàng: lập trình viên thích sử dụng các công cụ Linux, do đó hỗ trợ Linux sẽ giúp làm hài lòng các nhà phát triển. Nhưng nhìn xuống sâu hơn và bạn sẽ thấy câu trả lời không đơn giản như vậy: Microsoft đã dành hàng thập kỷ để quảng bá cho các API và các nền tảng ứng dụng của mình. Việc hỗ trợ Linux trên nền tảng Windows rõ ràng không dừng ở mức "xoa dịu" các nhà phát triển.

Lùi lại 15 năm trước, bạn sẽ thấy Windows là nền tảng làm việc duy nhất được các nhà phát triển ưa thích. Linux đã thống trị thị trường máy chủ từ lâu, nhưng trải nghiệm desktop của Linux ngày đó thậm chí còn tệ hơn… ngày nay. Mac OS X vẫn chưa thực sự trưởng thành và vẫn đang chạy trên những cỗ máy kỳ dị có sử dụng vi xử lý PowerPC kém cỏi. Điều này giúp cho Windows trở thành nền tảng duy nhất cho các nhà phát triển phần mềm. Họ đơn giản là chẳng có lựa chọn nào khác cả.

Chính vị trí này của Windows với cộng đồng lập trình viên đã giúp thay đổi một phần khung cảnh cạnh tranh trên máy chủ: phần mềm nào hỗ trợ tốt từ phía Windows cũng sẽ gia tăng mức độ phổ biến trên máy chủ.

Microsoft thực sự mê linux

Ví dụ điển hình nhất là hệ quản lý cơ sở dữ liệu MySQL. Trong khi MySQL ngày nay đã có chất lượng tốt hơn rất nhiều, nếu chỉ xét về khía cạnh khả năng kỹ thuật và bảo vệ dữ liệu thì MySQL còn lâu mới có thể bắt kịp PostgreSQL. Ấy vậy nhưng MySQL vẫn thu hút được thị phần đáng kể nhờ cung cấp một nền tảng phát triển tốt tới các lập trình viên qua Windows. MySQl có thể được cài đặt lên Windows một cách dễ dàng qua installer, có ứng dụng viết câu lệnh và quản lý database chất lượng tốt và cũng có driver ODBC (chuẩn API giữa các ứng dụng với hệ thống quản lý cơ sở dữ liệu). Ngược lại, PostgreSQL không hề đặt trọng tâm vào các tính năng này, và trong khi các lập trình viên không phải là không thể chạy hệ cơ sở dữ liệu này trên Windows, cố gắng làm như vậy sẽ khiến họ khó chịu hơn rất nhiều so với Windows.

Không mấy bất ngờ, MySQL đã trở nên vô cùng phổ biến còn PostgreSQL thì không.

Vị vua bị lật ngôi

Nhưng đáng tiếc là mọi thứ không còn êm đẹp với Microsoft như trước đây. Ví dụ, dù cho quá trình tạo môi trường phát triển (development environment) cho Ruby gần như là bất tiện trên bất cứ nền tảng nào, trải nghiệm Ruby trên Windows đang có chất lượng tệ nhất. node.js được xây dựng trên Mac OS X và Linux và trong suốt một thời gian dài không thể chạy trên Windows. Hoặc, Salvatore Sanfilippo nhà phát triển của Redis, một trong những hệ quản lý dữ liệu NoSQL phổ biến nhất, đã từ chối các bản vá có thể giúp phần mềm này chạy trên Windows. Lý do không phải là bởi tác giả của Redis có ác cảm với Microsoft mà là bởi, theo lời khẳng định của Sanfilippo trên blog cá nhân, anh này chẳng có lý do gì để làm vậy cả. Sanfilippo vẫn ủng hộ ý tưởng chỉnh sửa các phần mềm để hỗ trợ Windows nhưng sẽ không chấp nhận để ý tưởng này làm chậm trễ quá trình phát triển của sản phẩm chính.

Windows rõ ràng là chưa chìm vào quên lãng, nhưng nền tảng của Microsoft cũng không còn là lựa chọn duy nhất, buộc-phải-có của các nhà phát triển nữa. Lý do là bởi cả 2 đối thủ quá kém cỏi của thập niên 2000 giờ đây đều đã được nâng tầm đáng kể. Linux vẫn chưa phải là một hệ điều hành nền desktop đủ năng lực cạnh tranh với các đối thủ trả phí nhưng cũng đã trở nên dễ chịu hơn rất nhiều nhờ công sức của các nhà phát triển đứng sau Ubuntu và CentOS. Còn Mac OS X, nhờ có bước chuyển sang kiến trúc x86 cùng lợi thế truyền thống về thiết kế phần mềm của Apple, đã trở thành lựa chọn tuyệt vời của rất nhiều lập trình viên.

Microsoft thực sự mê linux

Thực tế là trong một khoảng thời gian dài, bạn hoàn toàn có thể nói rằng chỉ duy nhất Apple là tạo ra những chiếc laptop x86 có giá chấp nhận được và mang tới một trải nghiệm sử dụng đủ dễ chịu cho các nhà phát triển. Đặc biệt nhất trong số này là MacBook Air, sản phẩm đã tạo ra một tiêu chuẩn mới về kích cỡ và trọng lượng cho laptop. Trong khi các thế hệ MacBook Air đầu tiên luôn có giá đắt đỏ, các thế hệ sau đã chạm tới mức giá dễ chấp nhận với cộng đồng người dùng chuyên nghiệp.

Các nhà sản xuất PC chạy Windows mất tới nhiều năm mới theo kịp Apple, và khi họ có thể tạo ra các mẫu laptop thực sự mạnh mẽ và gọn nhẹ, họ lại đặt cho chúng mức giá thậm chí còn cao hơn cả Apple. Apple đã thực sự đi đầu trong công cuộc chế tạo ra một chiếc laptop kết hợp tốt giữa giá cả, sức mạnh xử lý và mức độ tiện dụng. Một điểm vượt trội nữa của laptop Apple là hệ điều hành đã tái sử dụng phần nhiều mã nguồn của FreeBSD – "ông tổ" của cả Mac OS X và Linux. Dĩ nhiên 2 hệ điều hành này vẫn có nhiều khác biệt, nhưng mức độ khác biệt ở đây không nhiều bằng Linux và Windows.

Với MacBook Air, Apple đã đem lại cho các sinh viên khoa học máy tính và kỹ nghệ phần mềm một chiếc laptop Unix chuyên nghiệp có mức giá dễ chấp nhận, và không mấy ngạc nhiên, MacBook Air nhanh chóng trở nên phổ biến tại thung lũng Silicon và San Francisco. Những cô cậu tuổi teen rời ghế giảng đường đại học (bất kể là do bỏ học hay vừa tốt nghiệp) tại đây không mang niềm mơ ước được đặt chân vào thế giới doanh nghiệp của Mỹ - nơi Windows cho đến nay (và có lẽ là mãi mãi về sau) vẫn làm chủ. Thay vào đó, họ ao ước thành lập hoặc xin việc vào những startup "cuồng" Apple và sẵn sàng trang bị cho họ những chiếc MacBook, iMac mới nhất.

Microsoft thực sự mê linux

Lúc này, Windows rơi vào tình cảnh tồi tệ hơn cả khi còn là đối tượng công kích của những kỹ sư phần mềm ủng hộ mã nguồn mở. Hệ điều hành của Microsoft không còn vai trò gì trong cuộc sống của những coder trẻ tuổi tại San Francisco nữa.

Xem phần 2 của bài viết tại đây