Linux: xưa, nay và ngày mai

Linus Torvalds nói về hệ điều hành, cộng đồng phát triển và những thay đổi sắp tới trong thế giới điện toán

Trong bài phỏng vấn dưới đây của Infoworld nhân dịp Linux tròn 25 năm tuổi, cha đẻ hệ điều hành chia sẻ suy nghĩ về thuở ban đầu và sự phát triển của Linux, về cộng đồng phát triển hiện nay, và về những thay đổi sắp tới với hệ điều hành và phần cứng.


Linux ban đầu được dùng trong các môi trường có ít tài nguyên, dùng các giải pháp lập trình nhỏ gọn. Hầu hết ứng dụng của Linux hiện nay khác hẳn. Ông nghĩ điều đó ảnh hưởng thế nào đến việc phát triển của hệ điều hành nói chung?

Không phải vậy, Linux ban đầu không hẳn chỉ dùng cho các hệ thống ít tài nguyên. Máy 386 thời đó mạnh và đắt ngang máy trạm (workstation), tuy RAM (bộ nhớ) 4MB hoặc 8MB ngày nay nghe vẻ ít ỏi buồn cười, nhưng vào thời đó không ít chút nào.

Thậm chí 25 năm trước tôi còn cảm thấy thừa bộ nhớ và tài nguyên, không hề thấy hạn chế phần cứng nào cả. Phần cứng ngày càng mạnh hơn, Linux cũng lớn lên và có lẽ quan trọng hơn, khi công việc mà nó có thể đảm đương tăng lên chúng ta vẫn không cảm thấy bị hạn chế về tài nguyên phần cứng.

Từ góc độ nhà phát triển, tôi không thấy có thay đổi gì nhiều. Nếu có thì đó là ngày nay khi mọi người cố gắng đưa Linux vào một số môi trường nhúng thật nhỏ (IoT), các nhà phát triển giờ cảm thấy bị hạn chế nhiều hơn so với các nhà phát triển HĐH cách đây 25 năm. Nghe có vẻ kỳ lạ, vì các thiết bị IoT giờ mạnh hơn so với máy 386 lúc tôi bắt đầu viết Linux, nhưng thế giới điện toán đã lớn lên và kỳ vọng của người ta cũng lớn lên theo.

Hạn chế về phần cứng không hề là vấn đề lớn ảnh hưởng đến việc phát triển, phần cứng mạnh lên và việc phát triển lớn lên cùng. Nhưng có những thứ khác ảnh hưởng.

Việc Linux được dùng “làm việc thật sự” rõ ràng thay đổi cách chúng ta làm việc: có nhiều quy định hơn và cần chu đáo và cẩn thận hơn với các bản phát hành. Lượng người tham gia cũng làm thay đổi đáng kể cung cách phát triển: Khi có vài chục nhà phát triển thì chúng ta có thể gửi email cho nhau mỗi bản vá lỗi, mọi thứ khác hẳn khi có hàng ngàn người tham gia, chúng ta cần có cơ chế kiểm soát mã nguồn và mô hình làm việc phân tán như Git.

Mô hình phát triển đã thay đổi rất nhiều trong 25 năm qua, nhưng tôi không nghĩ là có liên quan đến phần cứng.


Ông có thấy bất kỳ khác biệt cơ bản nào giữa những nhà phát triển hệ thống trẻ ngày nay với những người cách đây 20 năm?

Thật khó để đánh giá. Tôi nghĩ các nhà phát triển chẳng khác gì mấy, chỉ có dự án lớn và chín chắn hơn nhiều.

Hai mươi năm trước, HĐH nhỏ hơn nhiều, và cũng có ít nhà phát triển hơn. Có lẽ nhờ vậy ở mức độ nào đó tham gia vào việc phát triển dễ dàng hơn: suy nghĩ đỡ phức tạp hơn, dễ trở nên nổi bật và tạo nên khác biệt khá lớn với một tính năng mới đáng kể nào đó.

