Logo Hardware.com.br
goomboom
goomboom Super Participante Registrado
920 Mensagens 10 Curtidas

Problemas graves no Linux

#1 Por goomboom 28/12/2008 - 17:08
Olá

Há muito tempo testo distribuições GNU /Linux e tenho visto que elas sempre possuem os mesmos problemas .Eles não são tão fáceis de se encontrar e podem ser confundidos com outros problemas .
Embora eu goste muito do GNU/Linux e do software livre , é necessário que esses problemas sejam corrigidos para que assim conquistem um bom pedaço da área do desktop.

Enfim vou começar a citar os problemas:

1° Não há separação entre software que é do sistema e software que não é.

Por exemplo no Windows nenhum programa que se instala pode remover o botão iniciar ou o windows explorer . No Linux ou outro sistema Unix Livre ,isso pode acontecer . Na maioria das vezes , o individuo instala um programa p2p por exemplo ,mas ai o sistema de pacotes insiste em atualizar algum pacote do gnome ou uma dependencia do sistema.

Issso é errado .Deveria existir uma lista de pacotes do sistema que não podem ser manipulados a qualquer mudança que aconteça .O que eu quero dizer é que deveria existir uma lista de pacotes do sistema que nunca seriam modificadas pelos aplicativos que o usuário instala .Exceto somente pelo o desenvolvedor da distro que então entregaria atualizações de segurança.

Nesta lista proibida deveria existir :

Gnome (ou outro ambiente de trabalho)
Kernel
X ( e todos os seus aparatos)
Glibc
E alguns outros importantes para o sistema.

Desculpem falar ,mas devemos fazer igual ao Windows .Não devemos misturar aplicativos com os pacotes do sistema. No win por exemplo , o indivíduo pode remover todos os seus aplicativos e continuar com o Windows intacto .No linux isso não acontece .O usuário instala um programa que não tem nada a ver ,mas ai o linux mistura com os pacotes do sistema , tenta atualizar o gnome , tenta remover conflitos e tudo.

O que se propõe então ?
Criar uma lista de pacotes do sistema que nunca seriam modificados por alguma aplicação que o usuário instala.Exceto para atualização de segurança e que não quebrem a API..

O que seria pacote do sistema?
São aqueles pacotes essenciais para o funcionamente adequado para o usuário.Exemplos são :
Gnome -(se modificar esse ambiente de trabalho é a mesma coisa que remover o botão "Iniciar" do usuário).
Kernel,- Não preciso dizer nada
X - Essencial
Glibc

Agora , o que não fazem parte do sistema?
Editores de texto
Navegadores
Jogos
Emuladores

Esses aplicativos opcionais e dependem de usuário para usuário .Não podemos misturar com o que é essencial para o usuário (pacotes do sistema) , com o que não é (pacotes de aplicativos - jogos, editores de texto e etc..).

Uma analogia simples pra entender : O Windows não cola a casa com seus móveis.Ele não quebra a parede da casa pra instalar um armário.Se precisar de uma parede nova pra por o armário , o Windows constroi outra parede ,mas não quebra a anterior. O windows é capaz de fazer algo que o gentoo linux faz , manter varios aplicativos funcionando ao mesmo tempo sem que nenhuma remova a outra .E isso é uma coisa boa

O Unix quebra o piso da casa pra por uma cadeira no chão .


2° Sistema de pacotes
O sistema "Sistema de pacotes" é muito problemático e complexo. Além de tratar todos os aplicativos como "pacotes" ele é muito preocupado em compartilhar TODAS as dependencias e prover uma segurança EXTREMAMENTE ALTA que é desnecessária.
Isso acontece porque isso é uma herança velha dos profissionais do Unix.Antigamente ,espaço em disco era pequeno e manter duas bibliotecas iguais traria um risco na segurança do sistema.

MAS atualmente esses problemas não são tão preocupantes assim .Espaco em disco se tornou muito barato e expansivo.O Linux é heterogeneo demais pra se preocupar em compartilhar todas essas bibliotecas.Talvez isso seja bom pra profissionais ,mas para usuários isso não é.
Pra falar a verdade ,isso faz muito mal pro usuário. Por exemplo , o usuário se perde todo em uma montanha de pacotes para somente instalar um único aplicativo .Vive instalando pacotes mínimos muito pequenos, pois se não instalar , nada de aplicativo instalado .Pra falar a verdade o usuário nem mesmo sabe qual pacote começar .Sem contar que pela falta de uma API estável, ele provavelmente vai ter que puxar todos os pacotes novamente quando instalar uma versão nova da distribuiçao.

