FreeBSD - FreeBSD

FreeBSD
Freebsd logo.svg
VirtualBox FreeBSD 12.1 07 05 2020 11 59 43.png
FreeBSD 12,1 bootloader com arte ASCII logotipo
Desenvolvedor O Projeto FreeBSD
Família de sistema operacional Tipo Unix
Estado de trabalho Atual
Modelo fonte Código aberto
lançamento inicial 1 de novembro de 1993 ; 27 anos atrás ( 01/11/1993 )
Último lançamento 13,0 (13 de abril de 2021 ; 6 meses atrás ) [±] 12,2 (27 de outubro de 2020 ; 11 meses atrás ) [±] ( 2021-04-13 )
 ( 2020-10-27 )
Antevisão mais recente 13.0-RC4 (29 de março de 2021 ; 6 meses atrás ) [±] ( 2021-03-29 )
Repositório
Alvo de marketing Servidores , estações de trabalho , sistemas embarcados , firewalls de rede
Gerenciador de pacotes pacote
Plataformas x86-64 , ARM64 , ARM32 , IA-32 , MIPS , PowerPC , RISC-V , SPARC de 64 bits
Tipo de kernel Kernel monolítico
Userland BSD

Interface de usuário padrão
Shell Unix
Licença Licença FreeBSD , Licença de Documentação FreeBSD
Website oficial www .freebsd .org

O FreeBSD é um sistema operacional livre e de código aberto semelhante ao Unix , descendente do Berkeley Software Distribution (BSD), que era baseado no Research Unix . A primeira versão do FreeBSD foi lançada em 1993. Em 2005, o FreeBSD era o sistema operacional BSD de código aberto mais popular , respondendo por mais de três quartos de todos os sistemas BSD de licença permissiva e simples instalados .

O FreeBSD tem semelhanças com o Linux , com duas diferenças principais em escopo e licenciamento: O FreeBSD mantém um sistema completo, ou seja, o projeto oferece um kernel , drivers de dispositivo , utilitários de usuário e documentação , ao contrário do Linux apenas entregando um kernel e drivers e confiando em terceiros para software de sistema; e o código-fonte do FreeBSD é geralmente lançado sob uma licença BSD permissiva , ao contrário do copyleft GPL usado pelo Linux.

O projeto FreeBSD inclui uma equipe de segurança supervisionando todos os softwares enviados na distribuição básica. Uma ampla gama de aplicativos adicionais de terceiros podem ser instalados a partir de pacotes binários usando o sistema de gerenciamento de pacotes pkg ou a partir da fonte via Ports FreeBSD , ou compilando manualmente o código fonte.

Grande parte da base de código do FreeBSD tornou-se parte integrante de outros sistemas operacionais, como Darwin (a base para macOS , iOS , iPadOS , watchOS e tvOS ), TrueNAS (um sistema operacional NAS / SAN de código aberto ) e o software de sistema para os consoles de jogos PlayStation 3 e PlayStation 4 .

História

Fundo

Em 1974, o professor Bob Fabry, da Universidade da Califórnia, Berkeley , adquiriu uma licença de origem do Unix da AT&T . Apoiado por financiamento do DARPA , o Computer Systems Research Group começou a modificar e melhorar o AT&T Research Unix. Eles chamaram essa versão modificada de "Berkeley Unix" ou " Berkeley Software Distribution " (BSD), implementando recursos como TCP / IP , memória virtual e o Berkeley Fast File System . O projeto BSD foi fundado em 1976 por Bill Joy . Mas, como o BSD continha código da AT&T Unix, todos os destinatários tinham que primeiro obter uma licença da AT&T para usar o BSD.

Em junho de 1989, o "Networking Release 1" ou simplesmente Net-1 - a primeira versão pública do BSD - foi lançado. Depois de lançar o Net-1, Keith Bostic , um desenvolvedor do BSD, sugeriu substituir todo o código da AT&T por código redistribuível gratuitamente sob a licença BSD original . O trabalho de substituição do código da AT&T começou e, após 18 meses, grande parte do código da AT&T foi substituído. No entanto, seis arquivos contendo código AT&T permaneceram no kernel. Os desenvolvedores do BSD decidiram lançar o "Networking Release 2" (Net-2) sem esses seis arquivos. Net-2 foi lançado em 1991.

Nascimento do FreeBSD

Em 1992, vários meses após o lançamento do Net-2, William e Lynne Jolitz escreveram substitutos para os seis arquivos AT&T, portaram o BSD para microprocessadores baseados no Intel 80386 e chamaram seu novo sistema operacional de 386BSD . Eles lançaram o 386BSD por meio de um servidor FTP anônimo. O fluxo de desenvolvimento do 386BSD era lento e, após um período de negligência, um grupo de usuários do 386BSD decidiu ramificar por conta própria para manter o sistema operacional atualizado. Em 19 de junho de 1993, o nome FreeBSD foi escolhido para o projeto. A primeira versão do FreeBSD foi lançada em novembro de 1993.

