Đây là một quy trình nâng cao mà người dùng Linux mới không nên sử dụng.
ChromeOS hỗ trợ chạy mã tuỳ ý bên trong máy ảo. Đây là tài liệu cấp thấp về tính năng hỗ trợ đó. Để xem thông tin thân thiện hơn với người dùng, hãy tham khảo faq.
Điều kiện tiên quyết
- Đảm bảo rằng thiết bị ChromeOS của bạn hỗ trợ Linux trên ChromeOS
-
Đảm bảo bạn đang chạy ChromeOS phiên bản 72 (M72+) trở lên (phát hành vào tháng 2 năm 2019).
- Bắt đầu cập nhật hệ thống nếu cần và khởi động lại.
- Tính năng này sẽ hoạt động trong kênh ổn định.
- Bạn không cần chuyển sang chế độ nhà phát triển.
- Bật vùng chứa Linux
Tính năng thời gian chạy
Bạn nên kỳ vọng các tính năng sau đây sẽ hoạt động khi chạy vùng chứa Linux:
- Kết nối mạng đi (IPv4).
- Đồ hoạ không tăng tốc.
- Chương trình Wayland (ưu tiên; thông qua Sommelier).
- X (khả năng tương thích thông qua Sommelier và XWayland).
- Đầu ra âm thanh trong M74+ và tính năng thu/micrô thử nghiệm trong hình ảnh R79+.
Tính năng còn thiếu
- Giải mã phần cứng cho video.
- Trình chỉnh sửa phương thức nhập (IME).
Nhóm ChromeOS áp dụng một phương pháp có tính toán để triển khai các tính năng mới nhằm đảm bảo không ảnh hưởng đến tính bảo mật tổng thể của hệ thống. Hãy xem Câu hỏi thường gặp về Crostini để biết thông tin chi tiết hơn về hầu hết các chủ đề liên quan đến việc phát triển Linux trên ChromeOS.
Bảo mật
Mặc dù việc chạy mã tuỳ ý thường là một rủi ro về bảo mật, nhưng nhóm ChromeOS tin rằng mô hình thời gian chạy mà vùng chứa Linux trên ChromeOS sử dụng sẽ giảm thiểu và ngăn chặn rủi ro bảo mật đó một cách đầy đủ. Máy ảo (VM) là ranh giới bảo mật và mọi thứ bên trong đều được coi là không đáng tin cậy. Hình ảnh khách máy ảo hiện tại cũng đang chạy một nhân được tăng cường tuỳ chỉnh để cải thiện hơn nữa tính bảo mật của các vùng chứa, nhưng đây được coi là một tính năng hữu ích chứ không phải là tính năng được dựa vào để đảm bảo tính bảo mật tổng thể của hệ thống.
Trong mô hình này, phần còn lại của hệ thống ChromeOS sẽ được bảo vệ khỏi mã tuỳ ý (độc hại hoặc vô tình) chạy bên trong các vùng chứa bên trong máy ảo.
Liên hệ duy nhất với thế giới bên ngoài là thông qua crosvm và mỗi kênh sẽ giao tiếp với các quy trình riêng lẻ (mỗi quy trình đều được đặt trong hộp cát nghiêm ngặt).
Dữ liệu người dùng trong vùng chứa
Với sự chuyển đổi sang các dịch vụ đám mây, tư duy bảo mật hiện tại nhấn mạnh rằng việc lấy thông tin xác thực tài khoản (ví dụ: mật khẩu Google/Facebook) là một vectơ tấn công sinh lợi hơn so với việc tấn công máy tính để bàn hoặc máy tính xách tay. Điều này không sai. Giải pháp ChromeOS vùng chứa/máy ảo hiện tại không cải thiện được điều này. Nói một cách đơn giản, mọi thứ được nhập vào vùng chứa đều là trách nhiệm của người dùng hiện tại. Vì vậy, nếu bạn chạy một vùng chứa không an toàn hoặc bị xâm phạm, rồi nhập mật khẩu vào vùng chứa đó, thì mật khẩu có thể bị đánh cắp ngay cả khi phần còn lại của hệ thống ChromeOS vẫn an toàn.
Khả năng lưu trữ cố định quy trình
Các quy trình trong máy ảo và vùng chứa không tồn tại sau khi đăng xuất (vì chúng nằm trong bộ nhớ được mã hoá của người dùng) và sẽ tự động bị huỷ. Chúng cũng không tự động bắt đầu khi đăng nhập (để tránh các cuộc tấn công liên tục) và không thể tự động chạy khi khởi động (mà không có phiên đăng nhập) vì chúng sẽ không thể truy cập được (vì chúng nằm trong bộ nhớ được mã hoá của người dùng).
Mã có thể thực thi và ghi
Hình ảnh đĩa máy ảo Termina được tải xuống phân vùng có trạng thái có thể ghi như các thành phần khác của Chrome. Để đảm bảo nội dung không bị sửa đổi, dm-verity sẽ được sử dụng. Điều này cũng có nghĩa là chỉ những hình ảnh do Google ký mới có thể được tải và hình ảnh luôn ở chế độ chỉ đọc.
Tấn công phần cứng
Các lỗ hổng Meltdown/Spectre có ảnh hưởng đến việc sử dụng máy ảo một cách an toàn. Chúng tôi đã áp dụng các bản sửa lỗi và biện pháp giảm thiểu để đảm bảo máy ảo không thể tấn công hệ thống máy chủ hoặc các máy ảo khác. Hãy xem trang wiki Chromium OS về trạng thái lỗ hổng Meltdown và Spectre cho các thiết bị ChromeOS để biết thêm thông tin chi tiết.
Lifecycles
Sau khi bạn bật vùng chứa Linux (vùng chứa này sẽ cài đặt tất cả các thành phần cần thiết khác như Termina), hệ thống sẽ sẵn sàng sử dụng.
Mặc dù các thành phần này có thể được cài đặt, nhưng không có thành phần nào bắt đầu chạy ngay lập tức. Khi bạn đăng xuất, mọi thứ sẽ bị tắt và huỷ. Khi bạn đăng nhập, không có thành phần nào tự động khởi động lại.
Khi bạn chạy ứng dụng Terminal hoặc bất kỳ ứng dụng Linux nào khác bắt đầu vùng chứa và vùng chứa mẹ của ứng dụng đó chưa chạy, thì máy ảo Termina sẽ tự động khởi động và vùng chứa Linux mặc định trên ChromeOS (còn gọi là Crostini) sẽ được khởi động trong đó. Điều này cho phép bạn kết nối với vùng chứa thông qua SSH hoặc SFTP (thông qua ứng dụng Tệp).
Khi bạn đóng tất cả các ứng dụng hiển thị, máy ảo/vùng chứa sẽ không bị tắt. Nếu muốn, bạn có thể dừng và bắt đầu các ứng dụng này theo cách thủ công, cũng như tạo nhiều vùng chứa hơn chỉ vùng chứa mặc định.
Khả năng lưu trữ cố định dữ liệu
Tất cả các máy ảo và vùng chứa được tạo, cũng như dữ liệu trong các vùng chứa đó, sẽ tồn tại trong các phiên hoạt động của người dùng (đăng xuất/đăng nhập). Chúng được lưu giữ trong cùng một bộ nhớ được mã hoá cho mỗi người dùng như phần còn lại của dữ liệu trình duyệt.
Nếu một máy ảo hoặc vùng chứa bị dừng hoặc huỷ một cách không an toàn (ví dụ: mất điện), thì dữ liệu có thể bị mất và cần được khôi phục như mọi thứ khác trong hệ thống.
Hỗ trợ về thiết bị
Mặc dù chúng tôi mong muốn Linux trên ChromeOS hoạt động với tất cả các thiết bị Chromebook, nhưng các tính năng cần thiết của nhân và phần cứng sẽ giới hạn nơi có thể triển khai. Nhóm đã tập trung vào tính bảo mật và độ ổn định của hệ thống trong khi điều chỉnh các tính năng cho phiên bản cũ khi có ý nghĩa. Đây là một lĩnh vực mà chúng tôi đang nỗ lực không ngừng.
Hiện được hỗ trợ
Để xem danh sách các thiết bị hiện được hỗ trợ, vui lòng tham khảo bài viết Các hệ thống ChromeOS hỗ trợ Linux.
Yêu cầu về phần cứng
Mặc dù hiện không có yêu cầu tối thiểu về RAM, bộ nhớ hoặc tốc độ CPU để chạy vùng chứa Linux trên ChromeOS, nhưng bạn càng có nhiều tài nguyên của mỗi loại thì hệ thống sẽ hoạt động càng tốt.
Tuy nhiên, bạn sẽ cần một CPU hỗ trợ tính năng ảo hoá phần cứng. Trên các nền tảng x86, tính năng này có nhiều tên. Intel gọi tính năng này là VT-x và VMX. AMD gọi tính năng này là AMD-V & SVM.
Hệ thống BayTrail
Chromebook sử dụng BayTrail của Intel không có VT-x. Mặc dù CPU này thường có VMX, nhưng biến thể trong Chromebook thì không có và do đó, rất tiếc là sẽ không bao giờ được hỗ trợ.
Bạn có thể tra cứu xem một bo mạch có được hỗ trợ hay không bằng cách tìm kiếm trong danh sách thiết bị công khai của chúng tôi trong cột BayTrail Platform.
Nhân cũ
Chúng tôi không có kế hoạch hỗ trợ Linux 3.14 trở xuống. Các phiên bản này yêu cầu chuyển ngược các tính năng mới, vốn rất rộng rãi và thường xâm nhập. Ví dụ:
Bạn có thể tra cứu xem một bo mạch có được hỗ trợ hay không bằng cách tìm kiếm các số phiên bản nhỏ hơn 3.14 trong danh sách thiết bị công khai của chúng tôi trong cột Kernel.
CPU ARM 32 bit
Việc làm cho máy ảo hoạt động trên CPU ARM 32 bit là khó khăn, không theo tiêu chuẩn và yêu cầu phải phối hợp với phần sụn. Rất tiếc, phần sụn ChromeOS có xu hướng không định cấu hình các tiện ích. Do đó, các hệ thống này không được hỗ trợ.
Bạn có thể tra cứu xem một bo mạch có được hỗ trợ hay không bằng cách tìm kiếm trong danh sách thiết bị công khai của chúng tôi trong cột arm Kernel ABI.