Xunta de Galicia


Powered by MediaWiki

Conceptos básicos de software libre e de código aberto

Terminoloxía empregada: Software privativo vs software libre (SwL)

A adopción do cualificativo 'privativo' é o que se empregará no canto doutro máis estendido, porén considerado inadecuado 'propietario', por mor de que as dúas tecnoloxías recoñecen expresamente a propiedade amparada polos dereitos de autor. Daquela a diferenza esencial entre ambos non radica nese recoñecemento senón nos dereitos que outorgan as súas licenzas.

Así, o FLOSS (Free/Libre/Open Source Software), termo que aglutina ao software libre (abreviado en diante como SwL) e mailo de Código Aberto, ten licenzas que lle dá a quen emprega estas tecnoloxías un amplo conxunto de dereitos. O oposto é o modelo 'privativo', nomeado así máis adecuadamente porque 'priva' deses dereitos aos seus usuarios. Porén, esta guía adopta o termo SwL para referirse aos dous, libre e aberto, agás nos casos concretos onde sexa necesaria algunha aclaración concreta.

Introdución

É unha realidade irrefutábel, o SwL está captando o interese en todos os terreos mentres a súa adopción vai en constante aumento. Na actualidade é sumamente doado atopar gobernos que, como mínimo, estudan a viabilidade do SwL namentres os hai moito máis decididos nalgunha fase posterior: promocionando, avaliando proxectos piloto, formando, estabelecendo políticas favorábeis ou até realizando implantacións masivas. Aos gobernos únense segmentos esenciais como o educativo, asociativo ou empresarial. O interese que está a espertar o SwL e todas as súas implicacións (modelos de negocio, desenvolvemento, licenciamento, filosofía, etc) pode semellar ao que no seu día acontecía cos primeiros momentos de Internet.

Ollando cara atrás, nos primeiros tempos do século XX, constatamos que o software desenvolvíase ad hoc para as primeiras computadoras comercializadas. Non había estándares e o persoal responsábel da súa xestión con frecuencia tiña que melloralo e adaptalo. Tales máquinas ofrecíanse co software incorporado e mailo código fonte necesario para levar a cabo as necesarias melloras e adaptacións. Tal situación perdurou ata o ano 1970, data do nacemento do primeiro software entregado sen o seu correspondente código. A estandarización de compoñentes, a aparición do PC (Personal Computer) e outros determinantes factores, provocaron un auxe e bonanza do sector unido á xeración dun modelo de negocio baseado en licenzas restritivas e a ausencia de código fonte.

A pesares do esmagador éxito acadado, algunhas persoas desestimaron seguir este “novo camiño” e optaron por manterse na liña cada vez máis minoritaria da tradición de compartir códigos.

Free Software Foundation

A FSF (Free Software Foundation) debe ser o primeiro recurso informativo para calquera profesional TIC que desexe afondar nesta materia. Esta fundación, nada en 1985 da man de Richard Matthew Stallman, explica que é SwL e por que é tan importante para a sociedade actual. A nota introdutoria resúmeo así:

SwL é o software que dá a quen o emprega a liberdade de compartir, estudar e modificalo. Nós chamámolo SwL porque quen o usa é libre.”

O SwL é para a FSF unha cuestión de liberdade, non de prezo. Máis concretamente refírese a catro tipos de liberdades contempladas na súa definición:


  • Liberdade 0: Liberdade para executar un programa para calquera propósito.
  • Liberdade 1: Liberdade de estudar como funciona un programa e adaptalo ás súas necesidades. Acceder ao código fonte é un requirimento previo para isto.
  • Liberdade 2: Liberdade de redistribuír copias e daquela axudar ao teu veciño.
  • Liberdade 3: Liberdade de mellorar o programa e ofrecelas ao público para que así a comunidade se beneficie. Acceder ao código fonte é un requirimento previo para isto.

Este ideario chama a atención de moitas persoas precisamente pola énfase que lle dá á liberdade e ao coñecemento como un ben comunitario que debe ser construído de forma aberta, colectiva e democrática. Así hai persoas que se achegan ao SwL por seren amantes da liberdade, outras por seren contrarias á apropiación restritiva do coñecemento, ás que ven nisto unha oportunidade de derrubar un monopolio de facto ou, por que non, ás quen o ven como novas oportunidades a distintos niveis. Pódese dicir que “os intereses no SwL son diversos e moitas veces antagónicos”<ref name="ftn1">Arthur Pereira Nunes en “O Impacto do Software Livre e de Código Aberto na Indústria de Software do Brasil”</ref>.