Nos primeiros dias do início do projeto, uma empresa chamada Walnut Creek CDROM , por sugestão dos dois desenvolvedores do FreeBSD, concordou em lançar o sistema operacional em CD-ROM . Além disso, a empresa empregou Jordan Hubbard e David Greenman, executou o FreeBSD em seus servidores, patrocinou conferências do FreeBSD e publicou livros relacionados ao FreeBSD, incluindo The Complete FreeBSD de Greg Lehey . Em 1997, o FreeBSD era o "produto de maior sucesso" de Walnut Creek. A empresa posteriormente renomeou-se para The FreeBSD Mall e, posteriormente, iXsystems .

Hoje, o FreeBSD é usado por muitas empresas de TI, como IBM , Nokia , Juniper Networks e NetApp, para construir seus produtos. Certas partes da Apple 's Mac OS X sistema operacional são baseados em FreeBSD. O sistema operacional PlayStation 3 também pega emprestado certos componentes do FreeBSD, enquanto o sistema operacional PlayStation 4 é derivado do FreeBSD 9. Netflix , WhatsApp e FlightAware também são exemplos de empresas grandes, bem-sucedidas e fortemente orientadas para a rede que estão executando o FreeBSD.

Processo

386BSD e FreeBSD foram ambos derivados de versões BSD. Em janeiro de 1992, a Berkeley Software Design Inc. (BSDi) começou a lançar o BSD / 386 , mais tarde denominado BSD / OS, um sistema operacional semelhante ao FreeBSD e baseado no 4.3BSD Net / 2. A AT&T entrou com um processo contra a BSDi e suposta distribuição do código-fonte da AT&T em violação aos contratos de licença. O processo foi resolvido fora do tribunal e os termos exatos não foram divulgados. O único que se tornou público foi que o BSDi migraria sua base de fontes para as fontes 4.4BSD-Lite2 mais novas. Embora não esteja envolvido no litígio, foi sugerido ao FreeBSD que eles também deveriam migrar para o 4.4BSD-Lite2. O FreeBSD 2.0, lançado em novembro de 1994, foi a primeira versão do FreeBSD sem nenhum código da AT&T.

Recursos

Inicialização do FreeBSD 9.1 com prompt de login do console

Casos de uso

O FreeBSD contém uma coleção significativa de software relacionado ao servidor no sistema básico e a coleção de portas, permitindo que o FreeBSD seja configurado e usado como servidor de e-mail , servidor web , firewall , servidor FTP , servidor DNS e roteador , entre outros aplicativos.

O FreeBSD pode ser instalado em um desktop normal ou laptop. O X Window System não é instalado por padrão, mas está disponível na coleção de ports do FreeBSD . Wayland (protocolo de servidor de exibição) também está disponível para FreeBSD (com suporte não oficial). Vários ambientes de desktop como GNOME , KDE e Xfce , bem como gerenciadores de janela leves como Openbox , Fluxbox , dwm e bspwm , também estão disponíveis para o FreeBSD. A partir do FreeBSD 12, o suporte para uma pilha gráfica moderna está disponível via drm-kmod. Um grande número de adaptadores sem fio são suportados.

O FreeBSD lança imagens de instalação para plataformas suportadas. Desde o FreeBSD 13, o foco tem sido nas plataformas x86-64 e aarch64 , que possuem suporte Tier 1. x86-32 é uma plataforma Tier 1 no FreeBSD 12, mas é uma plataforma Tier 2 no FreeBSD 13. Processadores ARM de 32 bits usando armv6 ou armv7 também têm suporte Tier 2. Versões de 64 bits de PowerPC e RISC-V também são suportadas. O interesse pela arquitetura RISC-V vem crescendo. A porta da arquitetura MIPS foi marcada para desaprovação e não há imagem para qualquer versão atualmente suportada. O FreeBSD 12 suporta SPARC, mas não há imagem para o FreeBSD 13.

Networking

A pilha TCP / IP do FreeBSD é baseada na implementação 4.2BSD do TCP / IP, que contribuiu muito para a ampla adoção desses protocolos. O FreeBSD também oferece suporte a IPv6 , SCTP , IPSec e rede sem fio ( Wi-Fi ). As pilhas IPv6 e IPSec foram retiradas do projeto KAME . Antes da versão 11.0, o FreeBSD suportava os protocolos IPX e AppleTalk , mas eles são considerados antigos e foram descartados.

A partir do FreeBSD 5.4, o suporte para o Common Address Redundancy Protocol (CARP) foi importado do projeto OpenBSD . O CARP permite que vários nós compartilhem um conjunto de endereços IP, portanto, se um dos nós ficar inativo, outros nós ainda poderão atender às solicitações.

Armazenar

O FreeBSD possui vários recursos exclusivos relacionados ao armazenamento. As atualizações de software podem proteger a consistência do sistema de arquivos UFS (amplamente usado nos BSDs) no caso de uma falha do sistema. Os instantâneos do sistema de arquivos permitem que uma imagem de um sistema de arquivos UFS em um instante seja criada com eficiência. Os instantâneos permitem backup confiável de um sistema de arquivos ativo. GEOM é uma estrutura modular que fornece RAID (níveis 0, 1, 3 atualmente), criptografia de disco completo , registro em diário , concatenação, armazenamento em cache e acesso ao armazenamento com suporte de rede. GEOM permite a construção de soluções de armazenamento complexas combinando ("encadeando") esses mecanismos. O FreeBSD oferece duas estruturas para criptografia de dados: GBDE e Geli . Tanto o GBDE quanto o Geli operam no nível do disco. O GBDE foi escrito por Poul-Henning Kamp e é distribuído sob a licença BSD de duas cláusulas. Geli é uma alternativa ao GBDE que foi escrita por Pawel Jakub Dawidek e apareceu pela primeira vez no FreeBSD 6.0.

