O que são forks?

/*Como mencionei no meu ultimo artigo sobre os BSDs, que cada um deles surgiram de alguma forma como fork, surge então a questão: E o que são forks afinal de contas?*/

 Forks são softwares que originam de projetos já existentes dando origem a outros da mesma ramificação.  
 Para melhor compreensão, Digamos assim como as distribuições Linux, em que uma distribuição deriva da outra (o Ubuntu deriva do Debian, CentOS deriva do Red Hat Interprise Linux por exemplo) assim é inicialmente com um fork. Mas diferente de uma distribuição (onde o Ubuntu sempre derivará da próxima versão do Debian e o CentOS da próxima versão do RHIL) em um fork isso ocorre somente na sua primeira versão, pois já nos seus próximos lançamentos serão independentes do software a qual se originou, já não vindo obrigatoriamente a ter mais algum vinculo com o projeto ou a comunidade de origem. Logo, o fork só deriva do projeto original na sua primeira versão.


Essa é a ideia de um fork: O(s) desenvolvedor(es) pega(m) a cópia do código fonte do software e inicia(m) um projeto independente em cima do que obtiveram, vindo a criar um software separado. Desta forma existem dois projetos semelhantes em propósito, porém, cada um possuindo certas características próprias.


O sentido etimológico da palavra Fork (pronuncia-se /fɔːk/ em inglês britânica e /fɔːrk/ em inglês americano; é... deixa eu ajudar na pronuncia, pronuncia-se fôrk com um "r" quase mudo em inglês britânico e fôrk com um "r" mais acentuado em inglês americano), que pode ser confundido com a palavra inglesa garfo (talvez foi por isso que a equipe do Devuan usou um garfo como simbolo do sistema),
 significa “dividir em ramos, ir por caminhos separados”.
Dentro do ambiente de software existem também forks, onde se invoca uma chamada fork do sistema para que um processo em execução se divida em duas copias (quase) idênticas que se separam para realizar tarefas diferentes.


Os motivos pelas quais existem os forks são vários: Dar continuidade a um projeto que já não existe mais, desavença entre as comunidades, iniciar um novo projeto (porém a partir de um já existente, proporcionando produtividade assim), implementações que foram recusadas, vaidade e sei la o que mais. Esse processo (onde um grupo de desenvolvedores de desentendem com os planos de desenvolvimento do software e iniciam um novo projeto baseado no mesmo código fonte) é chamado de forking the project (tipo... de uma forma sátira e em um termo menos constrangedor, lascar o projeto).


Alguns projetos que podemos citar aqui como fork seriam:

  • IllumOS (e seus derivados, como o OpenIndiana. Nome mais sugestivo não tem) que originou-se do OpenSolaris após a Oracle obter a Sun Microsystem e descontinuá-lo.
  • MariaDB originou-se do MySQL que foi criado pelo próprio fundador do projeto após a Sun Microsystem ter sido adquirida pela Oracle... também... (é... tempos difíceis).
  •  X.org como fork do  XFree86 por questões de licença entre outras coisas.
  • PCLinuxOS como fork do antigo Mandrake em 2003 e depois em 2007 fork do Mandriva usando seus snapshots.
  • Mageia e o OpenMandriva como fork do Mandriva.
  • LibreSSL do OpenSSL
  • Eudev do Systemudev
  • UselessD que surgiu do systemd(que está dando dor de cabeça para todo mundo).
  • O open source também foi um fork do free software. O motivo foi o Stallman não aceitar um meio caminho pro software livre (Dando créditos a quem merece, essa foi o amigo Helio Loureiro que me forneceu).

E querem uma lista maior para isso? Consultem então a página Lista de forks em Inglês no Wikipedia (está um pouco desatualizada, mas dá para o gasto).


 Um site que permite forks é o próṕrio GitHub. Alguns exemplos que pondem notar seriam esses:
 Referências:

Comente com o Facebook:

2 comentários:

  1. Top mesmo, explicação suscinta e direta ao ponto, me ajudou muito. Parabéns!

    ResponderExcluir
  2. Òtimo resumo. Uma questão que coloco é como fazer um fork de uma soft livre ir para frente e não morrer. Levanto 3 questões:
    1- O fork Fica sem a comunidade origial. Tudo bem, pode levar parte da comunidade, incluindo grandes desenvolvedores e dar certo. Tem o caso do Joolma;
    2- tem que investir pesado na criação de uma caminho independente do projeto mãe. Imagine o Linux. Tem dinheiro grosso de fundações etc. Um distro do Linux, começando com uma comunidade pequena, sem apoio de fundações, vai precisar de quanto $$$? Se o fork é criado por uma empresa rica, milionária, dinheiro não vai faltar. Mas tem o terceiro ponto.
    3- a marca do fork... o marketing para fazer o fork pegar no tranco. Mesmo tendo milhões de dólares nisso, pode não dar um ROI muito bom.

    ResponderExcluir

Viu algum erro e quer compartilhar seu conhecimento? então comente aí.

Observação: somente um membro deste blog pode postar um comentário.

Marcadores

A pior história sobre Linux que já ouvi (5) A.I (1) ambiente gráfico (19) AMD (14) analise (10) Andriod (16) android (7) Apple (1) arm (4) artigo (5) aws (1) bc (23) benchmark (6) BetrFS (1) blackhat (1) BSDs (29) btrfs (32) bugs (2) Caixa de Ferramentas do UNIX (19) canto do Diego Lins (2) certificações Linux (7) Código Fonte (54) comandos (31) comp (1) compressores (5) container (7) CPU (19) cracker (1) criptografia (5) crowdfunding (9) cursos (24) daemons (13) Debian (31) desempenho (1) desenvolvimento (90) desktop (19) DevOps (3) DevSecOps (4) dic (1) Dica de leitura (90) dica DLins (2) dicas do Flávio (27) Dicas TechWarn (1) diet libc (3) diocast (1) dioliunx (3) distribuições Linux (14) Docker (12) DragonflyBSD (22) driver (1) ead Diolinux (2) edição de vídeo (5) embarcados (1) EMMI Linux (4) emuladores (9) endless (5) English interview (3) Enless OS (2) entrevista (17) espaço aberto (82) evento (6) facebook (1) Fedora (10) filesystem (82) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (20) Funtoo Linux (13) games (93) gerenciadores de pacotes (4) glaucus (2) GOG (3) google (8) gpu (3) hacker (2) hardware (104) hash (1) helenos (3) I.A (1) init system (10) Intel (15) inteligencia artificial (1) IoT (1) ispconfig (1) jogos (37) kde (1) kernel (138) lançamento (64) leis (1) LFCS (1) libs (2) licenças (8) Linus (16) linus torvalds (2) Linux (194) linux foundation (3) linux para leigos (1) live (5) LPI (8) LTS (1) Mac (1) machine learning (1) matemática (9) mesa redonda (27) microcontroladores (1) microsoft (6) microst (1) muito além do GNU (161) musl (3) não viva de boatos (9) navegadores (5) NetBSD (7) newlib (1) nim (1) nintendo (1) novatec (17) novidades (1) nuvem (1) o meu ambiente de trabalho (3) off-topic (12) open source (84) OpenBSD (6) OpenShift (1) os vários sabores de Linux (42) padrim (2) palestras e eventos (5) partições (6) pentest (8) performance (1) pipewire (1) plan9 (1) playstation (1) processadores (30) professor Augusto Manzano (11) Programação (64) promoção (1) propagandas com Linux (8) ps4 (1) real-time. (1) Red Hat (22) redes (4) resenha nerd (4) Resumo da Semana do Dlins (2) resumo do Tux (19) retrospectiva Linux (1) risc-V (14) RISCV (13) rtos (1) runlevel (2) rust (12) segurança digital (24) servidor web (1) servidores (2) shell (7) shell script (6) sistema operacional (25) smartphones (3) Software livre e de código aberto (151) sorteio (3) Steam (10) Steam no Linux (8) supercomputadores (4) suse (5) systemd (7) terminal (87) terminal de comandos (16) toca do tux (1) toybox (26) tutorial (6) Tux (3) unboxing (7) UNIX (17) UNIX Toolbox (14) vartroy (1) vga (1) virtualização (2) vulnerabilidade (6) wayland (5) web (1) whatsapp (1) whitehat (1) Windows Subsystem for Linux (2) wine (14) WoT (1) ZFS (15) zsh (3)