A VMware csatlakozott a Linux Foundation-höz - nem mindenki örül felhőtlenül

Címkék

A Linux széleskörű elfogadtatását, befogadásának felgyorsítását célul maga elé tűző non-profit szervezet, a Linux Foundation tegnap bejelentette, hogy a virtualizációs termékeiről ismert VMware az alapítvány tagjai közé lépett. A VMware az ipar meghatározó szereplői - úgymint az Adobe, az AMD, a Dell, a Fujitsu, a Google, a Hitachi, a HP, az IBM, az Intel, a Motorola, az NEC, a Novell, az Oracle, a Red Hat, ... - után döntött úgy, hogy belép a tagok közé. A részletek itt.
Noha Matt Asay, a C|Net nyílt forrással rendszeresen foglalkozó újságója is egyetért abban, hogy ez jó hír, ünnepelni mégsem tud felhőtlenül. Szerinte az, hogy a VMware belépett az alapítványba, nem ad választ azokra a vádakra, melyek szerint a vállalat aktívan és tudatosan megsérti a GPL előírásait.

Hozzászólások

Bocs, én nem értem... Mivel sérti a VMware a GPL-t pontosan?

Az ESX serverben a vmkernel hypervisor és a Service Console-ban futó linux kernel között meglehetősen szoros kapcsolat van, mert a vmkernel úgy töltődik be, mint egy linux kernel modul. Igaz, hogy utána már bemászik a service console kernelje alá és innentől kezdve rendszerhívásokkal kommunikál a kettő egymással (tehát kb. olyan viszony van közöttük, mintha a vmkernel lenne az OS kernel, a linux kernel pedig egy efelett futó userspace alkalmazás), de a betöltődés során van olyan fázis, ami tekinthető úgy is, mintha a két kód össze lenne linkelve. A GPL szerint szigorúan értelmezve emiatt ki kéne adni a vmkernel forráskódját is gpl alatt. Egy időben azt hiszem igérgették, hogy ezt a függőséget meg fogják szűntetni, és akkor már nem lesz olyan fázis, amikor össze van linkelve a kettő. Az ESXi-ben lehet, hogy már így is van, nem néztem még a mélyére ennyire.

A másik gyanús dolog a driver használat, ugyanis a vmkernelben futó driverek nagy része egy az egyben a linux kernel driverekből van átemelve. Van egy vmklinux nevezetű interfész a vmkernelben, ami egy linux belső API emulációs réteg, azokat a linux kernel függvényeket implementálja amik a drivereknek kellenek, így tudnak linux drivereket használni ESX alatt. Ez megint egy kicsit GPL sértés gyanús terület. Bár itt szerintem a vmvare azzal védekezhet, hogy a vmkernel egy mikrokernel, a driver futtatókörnyezet egy külön 'world'-ként jelenik meg a vmkernel felett. Tehát olyan, mint mondjuk a FUSE a linuxban, a tényleges driver kódja userspace-ben fut, így nincs összelinkelve a kernellel.

A VMware nyilván nem akarja a fő termékük fő core komponensének a forráskódját kiadni, mert a vmkernel az, amihez hasonlót jelenleg semelyik konkurens virtualizációs termék sem tartalmaz.
---
Sok gyerekkel ellentétben én sose akartam tűzoltó lenni. Lettem helyette informatikus. Nem találjátok ki, hogy mit csinálok nap mint nap...

Megnézted mi van benne?

Csak a vmklinux forrása, a vmkload (a vmkernel betöltő modulja) meg az iscsi initiator driver (gondolom egy openiscsi fork) van forrásban meg ,illetve egy rakás include ezekhez - ezeket a GPL tényleg meg is követeli.
A vmkload vmkernel-t mint blobot tölti be. Mégegyszer mondom én nem tudom pontosan, hogy a betöltés most hogyan megy, lehet, hogy mostmár átalakították úgy, hogy nincs közvetlen áthívás a linux kernel és a vmkernel között, mindenesetre régebben erre alapozva mondták, hogy GPL-t sért.
Az én értelmezésem szerint, ha egy hívás INT 0x80 vagy SYSCALL/SYSRET utasításokkal történik, akkor a hívó és a hívott programnak nem kell összelinkelve lennie, ha sima CALL/RET utasításokkal, akkor viszont igen. Az előbbi esetben nem kell forráskódot kiadni, ha a hívott kód GPL-es az utóbbiban viszont igen.
---
Sok gyerekkel ellentétben én sose akartam tűzoltó lenni. Lettem helyette informatikus. Nem találjátok ki, hogy mit csinálok nap mint nap...