Porén, estes ideais éticos non sempre son comprendidos e moito menos compartidos na práctica.

Open Source Initiative

Entre todas as situacións intermedias existentes entre as tecnoloxías libres e as privativas paga a pena deterse na OSI (Open Source Initiative) ou Iniciativa de Código Aberto. Tal organización naceu en 1998 da man de Bruce Perens e Eric S. Raymond<ref name="ftn2">Autor do libro The Cathedral and the Bazaar: http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/</ref> co obxectivo de definir aquel software que é distribuído e desenvolvido libremente, tentando fuxir estratexicamente da ambigüidade que provoca o termo anglosaxón 'free', equivalente á vez a 'libre' e 'gratis'.

A OSI considera que a apertura dos códigos con licenzas libres están a xerar un proceso evolutivo no desenvolvemento do software que supera con claridade ao modelo privativo, aquel realizado por grupos pechados de desenvolvemento contratados con cláusulas de confidencia por temor á evasión de coñecemento estratéxico vencellado ás propiedades intelectuais. Así, é bastante clarificador a seguinte proclama da OSI:

A Open Source Initiative non ten unha posición ao redor de se as ideas poden ser posuídas, se as patentes son boas ou malas, ou calquera outra controversia. Cremos que os argumentos de interese económico a prol do open source son por si mesmos fortes dabondo que ninguén precisa facer cruzadas morais.

A propia OSI ofrece unha definición que ha de cumprir unha licenza para ser considerada de código aberto e daquela poder ser aprobada por esta organización. Esa definición abrangue estes dez puntos:

  1. Redistribución libre e completa, sen pagamentos por royalties ou afíns
  2. Código fonte aberto
  3. Permiso explícito para xerar obras derivadas e maila súa ulterior redistribución
  4. Integridade de código fonte
  5. Non discriminación de persoas ou grupos
  6. Non discriminación de áreas de investigación, coñecemento ou actividade
  7. Os dereitos incluídos na licenza son redistributivos
  8. A licenza non debe ser unicamente adscrita a un produto determinado
  9. A licenza non pode restrinxir outros programas
  10. A licenza debe ser tecnicamente neutral

Non é de estrañar que diversas fontes procuren evitar as polémicas entre estas dúas correntes: unha coa énfase na liberdade e a outra na vantaxe competitiva dun modelo de desenvolvemento aberto. É frecuente atopar entidades que aglutinan ambas as dúas, SwL e Sw de Código Aberto, baixo o termo FLOSS (Free/Libre/Open Source Software). Tal é o caso da Guía IDABC de migración (Interoperable Delivery of European eGovernment Services to Public Administrations, Business and Citizens).

Antes de afondar nos aspectos lexislativos, paga a pena subliñar que tanto as licenzas libres como as abertas non significan que calquera poida tomar estas tecnoloxías e datos ao seu criterio obviando ou até menosprezando o seu contido. Noutras verbas, o SwL non é de dominio público<ref name="ftn3">O propio Richard M. Stallman o afirma “GNU is not the public domain”</ref>, xa que a idea é garantir que o coñecemento nacera e se desenvolvera libremente. De feito, estas tecnoloxías tamén están rexidas por licenzas. Así, Víctor Salgado (Pintos & Salgado), avogado experto en Dereito Informático e temas afíns, sinala que "a licenza libre GPL é a auténtica esencia do Dereito de Autor" posto que amosa ás claras a potestade que ten o propietario da obra, neste caso Sw, de elixir o que si ou non se pode facer con ela. Con todo, existen casos de incumprimento destas licenzas, sancionadas por tribunais internacionais e logo reflictas en sitios web de iniciativas como Freedom Task Force e GPL Violations. Estes casos de incumprimento adoitan ser desvelados e logo comunicados a esas entidades grazas á colaboración da “Comunidade”.

Comunidade

É unha das verbas máis características empregadas por quen, como mínimo, usa estas tecnoloxías. Ademais disto conforma un factor diferenciado xenuíno que constitúe unha vantaxe competitiva respecto ao modelo privativo.

O termo “Comunidade” é empregado en distintos contextos e graos de intensidade. Desde un punto de vista xenérico, abrangue a todas as persoas que están relacionadas co SwL, sexan estas desenvolvedoras, tradutoras, difusoras, artísticas ou simplemente usuarias. Precisamente a partires da “Comunidade” tomada en sentido global van xurdindo outras menores adicadas ás máis diversas tarefas.

