Que a Microsoft há tempos vem buscando se aproximar do Software Livre, isto não é novidade: além de já ter declarado que “ama o Linux” (apesar de muitos não acreditarem), ela já protagonizou muitas iniciativas para promover, suportar e financiar os projetos de Código Aberto (os quais em geral ela possui interesse). Inclusive, ela até faz parte de um seleto grupo de membros da Linux Foundation! Tais iniciativas causaram profundas impressões até mesmo para Eric S. Raymound, um velho entusiasta e defensor do Linux & Software Livre, que chegou a considerar a possibilidade do Windows e Linux “se tornarem mais parecidos”…
“XDP (eXpress Data Path) is a high performance, programmable network data path that is already a Linux Kernel project with a significant community (Google, Amazon, Intel, Mellanox, etc.) around it. XDP for Windows is our new open source XDP interface for Windows on GitHub. It consists of a network driver and a placeholder user mode API that allows apps to achieve extremely low latency and high throughput. Apps using the AF_XDP user mode interface can deliver packets directly to the Windows XDP driver and into NDIS or directly to a compatible network card driver, avoiding the overhead of going through the TCP/IP stack.”
— by Microsoft Tech Community.
Apesar das piadas, contestações e desinteresse da mídia especializada pelas declarações de Raymond, confesso que elas me causaram profundas reflexões em relação as transformações que as empresas de TI vêm passando, para se adequar nestes novos tempos em que “tudo se transformará em serviço” (XaaS) e o Código Aberto e o Software Livre (que são duas coisas relativamente distintas) se tornaram os grandes protagonistas desta nova era. E pelo jeito, parece que a sua visão está se concretizando aos poucos (tão lentamente, que poucos percebem): a Microsoft anunciou o projeto XDP for Windows!
O XDP (eXpress Data Path) é uma tecnologia que já se encontra disponível no kernel Linux desde a versão 4.8, a qual tem como objetivo a implementação de drivers & APIs neste sistema, para que as aplicações possam obter latência baixa e alta taxa de transferência no acesso ao subsistema responsável pelas conexões de redes. Através dela, os aplicativos que usam a interface de modo de usuário AF_XDP podem entregar pacotes diretamente ao driver XDP do Windows e ao NDIS ou diretamente a um driver de placa de rede compatível, evitando a sobrecarga de passar pela pilha TCP/IP.
Até o presente momento, o XPD for Windows ainda está em desenvolvimento, pronto apenas para a execução de testes e prototipagem, além do código-fonte estará disponível para a comunidade dos desenvolvedores do XPD, sob os termos da licença MIT. Ela encoraja aos interessados a clonar o repositório para a compilação ou baixar o kit de desenvolvimento da compilação mais recente, com a esperança de que muitos grupos diferentes possam fazer uso dele, incluindo os setores financeiro, mídia e defesa. O objetivo da Microsoft é tornar a tecnologia multiplataforma, além de suportá-la no sistema operacional Windows.
Pelo visto, o XPD for Windows será apenas o começo, já que a empresa também planeja realizar a integração de outra tecnologia de rede nativa do Linux, voltada para a análise e filtragem de tráfego na rede: o eBPF (Extended Berkeley Packet Filter)! Queiram ou não, parece que a visão de Eric S. Raymond está se concretizando aos poucos, embora com uma abordagem um pouco diferente do que inicialmente proposto em suas declarações. Mas na prática, a tendência é que o Windows e o Linux terão tantos códigos compartilhados, que ficará até mesmo difícil diferenciá-los em um futuro não muito distante!
Só nos restará diferenciá-los mesmo, pelas licenças em uso… &;-D