Ngày nay tìm được một tính năng mới mà chưa có ai thực hiện khó hơn nhiều, nhìn chung HĐH đã khá trưởng thành. Và có rất nhiều nhà phát triển đầy kinh nghiệm, vì vậy khó trở nên nổi bật hơn. Đồng thời, chúng ta có nhiều nền tảng hơn, nhiều trình điều khiển và hỗ trợ phần cứng hơn cho những người mới tham gia, vì vậy ở khía cạnh khác mọi thứ trở nên dễ dàng hơn nhiều. Hiện nay bạn có thể mua một thiết bị Raspberry Pi không mất bao nhiêu tiền và làm những điều mà 20 năm trước đây không thể.

Có một điều thay đổi đó là 20 năm trước bạn làm việc với Linux thuần túy vì đam mê kỹ thuật, giờ thì có thể vì yêu cầu công việc. Linux giờ là dự án lớn có nhiều công ty tham gia và thị trường đã làm thay đổi mọi thứ. Nhưng để tham gia lập trình hệ thống bạn vẫn cần phải có tư duy kỹ thuật, yêu cầu này không hề thay đổi.



Ông nghĩ gì về tương lai của x86?
Tôi  không thích dự đoán lắm, nhưng có thế thấy rõ "những chiếc máy nhỏ đang lớn lên", giống như cách mà PC lớn lên trước đây và thay thế gần như mọi máy tính lớn. Mọi người trông vào điện thoại di động và thiết bị nhúng, và chứng kiến thị trường này lớn nhanh còn thị trường PC thì tụt lại.

Nhiều người phấn khích về việc x86 đấu với ARM, cốt truyện khá rõ: "ARM mạnh lên và thay thế x86".

Đồng thời cũng có khá nhiều người nghĩ khác. Một lý do quan trọng mà PC lớn lên và thay thế máy tính lớn đó là vì rất dễ phát triển HĐH hay phần mềm trên PC, và không chỉ có cả một thế hệ các nhà phát triển lớn lên với PC, ngay cả khi phát triển HĐH hay phần mềm cho những chiếc máy lớn mà PC rốt cuộc thay thế, người ta cũng thường sử dụng PC. Những chiếc máy làm việc ở hậu trường có thể là khối sắt đồ sộ, nhưng giao tiếp với người dùng thường là máy trạm dạng PC.

Khi PC mạnh lên, chúng dễ dàng thay thế máy tính lớn hơn vì tất cả các nhà phát triển đã quen với môi trường PC và rất thích có môi trường phát triển tương tự như môi trường triển khai.

Nhưng cuộc so găng giữa x86 và ARM thì ngược lại: Ngay cả khi phát triển cho các hệ thống ARM nhỏ hơn, gần như chắc chắn bạn vẫn sẽ phải sử dụng PC (có thể chạy HĐH Linux, MacOS hoặc Windows) để thực hiện, chỉ có triển khai trên ARM mà thôi.

Thực tế, so với cách PC x86 chiếm ngôi trong thế giới máy tính, ARM giống như các phần cứng lớn bị thay thế hơn là kẻ lật đổ. ARM vẫn chưa đủ lớn mạnh để “đứng” một mình. Tôi đã chờ đợi điều đó hơn chục năm nay, và không biết phải chờ bao lâu nữa.

Có thể chúng ta rồi sẽ cần các kiến trúc riêng biệt cho các phân khúc khác nhau: ARM cho thiết bị điện tử tiêu dùng và thiết bị nhúng, và x86 cho thị trường PC/máy trạm (workstation)/máy chủ (server).

Thị trường máy tính không còn sôi động như trước. Đúng là điện thoại thông minh có gây náo động, nhưng thị trường giờ đã chín chắn.

 

Trong vài năm qua chúng ta chứng kiến Microsoft, Google và Apple tới tấp đưa ra các phiên  bản HĐH máy tính và di động mới với tốc độ chưa từng có. Quan điểm của ông về việc này?

Mô hình phiên bản HĐH đã thay đổi khoảng 10 năm trước, chúng tôi đã chuyển từ phiên bản nhiều năm (2.4 – 2.6) sang phiên bản liên tục hơn (phiên bản mới mỗi hai tháng và nó là "cải tiến liên tục" hơn là "tính năng lớn mới").