Canta máis expectación xere un proxecto ou máis grande este sexa, maior adoita ser a comunidade que xira ao seu redor. Daquela é un luxo para calquera proxecto dispor dunha gran comunidade porque ela axuda a desenvolver, atopar erros de programación, mellorar o seu uso... Hai que advertir que ás veces estas comunidades poden chegar a ser tan importantes que, de sentirse desconformes coa dirección do proxecto, axiña bifurcan o proxecto creando outro novo (fork) partindo de todo o coñecemento dispoñíbel previamente.

Estas comunidades están integradas por grupos de persoas, normalmente distantes entre si, conectadas en rede e animadas por intereses diversos. Adoitan gobernar a súa anarquía grazas ao emprego de ferramentas telemáticas e ao nacemento dunha nova forma organizativa baseada no liderado natural, feito coñecido como Meritocracia. Esta meritocracia vén estabelecida en cada comunidade por diversos baremos, sexan estes “quen creara o proxecto”, “quen máis programe”, “quen mellor programe”, “quen localice aplicativos”, “quen axude á difusión”, “quen máis solucione as dúbidas dos newbies”, etc. Paga a pena subliñar que o liderado meritocrático non sempre está conformado por unha única persoa. Esta forma organizativa, como o están a corroborar os éxitos acadados, é de seu revolucionaria e perfectamente adaptada á contorna do traballo colaborativo en rede.

As distintas comunidades adoitan ser colaboradoras entre si, sen menoscabo de seren tamén ás veces competitivas, e case que todas elas con integrantes moi activos nas Redes Sociais. Personaxes recoñecidas na “Comunidade” son: Richard M. Stallman (FSF, GNU), Linus Torvalds (Linux), Ian Murdock (Debian), Bob Young e Marc Ewing (Red Hat), Miguel de Icaza (MC, Gnome, Mono...), Mark Shuttleworth (Ubuntu) e moitos máis. Pola contra, o Sw privativo recoñece a moi poucas personaxes públicas agás as que acadaron considerábeis fortunas monetarias.

Unha das comunidades máis características son os GUGLs (Grupos de Usuarios/as de GNU/Linux, internacionalmente referenciados como LUGs -Linux Users Groups-). Na súa maioría son asociacións sen fins de lucro que en moitos casos nacen ao abeiro das facultades tecnolóxicas procurando difundir o SwL con diversas iniciativas, principalmente organizando xornadas temáticas. Moitos dos seus integrantes adoitan participar noutras varias comunidades ou mesmo noutros GUGLs. Galicia destaca de modo sobranceiro por dispor dun elevado número deles, reflectidos na sección “Movemento Asociativo” da web de Mancomún.

Á “Comunidade” pódense engadir entes tan diversos como centros tecnolóxicos e/ou de investigación, universidades, investidores, editores ou grupos de especialistas que proveñen de consultas políticas como paso previo á adopción de medidas concretas e, en xeral, calquera organización ou persoa física.

A verba “comunidade” nesta contorna e con esta intensidade non podería existir sen a rede de redes, Internet. Internet xunto á voracidade innovadora tecnolóxica están a promover un ámbito revolucionario ao que os diversos sectores terán que se adaptar, varios deles con moitos esforzos e grandes doses de creatividade estratéxica. Pódense mencionar principalmente afectados na actualidade os sectores de edición de música, literatura, películas, software e televisión<ref name="ftn4">Citado en “Wikiconomics: La Nueva Economía de las Multitudes inteligentes" de Don Tapscoot e Anthoy D. William publicado en castelán pola editorial Paidós: http://www.paidos.com/lib.asp?COD=49108</ref>. Estes e outros sectores pódense atopar en perigo se non son quen de se adaptar ás múltiples oportunidades que lles brinda o potencial das masas participantes.

Está claro que o SwL e mailo Código Aberto medraron e se consolidaron nesta contorna, traballando en rede xunto a crecentes e activas comunidades ás que souberon xestionar con éxito. Recoméndase consultar a presentación de Martin Michlmayr sobre a xestión do voluntariado, compartida por Andrés Maneiro.

Linux

O exemplo por excelencia de traballo en rede en comunidade auto-organizada é o desenvolvemento do núcleo (kernel) Linux, peza fundamental do sistema operativo libre máis estendido, o GNU/Linux.

