Por que o Linux tem um compilador C por padrão?

2

Por que uma distribuição Linux tem o gcc instalado antecipadamente? É porque a maioria das aplicações no linux estão escritas em C?

O que aconteceria se o diretório gcc fosse excluído?

    
por DesirePRG 29.06.2013 / 13:01

4 respostas

14

Why does a Linux distribution have gcc installed in advance?

A distribuição Linux é bastante vaga. Alguns instalam, a maioria oferece para instalá-lo (possivelmente mesmo se você selecionar os padrões durante a instalação). No entanto, nem todas as distribuições irão instalá-lo e você geralmente tem uma escolha.

Is it because most of the applications in Linux are written in C?

Não. Um compilador C (qualquer compilador C, GCC é apenas um exemplo, poderia ser clang/lvm , ou qualquer outra coisa) é incrivelmente útil de se ter. E não apenas em um sistema Linux, mas também em instalações BSDs ou Windows.

What would happen if the gcc directory is deleted?

Supondo que não existam programas instalados que dependam de qualquer parte do GCC (ou de uma parte dele, como o pré-processador), tudo continuará funcionando bem. Você simplesmente não pode compilar nenhum novo programa em C com a versão do GCC que acabou de ser deletada. Se foi o último compilador C (você pode ter múltiplos compiladores instalados), então você precisará usar um pacote binário para reinstalá-lo se você compilar qualquer programa em C posteriormente.

Note que com O que aconteceria se o diretório gcc fosse deletado? Eu presumo que você o deletaria usando o gerenciador de pacotes apropriado. Apenas aleatoriamente excluir diretórios em qualquer sistema operacional não é uma coisa segura a fazer.

    
por 29.06.2013 / 15:54
3

Vários utilitários no Linux foram compilados usando gcc . A maioria desses utilitários faz chamadas para a biblioteca compartilhada em tempo de execução e, caso você desinstale o pacote total, ainda será necessário manter as bibliotecas compartilhadas.

Eu fiz uma pequena pesquisa em /bin/ls usando o comando strings -a /bin/ls e ele mostra o uso de libc.so, que é a biblioteca C padrão no Linux. Como o Linux é oficialmente Gnu / Linux, posso supor que a maioria dos utilitários foram compilados com o Gnu / C ou gcc. Se você fizer man libc , você notará que isso indica o uso de glibc para a maioria dos utilitários do Linux. Portanto, você precisa manter libc e glibc para os utilitários funcionarem.

    
por 29.06.2013 / 16:53
0

A falta de compatibilidade ABI, especialmente no passado, significa que construir a partir da fonte é bastante comum. Claro, muitos precisam mais do que apenas um compilador C para construir também ...

    
por 10.12.2017 / 22:45
0

Em servidores de marca (HP Enterprises Proliant, Fujitsu Primergy e outros), os drivers de monitoramento de hardware específicos do fornecedor geralmente vêm em um formato que inclui alguns códigos-fonte para os componentes essenciais da interface do kernel. Os pacotes de drivers geralmente também incluem drivers pré-compilados para qualquer versão de kernel suportada e conhecida pelo fornecedor do hardware no momento em que o pacote de driver foi lançado.

Dessa forma, sempre que uma distribuição Linux publica uma atualização de segurança do kernel, os módulos de monitoramento de hardware podem ser recompilados para corresponder ao kernel atualizado, sem a necessidade de esperar que o fornecedor de hardware teste e publique novos pacotes para corresponder ao kernel atualizado.

Normalmente, os drivers de monitoramento incluem alguma automação de script que recompilará automaticamente os módulos apropriados na primeira vez que o sistema for inicializado com uma nova versão do kernel. É claro que isso só será bem-sucedido se o compilador e o pacote de desenvolvimento / cabeçalho do kernel necessários estiverem instalados no sistema.

Se isso não foi feito, pode haver momentos em que a instalação de uma atualização de segurança crítica custaria muito de suas informações básicas de monitoramento de hardware: o status de PSUs do sistema, temperaturas, ventiladores e servidores modernos geralmente também consome energia. / p>

Nos datacenters, esse monitoramento pode fazer a diferença entre "Oh, um ventilador / PSU redundante morreu, eu enviarei o cara do datacenter para fazer hot swap durante o horário comercial amanhã" e "O servidor perdeu muitos fãs , começou a superaquecer e a se desligar. Agora um SLA está quebrado e o cliente está infeliz - o servidor precisa ser consertado ou substituído o mais rápido possível em oh-dark-thirty. " (Sim, nem tudo é baseado em nuvem ou mesmo virtualizado ainda.)

    
por 11.12.2017 / 00:31