O Alibaba Cloud Linux 4 (abreviado como Alinux 4) é uma distribuição de sistema operacional para servidores Linux criada pela Alibaba Cloud, desenvolvida e altamente personalizada com base na versão Anolis OS 23 da comunidade OpenAnolis. Este tópico descreve as principais diferenças do Alinux 4 em relação ao Alinux 3 quanto a posicionamento de product, módulos/componentes, capacidades do kernel e pacotes de software. O conteúdo serve de referência para usuários do Alinux 3 avaliarem upgrades, analisarem a compatibilidade e planejarem a migração.
Posicionamento de product e cenários recomendados
O Alinux 4 não busca mais ser um substituto compatível com o CentOS. Em vez disso, adota um kernel 6,6 totalmente novo e redefiniu as versões de sua toolchain principal. Seus objetivos de design focam em suporte a poder computacional heterogêneo, otimização de computação para IA, observabilidade de operações de IA e evolução inteligente do sistema.
Comparação de posicionamento entre gerações de product
|
Dimensão |
Alibaba Cloud Linux 3 |
Alibaba Cloud Linux 4 |
|
Ano de lançamento |
2021 |
Julho de 2025 |
|
Base upstream |
Anolis OS 8 |
Anolis OS 23 |
|
Compatibilidade com CentOS |
Objetivo principal |
Não atua mais como substituto compatível com CentOS |
|
Foco central |
Substituição do CentOS e habilitação de instâncias de 8ª geração da Alibaba Cloud |
Orientado a IA, poder computacional heterogêneo, evolução inteligente |
|
Versão do kernel |
5,10 (ANCK) |
6,6 (ANCK) |
|
Gerenciamento de pacotes |
dnf (compatível com yum) |
dnf (igual ao Alinux 3, com estrutura de repositório de nova geração) |
|
Nome típico de componente |
al8 |
alnx4 |
Cenários recomendados
O Alinux 4 é indicado para os seguintes cenários:
Cargas de trabalho de Agent: Atua como Agent Runtime, oferece proteção de segurança e economia de tokens, suporta totalmente a implantação e o ajuste de ambientes de runtime do framework Sandbox da Alibaba Cloud e open source, além de apresentar vantagens exclusivas em velocidade de inicialização e densidade de carga de trabalho.
Instâncias de computação de uso geral de 9ª geração e posteriores: Disponibiliza otimizações de desempenho e habilitação de recursos no nível do kernel.
Treinamento e inferência: Fornece suítes dedicadas para otimizar e acelerar esses cenários.
Tipos de instância nacionais: Atende a requisitos de segurança e conformidade, oferecendo manutenção de ciclo de vida de até 13 anos.
Comparação completa de componentes
Na comparação entre os componentes do Alinux 3 (linha de base da versão 3,13) e do Alinux 4 (linha de base da versão 4.0.2), os componentes idênticos representam aproximadamente 58%. A distribuição geral das diferenças é a seguinte:
|
Status do componente |
Quantidade de componentes |
Descrição |
|
Herdados pelo Alinux 4 |
1706 |
Desses, 1666 são completamente idênticos; os 40 restantes possuem capacidade equivalente, mas com nomes ou provedores alterados. |
|
Não fornecidos pelo Alinux 4 |
1191 |
Majoritariamente pacotes de suporte a múltiplas linguagens e módulos. |
|
Adicionados pelo Alinux 4 |
1109 |
Focados principalmente em estratégia de product e cobertura de ecossistema. Incluem 257 pacotes de suporte à linguagem Perl, 427 de suporte à linguagem Python e 40 para suporte a OCaml e múltiplas versões do GCC. |
Para a comparação completa de componentes, consulte Appendix: Full component comparison list.
Diferenças de versão de módulos/componentes
Alterações em recursos do sistema
|
Capacidade |
Alibaba Cloud Linux 3 |
Alibaba Cloud Linux 4 |
Descrição da diferença |
|
Gerenciamento de pacotes |
dnf-4.7.0 |
dnf-4.16.2 |
Sem diferença de uso: ambos fornecem dnf e yum. A versão superior traz otimizações de segurança, verificação de assinatura e desempenho. |
|
Configuração de rede |
NetworkManager-1.40.16 |
NetworkManager-1.44.2 |
Melhora redes de contêineres, WireGuard e DNS-over-TLS por padrão. |
|
Filtragem de pacotes de rede |
nftables-1.0.4 |
nftables-1.0.8 |
Consolida ainda mais a camada de compatibilidade com iptables. |
|
Runtime de contêiner padrão |
podman-4.9.4 |
moby-28.3.3 / containerd-1.7.29 |
Altera o provedor docker e também disponibiliza o componente containerd. |
|
Distribuição Java |
OpenJDK 1.8/11/17/21 (edição community) |
Alibaba Dragonwell 1.8/11/17/21/25 |
Adiciona o JDK 25 e acelera o OpenJDK via Dragonwell por padrão. |
|
Python padrão |
python3.6 (com suporte adicional para 3,11) |
python3.11 |
A versão 3,11 oferece otimizações significativas no sistema, incluindo interpretador adaptativo especializado e cache inline. |
|
OpenSSL |
OpenSSL 1.1.1 (compatível com ABI legado) |
OpenSSL 3.0.12 (padrão) / OpenSSL 1.1.1q (também fornecido) |
O OpenSSL 3.0.12 traz FIPS 140-3, arquitetura de provedores e prioridade para TLS 1.3. |
|
Cgroup |
Cgroup V1 habilitado por padrão |
Cgroup V2 habilitado por padrão |
Ferramentas dependentes do cgroup v1 precisam de adaptação. |
Nota: O Alinux 4 fornececgroup v2eOpenSSL 3.0por padrão. Binários que utilizam a ABI legada do OpenSSL (comolibssl.so.1.1) exigem recompilação ou instalação de pacotes de compatibilidade; ferramentas de orquestração ou monitoramento de contêineres que dependem de caminhos do cgroup v1 precisam de adaptação para a hierarquia unificada do cgroup v2.
Descrições de upgrade de componentes
|
Componente |
Categoria |
Alinux 3 |
Alinux 4 |
Principais alterações |
|
kernel |
Kernel |
5,10 |
6,6 |
O ANCK 6,6 introduz diversas capacidades upstream, como melhorias no io_uring, otimizações de desempenho do ext4, large folio, MGLRU, EEVDF/sched_ext e cpuset do cgroup v2. |
|
glibc |
Base |
2.32 |
2.38 |
Suporta novas chamadas de sistema do Linux 5.8–6.3; otimiza ARM64/RISC-V; aprimora o malloc; acelera o VDSO. |
|
libc++ |
Base |
15.0.7 |
17.0.6 |
Otimizações de C++20 e novos recursos de C++23; melhorias em contêineres e formatação. |
|
libstdc++ |
Base |
10.2.1 |
12.3.0 |
Otimizações de C++20 e suporte inicial a C++23; ajustes de thread-safety. |
|
libvirt |
Virtualização |
8.0.0 |
9.10.0 |
A pilha de virtualização foi atualizada integralmente e integrada a uma versão mais recente do qemu. |
|
qemu |
Virtualização |
6.2.0 |
8.2.0 |
Suporta novas plataformas de hardware e melhorias no virtio; o nome do pacote mudou de qemu-kvm para qemu. |
|
GCC |
Compilador |
8,5 |
12,3 |
Melhorias em C++20/23, analisador estático e novos conjuntos de instruções ISA. |
|
systemd |
Gerenciamento do sistema |
239 |
254 |
Unifica cgroup v2, Portable Services, Credential, BPF, OOM Policy, entre outros. |
|
OpenSSL |
Segurança |
1.1.1 |
3.0.12 |
FIPS 140-3, arquitetura de provedores e prioridade para TLS 1.3. |
|
containerd |
Contêiner |
Não fornecido |
1.7.29 |
Adiciona o componente containerd independente. |
|
moby |
Contêiner |
Não fornecido (apenas podman) |
28.3.3 |
Adiciona o moby (motor Docker open source). |
Principais novos recursos do kernel
Armazenamento
io_uring
Em comparação com a versão 5,10, o kernel 6,6 continua aprimorando o framework de IO assíncrona io_uring:
|
Recurso |
Descrição |
|
Escritas bufferizadas assíncronas |
Adiciona suporte a escritas bufferizadas no caminho rápido, com melhoria de desempenho de aproximadamente 3x em testes xfs. |
|
Contenção de lock em task work |
Substitui o spin lock por uma lista sem locks, aumentando o desempenho multi-threaded do task_work_add em cerca de 20%. |
|
Batch de conclusão multishot |
Eventos de conclusão multishot reutilizam IO_URING_F_COMPLETE_DEFER, elevando o RPS de 8,3 M/s para 19,3 M/s (aproximadamente 2,3x). |
|
Otimização de cache SQ/CQ |
O microbenchmark nop do io_uring apresenta melhoria de cerca de 9%. |
|
Novas capacidades |
accept/recvmsg/timeout multishot, zero-copy de rede, passthrough, driver de bloco em espaço de usuário ublk, entre outras. |
ext4
Abrange diversos aspectos, como alocação de blocos, pré-alocação de inodes, concorrência, locking e escalabilidade:
|
Recurso |
Descrição |
|
Melhoria no desempenho de escrita de buffer delalloc |
Remove operações desnecessárias de journal no caminho de escrita delalloc, aumentando o UnixBench em cerca de 73%. |
|
Aceleração no tratamento de arquivos órfãos |
Introduz um arquivo órfão para substituir a lista vinculada em disco, reduzindo o tempo de operação em aproximadamente 40% em microbenchmark de 128 threads. |
|
Melhoria no desempenho do fast_commit |
A função ext4_fc_commit_dentry_updates foi otimizada de O(n²) para O(n), aumentando o desempenho em cerca de 171x no cenário de múltiplos diretórios e arquivos pequenos do fs_mark. |
|
Lock compartilhado de inode DIO cobrindo blocos pré-alocados |
Escritas de sobrescrita em blocos pré-alocados agora têm proteção por i_data_sem, melhorando o desempenho de escrita DIO multi-threaded 4k em aproximadamente 4x. |
|
Lista de pré-alocação de inode → rbtree |
Reduz a complexidade de busca de O(n) para O(log n), melhorando escritas esparsas de 1x a 2x. |
|
Aceleração de escrita append delalloc |
No cenário de escrita append, as atualizações de i_disksize são adiadas, melhorando appends concorrentes de 32 threads em cerca de 34%; o throughput medido no Kafka 2.6.2 aumentou 10%. |
|
Habilitação de large folio para arquivos regulares |
Refatora o folio em mballoc/write_begin/writeback com base em buffer heads, melhorando leituras e escritas de IO bufferizado em até aproximadamente 1,2x. |
Memória
O subsistema de memória abrange otimização de custos, gerenciamento de grande volume de memória e coordenação entre software e hardware.
Otimização de custo de memória
|
Recurso |
Descrição |
|
HVO (Otimização de vmemmap HugeTLB) |
Libera estruturas de páginas finais não utilizadas em huge pages hugetlb, economizando 16 GB de memória para um hugetlb de 1 TB com páginas de 1 GB. |
|
DAMON (Monitor de Acesso a Dados) |
Reclama proativamente memória fria com base em amostragem de regiões e ajuste adaptativo de áreas. |
|
Reclamação de memória fria MGLRU |
Uma solução mais leve para envelhecimento de memória e reclamação proativa de memória fria. |
|
Preenchimento de página zero em tmpfs |
Reutiliza páginas zero para arquivos esparsos tmpfs, evitando ocupação de memória física adicional. |
Gerenciamento de grande volume de memória (Large folio + Escalabilidade de Lock)
Em cenários de IA e virtualização com grande volume de memória, o kernel 6,6 habilita Large folio por padrão, suporta PTE contíguo ARM e THP AMD para reduzir falhas de TLB, e resolve definitivamente o problema de escalabilidade do mmap_lock que na era 5,10 só admitia contorno.
Otimização da coordenação software-hardware de memória
|
Recurso |
Descrição |
|
Memory tiering |
Suporta gerenciamento automático de camadas quente/fria para memória heterogênea CXL/PMEM. |
|
Flush de TLB em lote durante migração |
Agrupa IPIs de TLB para otimizar o desempenho do caminho de migração. |
|
Balanceamento NUMA com suporte a huge pages |
Large folio também participa do balanceamento NUMA, melhorando o desempenho de negócios ao acessar huge pages locais. |
|
Múltiplas réplicas de segmento de código (duptext) |
Copia o segmento de código de nós remotos para o nó local, evitando acesso cross-NUMA. |
Escalonamento
|
Recurso |
Descrição |
|
EEVDF |
Escalonamento baseado em deadlines virtuais. Em comparação com o CFS, permite respostas mais rápidas para tarefas sensíveis a latência, mantendo o throughput inalterado. |
|
sched_ext |
Adiciona a classe de escalonamento ext, que implementa políticas personalizadas por meio de programas eBPF para criar o escalonador ideal para diferentes cenários de negócio. |
|
Melhorias no PSI |
Chave de estatísticas PSI por cgroup, estatísticas de carga irq/softirq e poll psi event sem privilégios. |
|
Isolamento de cpuset no cgroup v2 |
Adiciona modo isolado (sem balanceamento de carga dentro do escopo do cpuset, adequado para cenários exclusivos como DPDK). |
|
Group Identity 2.0 |
Otimização de escalonamento granular baseada em CFS/EEVDF, evitando de forma simples e eficiente a contenção de hyper-threading. |
|
Group Balance 2.0 |
Solução dinâmica de escalonamento que resolve problemas de domínio de afinidade e interferência de contenção de cache/TLB no modo CPU-share. |
Análise categorizada de componentes diferenciados
Componentes não fornecidos pelo Alinux 4
Há 1191 componentes no total, distribuídos conforme o motivo de sua introdução:
190 pacotes de suporte a formatos multilíngues: O Alinux 4 suporta apenas chinês e inglês; outros idiomas ainda não têm suporte.
108 pacotes de módulo (DNF Modular): Atualmente, o Alinux 4 não suporta o formato de pacote de módulo.
36 componentes de driver (kmod-*): Ainda não fornecidos pelo Alinux 4; planos futuros estão em discussão.
30 toolchains de compilação mingw: O Alinux 4 não fornece o ambiente de compilação cruzada mingw.
42 versões múltiplas do gcc: como gcc-toolset-12/13; o Alinux 4 passou a usar uma nova versão padrão do gcc.
34 pacotes de suporte a OCaml: O Alinux 4 não incorpora o ecossistema OCaml.
9 componentes de products Red Hat: O Alinux 4 é um product proprietário e não precisa incluí-los.
806 outros componentes de aplicação: Ainda não categorizados claramente; a equipe de aplicações precisa confirmá-los individualmente.
Recomendação de upgrade: Antes da migração, execute rpm -qa para exportar a lista de pacotes das suas instâncias Alinux 3 existentes e compare-a com as categorias anteriores. Caso dependa de pacotes de módulo, toolchains de múltiplas versões do gcc, mingw, OCaml, kmod-* ou componentes de products Red Hat, avalie alternativas antecipadamente.
Componentes alterados no Alinux 4
Há 40 componentes no total que permanecem no Alinux 4 com capacidades equivalentes, mas com nomes de pacotes ou provedores diferentes. As relações de substituição mais comuns são:
|
Componente original do Alinux 3 |
Provedor equivalente no Alinux 4 |
Descrição |
|
SDL 1.2.15 |
sdl12-compat 1.2.68 |
Camada de compatibilidade SDL 1.2 → SDL 2 |
|
device-mapper-multipath 0.8.4 |
multipath-tools 0.9.5 |
Alteração de provedor |
|
fipscheck 1.5.0 |
libkcapi-fipscheck 1.4.0 |
Verificação FIPS migrada para libkcapi |
|
glassfish-annotation-api / servlet-api |
jakarta-annotations / jakarta-servlet |
Migração de namespace JavaEE → Jakarta EE |
|
hardlink 1.3 |
util-linux-core 2.39.1 |
Mesclado ao util-linux-core |
|
java-1.8.0/11/17-openjdk |
java-1.8.0/11/17-alibaba-dragonwell |
OpenJDK padrão substituído pelo Dragonwell |
|
Série python3.11-* (17 itens) |
Pacotes python3-* correspondentes |
Normalização de nomes de pacotes |
|
qemu-kvm 6.2.0 |
qemu 8.2.0 |
Nome do pacote alterado de qemu-kvm para qemu |
|
shadow-utils 4.6 |
shadow 4.14.3 |
Ajuste de nome de pacote |
|
system-lsb 4.1 |
lsb-release 3.2 |
Alteração de provedor |
Componentes exclusivos do Alinux 4 (1109 itens)
Os componentes exclusivos adicionados pelo Alinux 4 em relação ao Alinux 3 distribuem-se principalmente nas seguintes categorias:
427 pacotes do ecossistema Python: módulos python3-* adicionados em torno do runtime padrão python 3,11.
257 pacotes do ecossistema Perl: pacotes de módulos CPAN adicionados em conjunto com o upgrade para perl 5,36.
40 pacotes de suporte a OCaml e múltiplas versões do gcc: toolchains mais recentes fornecidas por outros meios.
385 outros pacotes de ecossistema/estratégia de product: provenientes da expansão do ecossistema Anolis 23 / OpenAnolis.
Recomendações de compatibilidade e migração
Avaliação de cenários aplicáveis
Priorize a avaliação de upgrade para o Alinux 4 nos seguintes cenários:
|
Cenário de negócio |
Benefícios do upgrade |
|
Treinamento/inferência de IA (modelos grandes, vLLM, SGLang) |
Large folio 6,6, Uncached IO, Cachefs, profiling full-stack e otimização de inferência distribuída. |
|
Hardware heterogêneo/nacional (Hygon, Zhaoxin, Kunpeng, Phytium, GPUs nacionais) |
O Alinux 4 é a base central de próxima geração da rota nacional da Alibaba Cloud, com habilitação nativa. |
|
Instâncias de 9ª geração e posteriores |
Novos conjuntos de instruções, drivers de plataforma e otimizações de escalonamento. |
|
Contêineres em larga escala/co-location |
cgroup v2 por padrão, PSI por cgroup, cpuset isolado e Group Identity/Balance 2.0. |
|
Requisitos fortes para OpenSSL 3.0, Python 3,11 ou GCC 12+ |
Infraestrutura moderna funciona prontamente. |
Itens de compatibilidade de alto risco
OpenSSL 3.0: O binário legado
libssl.so.1.1não é mais fornecido por padrão e exige recompilação ou instalação de pacote de compatibilidade.cgroup v2 por padrão: Agentes de orquestração e monitoramento de contêineres que dependem de caminhos do cgroup v1 precisam de adaptação.
Java usa Dragonwell por padrão: Se o seu negócio depende estritamente do comportamento do OpenJDK ou da string de fornecedor, especifique explicitamente a escolha entre OpenJDK e Dragonwell.
Python usa 3,11 por padrão: Extensões C compiladas com Python 3.6 e scripts legados dependentes de distutils precisam de adaptação.
Pacotes de módulo não são mais suportados: Scripts de implantação que usam DNF Modular exigem refatoração.
Drivers kmod-*: Alguns drivers de hardware (como ena, bnxt e hns3) não estão disponíveis atualmente no Alinux 4; avalie o impacto no negócio.
Alterações de nomes de pacotes: Migrações de namespace como
qemu-kvm → qemu,shadow-utils → shadow,system-lsb → lsb-releaseepython3.11-* → python3-*exigem atualização dos scripts de implantação.
Caminho de migração recomendado
Inventarie: Na instância Alinux 3, execute
rpm -qa > alinux3-pkglist.txte analise as diferenças comparando com a análise categorizada de componentes diferenciados deste tópico.Substitua: Para componentes alterados, ajuste os scripts de implantação para os nomes de pacotes equivalentes do Alinux 4.
Avalie: Quanto aos componentes "a confirmar individualmente (806 itens)", verifique sua necessidade em um ambiente de teste.
Pilote: Priorize projetos-piloto do Alinux 4 em negócios não críticos nos cenários de IA, co-location e hardware nacional.
Escale: Após a estabilização do piloto, substitua os negócios principais em lotes, utilizando a containerização como transição quando necessário.