Tại sao Linux đã đi ra vũ trụ và đến tận Sao Hỏa, còn Windows vẫn đang ở dưới Trái Đất ?
Dù là hệ điều hành máy tính phủ song nhiều nhất thế giới, nhưng Windows vẫn đang ngậm ngùi ở lại dưới Trái Đất, nhìn Linux đi ra vũ trụ và thậm chí đã đặt chân lên Sao Hỏa.
Cho dù hiện nay Windows vẫn đang là hệ điều hành phổ biến nhất đối với người dùng phổ thông, nhưng chắc chắn một điều rằng, đại đa số các hệ thống chuyên nghiệp – những máy chủ internet, các siêu máy tính, tàu vũ trụ thám hiểm không gian – đều đang được vận hành trên Linux. Đó là còn chưa kể đến hàng tỷ smartphone khác cùng hàng triệu chiếc xe điện trên toàn cầu cũng đang vận hành nhờ nền tảng này.
Thành công này không chỉ nhờ bản chất mã nguồn mở của Linux, mà còn so với Windows, nhân hệ điều hành này có một lợi thế vô cùng đặc biệt khiến chúng trở nên thích hợp với các hệ thống chuyên nghiệp, đó là sự ổn định.
Trong khi Windows nổi tiếng với những màn hình xanh chết chóc thỉnh thoảng lại hiện ra mỗi khi hệ thống có sự cố bất thường nào đó, cũng như việc thường xuyên phải khởi động lại sau một thời gian sử dụng, hoặc sau khi cập nhật hoặc thậm chí chỉ là cài đặt một phần mềm nào đó, Linux có thể chạy liên tục trong nhiều ngày, nhiều tháng hoặc thậm chí hàng năm mà không cần phải khởi động lại.
Chiếc trực thăng thám hiểm Sao Hỏa được vận hành bằng nhân Linux, thay vì Windows
Điều gì làm nên sự ổn định vô song này của Linux?
Theo ông Melvin Menezes, một nhà khoa học máy tính về các hệ điều hành phân tán, khả năng nằm trong nguyên tắc cơ bản trong triết lý thiết kế của Linux, vốn được thừa hưởng từ hệ điều hành UNIX.
Trên thực tế, mọi dòng code đều có khả năng gây ra lỗi và gần như không có cách nào để tránh né được điều đó trong hiện tại. Nói cách khác, hệ điều hành nào cũng có khả năng bị lỗi. Cách tốt nhất để giảm thiểu khả năng đó là thu nhỏ kích thước của chính hệ điều hành đó. Cho dù được lập trình bằng kỹ thuật nào đi nữa, tăng kích thước hệ điều hành sẽ làm khả năng lỗi xuất hiện với cấp số nhân.
Linux – cũng như các hệ điều hành khác thuộc họ UNIX – giải quyết vấn đề này bằng cách xác định những tính năng cốt lõi nhất cho một hệ điều hành – chủ yếu là quản lý và phân bổ tài nguyên và giới hạn hệ điều hành chỉ trong các tài nguyên đó. Nó được coi là nhân của hệ điều hành và được đảm bảo có kích thước nhỏ cũng như chặt chẽ nhất có thể.
Nhân Linux Kernel được cô lập với các ứng dụng bên ngoài để đảm bảo bảo mật và độ ổn định của hệ thống.
Nó có hầu hết các tính năng trọng yếu nhất để đảm bảo cho sự ổn định và bảo mật của hệ điều hành. Kích thước nhỏ và các điểm vào được xác định và kiểm soát tốt khiến nó ổn định hơn cũng như việc xâm phạm các hệ điều hành dùng nhân này trở nên khó khăn hơn.
Mọi yếu tố liên quan đến người dùng ở một mức độ nào đó đều được giữ ở bên ngoài nhân Linux. Các chương trình như vậy đều gửi yêu cầu cấp tài nguyên đến nhân Linux khi cần thiết thông qua các API. Nhưng nhân Linux sẽ là trọng tài cuối cùng cho các yêu cầu cung cấp tài nguyên này.
Cách tiếp cận của Windows
Trong khi đó, cách tiếp cận đối với Windows lại đi theo hướng khác. Ngay từ những ngày đầu của mình (Windows 3), đã không hề có khái niệm nào về nhân hệ điều hành. Bất kỳ chương trình nào của người dùng cũng có thể yêu cầu tài nguyên trực tiếp tới mức thấp nhất của hệ thống và API thiết bị.
Dường như điều này bắt đầu thay đổi từ Windows NT dưới sự chỉ đạo của Dave Cutler, một nỗ lực hướng tới cách tiếp cận nhân hệ điều hành đã được đưa ra. Tuy nhiên, ảnh hưởng của nó rất giới hạn khi nó lại xung đột với cách tiếp cận của Microsoft về thị trường.
Phải bắt đầu từ Windows NT, cách tiếp cận thông qua nhân hệ điều hành mới được Microsoft áp dụng cho Windows.
Thời điểm đó, mục tiêu của Microsoft không chỉ kiểm soát thị trường hệ điều hành mà còn càng có nhiều chương trình cho người dùng càng tốt.
Với cách tiếp cận thông qua nhân thực của hệ điều hành, dù các ứng dụng bên thứ ba của người dùng hay ứng dụng đi kèm với hệ điều hành, chúng đều được quyền tiếp cận tài nguyên hệ thống ngang bằng nhau. Nếu bạn không thích bộ biên dịch cc compiler của Unix, bạn có thể mua một cái hoặc tự viết cho mình. Nếu bạn không thích bộ shell cơ bản của Linux, bạn cũng có thể dùng Korn Shell hoặc Bourne Shell hoặc bất cứ thứ gì bạn muốn. Bất kỳ chương trình nào bạn mua hoặc tự viết đều có quyền tương đương với phần mềm đi kèm hệ điều hành trong việc tiếp cận tài nguyên.
Trong khi đó Microsoft lại muốn các chương trình của riêng họ có ưu thế so với những đối thủ khác và họ làm điều này bằng cách chậm chạp đưa các chương trình người dùng vào trong nhân hệ điều hành. Điều này làm các chương trình riêng của họ có được quyền truy cập vô song vào tài nguyên hệ thống – nhưng điều này cũng kéo theo các rắc rối pháp lý về chống độc quyền cho Microsoft.
Ví dụ rõ ràng nhất là trình duyệt Internet Explorer trong Windows. Nếu không được đóng gói cùng hệ điều hành này, nó sẽ không thể cạnh tranh lại với Netscape. Thời điểm đó, internet còn chậm và đắt đỏ nếu muốn cài đặt một phần mềm bên thứ ba nào đó. Dù vậy, nó vẫn tiện lợi hơn là chạy ra cửa hàng máy tính và mua đĩa cài đặt. Với việc Internet Explorer được cài đặt sẵn trong Windows, Netscape nhanh chóng thất bại trong cuộc chiến giành thị phần với Microsoft. Hơn nữa, việc được ưu tiên tiếp cận tài nguyên hệ thống cũng giúp IE có tốc độ khởi động nhanh hơn đối thủ.
Nhưng khi bị cáo buộc lợi dụng vị thế độc quyền để gia tăng thị phần cho các chương trình người dùng của mình, Microsoft có thể lập luận rằng họ không bán trình duyệt cho người dùng, bởi vì Internet Explorer là "một phần của hệ điều hành". Điều này làm Windows trông giống như một hệ điều hành có nhân kernel giống như Linux.
Đánh đổi tính bảo mật lấy sự tiện dụng
Nhưng thật không may, hành động mang lại lợi thế về mặt kinh doanh này lại không phải là lợi thế về kỹ thuật. Trong Linux, ngay cả khi bạn xâm phạm được trình duyệt trong máy, bạn cũng sẽ không thể xâm nhập vào nhân hệ điều hành. Nhưng với Windows thì lại khác.
Quá nhiều chương trình người dùng được đưa vào nhân Windows và do vậy, nếu một chương trình nào đó bị xâm nhập, hacker có thể mở ra một con đường vào thẳng trái tim của hệ điều hành này. Một chương trình chạy bất thường trong Linux vẫn có thể bị dừng lại bởi nhân kernel mà không làm ảnh hưởng đến độ ổn định của hệ thống. Còn đối với Windows, một chương trình người dùng không ổn định sẽ tác động đến sự ổn định của cả hệ điều hành.
Nhưng nói một cách công bằng. tính bảo mật hay ổn định thường phải đánh đổi với tính dễ sử dụng. Điều tương tự cũng có thể đúng khi nói về Linux hay Windows. Hệ điều hành của Microsoft có thiên hướng dễ sử dụng hơn so với Linux. Ví dụ, với Linux, bạn không thể chỉ tải xuống và chạy một file thực thi exe. Trên Linux, các file này sẽ không thể thực thi nếu không được người dùng cấp phép, nhưng với Windows thì lại có thể.
Đó cũng là lý do khiến Linux phù hợp hơn với người dùng chuyên nghiệp, những người biết rõ mình cần làm gì với hệ thống của mình.
Nói cách khác, cách tiếp cận thông qua một nhân kernel gọn nhẹ của Linux khiến các hệ thống dựa trên nó trở nên ổn định hơn, đặc biệt phù hợp với các ứng dụng cho những hệ thống quan trọng như internet, trung tâm dữ liệu hay thậm chí cả tàu vũ trụ. Tính ổn định của nó lại càng được cải thiện hơn nữa khi nó được xây dựng và vận hành bởi những người dùng chuyên nghiệp, những người hiểu rõ họ cần gì cho các hệ thống của mình.
Hoàng Hoài (Tham khảo Quora)