Do 7.0 em diante, o FreeBSD suporta o sistema de arquivos ZFS . O ZFS era anteriormente um sistema de arquivos de código aberto desenvolvido pela Sun Microsystems , mas quando a Oracle adquiriu a Sun, o ZFS se tornou um produto proprietário. No entanto, o projeto FreeBSD ainda está desenvolvendo e melhorando sua implementação ZFS por meio do projeto OpenZFS .

Segurança

FreeBSD oferece vários recursos relacionados à segurança, incluindo listas de controle de acesso (ACLs), auditoria de eventos de segurança, atributos sistema de arquivos estendido, controles de acesso obrigatórios (MAC) e de grão fino capacidades . Esses aprimoramentos de segurança foram desenvolvidos pelo projeto TrustedBSD . O projeto foi fundado por Robert Watson com o objetivo de implementar conceitos dos Critérios Comuns para Avaliação de Segurança de Tecnologia da Informação e do Orange Book . Este projeto está em andamento e muitas de suas extensões foram integradas ao FreeBSD. O projeto é apoiado por uma variedade de organizações, incluindo DARPA, NSA, Network Associates Laboratories, Safeport Network Services, University of Pennsylvania, Yahoo !, McAfee Research, SPARTA, Apple Computer, nCircle Network Security, Google, University of Cambridge Laboratório de Informática e outros.

O projeto também tem portado a NSA 's GARRAFA implementação / TE do SELinux para FreeBSD. Outro trabalho inclui o desenvolvimento do OpenBSM , uma implementação de código aberto da API do Módulo de Segurança Básica (BSM) da Sun e formato de arquivo de log de auditoria, que oferece suporte a um amplo sistema de auditoria de segurança. Isso foi distribuído como parte do FreeBSD 6.2. Outro trabalho de infraestrutura no FreeBSD realizado como parte do Projeto TrustedBSD incluiu GEOM e OpenPAM.

A maioria dos componentes do projeto TrustedBSD são eventualmente incluídos nas fontes principais do FreeBSD. Além disso, muitos recursos, uma vez totalmente amadurecidos, encontram seu caminho para outros sistemas operacionais. Por exemplo, o OpenPAM foi adotado pelo NetBSD . Além disso, o TrustedBSD MAC Framework foi adotado pela Apple para o macOS .

O FreeBSD vem com três pacotes de firewall diferentes: IPFW , pf e IPFilter . IPFW é o firewall nativo do FreeBSD. pf foi obtido do OpenBSD e o IPFilter foi portado para o FreeBSD por Darren Reed.

Retirado do OpenBSD, o programa OpenSSH foi incluído na instalação padrão. OpenSSH é uma implementação gratuita do protocolo SSH e é um substituto do telnet . Ao contrário do telnet, o OpenSSH criptografa todas as informações (incluindo nomes de usuário e senhas).

Em novembro de 2012, a equipe de segurança do FreeBSD anunciou que hackers obtiveram acesso não autorizado em dois dos servidores do projeto. Esses servidores foram desligados imediatamente. Mais pesquisas demonstraram que o primeiro acesso não autorizado por hackers ocorreu em 19 de setembro. Aparentemente, os hackers obtiveram acesso a esses servidores roubando chaves SSH de um dos desenvolvedores, não explorando um bug no próprio sistema operacional. Esses dois servidores hackeados faziam parte da infraestrutura usada para construir pacotes de software de terceiros. A equipe de segurança do FreeBSD verificou a integridade dos pacotes binários e anunciou que nenhuma alteração não autorizada foi feita nos pacotes binários, mas afirmou que não poderia garantir a integridade dos pacotes baixados entre 19 de setembro e 11 de novembro.

Portabilidade

O FreeBSD foi portado para uma variedade de arquiteturas de conjuntos de instruções . O projeto FreeBSD organiza arquiteturas em camadas que caracterizam o nível de suporte fornecido. As arquiteturas da Camada 1 são maduras e totalmente suportadas, por exemplo, é a única camada "suportada pelo oficial de segurança". As arquiteturas da Camada 3 são experimentais ou não estão mais em desenvolvimento ativo e as arquiteturas da Camada 4 não têm suporte algum.

Em março de 2021, o FreeBSD foi portado para as seguintes arquiteturas:

Arquitetura Nível de suporte Notas
x86-64 Camada 1 referido como "amd64"
x86 (IA-32) Camada 1 (camada 2 em 13.x) referido como "i386"
ARM de 64 bits Camada 1
ARM de 32 bits Camada 2
MIPS Camada 2
PowerPC de 32 bits e 64 bits Camada 2
SPARC de 64 bits Camada 2 (camada 4 em 13.x) apenas arquitetura de 64 bits (V9)
RISC-V de 64 bits Camada 3 (camada 2 em 13.x) a partir de 12-LANÇAMENTO
NEC PC-9801 Camada 4 (camada 2 em 11.x) referido como "pc98", suporte removido em 12-CURRENT
IA-64 (era nível 3) sem suporte desde 11.0
DEC Alpha (era nível 4) suporte descontinuado em 7.0

