Mục lục bài viết
- Linux là gì?
- Tại sao Android là Linux?
- Tại sao Android KHÔNG phải là Linux, nó đâu có sử dụng Linux Kernel chuẩn đâu?
- Nó không bao gồm hệ thống phần mềm và thư viện GNU
- Các ứng dụng Linux đâu có chạy được trên Android? Và cả ngược lại nữa.
- Android là sản phẩm của Google
- Android có thật sự là nguồn mở?
- Mặc định thì bạn không thể chỉnh sửa được Android
- Kết luận
Android có phải là Linux? Một câu hỏi trông rất đơn giản, cảm giác chỉ cần trả lời “Có” hoặc “Không” là xong. Tuy nhiên nó đã ngốn hàng năm trời tranh luận của cộng đồng Android và Linux mà vẫn chưa ngã ngũ.
Có hai điểm quan trọng khiến câu hỏi này rất khó để trả lời một cách chính xác:
- Khái niệm Linux thường được dùng để chỉ một số hệ điều hành có họ hàng, nhìn qua rất giống nhau nhưng thực tế lại rất khác biệt.
- Không có một khái niệm cụ thể nào định nghĩa một hệ điều hành như thế nào thì được gọi là Linux
Bài viết này sẽ giúp bạn gỡ rối một chút về việc tại sao có một số phần mềm được gọi là “Linux”. Sau đó, chúng ta sẽ đi sâu hơn về việc tranh luận “Android có phải là Linux” hay không nhé.
Linux là gì?
Khi ai đó nhắc đến “Linux” thì có thể họ đang muốn nói đến các trường hợp sau:
- Nhân Linux (Linux Kernel) Đây là một phần rất nhỏ, nhưng lại vô cùng quan trọng của một hệ điều hành. Phần lõi này chịu trách nhiệm tương tác với phần cứng, cung cấp các dịch vụ để khởi động lại hệ thống. Nó kiêm luôn cả việc quản lý CPU và bộ nhớ của máy tính. Nhân Linux, cũng giống như nhân các hệ điều hành khác, chỉ có thể hoạt động như một phần của một hệ điều hành. Không thể có một hệ điều hành nào mà chỉ có mỗi phần nhân này chạy một mình được. Bởi vì Android là một hệ điều hành, cho nên bạn có thể loại trừ ngay việc coi Android là một nhân Linux đi nhé.
- Một phiên bản của hệ điều hành Linux (Linux Distro, Linux Distribution). Đây là một hệ điều hành có chứa phần nhân Linux. Ngoài ra nó được tích hợp thêm các phần mềm, công cụ, các thư viện. Ngày nay nó phải có thêm giao diện người dùng (GUI) nữa. Thông thường thì ngoài các thứ đó, các Linux distro này còn phải có thêm một số phần mềm như trình duyệt, trình soạn thảo văn bản, xem film và nghe nhạc. Những phần mềm này được thiết kế để chạy trên Nhân Linux nhưng nó không được coi là một phần của nhân Linux đâu nhé. Khi nói về một hệ điều hành Linux thì bạn có thể dùng các thuật ngữ “distribution“, “distro” hay “hệ điều hành” thay thế nhau cũng được. Bởi vì Nhân Linux là miễn phí, cho nên bất kỳ ai cũng có thể lấy nó về và thêm vào vài thứ để tạo ra một hệ điều hành. Do vậy nên số lượng các hệ điều hành Linux nhiều không đếm nổi luôn.
- GNU/Linux. Đa phần các Linux distro được tạo ra bởi việc kết hợp một nhân linux với hệ thống GNU. Đó là lý do nhiều người cho rằng nên gọi các Linux distro là GNU/Linux mới đúng. Đây lại là một tranh luận tốn thời gian khác. Để hiểu đơn giản, bạn chỉ cần biết rằng giữa hệ thống phần mềm GNU và nhân Linux có liên quan đến nhau rất chặt chẽ. Từ giờ mình sẽ chỉ dùng thuật ngữ “Linux distro” thôi cho gọn.
Tới đây chắc bạn thấy vẫn chưa có gì liên quan đến câu hỏi ban đầu đúng không. Chúng ta còn phải tìm hiểu thêm một chút nữa trước khi đi vào thảo luận. Đó là việc bản thân khái niệm “Android” cũng mang hai ý nghĩa.
Đầu tiên, Android ám chỉ Android Open Source Project (AOSP). Đây là một dự án nguồn mở mà ở đó Google đã viết nên mã nguồn của Android. Về cơ bản, bạn có thể dùng mã nguồn này để xây dựng một hệ điều hành chạy trên điện thoại, máy tính bảng. Tuy nhiên hệ điều hành này sẽ thiếu rất nhiều chức năng cần thiết. Đặc biệt là Google Mobile Services (GMS).
GMS này là một bộ các app và APIs thiết yếu đối với người dùng. Giống như việc iTune và App Store là không thể thiếu với người dùng macOS vậy. AOSP là mã nguồn mở, nhưng thật sự đó chỉ là phần khung trống trơ mà thôi. Cái người dùng mong đợi là một hệ điều hành đầy đủ chức năng và phải thật tiện dụng cơ.
Thứ hai Andoid dùng để chỉ hệ điều hành mà bạn thường thấy trong các điện thoại thông minh, máy tính bảng. Android này về bản chất chính là AOSP, ngoài ra có thể có thêm vài thay đổi từ nhà sản xuất. Không chỉ có thế, nó còn được tích hợp thêm rất nhiều các đoạn mã độc quyền của nhà sản xuất. Cho nên đừng nghĩ cứ điện thoại Android là giống nhau nhé. Khác nhau rất nhiều đấy.
Đa số các tranh luận về việc Android có phải là Linux hay không đều cố gắng áp dụng cho cả hai cách hiểu vể Android. Tuy nhiên có một vài trường hợp câu trả lời sẽ rất khác, tùy xem bạn định nghĩa như thế nào nữa. Bạn coi Android là AOSP hay cái mà bạn vẫn thấy trong các thiết bị chạy Android? Hãy cùng nghe qua các quan điểm sau.
Tại sao Android là Linux?
Chỉ có một lý luận duy nhất để chứng minh rằng Android là Linux. Tuy nhiên lý luận này vô cùng có lý. Đó là vì mỗi thiết bị chạy Android đều có chứa một nhân Linux. Cho nên, Android là Linux chứ sao. Bạn có thể xem phiên bản linux kernel mà mình đang sử dụng bằng cách vào Setting sau đó tìm đến About Device > Software info.
Tuy nhiên, Android không chỉ là mỗi phần nhân Linux. Nó là một hệ điều hành đầy đủ chức năng với rất nhiều các thư viện được thêm vào, có cả GUI, app và vô số thứ nữa. Nghe có vẻ giống một Linux distro thì phải? Có phải Android là một Linux distro không?
Trong thực tế, có rất nhiều Linux distro, cho nên việc gom hết lại cho vào một định nghĩa: Thế nào là một Linux distro là rất khó.
Ngoài việc phải có một Linux kernel ra, định nghĩa Linux distro khá là mở và khó xác định. Cho nên cũng khó thể nói rằng Android là một Linux distro.
Tại sao Android KHÔNG phải là Linux, nó đâu có sử dụng Linux Kernel chuẩn đâu?
Để có thể tạo ra một hệ điều hành phù hợp với một chiếc điện thoại, đội ngũ phát triển Android đã phải thay đổi Linux kernel khá nhiều. Họ đã phải thêm vào các thư viện mới, các APIs và các công cụ được thiết kế riêng biệt, tối ưu hóa cho Android
Trở lại luận điểm đầu tiên cho rằng Android là một Linux distro. Lý do chính để luận điểm này có lý là bởi vì Android có dùng Linux kernel. Nhưng cái đó đâu phải kernel chuẩn đâu? Bị thay đổi rất nhiều luôn rồi mà?
Thật ra, cũng không hiếm khi bạn gặp một Linux distro sử dụng phần kernel đã bị thay đổi.
Linux kernel được phân phối dưới hiệu lực của giấy phép GNU (General Public License). Cho nên ai cũng có thể sửa mã nguồn của nó. Và thực tế thì cũng rất nhiều Linux distro đã làm việc này. Vậy thì vấn đề sẽ là đội ngũ phát triển Android đã sửa phần nhân này “mạnh tay” đến mức nào. Theo một nguồn từ Linux wiki thì đội phát triển đã thay đổi một lượng “không quá nhiều, để thay đổi vài cái thông thường ở phần nhân”.
Nó không bao gồm hệ thống phần mềm và thư viện GNU
Có một điều phải thừa nhận rằng chính GNU software là linh hồn của một Linux distro. Như đã nói ở trên, một Linux distro thậm chí nên được gọi là GNU/Linux. Do vậy nên chẳng thể nào Android lại là Linux được. Nó có quá ít thành phần của một GNU software. Rât dễ nhận thấy nhất là đội ngũ phát triển Android đã tạo ra 1 thư viện mới gọi là Bionic để thay thế cho GNU C Library.
Cho dù bạn có thể nói rằng Linux distro đâu nhất thiết cần GNU, thì vẫn phải thừa nhận rằng thiếu vắng GNU làm Android khác hẳn các Linux distro khác. Khác biệt một cách rất rõ rệt luôn.
Các ứng dụng Linux đâu có chạy được trên Android? Và cả ngược lại nữa.
Nếu bạn chọn ngẫu nhiên vài Linux distro thì bạn sẽ thấy nhiều khi nó chỉ có mỗi phần kernel là giống nhau. Tuy nhiên các ứng dụng vẫn có thể dùng được chung giữa các Linux distro. Trong thực tế, Android có rất ít điểm chung, về mặt phần mềm, với một Linux distro. Thế nên chẳng thể nào chạy các app cho Linux trên Android được.
Điều ngược lại cũng như vậy. Các ứng dụng cho Android cần rất nhiều thư viện riêng, môi trường riêng chỉ có trên Android. Thế nên các ứng dụng cho Android chả thể chạy được ở môi trường nào khác ngoài Android đâu.
Android là sản phẩm của Google
Google dù đã tung ra phần cơ bản của Android thông qua AOSP. Tuy nhiên, họ lại phát triển phiên bản tiếp theo của AOSP cho riêng mình. Thực tế là tại website của AOSP đã chỉ ra rằng “Google chịu trách nhiệm chính cho việc định hướng chiến lược của Android như một nền tảng và như một sản phẩm”
Thêm vào đó, mặc dù bất kỳ ai cũng có thể thêm thắt, sửa dổi AOSP theo nhiều cách. Tuy nhiên website AOSP chỉ ra rất rõ ràng rằng người lãnh đạo các dự án thường sẽ là nhân viên của Google. Google cũng sở hữu thương hiệu và logo Android. Bởi vậy nên dù bạn có tự xây dựng một hệ điều hành dựa trên AOSP. Bạn sẽ vẫn phải liên lạc với Google để có thể sử dụng cái tên Android đấy nhé.
Mặc dù thường thì một Linux distro phải có mối liên hệ với một công ty nào đó. Như Ubuntu và Canonical chẳng hạn. Nhưng việc một Linux distro được phát triển bí mật, toàn bộ bởi một công ty là điều chả thấy bao giờ.
Android có thật sự là nguồn mở?
Mặc dù tổ chức Free Software Foundation khuyến cáo các nhà phát triển không nên thêm các phần mềm độc quyền vào Linux distro của họ, nhưng vẫn không có quy định nào cụ thể về vấn đề này. Thực tế thì rất nhiều distro trước khi tung ra đã được thêm vào kha khá các đoạn mã độc quyền như thế. Thế nên câu hỏi thực tế phải là: Android có thật sự mở như các distro thông thường khác?
Dù rằng AOSP còn rất xa mới đạt đến chuẩn của một dự án mã nguồn mở, nhưng code của nó cũng được công bố rộng rãi. Ai cũng có thể xem và sửa đổi.
Tuy nhiên, từ cái AOSP sơ khai đó cho tới khi nó đến tay bạn là cả một quá trình. Trong quá trình đó, rất nhiều đoạn code độc quyền đã được thêm vào. Cho dù bạn có lựa chọn một cái máy chạy Android thuần như Nexus hay Pixel, hay chọn của nhà sản xuất nào thì cũng vẫn vậy cả. Tất cả đều đã được sửa đổi rất nhiều.
Bạn có thể nói rằng như thế vẫn là chưa đủ để phủ nhận Android là một Linux distro. Tuy nhiên, những phần quan trọng mà người dùng nhìn thấy thì lại là độc quyền bởi các nhà sản xuất. Ví dụ điển hình là Google Mobile Services hay như TouchWiz của Samsung chẳng hạn. Điều này khiến Android tạo ra cảm giác “đóng” nhiều hơn là cảm giác “mở” cần có của một distro.
Mặc định thì bạn không thể chỉnh sửa được Android
Đối với một Linux distro mà nói thì bạn rất dễ dàng để chỉnh sửa. Thậm chí bạn có thể can thiệp rất sâu nữa. Android thì không thế. Mặc định nó không cho bạn quyền can thiệp sâu vào hệ thống. Các phần được cho là nhạy cảm của hệ thống cũng bị khóa chặt luôn. Thế nên các bạn mới nghe đến thuật ngữ ‘root máy‘. Đây chính là thao tác để vượt qua các rào cản này. Bạn chỉ có thể can thiệp sâu hơn vào hệ thống sau khi đã root máy.
Kết luận
Ta cùng quay lại câu hỏi ban đầu: Android có phải là một Linux distro? Câu trả lời lại phụ thuộc rất nhiều vào việc bạn định nghĩa thế nào là một Linux distro. Nếu bạn cho rằng Linux distro phải như kiểu GNU/Linux ấy, thì câu trả lời đương nhiên là không rồi.
Bạn coi Linux distro là một hệ điều hành có nhân Linux cộng với vài tiêu chí nữa? Câu trả lời trong trường hợp này có vẻ như vẫn là không. Dù Android vẫn có nhân Linux nhưng ngoài ra nó trông chả giống các Linux distro khác tí nào. Nó ‘đóng’ tịt, nó không chạy Linux app. Chả giống tí nào.
Tuy nhiên nếu bạn chỉ định nghĩa Linux distro là một hệ điều hành dựa trên nhân Linux thôi thì đúng. Bạn có thể gọi Android là một Linux distro. Có thể trông nó hơi lạc loài, hơi đặc thù một chút, nhưng nó vẫn dựa trên nhân Linux. Cũng giống như việc Ubuntu, Fedora, Debian… vẫn dựa trên nhân Linux vậy.
Đọc đến đây rồi thì quan điểm của bạn như thế nào? Android là Linux hay không là Linux? Hãy cho mình biết ở phần comment nhé.
Nguồn AndroidAuthority