In quali situazioni sarebbe tecnicamente "impossibile" rilasciare un sistema come open source?

7

Mentre ci sono certamente molte decisioni economiche, sociali e pratiche da prendere quando si decide se un sistema dovrebbe essere open source, ci sono situazioni in cui è impossibile, puramente dal punto di vista tecnico, aprire il codice?

Essenzialmente; una funzionalità che, quando il codice è reso pubblico, invalida / riduce la funzionalità di tale funzione.

Alcuni esempi a cui posso pensare:

  • Barare in Quake - una volta che il gioco è stato rilasciato come open source, l'id ha dovuto rilasciare un -source 'wrapper' per convalidare il codice client al fine di prevenire imbrogli.
  • Reddit - mentre la maggior parte della fonte del sito di notizie sociali Reddit è disponibile, i loro meccanismi anti-spam non lo sono. Se gli spammer sapessero come hanno funzionato, sarebbero più facili da aggirare.

Entrambi i problemi legati alla sicurezza e entrambi derivanti dall'utilizzo di implementazioni, gli esperti di sicurezza probabilmente disapprovano (Quake: fidarsi del cliente, Reddit: sicurezza attraverso l'oscurità). Se ci sono alternative praticabili a queste implementazioni è un'altra questione ...

Quali altri esempi ci sono di questo? Ci sono quelli che non sono legati alla sicurezza? Sono tutti dovuti a "soluzioni alternative" per far funzionare i nostri sistemi con la tecnologia che abbiamo?

    
posta Tom 22.01.2011 - 15:17
fonte

10 risposte

8

Sì: scrivere il binario EXE o ELF utilizzando direttamente un editor esadecimale.

    
risposta data 22.01.2011 - 15:41
fonte
3

In sostanza, stai cercando funzionalità di un sistema che si basa su di te non sapendo come funziona un sistema. Alcuni esempi:

  • La sicurezza è l'esempio più ovvio di questo.
  • Alcuni giochi potrebbero perdere funzionalità se riesci a scoprirne il segreto.
  • Alcuni software potrebbero basarsi su un senso del mistero per ragioni psicologiche. Ad esempio, Pandora è stato creato per essere il DJ personale della gente. Sarebbe altrettanto efficace se le persone conoscessero i dettagli dell'algoritmo? Un DJ è una persona, un algoritmo no.
  • Suppongo che potresti anche considerare l'anti-sicurezza come un altro software in questa categoria. Virus e worm sono molto più facili da sconfiggere se l'autore ti consegna il codice sorgente.
  • Un'intelligenza artificiale che verrà utilizzata in un test di Turing potrebbe avere la sua funzionalità compromessa se le persone sapessero come ha funzionato (anche se se fosse una cosa buona, sarebbe probabilmente abbastanza complesso che questo non è un problema).

Ammetto che alcuni di questi sono un tratto, ma questa è la lista più completa che riesco a trovare al momento.

    
risposta data 24.01.2011 - 03:53
fonte
2

Posso pensare a vari pacchetti che eseguono una valutazione comparativa di determinati prodotti o organizzazioni (come prodotti bancari, assicurazioni, ecc.). Ho sentito di un caso in cui le società coinvolte nelle valutazioni hanno adattato i loro processi non direttamente a barare, ma piuttosto ottimizzare per questo particolare rating. Dopo un po 'l'editore ha cambiato opinione sulla divulgazione degli algoritmi di valutazione.

Dopo aver pensato a quello che stai cercando, la maggior parte, se non tutte, le situazioni che posso immaginare potrebbero continuare a divulgare il codice sorgente per due ragioni principali:

1) Mantenere il loro know-how lontano dalla concorrenza. Questo non si applica all'idea di open-source.

2) Prevenire l'intrusione o il gioco di sistema in senso lato in quanto ciò svaluterebbe i risultati / prodotti del sistema.

Quindi la risposta alla tua domanda:

Are there any that aren't security related?

Molto probabilmente è "no".

    
risposta data 22.01.2011 - 15:46
fonte
2

Algoritmi di ranking dei motori di ricerca, per lo stesso motivo degli altri esempi che elencherai: renderebbe il gioco più facile.

    
risposta data 23.01.2011 - 04:41
fonte
1

Quando acquisti parti del tuo sistema da qualcun altro che non ti concede il permesso di rilasciarlo come open source:)

    
risposta data 23.01.2011 - 03:27
fonte
1

Cosa succede se il codice sorgente esiste su una pila di schede perforate in alcuni laboratori universitari? Potrebbe non esserci un buon modo per farlo diventare elettronico.

    
risposta data 23.01.2011 - 04:35
fonte
1

While there are certainly many economic, social and practical decisions to be made when deciding whether a system should be open source, are there any situations in which it is impossible, purely from a technical standpoint, to open source your code?

Direi che è quasi impossibile separare "decisioni economiche, sociali e pratiche" da "puramente tecniche".

Ad esempio, i tuoi esempi potrebbero essere interpretati come motivati da ragioni economiche o sociali. Non esiste una ragione "puramente tecnica" per scoraggiare l'imbroglio, o per prevenire lo spamming (o SEO, o ...).

    
risposta data 23.01.2011 - 04:15
fonte
1

In generale non è possibile rilasciare un progetto open source se:

  • infrange una legge penale,
  • rompe la legge sulla proprietà intellettuale e i diritti intellettuali (come quelli protetti dai brevetti )
  • contiene contenuti protetti da copyright
  • parte di esso non è il tuo lavoro e è in conflitto con altre licenze
  • contiene alcuni dati sensibili, ma puoi sempre crittografarlo (ad esempio utilizzando BlackBox )

Related:

risposta data 21.08.2015 - 16:40
fonte
0

Le ragioni economiche sono molte, non vuoi che le persone clonino il tuo Prodotto e trovino qualcosa di meglio di quello che puoi offrire. Ci sono anche aspetti di sicurezza che sono più seri. Per es. se Microsoft rende OS open source, le persone troveranno un modo in più di hackerare i sistemi esistenti prima che possano essere rattoppati dalla comunità Open source o dalla stessa Microsoft. Le persone potrebbero persino citare in giudizio Microsoft per il danno finanziario fatto. Per essere onesti, ci vuole coraggio per pubblicare un prodotto come Open Source per il quale si vogliono fare soldi. IMO la maggior parte delle aziende produce solo quei prodotti come Open Source per i quali non ci sono guadagni finanziari o vogliono promuovere la base di utenti dei prodotti.

    
risposta data 22.01.2011 - 15:50
fonte
0

Hai praticamente ucciso tutte le ragioni. La maggior parte delle applicazioni non è open source per ragioni economiche o di sicurezza.

I venditori vogliono fare soldi con il loro software, se lo aprono dopo il rilascio iniziale, le persone si arrabbieranno per aver speso soldi per qualcosa ora gratuito e non ne trarranno più profitto.

La sicurezza è l'altro problema importante. Le applicazioni già esistenti, come Windows e Reddit, dovevano affrontare numerosi e gravi problemi di sicurezza che sarebbero stati affrontati molto prima nel ciclo di vita dello sviluppo se fosse stato inizialmente open source.

    
risposta data 23.01.2011 - 04:04
fonte

Leggi altre domande sui tag