Google está trabalhando na abertura do código do Fibers

E o Google está trabalhando na abertura do código do Fibers, seu User-Space Scheduling Framework. Conheça o software e entenda.

Por vários anos, o Google desenvolveu o Fibers (não deve ser confundido com o Google Fiber, seu serviço de Internet de fibra) como um User-Space Scheduling Framework.

Embora não seja de código aberto, os poucos artigos públicos e palestras sobre o Google Fibers têm sido bastante interessantes para um ótimo desempenho e um design inovador.

Finalmente, porém, o Google está trabalhando para abrir o código-fonte do Fibers e esperando que as modificações necessárias do kernel do Linux sejam atualizadas.

Google está trabalhando na abertura do código do Fibers

Google está trabalhando na abertura do código do Fibers
Google está trabalhando na abertura do código do Fibers

Das informações públicas limitadas sobre o Google Fibers, um dos principais recursos tem sido esta Plumbers Conference Linux de 2013:

O Google vem desenvolvendo e usando esta estrutura de agendamento de espaço do usuário há quase uma década e eles estão finalmente trabalhando no código-fonte aberto da estrutura.

Como parte disso, eles estão trabalhando inicialmente em seus patches de kernel UMCG (User-Managed Concurrency Groups), que são os primitivos do lado do kernel para este trabalho.

O Google realmente enviou a série de patch RFC para UMCG no final de maio, mas aconteceu de não notar essa série até hoje em algumas discussões subsequentes.

O código do kernel UMCG é resumido como:

“Grupos de simultaneidade gerenciados pelo usuário é uma estrutura de agendamento de espaço de usuário em processo e comutação rápida de contexto. Dois casos de uso principais são caixas de proteção de segurança e programação de espaço de usuário. Caixas de proteção de segurança: a alternância rápida de contexto de processo X abrirá um conjunto de ferramentas de segurança leves, por exemplo, gVisor ou simulador de sombra do Tor Project, para mais casos de uso. A programação do espaço do usuário em processo é usada extensivamente no Google para fornecer controle de latência e garantias de isolamento para diversas cargas de trabalho, mantendo alta utilização da CPU.”

A opção de compilação UMCG adiciona:

“Habilite operações de wait/wake/swap (espera/despertar/troca) de núcleo UMCG, bem como API de grupo/servidor/trabalhador UMCG. A API principal é útil para IPC rápido e comutação de contexto, enquanto a API de group/server/worker (grupo/servidor/trabalhador), junto com a API principal, forma a base para uma estrutura de agendamento de espaço do usuário M:N em processo implementada em lib/umcg.”

Será interessante ver como esse esforço de código aberto UMCG/Google Fibers se desenvolverá nos próximos meses… Fique ligado.

E se ficou o assunto ficou um pouco nebuloso para você, não se preocupe, a medida que mais informações forem divulgadas publicarei outros artigos sobre o tema.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.