Isso é muito diferente do Windows , onde o usuário instala o programa desejado através de um único instalador (ou dois no máximo) e fica com o programa pronto.E o instalador é bonito e informal , não usa frontends e não fico dando avisos de "conflito " "falta de dependencia" e outras coisas complexas para o usuário.
O windows não se preocupa em compartilhar todas as bibliotecas e gastar um pouco mais de espaço pra manter duas bibliotecas iguais .
Vocês podem falar que isso aumenta o risco de falhas .Sim ,pode aumentar, mas não é um risco elevado e por fim é muito melhor o usuário ter o programa funcionando do que viver num ambiente seguro e não ter programa nenhum funcionando.
E na realidade , os crackers não exploram os aplicativos tanto assim .Eles na realide ,exploram falhas do sistema .Pois aplicativos são muito diferentes ,mas o sistema não.

Mais um problema :.
Vocês já viram que trancaram a instalação de aplicativos dentro do sistema. O usuário só pode instalar programas de forma fácil através do adicionar e remover programas ?
Ele deveria também poder acessar a internet e puxar da pagina oficial do desenvolvedor um instalador bonito e prático

Mais outro problema.:"Baixar a lista de pacotes"
Isso é horrivel e deixa o sistema dependente de internet ,pois o usuário tem que gastar banda só pra ter aplicativos instalados.
Isso também é uma herança velha dos profissionais de Unix , onde deveriam puxar pacotes de repositórios "seguros" e de confiança.Isso é um extremo formalismo e trata os Sistemas Linux como se fossem os mais inseguros do mundo.


O que deve ser feito ?
Primeira coisa : largar esse "sistema de pacotes" .É muito modular e parece uma pilha de lego.Recomendado para profissionais .Para usuários nao.
Esquecer a paranoia de compartilhar todas as bibliotecas .Mas não ha necessidade também de clonar toda a bibliteca para cada aplicativo.
Por exemplo , Se um aplicativo exige o python então faça o usuário instalar o aplicativo python atraves de uma mensagem simples "Erro python não foi encontrado , instale em www.python.org" . Python é um aplicativo grande e que muitos aplicativos dependem dele.
Agora nunca peça ao usuário pra instalar a libblablabla.so .Isso já deveria ser incluido com o aplicativo.

A diferença que devem notar é que se um aplicativo necessita de outro aplicativo pra instalar ,então o faça instalar o aplicativo .
Se for o caso de depender de uma biblioteca ou uma DLL ,então ja inclua no aplicativo mesmo que já exista no sistema ou não. Pois na realidade você não sabe se há ou não no sistema ,pois você sabe que o usuário tem somente o sistema.Você não sabe se ele tem a libblablabla incluida ou não pois isso não faz parte do sistema . (Lembre-se do primeiro problema citado acima).


Isso é importante , por mais que seja tolo manter duas ou mais bibliotecas iguais .Mas ainda acima de tudo é melhor manter duas ou mais bibliotecas ,pois mesmo sendo iguais ,elas são compiladas de forma diferente . E se um programa for desinstalado , o outro programa não sofre o risco de parar de funcionar pois tem a sua propria biblioteca

Isso além de tudo facilitaria muito para o usuário .E diminuira a extrema modularidade danosa ao usuário que chega ao ponto de instalar pacotes de tamanho de 30k para um app enorme funcionar.E a palavra pacote é feia .Isso é coisa de profissional de segurança.

Melhorar também a interface de instalação.Devemos usar instaladores e não frontends de apt-get ou outra coisa parecida.São muito simplórios, não dão uma explicação exata do que usuário instala . E são muito formais, jogam na cara do usuário que a libblablabla.so não está instalada.
Compare com os instaldores do PC-BSD, Lzpack e msi.

Tudo isso seria evitado se o sistema usasse instaladores com dependencias banais já incluídas e através de um unico instalador.E isso só funciona se seguirmos a solução do primeiro problema citado lá em cima.Pois ainda infelizmente o Linux não sabe o que é do sistema e o que não é.