Na Galipedia sinalan que “Linux é unha versión libre e aberta do sistema operativo UNIX creada inicialmente por Linus Torvalds e posteriormente por programadores de todo o mundo a través de Internet usando ferramentas desenvolvidas previamente por Richard Stallman e o Proxecto GNU, polo que é mais correcto referirse ao sistema operativo como GNU/Linux”, so pena de crear unha denominación derivada dunha marca rexistrada, nomeadamente Linux.

O proxecto comezouno a desenvolver Linus partindo de Minix, sistema operativo de código aberto usado con fins educativos, sendo aínda estudante e logo liberado en 1991 baixo licenza GPL. Axiña naceu ao seu redor unha comunidade experta e interesada en levar adiante o proxecto, coincidindo cos primeiros anos da andaina da Web. A liberdade da súa licenza e mailas múltiples ferramentas de traballo en rede existentes propiciaron o que hoxe é Linux. Así por exemplo, pódese citar que Linux é o sistema máis empregado co 88,60% dos 500 maiores supercomputadores en xuño de 2009. De igual modo a súa presenza está en gran aumento en telefonía móbil ou en UMPC (Ultra Mobile PC). Resta mellorar substancialmente a súa presenza nos Escritorios finais e en contornas empresarias que requiren de aplicativos moi específicos.

Unha vez máis compróbase que as oportunidades que ofrecen as comunidades participantes están ben reflectidas no desenvolvemento de Linux. O propio Linus Torvalds sinala que “as persoas se auto seleccionan para levar adiante proxectos onde son competentes e posúen interese”. Daquela, sempre que as comunidades dispoñan de mecanismos que eliminen as achegas pouco sólidas, as comunidades de persoas, amplas, auto seleccionadas e en comunicación constante, teñen máis probabilidades de emparellar as mellores persoas coas tarefas adecuadas, algo que é moito máis complexo de atinxir nas empresas tradicionais<ref name="ftn5">Tamén citado en “Wikiconomics: La Nueva Economía de las Multitudes inteligentes" de Don Tapscoot e Anthoy D. William publicado en castelán pola editorial Paidós: http://www.paidos.com/lib.asp?COD=49108 </ref>.

Cabe mencionar á Wikipedia como outro exemplo característico deste tipo de comunidades participantes auto seleccionadas.

Distribucións

A Galipedia define as distribucións Linux como: “Unha distribución Linux, ou distribución GNU/Linux (abreviada con frecuencia como 'distro') é un conxunto de aplicacións reunidas por un grupo, empresa ou persoa para permitir instalar facilmente un sistema GNU/Linux. As distribucións GNU/Linux son sistemas operativos completos, cun kernel Linux e un conxunto de aplicacións engadidas. Diferéncianse entre elas polas súas ferramentas de instalación e configuración, os seus sistemas de paquetes, e as aplicacións que inclúen”.

Hainas pensadas e desenvolvidas para case que calquera finalidade porque é cada dia máis doado realizar unha personalización dalgunha distro maior. Recoméndase visitar Distrowatch, un sitio web especializado no rexistro delas así como das súas actualizacións, para comprobar o elevado número de distros existentes.

A modo ilustrativo considéranse principais distros, tendo en conta razóns tan dispares como as históricas ou popularidade, as seguintes:

  • Debian, foi das primeiras xunto coa Slackware. É salientábel comentar que foi a primeira distro en acadar un Contrato Social. Goza de moita fama pola súa estabilidade e mailo formidábel sistemas de paquetes polo que é moi empregada en sistemas servidores.
  • Ubuntu, derivada da anterior co obxectivo de diminuír os ciclos de lanzamentos de novas versións xunto a un enfoque maior no uso. É a máis empregada na actualidade en escritorios a pesares de ser a de máis recente creación de entre as aquí enumeradas.
  • OpenSUSE, pertencente a Novell trala compra do tamén histórico proxecto SuSE.
  • RedHat, agora centrada en versións empresariais trala derivación da rama de desenvolvemento de escritorio a Fedora.
  • Slackware, unha das primeiras distros e actualmente a máis antiga en vixencia, con estrutura semellante ás BSD.
  • Gentoo, unha recente distro con kernels Linux ou BSD e cun sistema de paquetes inspirado nos ports de BSD.
  • E como derivadas do Unix BSD (Berkeley Software Distribution) pódense citar: FreeBSD, OpenBSD, PC-BSD, etc.

Quen desenvolve SwL?

