Microsoft wil eBPF-tools voor Linux-kernel werkend krijgen op Windows 10

Microsoft is een opensourceproject gestart om eBPF werkend te krijgen op Windows 10 en Windows Server 2016 en nieuwer. Het doel is om de eBPF-toolchains en -api's op Windows beschikbaar te maken voor ontwikkelaars.

Het project bevindt zich nog in een vroege fase en het gaat volgens Microsoft niet om een fork. Het bedrijf meldt dat eBPF-ondersteuning weliswaar eerst naar de Linux-kernel kwam, maar dat er steeds meer interesse is om de technologie naar andere besturingssystemen te brengen.

De afkorting eBPF staat voor extended Berkeley Packet Filter. Oorspronkelijk was Berkeley Packet Filter bedoeld voor het analyseren van netwerkverkeer door het low-level onderscheppen van packets. Met eBPF is dankzij een virtual machine veel meer mogelijk, zowel op kernelniveau als in user space. De ondersteuning bij Linux maakt aanpassingen aan het gedrag van de software bijvoorbeeld mogelijk door eBPF-tools, zonder daadwerkelijk de broncode van de kernel te hoeven aanpassen of een kernelmodule te hoeven inladen.

Microsofts project zal onder andere gebruikmaken van het werk van bestaande opensourceprojecten zoals die voor IOVisor uBPF en Prevail en code hiervan aanpassen voor de Windows-hostingomgeving. Sommige tools zijn zo specifiek voor Linux dat ze niet bruikbaar zijn voor andere besturingssystemen.

Door Olaf van Miltenburg

Nieuwscoördinator

12-05-2021 • 11:22

36 Linkedin

Submitter: TheVivaldi

Reacties (36)

36
31
22
6
0
3
Wijzig sortering
Microsoft heeft Berlijnse kinvolk.io eind april overgenomen wegens hun kennis over eBPF in de Linux kernel. Was te verwachten nadat Google cilium was gaan gebruiken voor hun GKE Dataplane V2.

Kinvolk mede-oprichter Alban Crequy is mijn favoriete spreker. Slim, aardig en goede spreker, zoals de kinvolk site schrijft:
Hailing from the south of France and brought to Berlin through England, Alban is our technical lead. However, his technical proficiency is only paralleled by his keen awareness of a team’s dynamics and his care for its members. Alban regularly demonstrates his knowledge of Linux, networking, and security in his work on the kernel, D-Bus, and container technologies.
Na afloop van een presentatie of op hun stand altijd een plezier op met Alban van gedachte te wisselen.
Wat heeft MS ineens met het 'open' landschap? Zoals artikel al aangeeft:
Sommige tools zijn zo specifiek voor Linux dat ze niet bruikbaar zijn voor andere besturingssystemen.
... Ja? Waarom gaan ze (MS) dan toch zo veel moeite doen? Is ePBF en andere linux tools zó goed, dat ze het niet zelf kunnen bouwen?
Omdat zelfs bij Microsoft Azure, 60% van alle servers Linux draait:
https://build5nines.com/l...r-50-percent-fo-vm-cores/

Als Microsoft relevant wil zijn in het SAAS tijdperk waarbij alles om servers draait, dan moeten ze meekomen.
Opmerkelijk als je bedenkt dat het nogal wat moeite heeft gekost om Hotmail op Windows te laten draaien.
Hahahah ja dat is lang geleden. Hotmail draaide overigens destijds op FreeBSD en niet Linux
En nog iets langer geleden was Microsoft zelfs de grootste Unix verkoper (Xenix). Die ze daarna in SCO hebben gestopt en daarmee ... een draak van een patentroll hebben gevoed.
Microsoft heeft niet "ineens" iets met het open landschap. Naast de grote schreeuwlelijk Balmer werkten er namelijk heel veel technici bij Microsoft die wel verstand hadden van zaken.
Onder Balmer is helaas alleen heel veel afgeschoten omdat hij zelf een beetje rare kijk op de wereld had.
Dat is volledig omgeslagen toen Nadala aan het roer kwam, maar het was iets dat al jaren daarvoor aan de gang was.

En wat je andere opmerking betreft, MS kan best die tools zelf bouwen, het is alleen véél goedkoper om het over te laten aan de open source gemeenschap. Dat kost veel minder resources en tijd.
Nou ja, 'ineens'... Microsoft zoekt al jaren toenadering tot de open source wereld.

Ik vind Microsoft gewoon slim door op meer dan één paard te wedden.

Bovendien moet je niet vergeten dat veel van wat Microsoft zelf bedacht heeft gefaald heeft, terwijl het op zich om goede producten en goede achterliggende ideeën ging.

Nu Microsoft een front vormt met de open source gemeenschap hoeft Microsoft niet alles zelf te bedenken, wat kostbare investeringen en eventuele kostbare mislukkingen scheelt.
Waarom zou je het zelf bouwen als je bestaande oplossingen kunt gebruiken?