Thành thật mà nói, khi đã trải qua sự thay đổi lớn về tư duy trong việc phát triển HĐH, tôi thực sự nghĩ rằng đó là cách duy nhất tốt để cập nhật. Khái niệm "phiên bản lớn mỗi một hoặc hai năm" sẽ không còn, nhờ những cải tiến dần liên tục.

Tất nhiên có nhiều người thích mô hình "phiên bản đột phá", đôi khi vì lý do tiếp thị, nhưng thường thì vì lý do kỹ thuật (tư duy sai), theo đó phiên bản đột phá không chỉ được xem như là một cách để thực hiện những cải tiến mà còn là cách để hủy hỗ trợ các phiên bản hay quy trình cũ kỹ. Hình như có nhiều người nghĩ rằng "thay đổi triệt để" thì thú vị hơn và tốt hơn so với "cải tiến dần dần".

Tôi thì thấy "thay đổi triệt để" là sai lầm. Nếu phiên bản mới của bạn không thể làm mọi thứ trơn tru như phiên bản cũ, thì đó không phải là sự cải tiến mà chỉ là sự phiền toái cho người dùng.

Về HĐH, nguyên tắc số 1 của chúng tôi là: không phá hỏng thế giới của người dùng, và không thoái lui. Dù tính năng mới có hay thế nào đi nữa nhưng nếu nó phá vỡ thứ gì đó vốn để làm việc thì đó là lỗi và cần phải được sửa chữa.

Áp dụng nguyên tắc đó, kết quả hợp lý là mô hình phiên bản liên tục, thay vì bản nâng cấp lớn bỏ mặc code cũ.

Ông nhận định thế nào về những nâng cấp bắt buộc và mối quan ngại về sự riêng tư quanh Windows 10 và những động thái của Apple về một HĐH máy tính “kín bưng”? Ông có nghĩ rằng chúng sẽ là chất xúc tác làm thay đổi khái niệm cơ bản về HĐH máy tính? Ông có cho rằng các HĐH máy tính đa năng sẽ tồn tại trong 5 - 10 năm tới?

Tôi chắc chắn HĐH đa năng sẽ tồn tại và phát triển. Tuy nhiều người không thực sự cần loại môi trường đa năng đó, và có những lý do chính đáng để muốn cắt giảm thành các phiên bản an toàn hơn, đơn giản vì chúng hạn chế hơn và có các quy tắc nghiêm ngặt hơn. Nhiều người chỉ cần lướt web, xem video và chơi game, rõ ràng một môi trường hạn chế thường đơn giản hơn và rẻ hơn (smartphone và tablet là những thứ tuyệt vời mà phần cứng hạn chế đem lại, nhưng để tạo ra nội dung thì cần thứ gì đó mạnh hơn, chứ không phải như tiêu dùng).

Nhưng điều đó không làm cho nhu cầu đa năng mất đi.

Nó có nghĩa là nhiều tính huống vốn yêu cầu máy tính đầy đủ tính năng, nhưng không thực sự cần và sẽ hoàn toàn hài lòng với môi trường cắt giảm. Tôi không ngạc nhiên khi thị trường máy tính suy giảm. Nhưng tôi cho rằng đó là sự tái cân bằng tự nhiên, chứ không phải "PC đang chết!".

Ông hy vọng và lo ngại gì về IoT?

Tôi hy vọng cơn sốt sẽ xẹp xuống và chúng ta có thể tập trung vào giá trị thực sự của nó.

Nói một cách nghiêm túc, tôi hy vọng các vấn đề về khả năng tương tác được giải quyết, và tôi thực sự hy vọng sẽ có các thiết bị thông minh nhỏ hơn chứ không đặt tất cả mọi thứ lên trên đám mây. Ngay hiện giờ, không chỉ mọi thứ sẽ ngừng làm việc nếu mất kết nối Internet, mà còn có nhiều trường hợp các thiết bị ngưng hoạt động chỉ đơn giản vì dịch vụ điện toán đám mây bị tắt.



Năm rồi có thông tin về công nghệ tự bảo vệ cho HĐH. Điều đó ra sao?

Những công nghệ mạnh nhất là những công nghệ hỗ trợ phần cứng thực sự.

