Flower News: Pengembang Fuchsia OS Akan Menambahkan Dukungan Untuk Menjalankan Program Linux yang Tidak Dimodifikasi



Terlepas dari kenyataan bahwa ada sedikit berita tentang Fuchsia OS, proyek tersebut terus berkembang dan sangat aktif. Bukti - Pesan dari pengembang tentang rencana mereka untuk menerapkan mekanisme untuk menjalankan program yang tidak dimodifikasi yang dibuat untuk Linux.



Mekanisme ini didasarkan pada "lapisan" khusus, yang disebut starnix. Dialah yang menyediakan kompatibilitas dengan Linux ABI.



Antarmuka sistem kernel Linux diimplementasikan dalam penangan yang berjalan sebagai proses untuk sistem operasi Fuchsia. Prosesnya bekerja di ruang pengguna, menerjemahkan permintaan program Linux menjadi panggilan ke subsistem OS yang sesuai. Selama pengembangan proyek ini, banyak subsistem yang harus dimodifikasi sehingga semua antarmuka sistem yang diperlukan tersedia untuk pengguna.



Arsitektur dari "lapisan", menurut pengembangnya, sangat mirip dengan subsistem serupa untuk Windows, yang disebut Subsistem Windows untuk Linux. Ini juga digunakan untuk menerjemahkan panggilan sistem Linux ke panggilan sistem Windows.



Kode interlayer akan ditulis dengan Rust untuk mengurangi masalah kerentanan. Pengembang percaya bahwa bahasa pemrograman ini akan membantu meminimalkan risiko kerentanan yang dapat dieksploitasi untuk meningkatkan hak istimewa dari proses Linux ke proses starnix itu sendiri. Untuk ini, mekanisme perlindungan Fuchsia standar juga akan digunakan.



Contoh: saat mengakses sistem file, tumpukan jaringan, atau subsistem grafis, starnix akan menerjemahkan permintaan, mengubah ABI Linux menjadi ABI Sistem Fuchsia. Ini, pada gilirannya, akan memungkinkan pembatasan yang sama yang digunakan untuk proses normal di Fuchsia. Mekanisme otorisasi Linux standar juga akan digunakan.





Perlu dicatat bahwa pengembang OS telah mengembangkan kemampuan untuk menjalankan aplikasi Linux di bawah Fuchsia sebelumnya. Namun mereka menggunakan implementasi yang mirip dengan yang digunakan di Chrome OS. Secara umum, Anda dapat memahaminya, karena Fuchsia adalah sejenis proyek hewan peliharaan Google. Sebelumnya, untuk kompatibilitas dengan Linux, diusulkan untuk menggunakan pustaka Machina, yang menjalankan perangkat lunak Linux dalam mesin virtual khusus, yang dibentuk menggunakan hypervisor berdasarkan kernel Zirkon dan spesifikasi VirtIO.



Sejauh yang Anda tahu, virtualisasi akan digunakan secara paralel di Fuchsia, karena tidak mudah untuk mengimplementasikan antarmuka sistem Linux. Kemungkinan besar, virtualisasi akan digunakan bersama dengan "lapisan". Dalam hal ini, kernel Linux akan berjalan di mesin virtual terpisah, yang tidak buruk, tetapi membutuhkan sumber daya. Karena intensitas sumber daya, tim Microsoft yang bekerja pada Subsistem Windows untuk Linux membatalkan penerjemah dan menggunakan kernel Linux asli di WSL 2.



Ngomong-ngomong, pengembang Fuchsia tidak memakan roti mereka tanpa alasan - OS sudah menyediakan tingkat kompatibilitas POSIX Lite, yang bekerja di atas Sistem Fuchsia ABI. Semua ini memungkinkan Anda untuk menjalankan sejumlah program Linux, tetapi Anda perlu mengkompilasi ulang aplikasi atau bahkan memodifikasi kode sumbernya. Salah satu masalah dengan POSIX Lite adalah implementasi yang tidak lengkap dari semua fitur POSIX.



Masalah utama di sini adalah kurangnya dukungan untuk panggilan untuk mengubah status proses global, termasuk kill. Karenanya, jika terdapat ketidaksesuaian dengan konsep keselamatan di Fuchsia, maka dilarang mengubah status global. Namun, menggunakan versi lite dari POSIX terbayar ketika porting aplikasi open source. Benar, ada masalah dengan menjalankan program yang tidak memiliki akses ke kode.



Adapun Fuchsia, ini adalah OS universal: di mana tepatnya akan digunakan masih belum diketahui. Namun, ini kompatibel dengan hampir semua jenis perangkat, termasuk workstation, smartphone, perangkat IoT, dan elektronik konsumen. Pengembangan dilakukan dengan mempertimbangkan pengalaman membuat platform Android dan kekurangan di bidang penskalaan dan keamanan.



Basis sistem operasi baru ini adalah mikrokernel Zirkon, yang pada gilirannya didasarkan pada perkembangan proyek LK.





Proyek ini telah relatif aktif selama beberapa tahun, dengan saran yang dipublikasikan di jaringan bahwa Google sedang mengembangkannya sebagai alternatif untuk Android. Selama ini OS terus berkembang. Misalnya, pada tahun 2017, dilaporkan bahwa OS menerima antarmuka pengguna baru, kemampuan baris perintah, dan beberapa fitur lainnya. Pada 2018, Google merilis versi baru OS-nya, yang sudah bisa diuji.



Fuchsia memiliki GUI sendiri yang ditulis dalam Dart menggunakan framework flutter.



Selain itu, proyek ini mengembangkan:



  • kerangka kerja untuk membangun antarmuka pengguna Peridot;
  • Manajer paket Fargo;
  • perpustakaan standar libc;
  • sistem rendering Escher;
  • Pengemudi Vulkan Magma;
  • Manajer komposit yang indah;
  • sistem file MinFS, MemFS, ThinFS (FAT dalam bahasa Go) dan Blobfs
  • Manajer partisi FVM.


Untuk pengembangan aplikasi, dukungan untuk C / C ++, Dart disediakan, Rust juga diizinkan di komponen sistem, Go diizinkan di tumpukan jaringan, dan Python digunakan dalam sistem perakitan bahasa.





Manajer sistem digunakan untuk memuat, yang bekerja dengan appmgr untuk membuat lingkungan perangkat lunak awal. Sysmgr dan basemgr digunakan untuk membentuk lingkungan boot dan lingkungan pengguna.



Untuk melindungi sistem, "kotak pasir" digunakan, yang tidak memberikan proses baru akses ke objek kernel, selain itu, tidak ada memori yang dialokasikan untuk mereka dan tidak ada kode yang dijalankan. Mengakses sumber daya ditangani oleh sistem namespace yang menentukan izin yang tersedia. Sandbox menggunakan kerangka kerja yang memungkinkan pembuatan komponen khusus yang dapat berinteraksi dengan komponen lain melalui IPC.






All Articles