Ich denke, es war schwer für mich, den Titel zu formulieren. Ich kann mein Problem hier jedoch noch genauer erläutern.
Ich entwerfe ein eingebettetes Produkt, das aus Cloud-Service und eingebetteter Hardware besteht. Der Cloud-Service verfügt über eine REST-API (obwohl diese nicht das Verkaufsargument ist) und kommuniziert mit der eingebetteten Hardware. Idealerweise verfügt die eingebettete Hardware auch über eine REST-ähnliche Schnittstelle für die Kommunikation. Das Problem ist, einen guten Software-Stack dafür zu finden (oder das ist meiner Meinung nach das Problem).
Die beste Option wäre meiner Meinung nach eine Art eingebettete Linux-Distribution mit einer eigenen Web-App (Ubuntu Core + Django ...?). Ist es irgendwie möglich, diese Kombination in einem kommerziellen Produkt zu verwenden und gleichzeitig die Webapp im Inneren geschlossen zu halten?
Die Ubuntu-Website bietet mehrere unterstützte Plattformen, von denen einige für meinen Anwendungsfall ideal sind. Wie ich bereits sagte, ist mein Hauptanliegen im Moment die Lizenzierung.
quelle
Antworten:
Beachten Sie zunächst, dass ich kein Anwalt bin. Holen Sie sich eine, wenn Sie glauben, Rechtsberatung zu benötigen. Die Lizenzierung ist ein solcher Bereich, in dem ich einen empfehlen würde.
Open Source-Lizenzen unterscheiden sich stark darin, was sie zulassen. Verwenden wir das Beispiel einer Bibliothek, die Sie in Ihrem Projekt verwenden (unverändert). Zwei häufig verwendete Lizenzen sind GPL und LGPL, die sich je nach Behandlung dieses Problems unterscheiden. Aus diesem Artikel zum Beispiel:
Andere Lizenzbeispiele, die in dieser Hinsicht etwas offener sind, sind MIT und BSD.
Bei vielen Linux-Programmen handelt es sich um GPL, und dies umfasst wahrscheinlich Komponenten aller von Ihnen ausgewählten Betriebssysteme (z. B. Ubuntu Core). Solange Ihr Projekt nicht als abgeleitete Arbeit aus diesen Projekten betrachtet wird, sollten Sie nicht betroffen sein. Weitere Infos in dieser Antwort .
Aus dieser Perspektive sollte die Verwendung von Ubuntu Core für Ihr Produkt keinen Einfluss darauf haben, ob die Anwendung, auf der Sie es versenden, geöffnet oder geschlossen ist. In der Tat ist das Packen Ihrer Anwendung als Snap eine gute Möglichkeit, binäre Blobs zu verteilen.
Sie haben dies wahrscheinlich in Betracht gezogen, aber aus technischer Sicht handelt es sich beim Versenden eines Python-Snaps mit Django nicht um binäre Blobs. Standardmäßig befindet sich Ihr Code dort für alle, die ihn sehen möchten (entweder von Dumping des Festplatteninhalts oder durch Erhalten eines Shell-Zugriffs). Möglicherweise möchten Sie stattdessen den Bytecode usw. verschleiern oder versenden.
quelle