Je kunt dus behoorlijk wat kosten besparen.
Geld doet er hier natuurlijk niet toe - dat is er genoeg bij MS. Time-to-market is belangrijker, denk ik. Maar er zijn 1000 redenen om iets zelf te bouwen, of juist niet - waarbij interne bedrijfspolitiek niet een van de minste redenen is... MS zou vast de Linux kernel over kunnen nemen, dat zou technisch wel een goede move zijn - maar de afdeling die de NT kernel onderhoud zal alles doen om dat te blokkeren ;-)
Geld doet er altijd toe en genoeg is nooit genoeg :P
Kosten zal het niet zijn. Geen business case kunnen maken om deze feature initieel proprietary te maken of gewoon de aloude "embrace and extend". Daarnaast staat het wel cool om te zeggen dat je eBPF in windows hebt zitten (waar je dan vervolgens niets mee doet).
Omdat Microsoft jaren geleden al heeft ingezien dat de wereld niet rondom Microsoft-producten draait maar dat Microsoft-producten onderdeel zijn van het gehele ecosysteem. Door te investeren in en ondersteuning te geven aan niet-Microsoft-producten komen ze hun eigen klanten veel meer tegemoet, dan door (jaren 90-/2000-stijl) moedwillig doordrukken op eigen producten.

Neem Edge voor Linux en Powershell (core) voor Linux. Je maakt ontwikkelaars en beheerders veel blijer met een product dat op alle grote platformen werkt, dan voor elk platform wat anders te moeten zoeken. Met uiteindelijk zelfs het risico dat ze jouw product helemaal niet gebruiken.

[Reactie gewijzigd door Eagle Creek op 12 mei 2021 12:07]

> Wat heeft MS ineens met het 'open' landschap? Zoals artikel al aangeeft:

Dit is een tak die ze zijn ingeslagen nadat Ballmer (en Gates) is opgestapt en is opgevolgd door Satya Nadella in 2014. Sindsdien is Microsoft veel meer open source projecten begonnen en ondersteunen.
Waarom iets zelf bouwen als het al bestaat. (Wat dat betreft in Microsoft wel de "goodguy" aan het worden vergeleken met andere.)

"You Either Die A Hero, Or You Live Long Enough To See Yourself Become The Villain" is a quote uttered by Harvey Dent (DC Comics)

Microsoft begint beetje Harley Quinn the worden; Villain met wat Goodguy/girl erdoorheen. :P

[Reactie gewijzigd door Illegal_Alien op 12 mei 2021 12:13]

uit de Marvel stal komt: X-Men, Hulk, Spiderman, Howard The Duck, ...
uit de DC comics stal komt: Batman, Superman, Wonder Woman, ...
Zegt "Batman" je iets? DC Comics is het stripboekenhuis waar dat personage vandaan komt. Harvey Dent is een bekend karakter uit het Batman universum. En die precieze quote komt uit de film Batman: The Dark Knight.

[Reactie gewijzigd door Ultraman op 12 mei 2021 15:53]

Dat hoeft ook niet. Veel van wat hier besproken wordt is voor menig lezer te moeilijk.
geeft het nog 10jaar dan is heel die 'base' vervangen door opensource :+
Ze zullen wellicht op een zeker moment op de Linux kernel over stappen als basis voor Windows, ja. Ik kan me niet voorstellen wat op dit moment nog de voordelen zijn om dat niet te doen, anders dan de weerstand binnen de organizatie...
Kijk ook naar deze uitspraak:
Het bedrijf meldt dat eBPF-ondersteuning weliswaar eerst naar de Linux-kernel kwam, maar dat er steeds meer interesse is om de technologie naar andere besturingssystemen te brengen.
Dat is echt compleet van de zotte. eBPF was echt niet iets wat bestond en toen toevallig eerst naar Linux kwam. Dat is net iets als zeggen dat io_uring 'eerst naar linux kwam', of de CFS scheduler... BPF is naar Linux gekomen. Dat was een manier om efficient netwerk pakketten te filteren. Het is toen zo compleet veranderd dat het opeens een generieke manier werd om super efficient extreem krachtige stukjes code uit te voeren voor een snel groeiende lijst doeleinden. Het is nu feitelijk een soort van secure virtual machine als deel van de kernel die vrijwel (of compleet, ik hou het niet erg bij...) turing-compleet is, iets wat BPF absoluut nooit was (en ook nooit zo bedoeld was). eBPF is net zo 'Linux' als de io of process schedulers, of linux namespaces. Deels wellicht gebaseerd op of gegroeid uit andere concepten, maar erg linux specifiek.

Maar goed, zoals smartbit hieronder aangeeft heeft Microsoft kinvolk overgenomen wegens hun eBPF kennis - dus die zullen hier wellicht aan gaan werken. Ik ben benieuwd, maar ik denk dat Microsoft beter af zou zijn als ze de Linux kernel gewoon zouden integreren.
Ze zullen wellicht op een zeker moment op de Linux kernel over stappen als basis voor Windows, ja. Ik kan me niet voorstellen wat op dit moment nog de voordelen zijn om dat niet te doen, anders dan de weerstand binnen de organizatie...
Bergen aan apparaten met matige tot afwezige ondersteuning voor de Linux-kernel (en ondersteuning die niet geleverd zal gaan worden), een Win32-API die wellicht ook niet geweldig samenwerkt met *nix.