O suporte a ARM de 32 bits (incluindo OTG) e MIPS é voltado principalmente para sistemas embarcados ( ARM64 também é voltado para servidores), no entanto, o FreeBSD / ARM é executado em uma série de computadores de placa única , incluindo o BeagleBone Black , Raspberry Pi e Wandboard .

Compatibilidade de hardware

Os dispositivos suportados estão listados nas Notas de Hardware do FreeBSD 12.1-RELEASE. O documento descreve os dispositivos atualmente conhecidos como suportados pelo FreeBSD. Outras configurações também podem funcionar, mas simplesmente não foram testadas ainda. Listas aproximadas automaticamente extraídas de ids de dispositivos suportados estão disponíveis em um repositório de terceiros.

Em 2020, um novo projeto foi apresentado para coletar automaticamente informações sobre as configurações de hardware testadas.

Software de terceiros

O FreeBSD possui um repositório de software com mais de 30.000 aplicativos desenvolvidos por terceiros. Os exemplos incluem: sistemas de janelas , navegadores da web , clientes de e-mail , pacotes de escritório e assim por diante. Em geral, o próprio projeto não desenvolve este software, apenas o framework para permitir a instalação desses programas, que é conhecido como coleção de Ports. Os aplicativos podem ser compilados a partir do código - fonte ("portas"), desde que seus termos de licença permitam, ou baixados como binários pré-compilados ("pacotes"). A coleção de Ports suporta os ramos atuais e estáveis ​​do FreeBSD. Versões mais antigas não são suportadas e podem ou não funcionar corretamente com uma coleção de Ports atualizada.

Ports usam Makefiles para buscar automaticamente o código-fonte do aplicativo desejado , de um repositório local ou remoto , descompactá-lo no sistema, aplicar patches a ele e compilá-lo. Dependendo do tamanho do código-fonte, a compilação pode demorar, mas dá ao usuário mais controle sobre o processo e seu resultado. A maioria das portas também possui contrapartes de pacote (isto é, binários pré-compilados), dando ao usuário uma escolha. Embora esse método seja mais rápido, o usuário tem menos opções de personalização.

O FreeBSD versão 10.0 introduziu o gerenciador de pacotes pkg como um substituto para as ferramentas de pacote usadas anteriormente. É funcionalmente semelhante ao apt e yum nas distribuições Linux . Ele permite a instalação, atualização e remoção de portas e pacotes. Além do pkg, o PackageKit também pode ser usado para acessar a coleção de Ports.

Prisões

Introduzido pela primeira vez no FreeBSD versão 4, as jaulas são um mecanismo de segurança e uma implementação de virtualização em nível de sistema operacional que permite ao usuário executar múltiplas instâncias de um sistema operacional convidado em cima de um host FreeBSD. É uma versão aprimorada do mecanismo chroot tradicional . Um processo executado dentro de tal prisão é incapaz de acessar os recursos fora dela. Cada prisão tem seu próprio nome de host e endereço IP . É possível executar várias jaulas ao mesmo tempo, mas o kernel é compartilhado entre todas elas. Portanto, apenas o software suportado pelo kernel do FreeBSD pode ser executado dentro de uma prisão.

Virtualização

bhyve , uma nova solução de virtualização, foi introduzida no FreeBSD 10.0. O bhyve permite que um usuário execute vários sistemas operacionais convidados (FreeBSD, OpenBSD , Linux e Microsoft Windows ) simultaneamente. Outros sistemas operacionais, como Illumos, estão planejados. bhyve foi escrito por Neel Natu e Peter Grehan e foi anunciado na conferência BSDCan de 2011 pela primeira vez. A principal diferença entre as prisões do bhyve e do FreeBSD é que as prisões são uma virtualização em nível de sistema operacional e, portanto, limitadas apenas a convidados do FreeBSD; mas o bhyve é um hipervisor tipo 2 e não está limitado apenas a convidados do FreeBSD. Para efeito de comparação, bhyve é uma tecnologia semelhante ao KVM, enquanto as jaulas estão mais próximas de contêineres LXC ou Solaris Zones . Instâncias do Amazon EC2 AMI também são suportadas viaamazon-ssm-agent

Desde o FreeBSD 11.0, há suporte para execução como domínio privilegiado Dom0 para o hipervisor Xen tipo 1. O suporte para execução como DomU (convidado) está disponível desde o FreeBSD 8.0.

O VirtualBox (sem o Extension Pack de código fechado ) e o QEMU estão disponíveis no FreeBSD.

Camadas de compatibilidade de sistema operacional

A maioria dos softwares que rodam no Linux podem rodar no FreeBSD usando uma camada opcional de compatibilidade embutida . Conseqüentemente, a maioria dos binários do Linux podem ser executados no FreeBSD, incluindo alguns aplicativos proprietários distribuídos apenas na forma binária. Essa camada de compatibilidade não é uma emulação ; A interface de chamada de sistema do Linux é implementada no kernel do FreeBSD e, portanto, as imagens executáveis e bibliotecas compartilhadas do Linux são tratadas da mesma forma que as imagens executáveis ​​nativas e bibliotecas compartilhadas do FreeBSD. Além disso, o FreeBSD fornece camadas de compatibilidade para vários outros sistemas operacionais do tipo Unix , além do Linux, como BSD / OS e SVR4 , no entanto, é mais comum que os usuários compilem esses programas diretamente no FreeBSD.