No comezo da andaina da FSF e do proxecto GNU os programas eran desenvolvidos case que de xeito individual e maioritariamente por voluntariado disperso xeograficamente. Coa entrada á escena de Internet foron creándose grupos heteroxéneos de hackers con obxectivos comúns e coordinados con ferramentas que facilitaban o traballo colaborativo masificado. A adicación a proxectos caracterízase por ser espontánea, conformada por persoas separadas fisicamente que someten o seu traballo ás duras avaliacións do público xeral. Tanto as críticas como as suxestións de melloras que proveñen da comunidade propician un desenvolvemento continuo e rápido, rico en informacións, descubertas de erros e problemas de seguridade, todo ilo baixo unha complexa anarquía auto-organizada repleta de eficacia.

Sen embargo, tanto o SwL de seu como o Código Aberto non só está a ser desenvolvido exclusivamente polo voluntariado. Un exemplo clarificador neste final da primeira década do século XXI é o propio kernel Linux, desenvolvéndose cun 70% das persoas adicadas con xornadas e soldos completos. Daquela o máis habitual é atopar proxectos integrados por persoas e organismos heteroxéneos, con motivacións dispares, convivindo en harmonía e obtendo resultados da máxima eficacia.

O liderado deses proxectos pode ser levado por calquera dos participantes. A seguir uns exemplos:

Proxectos liderados por Empresas

  • Sun Microsystems con OpenOffice.org, OpenSolaris, MySQL, Java...
  • IBM con Eclipse...
  • Novell con Gnome, Evolution, OpenSUSE...
  • Google Code
  • ...

Proxectos liderados por Gobernos

  • Mancomun.org (Galicia),
  • gnuLinEx (Estremadura),
  • Guadalinex (Andalucía),
  • Molinux (Castela A Mancha)
  • Software Público (Brasil)
  • ...

Proxectos liderados por Universidades e Centros Tecnolóxicos:

OpenMIT (Massachussets Institute of Technology), FreeBSD (Univ. de Berkeley) ou as universidades galegas con diversos proxectos.

Proxectos liderados por voluntarios:

  • GNU
  • Debian
  • ...

Proxectos liderados por entidades sen fins de lucro:

  • Apache Foundation
  • Mozilla Foundation
  • Internet Systems Consortium, Inc. (ISC)
  • ...

Calidade do desenvolvemento

Os proxectos maioritaria ou integramente levados adiante pola comunidade teñen a súa propia idiosincrasia pois foxen das rixideces do modelo xerarquizado de desenvolvemento. Curiosamente, moitos dos parámetros intermedios impostos polos diferentes modelos de xestión de proxectos de desenvolvementos de software co gallo de atinxir a máxima calidade, son cumpridos até sen ser eles uns obxectivos previos nos proxectos comunitarios, sobre todo nos de tamaño pequeno e medio. En todo caso, os proxectos comunitarios adoitan seguir, se cadra involuntariamente, o Modelo Iterativo pois este permite a rápida retro alimentación e reestruturación das fases de análise, deseño, desenvolvemento e probas.

En ambientes de desenvolvemento de SwL, non son comúns as metodoloxías estritas pois valóranse máis as facilidades de acceso aos distintos compoñentes do proxecto (ferramentas de xestión, documentación, sistema de anuncio de erros, etc.). Porén, as empresas desenvolvedoras que se achegan ao SwL, ou mesmo as entidades clientes que demandan estes traballos, desconfían destas metodoloxías tan flexíbeis ou modernas como, por exemplo, a XP (eXtreme Programming). Basicamente isto ten moita relación co seu profundo descoñecemento.

É obvio que nada impide que os proxectos sigan calquera das metodoloxías clásicas de desenvolvemento se este é levado adiante directamente desde empresa desenvolvedora á cliente sen contar coa comunidade aínda que finalmente sexa licenciado tamén como SwL.

Consciente destas barreiras, a Unión Europea, a través do SQO-OSS (Software Quality Observatory for Open Source Software), estuda, fomenta e desenvolve ferramentas específicas para o control da calidade do software de código aberto para favorecer así a súa máis rápida adopción.

Licenza desta guía

Esta guía forma parte da documentación de apoio para a capacitación TIC en SwL e foi elaborada por Roberto Brenlla, consultor en TEGNIX para o Centro de Referencia e Servizos de Software Libre de Galiza – Mancomún. Distribúese baixo as condicións dunha Licenza Creative Commons: Recoñecemento-CompartirIgual 3.0


<references/>