O que define um Unix?

O que define um Unix?
O que define um Unix?
 Na ultima live que aconteceu ontem, debati a afirmação de que os BSDs e o MacOSX (também chamado OSX) não são Unix... Baseado em nada e em coisa nenhuma. O estranho foi afirmar que o FreeBSD não é por não possuir a Single Unix Specification (também abreviado para SUS) enquanto que MacOSX, mesmo possuindo a SUS, está distante do que o Unix é.... Torna-se totalmente contraditório. Então vamos a o que interessa baseado em pontos históricos e técnicos (e que comece o mimimi).

 Mesmo sendo um clone do Unix, Linux é um verdadeiro Unix (caso queria saber mais sobre clones do Unix, quem forjou esse termo e qual foi o primeiro clone da história, fiz um video alguns anos atrás explicando melhor sobre o assunto).

 Como descrito no próprio site kernel.org, "Linux é desenvolvido de acordo com a API POSIX e a Single UNIX Specification".

 Linux é um clone do sistema operacional Unix, escrito do zero por Linus Torvalds com assistência de um time espontaneamente unido de hackers em torno da Net. Ele visa conformidade com a POSIX e a Single UNIX Specification.

Ele possui todos os recursos você esperaria de um pleno Unix moderno, incluindo multitarefa real, memória virtual, bibliotecas compartilhadas, carregamento em demanda, executáveis copy-on-write compartilhados, gerenciamento de memória adequado, e redes multitarefa incluindo IPv4 e IPv6.
"Por conta dos padrões e conformidades POSIX, programas escritos no Unix podiam ser compilados para um sistema operacional Linux com uma quantidade habitualmente limitada de esforço de port. Shell scripts podiam ser utilizados diretamente no Linux na maioria dos casos. Enquanto algumas ferramentas tinham levemente opções diferentes em flag/command-line entre Unix e Linux, a maioria operavam o mesmo em ambos."
 A principio tratava-se do desenvolvimento de um sistema operacional que deveria parecer-se com o Minix (por isso o e-mail "Um Minix melhor do que o Minix") para substituí-lo no seu uso pessoal diário já que o Minix não fazia tão bem todas as tarefas que as pessoas precisavam. Porém seu novo sistema operacional (que ia se chamar Freax e não Linux*) começou a entrar em uma metamorfose, tonando-se algo muito maior e mais poderoso e foi aí que Linus teve a seguinte ideia:
"Por que não transformar meu sistema operacional em um Unix?"
 Então Linus disparou a seguinte mensagem que todos já conhecem:
  From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  Newsgroups: comp.os.minix
  Subject: Gcc-1.40 and a posix-question
  Message-ID:
  Date: 3 Jul 91 10:00:50 GMT

 Olá netlanders,

  Devido a um projeto que estou trabalhando (em minix), estou interessando na definição do padrão posix. Alguém poderia por favor me indicar um formato (preferencialmente) de leitura de máquina das ultimas regras posix? Sites ftp seria legal.
 Depois que lhe enviaram o manuais, Linus trabalhou para implementar todas as características POSIX necessárias (cerca de 98%) para se ter um kernel Unix. É claro que nem todas as características puderam ser implementadas logo em seu lançamento inicial; mas as pessoas já tinham acesso a um Unix. As demais características foram sendo gradativamente implementas em seus próximos lançamentos. Uma exemplo dessas características que ainda não havia sido implementada e que Linus relata em sua biografia foi o init system:
" Okay, tradicionalmente em um real sistema Unix o primeiro programa que você executa é chamado init, mas o init realmente precisa de um monte de infraestrutura para que funcione. Ele é tipo um controlador para o que acontece. Mas quando você realmente não tem algo que funcione, não há sentido ter init. Então ao inves de iniciar o init, a primeira coisa que meu kernel fazia era iniciar o shell. Eu tinha implementado cerca de 25 system calls e, como mencionei, esse foi o primeiro programa real que eu estava tentando executar."


 Tais outros recursos foram sendo adicionados gradativamente ao longo de cada nova versão. E somente para confirmar que seu sistema operacional era um Unix, Linus decidiu compilá-lo utilizando o GCC com a logica de que, já que o compilador seguia tais normas, se conseguisse compilar seu kernel com o GCC, logo ele conseguiu desenvolver um Unix. Foi pelo mesmo motivo que Linus Torvalds decidiu fazer uso também de outras ferramentas do GNU (como Bash e Emacs) e do BSD. Desta forma, as pessoas olhavam para o Linux e enxergavam um Unix.

 Moral da história, estamos tratando de um verdadeiro Unix. O que define um Unix é ele ser um Unix e não possuir um certificado de especificação ou uma opinião.


https://www.opengroup.org/membership/forums/platform/unix
https://www.opengroup.org/openbrand/register/
https://www.opengroup.org/openbrand/register/index2.html
https://www.kernel.org/category/about.html
https://www.kernel.org/linux.html

Comente com o Facebook:

Nenhum comentário:

Postar um comentário

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 (2) ambiente gráfico (19) AMD (14) analise (10) Andriod (16) android (7) Apple (1) arm (5) artigo (5) aws (1) bc (23) benchmark (6) BetrFS (1) blackhat (1) BSDs (30) 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 (11) filesystem (82) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (20) Funtoo Linux (13) games (94) gerenciadores de pacotes (4) glaucus (3) GOG (3) google (9) gpu (3) hacker (2) hardware (104) hash (1) helenos (3) I.A (1) init system (11) Intel (15) inteligencia artificial (2) IoT (1) ispconfig (1) jogos (38) 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 (165) 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 (7) OpenShift (1) oracle (1) os vários sabores de Linux (43) 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 (23) 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 (2) servidores (2) shell (9) shell script (8) sistema operacional (25) skarnet (1) smartphones (3) Software livre e de código aberto (151) sorteio (3) Steam (10) Steam no Linux (8) supercomputadores (4) suse (6) systemd (7) terminal (89) terminal de comandos (18) toca do tux (1) toybox (27) 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) yash (1) ZFS (15) zsh (3)