Hardware e software
Os programas son os encargados de facer que un ordenador traballe. Ao ordenador tamén se lle chama hardware e aos programas que fan que este hardware faga algo se lles chama software. Hardware e software son inseparables posto que por si mesmos non fan nada, un necesita doutro para poder ser de utilidade.
Os ordenadores están feitos mediante circuítos electrónicos que funcionan con enerxía eléctrica e por esta razón soamente son capaces de entender ordes escritas nunha linguaxe especial denominada linguaxe binaria. Nembargantes, as persoas usamos unha linguaxe ben diferente para comunicarnos xa que a linguaxe binaria sería moi complicada para nós. Por outra banda, os programas están creados por programadores e estas persoas cando fan un programa, teñen que facelo na linguaxe binaria que antes dicíamos. Isto é un problema bastante grande posto que crear un programa directamente en linguaxe binaria é terriblemente tedioso, dificultoso e propenso a erros. É por iso polo que, dende hai bastante tempo, os programadores crean os seus programas doutro xeito máis productivo utilizando unha linguaxe de programación máis parecida á nosa (xeralmente parécese á linguaxe inglesa), chamada linguaxe de programación de alto nivel e posteriormente o converten á linguaxe binaria para poder executalo nun ordenador. Ao resultado desa conversión se lle chama código obxecto ou tamén programa executable ou incluso programa binario e, como dicimos, os programas terán que estar escritos neste código para que o ordenador saiba interpretalos. Por outra banda, as instruccións que crea o programador utilizando unha linguaxe de alto nivel forman o que se coñece como código fonte do programa. Por facer un símil, o código fonte é como unha receita de cociña e o resultado final de facer esa receita sería o código obxecto.
Deste xeito, realmente ao usuario final que vai a executar un programa, simplemente bástalle co código obxecto dese programa xa que é este o que realmente fai traballar ao ordenador. Aínda así, é moi importante saber diferencia-lo código obxecto do código fonte para entender o que significa realmente o software libre.
Xa sabemos entón que o código fonte di cómo está feito realmente un programa de ordenador. Polo tanto, se temos acceso a dito código fonte e se ademais posuímos os coñecementos necesarios, poderiamos adaptar o código fonte ás nosas necesidades e xerar un novo código obxecto, é dicir, un novo programa adaptado a nós. Esta é soamente unha das características do software libre, o dispor do código fonte dos programas para poder facer con el o que queiramos.
Software privativo
Na informática dos anos sesenta e setenta os programadores compartían os seus avances no campo da programación e, polo tanto, pasábanse uns aos outros os códigos fontes dos programas que facían para que puidesen estudialos, avalialos e incluso adaptalos ás súas necesidades. Era tan normal como compartir as receitas de cociña.
Sen embargo, a comezos dos anos oitenta emerxe un modelo privatizador e mercantilista. Os ordenadores, ata o de entón escasos, caros e pouco potentes, fanse máis accesibles para o gran público, cada vez son máis baratos e potentes e aparece un novo negocio: o dos productores de software. Os programas comezaron a venderse como productos comerciais e soamente se entregaba o código binario para, deste xeito, ocultar as técnicas de programación á competencia. Esa nova industria do software comeza a axudarse na lexislación sobre propiedade intelectual. O que antes era unha práctica habitual, converteuse nun delicto: o programador que compartía o código fonte dos seus programas e cooperaba con outros programadores, pasou a ser considerado un delincuente.
Este último é o panorama que máis ou menos temos nos nosos días: cando mercamos un programa, soamente nos outorgan o código obxecto, polo que en lugar de que o programa se adapte o máis posible ás nosas necesidades, en realidade somos nós os que debemos de adaptarnos ás funcionalidades dese programa xa que a empresa que o creou, fíxoo pensando nas necesidades de moitos posibles usuarios, non nas necesidades concretas de cada un. Así, o máis normal é que cando executémo-lo programa nos atopemos con moitas funcións que nunca utilizaremos pero polas que tivemos que pagar. Por outra banda, tamén é posible que o programa non traia algunha característica que para nós sería moi útil. Se agora quixésemos adapta-lo programa ás nosas necesidades non poderiamos porque non temos o código fonte do mesmo. É por se isto non fose pouco, cando merco un programa, a súa licencia estame prohibindo que poida deixarllo a un amigo e incluso é posible que se instalo ese software en dous ordenadores da miña casa, estea cometendo un delicto.
Cando o software se distribúe segundo este modelo de negocio, chámase software privativo e, ata o de agora, é o tipo de software máis empregado. O outro tipo de software, o software libre, en cambio, concédenos as liberdades que o software privativo nos nega.
Software libre
Agora que xa coñecemos que é o software e as limitacións que temos impostas cando falamos de software privativo, imos dar unha definición do que é o software libre: En concreto, este proporciónanos catro liberdades:
- Liberdade para executar o programa en calquera sitio, con calquera propósito e para sempre.
- Liberdade para estudialo e adaptalo ás nosas necesidades. Isto esixe que teñamos acceso ao código fonte.
- Liberdade de redistribución, de modo que se nos permita colaborar con veciños e amigos.
- Liberdade para mellorar o programa e publicar as melloras. Tamén esta liberdade esixe que teñamos acceso ao código fonte.
Estas catro liberdades pódense garantir gracias a unha licencia. Nesta licencia se plasman as liberdades, pero tamén restriccións compatibles con elas, como dar crédito aos autores orixinais do programa en caso de que se redistribúa. Incluso pode obrigarnos a que os programas feitos por outros e mellorados por nós tamén sexan libres, promovendo desta forma a creación de máis software libre.
En realidade non estamos a falar de software gratuíto xa que o software libre pódese vender se se desexa. O que sucede e que debido á terceira das liberdades anteriores, calquera pode redistribuílo sen pedir cartos a cambio nin permiso a ninguén, o que fai practicamente imposible obter cartos por distribuílo, salvo unha pequena cantidade que se poida cobrar por gravalo nun soporte físico e envialo.
Modelos de negocio e licenzas de software
Modelos privativos. O software como producto
As empresas informáticas que centran o seu modelo de negocio na venda de licenzas de uso de programas propietarios que construíron, tratan o software coma un produto. Sobre este produto só tes certos dereitos, por exemplo, non podes copialo, redistribuilo, nin melloralo. En ocasións só podes instalalo nun único ordenador.
Modelos libres. O software como servizo
Moitas empresas informáticas viven precisamente de dar servizos, que poden incluír (ou non) algúns programas informáticos desenvolvidos por eles. A consideración do software como un servizo, ademais de ser moito máis próxima aos intereses do usuario, supón un cambio moi interesante das regras de xogo, e máis cando se traballa con software libre. Supón que a importancia trasládase do código en se mesmo (o programa) ao coñecemento sobre o programa. Isto é o que os productores de software libre teñen que rendibilizar.
Á hora de desenvolver os programas, estes pódense realizar con moita máis facilidade, porque xa non se está obrigado a construílos completamente dende a nada. Pódense usar compoñentes libres xa dispoñibles, ou directamente reutilizar código doutros programas libres. Isto pode reducir considerablemente os custos de desenvolvemento. Ademais, é ben coñecido que a fase de depuración de erros e probas simplifícase moito se se sabe promover a axuda dos usuarios.
Neste modelo de negocio pódense dar servizos de diseño, mantemento, formación, etc. Incluso moitas veces polos propios creadores.
Licenzas de software
Todo este modelo de negocio está regulamentado en base a uns «permisos» que se lle outorgan ao usuario e que comunmente chámanse licenzas de software. Podemos agrupalas en dous grandes grupos:
Licenzas non libres
Dentro deste grupo están todas as marcas comerciais rexistradas, o software shareware que, ainda que podes usalo durante un periodo limitado de tempo, despois tes que adquirir unha licenza comercial. O freeware que, ainda que é gratis non é libre posto que non permite ser modificado.
Licenzas libres
Neste grupo existen variantes coma GPL, LGPL, BSD, etc., que teñen coma denominador común que os programas acollidos a algunha delas poden ser usados, copiados, modficados e distribuidos con liberdade.