Nenhuma penalidade de desempenho perceptível em relação aos programas nativos do FreeBSD foi observada ao executar binários do Linux e, em alguns casos, estes podem até ter um desempenho mais suave do que no Linux. No entanto, a camada não é totalmente transparente e alguns binários do Linux são inutilizáveis ​​ou apenas parcialmente utilizáveis ​​no FreeBSD. Há suporte para chamadas de sistema até a versão 2.6.18, disponível a partir do FreeBSD 7.0 . A partir da versão 10.3, o FreeBSD pode rodar binários Linux de 64 bits.

O FreeBSD implementou várias interfaces de kernel NDIS nativas do Microsoft Windows para permitir que o FreeBSD execute (caso contrário) drivers de rede somente para Windows.

A camada de compatibilidade do Wine , que permite a execução de muitos aplicativos do Windows, especialmente jogos, sem uma cópia (licenciada) do Microsoft Windows , está disponível para o FreeBSD.

Núcleo

O kernel do FreeBSD fornece suporte para algumas tarefas essenciais, como gerenciamento de processos, comunicação, inicialização e sistemas de arquivos. O FreeBSD possui um kernel monolítico , com um design modular. Diferentes partes do kernel, como drivers, são projetadas como módulos. O usuário pode carregar e descarregar esses módulos a qualquer momento. ULE é o escalonador padrão no FreeBSD desde a versão 7.1, ele suporta SMP e SMT . O kernel do FreeBSD também possui uma interface escalonável de notificação de eventos, chamada kqueue . Ele foi portado para outros derivados do BSD, como OpenBSD e NetBSD . Kernel rosca foi introduzido no FreeBSD 5.0, usando um H: modelo de segmento N . Este modelo funciona bem em teoria, mas é difícil de implementar e poucos sistemas operacionais o suportam. Embora a implementação do FreeBSD desse modelo funcionou, ele não teve um bom desempenho, portanto, da versão 7.0 em diante, o FreeBSD começou a usar um modelo de threading 1: 1 , chamado libthr.

Documentação e suporte

A documentação do FreeBSD consiste em seus manuais, páginas de manual, arquivos de listas de discussão, FAQs e uma variedade de artigos, mantidos principalmente pelo Projeto de Documentação do FreeBSD. A documentação do FreeBSD é traduzida em vários idiomas. Toda a documentação oficial é lançada sob a FreeBSD Documentation License , "uma licença de documentação livre permissiva não copyleft que é compatível com o GNU FDL". A documentação do FreeBSD é descrita como de "alta qualidade".

O projeto FreeBSD mantém uma variedade de listas de discussão. Entre as listas de discussão mais populares estão FreeBSD-questions (perguntas gerais) e FreeBSD-hackers (um lugar para fazer perguntas mais técnicas).

Desde 2004, o banco de dados do BSD Users Group da cidade de Nova York fornece informações dmesg de uma coleção de computadores ( laptops , estações de trabalho , computadores de placa única , sistemas embarcados , máquinas virtuais , etc.) executando o FreeBSD.

Instaladores

Da versão 2.0 à 8.4, o FreeBSD usou o programa sysinstall como seu instalador principal. Foi escrito em C por Jordan Hubbard . Ele usa uma interface de usuário de texto e é dividido em vários menus e telas que podem ser usados ​​para configurar e controlar o processo de instalação. Ele também pode ser usado para instalar Ports e Packages como uma alternativa à interface de linha de comando .

O utilitário sysinstall agora é considerado obsoleto em favor do bsdinstall, um novo instalador que foi introduzido no FreeBSD 9.0. bsdinstall é "um substituto leve para sysinstall" que foi escrito em sh. De acordo com a OSNews , "ele perdeu alguns recursos enquanto ganhava outros, mas é um design muito mais flexível e, no final das contas, será uma melhoria significativa".

Concha

O shell padrão do FreeBSD é o shell tcsh para root e o shell Almquist (sh) para usuários regulares. O shell de script padrão é o shell Almquist.

Desenvolvimento

O FreeBSD é desenvolvido por uma equipe de voluntários localizada ao redor do mundo. Os desenvolvedores usam a Internet para todas as comunicações e muitos não se conheceram pessoalmente. Além dos grupos de usuários locais patrocinados e assistidos por usuários, uma conferência anual, chamada BSDcon, é realizada pela USENIX . O BSDcon não é específico do FreeBSD, portanto ele lida com os aspectos técnicos de todos os sistemas operacionais derivados do BSD, incluindo OpenBSD e NetBSD . Além do BSDcon, três outras conferências anuais, EuroBSDCon, AsiaBSDCon e BSDCan, acontecem na Europa , Japão e Canadá, respectivamente.

Estrutura de governança

O Projeto FreeBSD é executado por cerca de 500 committers ou desenvolvedores que têm acesso de commit aos repositórios de código-fonte master e podem desenvolver, depurar ou aprimorar qualquer parte do sistema. A maioria dos desenvolvedores são voluntários e poucos são pagos por algumas empresas. Existem vários tipos de committers, incluindo committers de origem (sistema operacional de base), committers de documentos (documentação e autores de sites) e portas (portabilidade e infraestrutura de aplicativos de terceiros). A cada dois anos, os committers do FreeBSD selecionam um FreeBSD Core Team de 9 membros, que é responsável pela direção geral do projeto, definindo e reforçando as regras do projeto e aprovando novos committers, ou a concessão de acesso ao commit do SVN. Uma série de responsabilidades são oficialmente atribuídas a outras equipes de desenvolvimento pela Equipe Central do FreeBSD, por exemplo, a responsabilidade de gerenciar a coleção de ports é delegada à Equipe de Gerenciamento de Portas.

Além dos desenvolvedores, o FreeBSD tem milhares de "contribuidores". Os contribuidores também são voluntários fora do projeto FreeBSD, que submetem patches para consideração dos committers, já que eles não têm acesso direto ao repositório de código-fonte do FreeBSD. Em seguida, os comprometedores avaliam os envios dos contribuidores e decidem o que aceitar e o que rejeitar. Um colaborador que envia patches de alta qualidade geralmente é solicitado a se tornar um committer.

Galhos

Os desenvolvedores do FreeBSD mantêm pelo menos dois ramos de desenvolvimento simultâneo. O ramo -CURRENT sempre representa a " ponta de lança" do desenvolvimento do FreeBSD. Um ramo -STABLE do FreeBSD é criado para cada número de versão principal, do qual -RELEASE é eliminado uma vez a cada 4–6 meses. Se um recurso é suficientemente estável e maduro, provavelmente será feito backport ( MFC ou Merge from CURRENT na gíria de desenvolvedor do FreeBSD) para o ramo -STABLE .

Fundação

"Na semana passada, doei um milhão de dólares para a Fundação FreeBSD, que apóia o sistema operacional de código aberto que tem ajudado milhões de programadores a perseguir suas paixões e dar vida a suas ideias. Na verdade, sou uma dessas pessoas. Comecei a usar FreeBSD no final dos anos 90, quando eu não tinha muito dinheiro e morava em casas do governo. De certa forma, o FreeBSD me ajudou a sair da pobreza - uma das principais razões pelas quais eu consegui um emprego no Yahoo! é porque eles estavam usando FreeBSD, e era meu sistema operacional preferido. Anos depois, quando Brian e eu começamos a construir o WhatsApp, usamos o FreeBSD para manter nossos servidores funcionando. Ainda usamos. Estou anunciando esta doação para iluminar o que é bom trabalho sendo feito pela Fundação FreeBSD, com a esperança de que outros também ajudem a levar este projeto adiante. Todos nos beneficiaremos se o FreeBSD puder continuar a dar às pessoas a mesma oportunidade que me deu - se puder tirar mais crianças imigrantes da pobreza e ajudar mais startups a construir algo de sucesso ul, e até transformador. "

Jan Koum

O desenvolvimento do FreeBSD é parcialmente suportado pela FreeBSD Foundation. A fundação é uma organização sem fins lucrativos que aceita doações para financiar o desenvolvimento do FreeBSD. Esse financiamento tem sido usado para patrocinar desenvolvedores para atividades específicas, comprar hardware e infraestrutura de rede, fornecer bolsas de viagem para encontros de desenvolvedores e fornecer suporte legal para o projeto FreeBSD.

Em novembro de 2014, a Fundação FreeBSD recebeu doação de US $ 1 milhão de Jan Koum , cofundador e CEO do WhatsApp  - a maior doação individual para a Fundação desde o seu início. Em dezembro de 2016, Jan Koum doou mais 500 mil dólares. O próprio Jan Koum é usuário do FreeBSD desde o final dos anos 1990 e o WhatsApp usa o FreeBSD em seus servidores.

Licença

O FreeBSD é lançado sob uma variedade de licenças de código aberto. O código do kernel e a maioria dos códigos recém-criados são lançados sob a licença BSD de duas cláusulas , que permite que todos usem e redistribuam o FreeBSD como desejarem. Esta licença foi aprovada pela Free Software Foundation e Open Source Initiative como uma licença de Software Livre e de Código Aberto, respectivamente. A Free Software Foundation descreveu esta licença como "uma licença de software livre frouxa, permissiva e não copyleft, compatível com a GNU GPL". Existem partes lançadas sob licenças BSD de três e quatro cláusulas, bem como a licença Beerware . Alguns drivers de dispositivo incluem um blob binário , como o Atheros HAL das versões do FreeBSD anteriores a 7.2. Parte do código contribuído por outros projetos está licenciado sob GPL , LGPL , CDDL e ISC . Todo o código licenciado sob GPL e CDDL é claramente separado do código sob licenças liberais, para tornar mais fácil para usuários, como fabricantes de dispositivos incorporados, usar apenas licenças de software livre permissivas . O ClangBSD visa substituir algumas dependências GPL no sistema base do FreeBSD, substituindo a coleção de compiladores GNU pelo compilador LLVM / Clang licenciado por BSD . O ClangBSD tornou-se self-hosting em 16 de abril de 2010.

