El software libre es la denominación del software que respeta la libertad de los usuarios sobre su producto adquirido y, por tanto, una vez obtenido puede ser usado, copiado, estudiado, modificado y redistribuido libremente. Según la Free Software Foundation, el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, modificar el software y distribuirlo modificado. El software libre suele estar disponible gratuitamente, o al precio de costo de la distribución a través de otros medios; sin embargo no es obligatorio que sea así, por lo tanto no hay que asociar software libre a "software gratuito", ya que, conservando su carácter de libre, puede ser distribuido comercialmente. Análogamente, el "software gratis" o "gratuito" incluye en ocasiones el código fuente; no obstante, este tipo de software no es libre en el mismo sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa. El código fuente de un programa informático (o software) es un conjunto de líneas de texto que son las instrucciones que debe seguir la computadora para ejecutar dicho programa. Por tanto, en el código fuente de un programa está descrito por completo su funcionamiento. Código abierto es el término con el que se conoce al software distribuido y desarrollado libremente. El código abierto tiene un punto de vista más orientado a los beneficios prácticos de compartir el código que a las cuestiones morales y/o filosóficas las cuales destacan en el llamado software libre. Al igual que el software libre, el código abierto u open source tiene una serie de requisitos necesarios para que un programa pueda considerarse dentro de este movimiento, éstos son: Libre redistribución: el software debe poder ser regalado o vendido libremente. Código fuente: el código fuente debe estar incluido u obtenerse libremente. Trabajos derivados: la redistribución de modificaciones debe estar permitida. Integridad del código fuente del autor: las licencias pueden requerir que las modificaciones sean redistribuidas sólo como parches. Sin discriminación de personas o grupos: nadie puede dejarse fuera. Sin discriminación de áreas de iniciativa: los usuarios comerciales no pueden ser excluidos. Distribución de la licencia: deben aplicarse los mismos derechos a todo el que reciba el programa La licencia no debe ser específica de un producto: el programa no puede licenciarse solo como parte de una distribución mayor. La licencia no debe restringir otro software: la licencia no puede obligar a que algún otro software que sea distribuido con el software abierto deba también ser de código abierto. La licencia debe ser tecnológicamente neutral: no debe requerirse la aceptación de la licencia por medio de un acceso por clic de ratón o de otra forma específica del medio de soporte del software.