Bovendien kost een eigen kernel onderhouden ook weer niet zoveel moeite: immers heeft Apple ook nooit de noodzaak gezien om van hun eigen Darwin (in feite XNU met een FreeBSD userland) over te stappen op Linux.
Een eigen kernel onderhouden is veel werk met al die security issues. Nieuwe features is voor Microsoft niet meer te doen. Wet van de grote getallen (ontwikkelaars)
Een nadeel van de Linux kernel voor Microsoft is dat de licenses zo werkt dat alle distributies en versies van de kernel onder dezelfde license vallen als de main branch.

Dat wil zeggen dat windows dan ook open source zou moeten worden, willen ze die kernel gaan integreren. Of Microsoft moet hetzelfde doen als wat Apple heeft gedaan en de verouderde linux kernel integreren en uitbreiden waar geen GNU license op zat.
niet per se. Je kun immers prima niet-vrije software meeleveren met een vrij software programma... de eis dat andere software ook vrij moet zijn, geldt alleen als deze gebaseerd is op vrije software.

Ik zie het prima werken dat Windows op de Linux Kernel draait, welke GPL 2 is, maar dat daarbovenop gewoon een niet-vrij VM draait voor legacy applicaties, en dat Microsoft ook zijn eigen gesloten UI en Media framework bovenop de open kernel plaatst.

Dit is natuurlijk al vaak het geval bij SCADA en industriële toepassingen: Draait op een open Linux kernel, maar de applicatie zelf is helemaal dichtgetimmerd.
Of ze kunnen net als Apple toen der tijd , een eigen Unix kernel ontwikkelen .... want Mac OS/linux is Unix .
Als het gebeurd , zie ik sommige ict-er's wel in paniek raken, mijn kameraad is een onsite-it support engineer, en weet alleen hoe Windows producten werken....alhoewel ik hem heb gewaarschuwd dat ie zich eens moet verdiepen in de Linux\Unix bestuurings systemen ... want het is niet alleen windows, waar de wereld op draait .

En het is al eens een keer voorgekomen dat een bedrijf zn hele besturingsysteem omgooit ..door een fruitige computer fabrikant.

edit : Correctie Unix-like

[Reactie gewijzigd door Metallize op 12 mei 2021 14:34]

Dat zou kunnen, maar daar zie ik niet echt veel zakelijke waarde is. Het is natuurlijk toegestaan om een BSD versie te pakken en deze in een gesloten systeem te stoppen. Zie de PlayStation en de Nintendo Switch.

Echter, daarmee mist Microsoft natuurlijk alle voordelen die juist zo interessant zijn aan Linux. Linux is geen Unix en de systemen zijn niet compatible, Microsoft heeft er dus niets aan om een eigen Unix te leveren als het ze te doen is ontwikkelaars naar zich toe te trekken.
Gaat voorlopig niet werken. De windows GUI is te veel verweven met de kernel sinds NT4
turing-compleet is
Dat is volgens mij dus de gein, dat het bijna Turing-compleet is, maar oneindige lussen kunnen niet. Dus hele categorieën van fouten, in de richting van 'de software blijft hangen', die kan je niet eens bouwen in eBPF.

In praktijk is dat niet eens zo limiterend, omdat je eigenlijk altijd een telbaar aantal dingen te verwerken hebt. Er staan <zoveel> dingen op dit lijstje dat verwerkt moet worden. Dus het lijstje is niet oneindig. En het (in principe) oneindig wachten op nieuwe invoer, besteed je uit aan de kernel.
Ja, eBPF is best interessant wat dat betreft ;-)

Dat is natuurlijk ook waarom Microsoft ook interesse heeft. Maar ja, op deze manier zullen ze altijd achter blijven lopen op de feiten - elke feature komt eerst in Linux voordat het in Windows kan want Linux zet de standaard. Dat is geen goede positie om in te zitten (vandaar dat ze nu ook opgegeven hebben met hun eigen render engine in internet explorer).

Het integreren van de Linux kernel als hun eigen kernel, en dan direct de grootste contributor worden die dus ook de toon kan zetten - dat zou een veel slimmere move zijn.
Lijkt me niet: de installed base van software applicatie op Windows is vrij groot. NT (de kern waar Windows op draait) heeft diverse relaties met de Windows API. De kosten voor onderhoud aan NT staan niet in vergelijking tot de kosten om de Win32 API op Linux zetten en garanderen dat alle applicaties blijven werken. Er is geen business case voor te verzinnen om die stap te maken.
Ik denk dat je de NT kernel onderschat. Vorige maand kwam er een nieuwsbericht uit dat Linux een slimmere manier krijgt van page caching (en eviction) die aanpak wordt bijvoorbeeld al sinds Windows 2000 toegepast in de NT kernel.

Linux is goed in een hoop dingen, werkt op veel meer architecturen, en ik vind het als geheel ook een beter server OS. Maar de NT kernel lijkt toch op redelijk wat vlakken innovatiever dan je misschien aan de buitenkant van een Windows OS denkt.

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee