Đây là một quy trình nâng cao mà người dùng Linux mới không nên thực hiện.
ChromeOS hỗ trợ chạy mã tuỳ ý bên trong VM. Đây là tài liệu cấp thấp về chế độ hỗ trợ đó; để xem thông tin thân thiện với người dùng hơn, hãy xem faq.
Điều kiện tiên quyết
- Đảm bảo 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 thiết bị sang chế độ nhà phát triển.
- Bật vùng chứa Linux
Các tính năng trong thời gian chạy
Bạn có thể sử dụng các tính năng sau khi chạy vùng chứa Linux:
- Kết nối mạng đi (IPv4).
- Đồ hoạ không được tăng tốc.
- Đồ hoạ được tăng tốc (thông qua OpenGL).
- Các chương trình Wayland (ưu tiên; thông qua Sommelier).
- Các chương trình X (khả năng tương thích thông qua Sommelier và XWayland).
- Đầu ra âm thanh trong M74 trở lên và micrô/thiết bị ghi âm thử nghiệm trong hình ảnh R79 trở lên.
Tính năng còn thiếu
Chúng tôi đang nỗ lực để hoàn thiện nhiều tính năng cơ bản. Sau đây là một số ví dụ rõ ràng:
- Giải mã phần cứng cho video.
- IME.
Mặc dù có nhiều yếu tố khác cần cân nhắc, nhưng nhóm ChromeOS sẽ áp dụng một phương pháp thận trọng để triển khai các tính năng mới nhằm đảm bảo tính bảo mật tổng thể của hệ thống không bị ảnh hưởng. Hãy xem Câu hỏi thường gặp về Crostini để biết thêm thông tin chi tiết 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 bảo mật, nhưng nhóm ChromeOS tin rằng mô hình thời gian chạy mà Linux sử dụng trong vùng chứa ChromeOS sẽ giảm thiểu và ngăn chặn rủi ro bảo mật đó một cách hiệu quả. 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 VM 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 phải đượ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.
Cách duy nhất để liên hệ 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).
Dữ liệu người dùng trong vùng chứa
Khi chuyển sang các dịch vụ đám mây, tư duy bảo mật hiện tại nhấn mạnh đến việc lấy thông tin đăng nhập tài khoản (ví dụ: mật khẩu Google/Facebook của bạn) 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 của bạn. Những người này không sai. Giải pháp VM/container ChromeOS hiện tại không cải thiện được vấn đề này. Nói một cách đơn giản, mọi nội dung được nhập vào vùng chứa đều thuộc 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 nhập, 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ữ dài lâu của quy trình
Các quy trình trong máy ảo và vùng chứa sẽ không tồn tại sau khi người dùng đă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 khởi động khi đăng nhập (để tránh các cuộc tấn công dai dẳng), cũng như không thể tự động chạy khi khởi động (nếu không có phiên đăng nhập) vì chúng sẽ không truy cập được (vì 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 ả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 biện pháp khắc phục và giảm thiểu để đảm bảo rằng các 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 về Chromium OS để biết trạng thái dễ bị tấn công của Meltdown và Spectre đối với 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à dừng, còn khi bạn đăng nhập, không có gì tự động khởi động lại.
Khi bạn chạy ứng dụng Cửa sổ dòng lệnh hoặc bất kỳ ứng dụng Linux nào khác khởi động vùng chứa và vùng chứa mẹ của ứng dụng đó chưa chạy, thì VM 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ẽ khởi động trong VM đó. Nhờ đó, bạn có thể 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 đang hiển thị, VM/các vùng chứa sẽ không bị tắt. Nếu muốn, bạn có thể tự dừng và bắt đầu các vùng chứa, 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 VM và vùng chứa đã tạo, cũng như dữ liệu trong các vùng chứa đó, sẽ duy trì trong các phiên người dùng (đăng xuất/đăng nhập). Các cookie này được lưu trữ 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 bị huỷ không đúng cách (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 muốn Linux trên ChromeOS hoạt động với tất cả các Chromebook, nhưng các tính năng phần cứng và nhân bắt buộc sẽ giới hạn phạm vi triển khai. Nhóm này tập trung vào tính bảo mật và độ ổn định của hệ thống trong khi chuyển ngược các tính năng khi cần thiết. Đây là một lĩnh vực mà chúng tôi không ngừng nỗ lực.
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 tại 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 hệ thống sẽ hoạt động hiệu quả hơn nếu bạn có nhiều hơn mỗi thành phần.
Tuy nhiên, bạn sẽ cần một CPU hỗ trợ ảo hoá phần cứng. Trên các nền tảng x86, điều này có nhiều tên. Intel gọi công nghệ này là VT-x và VMX. AMD gọi đó là AMD-V 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. Do đó, rất tiếc là CPU này sẽ không bao giờ được hỗ trợ.
Bạn có thể tra cứu xem một bảng có được hỗ trợ hay không bằng cách tìm kiếm BayTrail trong danh sách thiết bị công khai của chúng tôi trong cột Platform.
Hạt nhân cũ
Chúng tôi không có kế hoạch hỗ trợ Linux 3.14 trở xuống. Những tính năng này yêu cầu các bản vá ngược cho các tính năng mới, có phạm vi rộng và thường xâm nhập. Ví dụ:
Bạn có thể tra cứu xem một bảng có được hỗ trợ hay không bằng cách tìm kiếm danh sách thiết bị công khai của chúng tôi để tìm số phiên bản nhỏ hơn 3.14 trong cột Kernel.
CPU ARM 32 bit
Việc thiết lập để máy ảo hoạt động trên CPU ARM 32 bit là một việc khó khăn, không theo tiêu chuẩn và cần có sự phối hợp với chương trình cơ sở. Rất tiếc, chương trình cơ sở của ChromeOS thường không định cấu hình các tiện ích. Do đó, những hệ thống này không được hỗ trợ.
Bạn có thể tìm xem một bảng có được hỗ trợ hay không bằng cách tìm arm trong danh sách thiết bị công khai của chúng tôi trong cột Kernel ABI.