Le code source d'un programme d'ordinateur fonctionne dans les coulisses pour afficher des écrans d'entrée et à traiter l'information. Quand il s'agit de programmes informatiques, il existe deux types de base: les programmes ouverts et fermés source. Programmes sources fermées fournissent pas d'accès pour les utilisateurs finaux afin de lire ou modifier le code de contrôle du programme. Open Source programmes permettent généralement à la fois, ce qui donne à l'utilisateur final la liberté et la flexibilité pour adapter le programme à leurs besoins spécifiques. Un protocole libre est un programme open source qui vient sans aucune restriction de licence sur son utilisation; l'utilisateur final est libre de prendre, laisser, utiliser, modifier et distribuer le programme comme ils l'entendent.
Un avantage principal de l'utilisation de programmes de protocoles libres est que le monde devient partie intégrante de l'évolution du programme. Au fil du temps, les utilisateurs novateurs du programme d'isoler des problèmes avec le code source original, modifiant pour créer des versions mieux, plus rapide et plus fiable du logiciel original. Au fil du temps, la meilleure «évolution» du programme sera naturellement atteindre le sommet. Le système d'exploitation Linux est un exemple de cette, il y a un certain nombre de différentes saveurs de Linux , permettant aux utilisateurs avertis de trouver une version spécialement conçue pour répondre à leurs besoins individuels.
L'inconvénient correspondant à cette flexibilité inhérente est que l'excès de choix crée une «analyse par la paralysie" situation pour les utilisateurs avertis. Depuis tellement de versions différentes d'un programme peuvent surgir au fil du temps, il peut devenir difficile de savoir lequel est le meilleur, ce qui entraîne beaucoup de pertes de temps que les utilisateurs finaux délibéré sur les différentes versions. En outre, cela peut geler les utilisateurs d'ordinateurs les moins bien informés, que la complexité même de choisir entre plusieurs versions différentes peut faire éviter le choix tout à fait.
Un deuxième problème majeur avec un programme de protocole libre est son potentiel d'abus. Utilisateurs peu scrupuleux peuvent modifier le programme tout aussi bien que ceux qui ont des intérêts légitimes dans l'âme. En piratant le code source, les utilisateurs peu scrupuleux peuvent écrire eux-mêmes "backdoors" dans le système, les passerelles à travers laquelle ils peuvent attaquer ou accéder à n'importe quel ordinateur exécutant leur version modifiée du logiciel. C'est un grave problème qui doit toujours s'attarder dans le dos de l'esprit de quiconque en utilisant une version modifiée d'un programme de protocole libre. Comme la seule façon de savoir si une porte dérobée existe est à lire et à comprendre le code source, cette nouvelle ostracise les utilisateurs plus occasionnels du programme.