Qual é o papel do sistema operacional na programação?

O sistema operacional tornou mais prático e eficiente o carregamento de programas em um computador

A aplicação roda na sua máquina e quebra no servidor. Na maioria das vezes, a diferença está no sistema operacional (SO), o software que reparte processador, memória, disco e dispositivos entre os programas e impede que um derrube o outro. Ele define, por exemplo, quanto do seu ambiente local chega intacto à produção.

Para que serve um sistema operacional?

Segundo o Software Preservation Group do Computer History Museum, o primeiro sistema operacional desse tipo nasceu na General Motors Research e entrou em produção em 1956 no IBM 704, com um objetivo prático: processar mais jobs por turno. Setenta anos depois, a função é a mesma, tirar do programa o trabalho de falar direto com o hardware.

Sem essa camada, cada aplicação precisaria trazer um driver para cada disco, impressora e placa de rede, e trocar o hardware obrigaria a recompilar e retestar tudo. Com o SO, seu código pede um arquivo, um socket ou um bloco de memória por chamadas de sistema padronizadas e nem sabe qual dispositivo atende o pedido. Por exemplo, um script que abre um arquivo no Linux e no Windows usa a mesma linha de código, mesmo com sistemas de arquivos diferentes por baixo. Por isso, o programa só precisa que o SO e a arquitetura do processador sejam compatíveis.

Quais são as funções de um sistema operacional?

O SO escalona processos, gerencia memória, controla arquivos, intermedia dispositivos e aplica permissões. O kernel, núcleo do sistema, faz o trabalho pesado, e o restante do SO (shell, serviços e bibliotecas) dá acesso a ele. Cada função aparece em produção como um sintoma que você provavelmente já viu.

Uma CPU a 100% leva ao escalonador, que decide qual processo usa o processador e por quanto tempo. Sem memória livre, o Linux encerra processos por OOM kill e o serviço some sem aviso. Um permission denied também vem das permissões de usuário e grupo, e rodar a aplicação como root só aumenta o estrago de qualquer falha. Disco e rede, por fim, dependem de drivers e do sistema de arquivos, que registra quem lê e quem escreve em cada arquivo.

Qual a importância do sistema operacional para quem programa?

Anunciado pela Microsoft em 2019, o WSL 2 roda um kernel Linux real dentro de uma máquina virtual leve no Windows e aproxima o ambiente local do servidor. Ainda assim, o código encontra em produção versões de bibliotecas, limites de arquivos abertos, permissões e um sistema de arquivos que podem diferir do que você testou.

A base do ambiente de produção é concreta, ou seja, versão do SO, runtime, dependências com versão fixada e variáveis de configuração. Por isso, se um desses itens muda entre desenvolvimento e produção, o bug só aparece no deploy, a hora mais cara para descobrir.

Qual é o sistema operacional mais usado no mundo?

Nas medições do StatCounter Global Stats, o Android lidera o uso da web no mundo, com cerca de 42,5%, seguido por Windows (29%) e iOS (19%) no corte de todas as plataformas. O mesmo StatCounter registrou, em março de 2017, a primeira vez em que o Android passou o Windows: 37,93% a 37,91%, como relatou o TechCrunch.

Os Macs somam cerca de 6,4% (macOS e OS X), enquanto o Linux fica em 1,7%. O número mede páginas vistas, não aparelhos instalados, então muda com o corte e a cada atualização mensal. Mas no recorte mobile do mesmo levantamento, o Android soma cerca de 67% e o iOS cerca de 32%.

Qual sistema operacional roda a maioria dos servidores web?

Segundo a W3Techs, o Linux roda cerca de 62% dos sites cujo sistema operacional ela consegue identificar. Em servidor, Linux é o padrão, e o Windows entra quando a aplicação depende de algo exclusivo dele, como IIS ou .NET Framework.

Apache e Nginx são servidores web e rodam sobre o SO, sem substituí-lo. Depois do SO, falta decidir onde o servidor fica, e aí entram latência, cobrança em reais e LGPD. Dois guias do blog cobrem esses critérios: como escolher um provedor de VPS e nuvem nacional ou internacional. Se a aplicação guarda dado sensível, vale ler também sobre soberania de dados.

O Servidor VPS da Locaweb sai em Linux ou Windows, conforme o que a aplicação exige. Olhe também o ciclo de suporte da versão: um SO que deixou de receber atualização de segurança vira risco em produção, porque as falhas novas ficam sem correção.

Como alinhar o sistema operacional de desenvolvimento e produção?