Uma analogia fácil: O windows já te da uns kits prontos .O Linux dá um lego .Mas o usuário não quer montar , o usuário quer usar. E se queremos conquistar o usuario devemos para de montar pilhas de lego.


3° Dependencia da Linha de comando

Infelizmente o sistemas Unix Livre ainda tem muita dependencia da linha de comando escondida nas interfaces gráficas. Muitos aplicativos usam ainda o conceito de backend-frontend onde existem duas interfaces rodando ao mesmo tempo. A GUI que manda comandos de texto para a interface terminal do backend que então é processado.
Além de gastar mais recursos pra manter duas interfaces rodando e criar uma dependencia da linha de comando, o sistema pode entrar numa situação que eu chamo de dissonância.
Dissonancia:

É aquela situação exemplar onde você clica na GUI frontend e não acontece nada , pois na realidade aconteceu um erro feio na cli backend ,mas a GUI- não sabe tratar o erro de forma adequada.
Ou pode ser também que você fechou uma GUI-frontend travada ,mas a cli-backend continua a funcionar e gastando recursos.Parece aquele efeito de fechar o explorer ,mas não te deixar ejetar o cdrom.
Isso é dissonancia (nesse caso) ,ou seja ,é a falta de harmonia onde as duas interfaces não se comunicam junto ao mesmo tempo.

Isso não é de todo mal ?Não muito , isso não é tão prejudicial se o programa for bem feito .Pode se tornar até imperceptível. Mas isso acontece muito na área adminsitrativa. Tem melhorado ,mas isso é uma prática que temos que evitar.
Por exemplo , muitos querem alterar configurações do sistema ,como cor ,rede,som ,drivers ,mas quase sempre usam frontends mal feitos e que não conseguem alterar de forma eficaz as configurações , pois provavelmente ele passa as configurações pra linha de comando ,e a linha de comando faz o trabalho.
Mas a dissonancia vem e vai.

Olhem a diferença no windows e no Macintosh.Eles eliminaram essa ideia de frontend e backend na area de adminsitração do sistema. Conectar a interntet,criar uma conexão ,configurar a rede ,som,mouse,drivers,video são todos feito pela a interface gráfica.


(Uma dica ,o Linux e os Unix Livres tem uma interface do usuário ESPETACULAR .,navegadores, browsers ,editores, mas na área adminiistrativa peca muito.Devemos criar interfaces graficas boas e decentes para que o usuário instale um driver sem muita dificuldade ou configure a rede sem muita dificuldade.E também não podemos criar interfaces gráficas que só instalam um tipo de driver .Devemos criar interfaces que facilite o usuário instalar qualquer tipo de driver com facilidade.)

Mais outro problema : Muitos aplicativos ainda não se libertaram da linha de comando .Um exemplo disso é o Mysql , apache , que embora no windows ,eles tenha um pequeno ícone pra controlar o acesso (mesmo sendo "frontend") , no Linux nem mesmo tem um ícone para controle .Tem que ficar passando comandos no terminal e fica a escondida do usuário .
Certas vezes é hilário o usuario instalar distros grandes como o fedora e o openSuse e estar com apache , mysql e outras coisas rodando sem saber. A culpa é do iniciante ??? Claro que não !!!
O problema é que tais distros possuam aplicativos que não possuam um acesso mínimo sequer pela interface gráfica.
Se existisse um icone no tray avisando que essas coisas estivessem rodando,o usuário teria oportunidade de terminar tais aplicacões não essenciais ao sistema.

Serviços como configuração de rede , banco de dados , aplicativos comuns todos eles devem estar dispostos para acesso a interface gráfica.E idealmente sem uso de front-GUI-back-CLI.



O que deve ser feito ?

Todo software funciona assim ,eles tem suas libs ,arquivos de configuração e a interface de acesso. A interface de acesso pode ser gráfica ou linha de comando.A interface de acesso pede informações para a libs e depois a interface de acesso joga as informações para o usuário.
O que acontece é que as pessoas usam a interface velha da linha de comando e criam outra interface gráfica dependente da linha de comando que então chamam de frotend.
Mas o ideal seria o usuário não usar a interface da linha de comando e sim ligar direto a interface gráfica com a biblioteca que processa os comandos. Pode haver um risco de segurança envolvido,embora os nossos sistema sejam capazes e seguros . O aplicativo inteiro trava,(embora com o frontend-backend também aconteça isso) .
Uma solução pra controlar esses riscos é criar um controlador igual aos que os anti-virus fázem .Colocar um pequeno icone no tray para controlar o anti-vírus.
Existem profissionais que precisam da linha de comando por questões de segurança.É simples , é só ligar a interface da linha de comando com a lib. Mas nunca,NUNCA , ligar a interface gráfica do usuário comum com a interface linha de comando com a interface do profissional.

