Saya pikir sulit bagi saya untuk merumuskan judul. Namun, saya masih bisa menjelaskan masalah saya lebih detail di sini.
Saya merancang produk tertanam yang terdiri dari layanan cloud dan perangkat keras tertanam. Layanan cloud akan memiliki REST-api (meskipun tersedia bukan titik penjualan) dan akan berkomunikasi dengan perangkat keras yang disematkan. Idealnya, perangkat keras yang disematkan juga akan memiliki antarmuka seperti REST untuk komunikasi. Masalahnya adalah menemukan tumpukan perangkat lunak yang baik untuk itu (atau itulah yang saya pikir masalahnya).
Pilihan terbaik menurut saya akan menjadi semacam distribusi Linux tertanam dengan aplikasi web sendiri diinstal di dalamnya (Ubuntu Core + Django ...?). Apakah mungkin untuk menggunakan kombinasi ini dalam produk komersial tetapi pada saat yang sama menjaga agar webapp tetap tertutup?
Situs web Ubuntu menyediakan beberapa platform yang didukung dan beberapa di antaranya terlihat ideal untuk penggunaan saya. Seperti yang saya katakan sebelumnya, perhatian utama saya saat ini adalah perizinan.
sumber
Jawaban:
Pertama-tama, perhatikan bahwa saya bukan pengacara. Dapatkan satu jika Anda merasa perlu nasihat hukum. Lisensi adalah salah satu area di mana saya akan merekomendasikan satu.
Lisensi open source sangat bervariasi dalam hal apa yang mereka perbolehkan. Mari kita gunakan contoh perpustakaan yang Anda gunakan (tidak dimodifikasi) dalam proyek Anda. Dua lisensi umum yang mungkin Anda temukan adalah GPL dan LGPL, yang berbeda pada cara mereka menangani masalah ini. Dari artikel ini , misalnya:
Contoh lisensi lain yang sedikit lebih terbuka dalam hal ini termasuk MIT dan BSD.
Banyak perangkat lunak Linux adalah GPL, dan ini kemungkinan akan mencakup komponen OS apa pun yang Anda pilih (misalnya Ubuntu Core). Namun, selama proyek Anda tidak dianggap sebagai karya turunan dari proyek ini, Anda tidak akan terpengaruh. Info lebih lanjut dalam jawaban ini .
Dari perspektif ini, menggunakan Ubuntu Core untuk produk Anda seharusnya tidak memengaruhi apakah aplikasi yang Anda kirimkan terbuka atau tertutup. Memang, mengemas aplikasi Anda sebagai snap adalah cara yang baik untuk mendistribusikan gumpalan biner.
Anda mungkin telah mempertimbangkan hal ini, tetapi dari sudut pandang teknis, jika Anda mengirim snap Python menggunakan Django, snap tersebut tidak akan menjadi biner blob - secara default kode Anda akan berada di sana untuk siapa saja yang ingin melihatnya (baik oleh membuang konten disk atau dengan mendapatkan akses shell entah bagaimana). Anda mungkin ingin mengaburkan atau mengirim bytecode sebagai gantinya, dll.
sumber