Por muitos anos o logotipo do FreeBSD foi o BSD Daemon genérico , também chamado de Beastie , uma pronúncia distorcida do BSD . No entanto, Beastie não era exclusivo do FreeBSD. Aparecendo pela primeira vez em 1976 em camisetas Unix compradas pela Bell Labs , as versões mais populares do daemon BSD foram desenhadas pelo diretor de animação John Lasseter no início de 1984. Várias versões específicas do FreeBSD foram posteriormente desenhadas por Tatsumi Hosokawa.

Em termos litográficos, o gráfico de Lasseter não é arte de linha e muitas vezes requer um processo de impressão offset de foto em quatro cores para reprodução fiel em superfícies físicas como o papel. Além disso, o daemon BSD foi pensado para ser muito detalhado graficamente para escala de tamanho suave e esteticamente superdependente de várias gradações de cores, tornando difícil a reprodução confiável como um logotipo simples e padronizado em apenas duas ou três cores, muito menos em monocromático. Por causa dessas preocupações, uma competição foi realizada e um novo logotipo desenhado por Anton K. Gural, ainda ecoando o daemon BSD, foi lançado em 8 de outubro de 2005. No entanto, foi anunciado por Robert Watson que o projeto FreeBSD está "procurando um novo logo, mas não um novo mascote "e que o projeto FreeBSD continuaria a usar o Beastie como seu mascote.

O nome "FreeBSD" foi cunhado por David Greenman em 19 de junho de 1993, outros nomes sugeridos foram "BSDFree86" e "Free86BSD". O slogan do FreeBSD, "The Power to Serve", é uma marca comercial da The FreeBSD Foundation.

Derivados

PC-BSD versão 10, o sistema operacional que mais tarde foi conhecido como TrueOS

Existem várias distribuições de software baseadas no FreeBSD. Derivados notáveis ​​incluem:

Todas essas distribuições têm nenhuma ou apenas pequenas mudanças quando comparadas com o sistema base do FreeBSD original. A principal diferença em relação ao FreeBSD original é que eles vêm com software pré-instalado e pré-configurado para casos de uso específicos. Isso pode ser comparado com as distribuições Linux , que são todas compatíveis com binários porque usam o mesmo kernel e também usam as mesmas ferramentas básicas, compiladores e bibliotecas, enquanto vêm com diferentes aplicativos, configurações e marcas.

Além dessas distribuições, existem alguns sistemas operacionais independentes baseados no FreeBSD. DragonFly BSD é um fork do FreeBSD 4.8 que visa uma estratégia de sincronização de multiprocessador diferente da escolhida para o FreeBSD 5 e desenvolvimento de alguns recursos de microkernel . Ele não tem como objetivo permanecer compatível com o FreeBSD e possui grandes diferenças no kernel e no ambiente de usuário básico . MidnightBSD é um fork do FreeBSD 6.1 emprestado pesadamente do NeXTSTEP , particularmente no departamento de interface do usuário.

Darwin , o núcleo da Apple 's MacOS , inclui um sistema de arquivos virtual e rede de pilha derivadas daquelas do FreeBSD, e componentes de seu espaço do usuário também são FreeBSD-derivada.

Alguns serviços de assinatura que são baseados diretamente no FreeBSD são:

  • WhatsApp  - processa 2 milhões de conexões TCP simultâneas por servidor.

Dispositivos embutidos e sistemas operacionais de dispositivos embutidos baseados no FreeBSD incluem:

  • Juniper 's JUNOS router sistema operacional.
  • EMC Isilon 's OneFS sistema operacional.
  • Data ONTAP 8.x da NetApp e o agora substituído ONTAP GX (apenas como carregador para o módulo de espaço do kernel proprietário).
  • Open Connect Appliance da Netflix para lidar com a entrega de conteúdo.
  • O PlayStation 4 (" Orbis OS ")
  • Sistema de arquivos paralelos Panasas '
  • pfSense , um sistema operacional de firewall, roteador e dispositivo de segurança de código aberto.

Histórico de versão

Lenda: Versão antiga, não mantida Versão mais antiga, ainda mantida Versão estável atual Versão de visualização mais recente Lançamento futuro
Versão Data de lançamento Suportado até Mudanças significativas
Versão antiga, não mais mantida: 1.x Novembro de 1993
  • O primeiro lançamento oficial.
  • A coleção de Ports.
  • Corrigidos alguns bugs pendentes de importação de 386BSD
  • Adição de alguns aplicativos portados ( XFree86 , XView , InterViews , elm , nntp )
Versão antiga, não mais mantida: 2.x 22 de novembro de 1994
  • Base de código substituída por BSD-Lite 4.4 (para satisfazer os termos do acordo de ação judicial USL v. BSDi )
  • Novo instalador e novo gerenciador de inicialização
  • Suporte a sistemas de arquivos carregáveis ​​para mais sistemas de arquivos (MS-DOS, unionfs, kernfs )
  • Módulos de kernel carregáveis ​​importados do NetBSD
  • BSD malloc substituído por phkmalloc
  • Emulação Linux completa com ELF
  • Dummynet Traffic Shaping