Em compensação temos boas vantages: mais rápido pois não usa duas interfaces passando mensagens ,independencia da linha de comando , e sem dissonância.

Uma analogia : O Windows transporta informação usando somente o tunel.O Linux passa pelo túnel , faz os transportadores descerem do caminhao ,pegar caixa a caixa e passar pela ponte ,para assim entregarem a encomenda.


4° A Falta de uma API de tempo maior

O linux tem um problema grave e sério que faz todo o usuário jogar seus pacotes da distro anterior fora para instalar todos novo. O problema ,como você imaginam não é uma API estavel sem bugs ,mas a falta de uma api estável é consequencia de uma API muito curta.
Nós com o nosso ciclo extremamente rápido queremos que em todo lançamento saia uma distro sem bugs .Isso é impossível com ciclos exagerados de 6 meses.
Pra você ter uma ideia ,a m$ gastou mais de 5 anos e não conseguiu entregar um windows vi$ta com poucas falhas.
E nos então queremos em 6 meses fazer todo o ciclo de construção e teste pra sair uma distro perfeita!!!!!
O outro lado da estabilidade se refere ao tempo de vida de uma distro.Quanto tempo ela pode instalar novos programas sem a necessidade de atualizar uma nova versão .
Muitos desenvolvedores não querem tal tipo de coisa ,pois pra começar uma API deve durar idealmente 2 anos. Caso eles queira é só seguir a 1° e a 2 ° solução dos problemas que citei acima.
Primeiramente o Linux não tem uma API estável porque não sabe ver o que é do sistema e o que não é (1° problema). Pois o sistema é uma API , os aplicativos não são a API.
Como o Linux e os Unix livres não sabem , então os desenvolvedores de aplicativos não sabem como suportar algo, quais pacotes devem incluir e tudo o mais.E poucos usam tecnologias multi-slot que citei no segundo problema ,que é a capacidade de manter 2 ou mais bibliotecas iguais rodando ao mesmo tempo .Isso faz por exemplo a API durar bastante tempo .Sem contar os outros problemas que citei no 2° problema.


Uma analogia :Windows ;A cada 10 anos vocÊ desmonta o lego
Linux : A cada 6 meses você desmonta o lego mesmo não necessitando e mesmo que uma peça somente esteja com defeito.

Solução : Ver 1° e 2° problema.
Aumentar o ciclo de duração pra no minimo 1 ano e meio .


Acho que é só isso por enquanto


Obrigado!
dwerbert
dwerbert Tô em todas Registrado
1.5K Mensagens 53 Curtidas
#2 Por dwerbert
28/12/2008 - 17:33
calma nem tudo é perfeito tbm vivo testando distros e axo que tem algumas coisas que nunca vai mudar pq são como são as dependencias por exemplo sempre ira ocorrer senão teria que ter um hd gigante para ter tudo, e os pacotes são a coisa que mais gosto no linux simples e pratico tu coloca o programa que quer e ai so baixar e ele mesmo instala,e linha de comando no mandriva por exemplo nem se usa para as coisas corriqueiras então, axo que o linux é o melhor sistema o problema é a complexidade de alguns programas maas nem tudo é perfeito...

"Penso noventa e nove vezes e nada descubro; deixo de pensar, mergulho em profundo silêncio - e eis que a verdade se me revela." Albert Einstein
Linux user #479710 Mint/win 7

Marcos FRM
Marcos FRM Highlander Registrado
10.3K Mensagens 712 Curtidas
#3 Por Marcos FRM
28/12/2008 - 17:50
A questão do gerenciamento de pacotes é importante, mas secundária se comparada à quebra de API a cada nova versão das distribuições; nem falo entre compatiblidade entre distribuições diferentes, mas entre versões da mesma distribuição.