Giờ thì mọi người đều biết về NX (khả năng đánh dấu các trang không thực thi), nó ngăn chặn một kiểu tấn công nhất định nào đó. Nhưng chúng ta cũng đã có SMAP và SMEP (supervisor mode access/execute protection – bảo vệ truy cập chế độ quản trị/bảo vệ thực thi), chúng bít một nhóm các lỗ hổng khác, và làm cho khó đánh lừa HĐH để truy cập dữ liệu người dùng vô tình do một lỗi nào đó.

Đặc biệt, SMAP là thứ mà người ta cần ở HĐH Linux, vì nó khá tốn kém để viết phần mềm xử lý trong khi phần cứng đã có tất cả thông tin cần thiết trong bộ đệm TLB (translation lookaside buffer) khi có truy cập. Phải mất một thời gian dài các tính năng CPU mới thực sự đến với người dùng, SMAP chỉ có ở các CPU Intel gần đây, nhưng đó chỉ là một ví dụ về việc công nghệ có thể bảo vệ chống đỡ các cuộc tấn công.

Nhưng cũng có các công cụ khác, dùng cả giải pháp phân tích và trình biên dịch sinh thêm mã kiểm tra. Giải pháp sau có thể khá tốn kém nhưng thường có thể tùy chọn cấu hình, vì vậy bạn có thể chạy một HĐH an toàn hơn nhưng lớn hơn, chậm hơn HĐH tự kiểm tra.

Thách thức lớn nhất là đảm bảo HĐH luôn được cập nhật (việc bổ sung các tính năng bảo mật chỉ có ý nghĩa khi HĐH máy chủ được cập nhật?). Liệu có khả năng thực hiện việc cập nhật HĐH tự động?

Thành thật mà nói, việc cập nhật luôn chậm trễ. Nhiều thứ đã được làm để cho việc đó dễ dàng hơn, ví dụ quy tắc "không quay lui" một phần để người ta an tâm việc nâng cấp luôn an toàn và không làm hỏng những thứ đang làm việc, ngoài ra trong một số trường hợp việc vá lỗi còn có thể thực hiện tức thời.

Nhưng một trong những lý do mà người ta tốn nhiều công sức đó là vì kỳ vọng làm cho việc cập nhật bớt quan trọng, thậm chí cả khi đó là lỗ hổng bảo mật, cố gắng giảm nhẹ nó đến mức không còn là vấn đề bảo mật cấp bách.

Điều đó chưa đạt được. Và chắc chắn không thứ gì là an toàn "tuyệt đối", vì chẳng có gì hoàn hảo 100%. Nhưng mọi người đang làm để mọi thứ tốt hơn.

Vấn đề lớn nhất thường không liên quan trực tiếp đến kỹ thuật, mà là ở cách người ta sử dụng công nghệ. Thật chẳng hiểu nổi khi thấy người ta sử dụng các phiên bản HĐH cũ rất không an toàn vì những lý do “trời ơi” – do nhà cung cấp làm cho việc cập nhật khó khăn hoặc không đứng mức. Có thể họ dùng phần cứng nào đó có trình điều khiển (driver) không phải nguồn mở hoặc không cập nhật qua mạng. Đây từng là vấn đề lớn trong thế giới nhúng, giờ đã đỡ hơn những vẫn còn.

Những "lỗ hổng bảo mật đã biết và không thể nâng cấp" là một trong những cơn ác mộng với IoT. Một số thiết bị thực sự không hề có mô hình nâng cấp, và nhà cung cấp chẳng hề quan tâm. Chúng ta từng chứng kiến điều đó ở các bộ định tuyến (router), nhưng với IoT hiển nhiên lan rộng đến nhiều thiết bị hơn.

Theo Infoworld

Bài phỏng vấn đầy đủ được đăng tại địa chỉ www.pcworld.com.vn/articles/cong-nghe/song-va-cong-nghe/2016/04/1247816/linux-chung-toi-dang-on/

PC WORLD VN, 10/2016
 

Từ khóa: hệ điều hành, hệ điều hành nguồn mở, Linus Torvalds, Linux