O Linux roda cerca de 62% dos sites com SO identificado pela W3Techs, mas aparece em apenas 1,7% do uso da web medido pelo StatCounter. Quem programa costuma usar uma máquina diferente da que serve a aplicação, e essa distância é um dos lugares onde os bugs de deploy costumam nascer.

Comece fixando as versões: registre no repositório o SO ou a imagem base, o runtime e as dependências, com lockfile. Depois traga o servidor para perto de você, com contêiner ou WSL 2, lembrando que o kernel do host continua valendo. Em seguida, rode o staging no mesmo SO de produção e confira permissões, limite de arquivos abertos e fuso horário. Por fim, execute a aplicação com um usuário sem privilégios, nunca como root.

Linux, Windows, macOS, Android ou iOS: o que cada um exige de quem programa?

Desde o Google I/O de 2019, o desenvolvimento Android é Kotlin-first, como explica o Android Developers: o Java continua suportado, mas ferramentas, bibliotecas e documentação novas nascem pensadas para Kotlin. Cada sistema fixa um conjunto de ferramentas, e a tabela resume o que muda em cada um.

SistemaFerramentas principaisQuando faz sentido
LinuxShell (Bash), contêineres, ferramentas de automaçãoAPIs, back-end e DevOps, com ambiente igual ao do servidor
WindowsVisual Studio, .NET, IIS; WSL 2 para rodar LinuxAplicações .NET, ferramentas Windows e jogos
macOSXcode, Homebrew, Git, terminalApps iOS e macOS; exige hardware Apple
AndroidAndroid Studio, Kotlin, JavaApps Android
iOSSwift, Xcode, SDK da AppleApps para iPhone e iPad

No Linux, você acessa o código-fonte do kernel e conta com compiladores, interpretadores e depuradores gratuitos, o que pesa na escolha para automação e DevOps. O Windows, por sua vez, traz o Visual Studio, que cobre C++, C#, Visual Basic e F#, e o suporte nativo a virtualização permite montar VMs para testar a aplicação em outras configurações. Já o iOS entrega sandboxing de aplicativos e criptografia de dados em repouso e em trânsito, além de autenticação biométrica por Touch ID e Face ID.

Quem desenvolve para mais de uma plataforma também costuma combinar sistemas, com código no Windows via WSL 2 e build iOS em um Mac.

FAQ – Perguntas frequentes sobre sistema operacional

É o software que fica entre o hardware e os programas. Ele gerencia processador, memória, armazenamento e dispositivos, isola os processos uns dos outros e controla quem pode acessar o quê.

O SO é um tipo de software, justamente o que sustenta os outros. Editor de código, navegador e API rodam sobre ele e só executam em um SO compatível.

O kernel é o núcleo do SO e cuida de escalonamento, memória e drivers. O SO completo inclui ainda shell, bibliotecas e serviços. No Linux, o nome do sistema se refere ao kernel, e distribuições como Ubuntu, Fedora e Debian juntam kernel e demais componentes.

O Android, com cerca de 42,5% do uso da web, segundo o StatCounter. O Windows vem em seguida, com cerca de 29%, e o iOS em terceiro, com cerca de 19%. Nos servidores web, quem lidera é o Linux.

Dá, com o WSL 2. Ele roda um kernel Linux real numa máquina virtual leve e permite usar Bash, ferramentas de linha de comando e distribuições Linux dentro do Windows. Para igualar a produção, confira também a versão da distribuição.

Depende de onde a aplicação roda. Se o back-end vai para um servidor Linux, programar em Linux ou no WSL 2 deixa o ambiente igual. Para .NET Framework e jogos, o Windows leva vantagem. A comparação completa está em Linux ou Windows para programar, com seis critérios.

Para a maioria das aplicações web, Linux, que roda em cerca de 62% dos sites com SO identificado, segundo a W3Techs. Escolha Windows se a aplicação depende de IIS ou .NET Framework, e confira a versão do SO e do runtime antes de contratar o plano.

O autor

Rodrigo Cardoso (Pokemaobr)

Conhecido como Poke, é Streamer (Live "Coder") na Twitch, Web Developer e apresentador do talk show "The Velopers". Com bacharelado em Matemática e MBA em SOA, Poke atua como desenvolvedor e organizador de eventos de TI. É evangelista PHPSP e criador do PokePHP, focando em disseminar conteúdos técnicos e humor para a comunidade de desenvolvedores. Nas horas vagas, ele adora se conectar com a comunidade e compartilhar seu conhecimento de maneira divertida e informativa.

Mais de Rodrigo Cardoso (Pokemaobr)