Com uma API que fosse amplamente compatível entre as distribuições (o que implica em padronização do resto do sistema -- scripts de inicialização, estrutura do sistema, etc), que permitisse que eu rodasse binários do Mandriva no Fedora -- por exemplo --, ao natural forçaria um sistema de empacotamento unificado, onde a problemática das bibliotecas iria ter que ser resolvida na marra.
...
goomboom
goomboom Super Participante Registrado
920 Mensagens 10 Curtidas
#4 Por goomboom
28/12/2008 - 18:40
Não é necessário compatibilidade entre várias distros e uma api é necessária somente para o usuário não ficar trocando de aplicação para uma versão atual a todo o tempo.

Tanto que o usuário joga seus pacotes fora .E os pacotes são de aplicativos.

E tem mais , mais uma coisa que esqueci .Aplicativos quando dão errro fatal não exibem nada na tela. Mas exibem tudo no terminal.Seria decente se quando os aplicativos dessem erro fatal , mostrava na tela do usuário e nao na linha de comando.
Core_Dump
Core_Dump General de Pijama Registrado
3.2K Mensagens 111 Curtidas
#6 Por Core_Dump
28/12/2008 - 19:18
Windows e um sistema unico e monolitico; muito facil criar programas e resolver dependencias nesse ambiente.
Existem diversas distribuicoes Linux e os mais variados repositorios de pacotes, o que torna muito mais complexa a tarefa de uniformizar (nem toda distro Linux e um Debian). As falhas vao ocorrer com maior frequencia principalmente se o processo de atualizacao/instalacao for feito por um inexperiente.
adeus.gif
Neo_64
Neo_64 Super Participante Registrado
743 Mensagens 12 Curtidas
#9 Por Neo_64
28/12/2008 - 19:45
Eu gosto muito do software livre, principalmente pela sua idealizaçao e seu objetivo. Lógico que existem e existirao problemas em relaçao a ele. Ele vai se adaptando a comunidade que o utiliza, para determinados fins. Essa eh a graça de tudo. Ao meu ver temos que nos fixar em uma distro que atende nossas necessidades e nos desenvolver em cima dela, trabalhar com uma só entende.. Eu por ex só uso o KNOPPIX.

E na parte que diz que deveriam ter "trancas" do sistema ..Nao concordo, porque quem instala é um usuário com poderes de root, logo deve saber o que está fazendo e os riscos que está correndo. Deve-se restringir as permissoes de usuário para nao interferir no sistema.

Nao devemos comparar com o Windows, uma coisa que compramos e fazemos só o que nos é permitido. Se eu quiser no Linux executar um # rm -rf / eu faço. Nao é falha, é uma permissao que o usuário tem, logo para consertar isso devemos mexer no que os usuários podem fazer..Essa é minha simples opiniao..
#! Linux User # 481541
#!Put the fun back into computing. Use Linux, BSD.
Marcos FRM
Marcos FRM Highlander Registrado
10.3K Mensagens 712 Curtidas
#11 Por Marcos FRM
28/12/2008 - 19:47
goomboom disse:
Usa multiplas versões da mesma biblioteca. Eu tentei explicar,mas o texto que fiz não éstá fácil de entender.

Olhe o windows consegue isso.Ele fica obsoleto ,mas pode utilizar o aplicativos mais atuais.

O linux não tem essa separação.

Porque os programas para Windows usam bibliotecas estáticas na maioria das vezes. "Linkam" com pouca coisa nativa do Windows.

Será possível isso no Linux?
...
neodarkman
neodarkman Veterano Registrado
921 Mensagens 35 Curtidas
#13 Por neodarkman
28/12/2008 - 20:05
Parece que tem gente que se esquece que um dos pontos fracos do windows é o fato de: ao se instalar algum programa corre-se o risco de ter alguma biblioteca sobrescrita... biblioteca crítica, uma dll da vida.... no XP esse problema não foi de todo corrigido... que usa muito como administrador e uinstala muito programa sabe do que eu estou falando....
Sem contar que muita biblioteca é carregada na memória e, não sendo mais usada, nem sempre é descarregada. Liberando recursos do sistema (vide, por exemplo o run32.dll)...
Ambos os sistemas tem seus posnto fracos e fortes... mas eu prefiro o Linux. Sei exatamento no que estou mexendo.... e como funciona. Não fico na escuridão e no loop de perguntas sem fim do help entre outros problemas usuais que ainda não foram corrigidos no mundo M$...
Quanto a compatibilidade entre as distribuições??? Nem a vida se mostra compatível!!!! Haja vista o número de divórcios/separações/guerras no mundo... eh eh eh eh
Lembre-se só Deus salva... o homem faz backup.isso_ai.png