Versão antiga, não mais mantida: 3.x 16 de outubro de 1998
Versão antiga, não mais mantida: 4.x 14 de março de 2000 31 de janeiro de 2007
Versão antiga, não mais mantida: 5x 14 de janeiro de 2003 31 de maio de 2008
Versão antiga, não mais mantida: 6x 1 de novembro de 2005 30 de novembro de 2010
  • Suporte de contadores de monitoramento de desempenho
  • Nova pilha de Wi-Fi
  • GELI
  • Ponte de rede
  • Utilitário NanoBSD
  • Suporte a driver NDIS
  • Multiplexador de teclado
  • Estabilidade do sistema de arquivos UFS
  • Autoconfiguração de Bluetooth
  • Drivers adicionais de Ethernet e RAID
  • Suporte para arquitetura Xbox
  • Subsistema de auditoria OpenBSM
  • freebsd-update (atualizações binárias para correções de segurança e patches de errata)
Versão antiga, não mais mantida: 7.x 27 de fevereiro de 2008 28 de fevereiro de 2013
Versão antiga, não mais mantida: 8.x 26 de novembro de 2009 1 de agosto de 2015
  • Suporte SATA NCQ
  • Suporte para convidados Xen
  • Armazenamento de alta disponibilidade
  • Suporte NFSv4 ACL nativo
  • Suporte USB 3.0
Versão antiga, não mais mantida: 9x 12 de janeiro de 2012 31 de dezembro de 2016
  • Mecanismo de segurança baseado em capacidade Capsicum
  • UFS SoftUpdates + Journal
  • ZFS atualizado para a versão 28
  • bsdconfig, utilitário de configuração do sistema
  • bsdinstall, o novo programa de instalação do sistema
  • RCTL, um mecanismo flexível de limites de recursos
  • GRAID, implementação flexível de software RAID
  • motoristas virtio
  • pkgng
  • vt, a nova implementação de terminal virtual
Versão antiga, não mais mantida: 10.x 20 de janeiro de 2014 31 de outubro de 2018
  • Hipervisor BHyVe
  • O Clang substituiu o GCC em arquiteturas compatíveis
  • Nova pilha iSCSI
  • Adicionado suporte para Raspberry Pi
  • Inicialização UEFI para amd64
  • ZFS inicializando via UEFI
  • ZFS no sistema de arquivos raiz
  • Melhorias de confiabilidade e desempenho do ZFS
  • Implementação de pkg, um novo gerenciador de pacotes FreeBSD, também conhecido como pkgng
  • Suporte para protocolo UDP Lite (RFC 3828)
  • Suporte SMP para armv6
  • Novo montador automático baseado em autofs
  • Código DRM atualizado para corresponder ao Linux 3.8.13, permitindo vários servidores X simultâneos
  • Suporte para binários Linux de 64 bits por meio da camada de compatibilidade
Versão antiga, não mais mantida: 11x 10 de outubro de 2016 30 de setembro de 2021
  • Nova versão do NetMap
  • Suporte para a arquitetura ARM de 64 bits
  • umount (8) -N nova sinalização que é usada para forçar a desmontagem de um sistema de arquivos montado por NFS
  • crontab -f nova sinalização adicionada
  • O sistema de arquivos ZFS foi atualizado para implementar a montagem paralela.
  • O utilitário trim (8) foi adicionado, que exclui o conteúdo de blocos em dispositivos de armazenamento baseados em flash que usam algoritmos de nivelamento de desgaste.
Versão mais antiga, mas ainda mantida: 12x 11 de dezembro de 2018
  • O sistema de arquivos ext2fs (5) foi atualizado para suportar suporte total de leitura / gravação para ext4
  • O FreeBSD mudou a forma como os drivers gráficos são tratados no amd64 e i386. Drivers gráficos para placas de vídeo modernas ATI-AMD e Intel agora estão disponíveis na coleção de portas.
  • O sistema de arquivos UFS / FFS foi atualizado para suportar hashes de verificação para mapas de grupos de cilindros.
Versão estável atual: 13x 13 de abril de 2021
  • Os utilitários clang, lld e lldb e as bibliotecas compilador-rt, llvm, libunwind e libc ++ foram atualizados para a versão 11.0.1.
  • Removidos os obsoletos binutils 2.17 e gcc (1) 4.2.1 da árvore. Todas as arquiteturas suportadas agora usam a cadeia de ferramentas LLVM / clang.
  • O kernel agora suporta enquadramento e criptografia no kernel de dados de Segurança da Camada de Transporte (TLS) em soquetes TCP para TLS versões 1.0 a 1.3. O descarregamento de transmissão por meio de drivers de criptografia no kernel é compatível com conjuntos de criptografia MtE usando AES-CBC, bem como conjuntos de criptografia AEAD usando AES-GCM. Receber transferência por meio de drivers de criptografia no kernel é compatível com os conjuntos de criptografia AES-GCM para TLS 1.2. O uso de KTLS requer o uso de uma biblioteca SSL de domínio de usuário com reconhecimento de KTLS. A biblioteca OpenSSL incluída no sistema básico não habilita o suporte KTLS por padrão, mas o suporte pode ser habilitado construindo com a opção WITH_OPENSSL_KTLS
  • A arquitetura ARM de 64 bits conhecida como arm64 ou AArch64 foi promovida ao status Tier-1 para o FreeBSD 13.
Versão Data de lançamento Suportado até Mudanças significativas

Veja também

Referências

Citações

Fontes

links externos