Saya suka ide di balik snap dan bermain dengannya di Ubuntu VM.
Ikhtisar Snapcraft
Snapcraft adalah alat pembuatan dan pengemasan yang membantu Anda mengemas perangkat lunak Anda dengan cepat. Itu membuatnya mudah untuk memasukkan komponen dari berbagai sumber dan membangun teknologi atau solusi. Konsep kunci
Paket .snap untuk sistem Ubuntu Core berisi semua dependensinya. Ini memiliki beberapa keunggulan dibandingkan penanganan ketergantungan berbasis deb atau rpm tradisional, yang terpenting adalah bahwa pengembang selalu dapat diyakinkan bahwa tidak ada regresi yang dipicu oleh perubahan pada sistem di bawah aplikasi mereka.
Snapcraft memudahkan pengikatan dependensi ini dengan memungkinkan Anda menentukannya sebagai "bagian" di file snapcraft.yaml. Tajam
Snappy Ubuntu Core adalah versi baru Ubuntu dengan pembaruan transaksional - gambar server minimal dengan pustaka yang sama dengan Ubuntu saat ini, tetapi aplikasi disediakan melalui mekanisme yang lebih sederhana.
Aplikasi cepat dan Ubuntu Core itu sendiri dapat ditingkatkan secara atom dan dibatalkan jika diperlukan. Aplikasi juga sangat dibatasi dan dikotak pasir untuk melindungi data dan sistem Anda.
Pada teknologi apa berbasis snap? Bagaimana tampilan arsitektur dan toolkit? Apakah snap tergantung pada fitur kernel Linux?
Saya bertanya, karena saya bertanya-tanya apakah di masa depan saya akan dapat menggunakan paket snap yang sama juga di macOS?
Klarifikasi, setelah komentar pertama:
Saya tahu bahwa macOS dan Ubuntu tidak kompatibel biner. Diperlukan kompilasi ulang. Hampir semua Open Source sudah tersedia untuk macOS dengan Homebrew . Pengembang dapat mengembangkan di macOS dan menggunakan Ubuntu ketika snap akan (di masa depan) tersedia untuk macOS.
sumber
Jawaban:
Ya, berkat stabilitas antarmuka syscall Linux, ini dimungkinkan.
Salah satu komitmen besar Linus Torvalds untuk pengguna Linux adalah set antarmuka yang ditawarkan oleh kernel stabil. Banyak orang tidak menghargai nilai ini, atau betapa sulitnya sebagai pemimpin proyek terbuka untuk mencapai komitmen itu. Pertimbangkan misalnya bagaimana perubahan yang tidak terduga dalam API GNOME berbeda! Ketika Anda mendengar tentang Linus mendapatkan intens di milis, itu hampir selalu karena beberapa committer ke kernel memutuskan untuk mengubah antarmuka seperti 'karena mereka punya ide yang lebih baik'. Linus mengatakan Anda dapat berinovasi secara liar DI DALAM kernel, tetapi jangan merusak aplikasi 'userspace' yang bergantung pada syscalls yang ada.
Sebagai konsekuensi dari kestabilan itu, kernel-kernel lain mungkin menawarkan syscall yang sama, memungkinkan aplikasi yang dibangun di Linux untuk berjalan di kernel yang lain.
Salah satu contohnya adalah proyek Joyent Triton, yang menawarkan syscall yang kompatibel dengan Linux dalam wadah pada SmartOS (keturunan IllumOS, keturunan Solaris).
Contoh yang lebih banyak dikenal adalah subsistem Linux baru di Windows .
Tentu saja, berapa banyak syscalls yang ditawarkan, dan seberapa kompatibel bug-for-bug mereka, adalah pertanyaan sebenarnya. Setidaknya untuk saat ini, tidak ada lingkungan lain di mana semua syscall yang diperlukan ada, karena yang digunakan secara relatif relatif baru dan jauh dalam cara kernel berpikir tentang hal-hal yang dikelola.
Tetapi mereka pasti akan datang, pada waktunya, dan saya pikir dengan demikian akan digunakan dalam berbagai konteks.
Yang sangat keren, tambalan selamat datang :)
sumber
Meskipun saya tidak dapat menemukan informasi tentang macOS, OMG ini ! Artikel Ubuntu memiliki kutipan menarik dari Mark Shuttleworth:
Jika "masuk akal" untuk menjalankannya di Windows, saya akan mengatakan hal yang sama untuk macOS, kecuali bahwa Microsoft tampaknya bekerja sama dengan Canonical, yang bukan sesuatu yang saya dengar tentang Apple.
Dokumentasi tentang kebijakan keamanan Snap dan kotak pasir dan entri Wiki Arch di snapd informatif:
Dari Arch Wiki:
Dari kebijakan:
Meskipun AppArmor dan seccomp hanya untuk Linux, sepertinya kurungan dapat dibuat opsional, jadi kita dapat mengabaikannya. Lalu ada penggunaan devpts, cgroups dan mount namespaces. Jika ada pemblokiran, saya pikir itu untuk mereka. Saya tidak cukup terbiasa dengan BSD untuk mengatakan apa yang setara.
The
snapd
aplikasi itu sendiri ditulis dalam Go, yang harus membuatnya cukup cross-platform. Memang, beberapa file memiliki target pembangunan yang sangat menarik :osutil/group_other.go
:osutil/group_linux.go
:Jadi sepertinya seseorang tertarik pada hal ini.
sumber