Corei5-10th - 16Gb DDR4 - Kubuntu 20.04/win10Pro
Acer Aspire Corei5-10th - 12Gb DDR4 Kubuntu 20.04 -Main
Linux User # 156897
RR_Fang
RR_Fang Super Participante Registrado
430 Mensagens 39 Curtidas
#14 Por RR_Fang
28/12/2008 - 20:13
goomboom disse:
1° Não há separação entre software que é do sistema e software que não é.


Sistemas UNIX mais tradicionais, tal como o BSD, possuem uma maior integração entre userland base e kernel. Nos BSD's atuais, há uma distinção entre " /usr "e " /usr/local ". A userland base não é administrada pelo gerenciador de pacotes, mas ainda pode ser atualizada (CVS, pelos sources; no caso do FreeBSD há uma ferramenta de atualização binária)

----

O problema-chave é a imensa diversidade de softwares e versões que podemos encontrar na userland Linux... O Mac OS X possui uma userland fixa pré-determinada, poderíamos dizer que há uma única "distribuição" do sistema. Não há tamanha variação de bibliotecas, senão a atualização com patches.

O mesmo deveria acontecer com o Windows, que centraliza as bibliotecas em uma única "distribuição", mas a inconsistência das mesmas leva a incompatibilidades.

No Linux, o problema é certificar-se que determinada aplicação executará com êxito em todas as possíveis combinações de bibliotecas e softwares disponibilizados não só no presente e em no passado (usualmente, passado próximo), mas também no futuro.

Muitos softwares são disponibilizados em pacotes estáticos para Linux, já compilados de forma a incluir versões próprias de suas dependências para assim garantir sua execução. Esse possível debate entre compilação e linking estático versus dinâmico, cada um com seus prós e contras, se encaixa perfeitamente na segunda crítica do goomboom.

Mas isso não resolve tudo, ainda há pacotes que dependem de uma API estável para assim fazerem seu trabalho. Quer exemplo mais claro que os drivers de vídeo proprietários da AMD e Nvidia? Não são raras as alterações de API no X.Org e, a certo ponto, no próprio Linux Kernel, que quebrem com esses drivers.

Há dois fatos que alguém poderia correlacionar aqui. Questões de incompatibilidade de drivers também ocorrem no universo Windows, tal como na migração do XP para o Vista. Mas não devemos nivelar por baixo a situação, mesmo porque pouco se quebrou numa mesma versão, com os Service Packs.

Outro argumento, muito característico do zelotismo... Softwares proprietários são "binary blobs", por isso não devemos garantir compatibilidade com os mesmos, que deveriam abrir seus sources, correto?... NOT.

Fato é que as empresas de software não se interessam pelo custo e pelo trabalho de manutenção resultantes dos ciclos de inovação cada vez mais rápidos, do tempo de vida cada vez mais curto do Software Livre.

Como solucionar esse problema? Muitos gerenciadores de pacote, tidos como "de nova geração", buscaram sem sucesso a compatibilidade entre distribuições, falhando justamente ao aumentar ainda mais a fragmentação.

Projetos como a LSB, Linux Standard Base, objetivaram a consolidação de uma API, de uma base de bibliotecas comum a todas as distribuições. Novamente, seu sucesso é questionável, pois não se pode alcançar todas as distribuições. Há ainda acusações de falta de neutralidade na padronização devido a interesses particularistas.

Um projeto que no momento julgo interessante é o PackageKit, que fornece uma camada de abstração (API) para o manuseamento de pacotes. Interessante, pois permitiria a unificação de GUIs e outras ferramentas de gerenciamento de pacotes. Mas, ao mesmo tempo, não resolve por si só o problema, apenas atua no nível superior.

Um experimento mais ousado, mas também relacionado, é a distribuição GoboLinux. Difícil explicar qual o objetivo dela, mas para tornar o próprio sistema de arquivos o gerenciador de pacotes, ela quebra todo o layout tradicional, se não canônico, do UNIX. Vale a pena conferir:
http://www.gobolinux.org/
Ricardo "Fang MoonRupt"
< Archlinux User >
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal