Čistě moje spekulace:
Technicky MS udělal kroky, které by mohly vést k postupnému přechodu na Linuxové jádro. Byl by trošku problém s virtualizací Windows v hypervizoru bez vnořené virtualizace, ale to by možná MS snesl.
Obchodně bych to tak jasně neviděl, resp. důvody kroků MS asi budou jiné:
Dnes má MS dominanci na trhu s desktopovými OS, a zatím mi nepřijde, že by mu tuto dominanci měly sebrat tradiční GNU/Linuxové distribuce. Za této situace může být celkem výhodné si i další aplikace vyvíjet jen pro svoji platformu.
Jenže diverzifikace příjmů by tím utrpěla. Všechny příjmy by takto byly opřeny o Windows, a při případném sešupu Windows by šly dolů všechny zdroje příjmů. A sešup může přijít z pro mnohé nečekané strany – třeba mobilní platformy. Dnešní Android se umí připojit k docku a chovat se jako desktop. Moc populární to dnes asi není, ale čas ukáže.
Ano, slyším různé důvody, proč to různým lidem nebude stačit, a část z toho bude asi pravda. Otázka by ale mohla znít jinak: Jak velké části populace to bude stačit? Možná většině. Ta menšina (včetně mě) si pak bude dál provozovat svůj desktop.
MS se nejspíš nebude chtít vzdát poplatků za licenci Windows, aspoň dokud nenajde lepší alternativu. Na druhou stranu se ale IMHO snaží být připraveni na různé scénáře. V době, kdy desktopy budou jen věcí profesionálů, MS asi nechce jít stranou kompletně. Možná tou dobou bude mít systém orientovaný na jinou uživatelskou základnu. Varianta, že by se z Windows stal čistě legacy systém, je možná na stole – ale ne jako preferovaná varianta, ale jako eventualita, kterou by případně (kdyby to náhodou nastalo) MS chtěl nějak přežít.
V tomto světle se mi ale zdá pravděpodobnější vlastní Linuxová distribuce MS než přechod Windows na Linuxový kernel. Vlastni distribuce by mohla dávat smysl třeba jako plán B plánu B, kdyby se MS spousta věcí nepodařila. Naopak stavět na Linuxovém kernelu Windows, řešit všechny rozdíly mezi kernely z pohledu aplikací (ony už jen rozdíly v práci se soubory mohou dát zabrat) a řešit drivery, to by byla spousta práce s nejasným výsledkem.
Ona je hlavně otázka, proč by to Microsoft dělal. Microsoftu způsobuje problémy s Windows obrovská heterogenita prostředí a udržování zpětné kompatibility pro programy, které využívají ne úplně dobře navržené API. Ani jedno z toho by Microsoft přechodem na Linux nevyřešil, naopak by to, co už vyřešené má, musel často řešit znovu. Využitím Linuxového jádra by nezískal žádné nové funkce, které by mohl ve Windows nějak výrazně zužitkovat a posunout je tím dopředu.
Využití linuxového jádra by dával smysl snad u nějakých „Windows lite“, které by konkurovaly ChromeOS – tj. byl by to OS pro spuštění webového prohlížeče.
Prakticky souhlas, akorát bych zobecnil jednu věc:
> Využití linuxového jádra by dával smysl snad u nějakých „Windows lite“, které by konkurovaly ChromeOS
Tam to smysl dávat může, ale nemusíme se zdaleka jen ubírat tímto směrem. Představte si, že lidé začnou masově používat telefony jako desktopy (mj. díky dockům), a trh desktopových OS se smrskne na profesionály. Na tomto trhu bude mít Windows jen malý význam. A MS může chtít mít nějakou vlastní Linuxovou distribuci, která bude nějak napojena na služby MS.
Tedy obecně, tento postup může dávat smysl tam, kde MS netíží zpětná kompatibilita. Nejen nějaké Windows Lite. Jestli taková situace někdy nastane, to nemám moc tušení. Vidím to pravděpodobněji než postupný přechod MS na jiné jádro.
@Vít Šesták [...]nějaké Windows Lite. Jestli taková situace někdy nastane, to nemám moc tušení[...]
moc sem to nezkoumal, ale Microsoft pripravuje "Windows 10X" ala "lite", bez podporu (ani virtualizace) Win32 aplikaci, ciste pro metroidni(?) aplikace ze store, nehledal sem ani v cem to ma byt jine nez "Windows 10 S", krome zminky ze 10X ma by pripravene na dual screen zarizeni :-)
https://www.youtube.com/watch?v=MHMLvelzWMU
https://www.cnews.cz/windows-10x-uvedeni-2021-bez-virtualizace/
Mobil jako plnohodnotny system rozhodne cestou je. Jiz ted mam v kapse mobil co ma vetsi vykon nez vetsina mich pocitacu doma a syn si poridil neco co je lepsi nez PC co mam na praci. Takze uz je jenom krok k tomu az budu menit PC rict si "sakra proc nove PC nestaci jenom lepsi monitor a dokovaci stanice?".
No, a dovedete si představit, jak by takový přechod vypadal, se zohledněním kompatibility všech aplikací, ovladačů apod.? Já trochu ano, a rozhodně bych tomu neříkal „luxus“. A po dokončení přechodu by jim zbyla hromada kodu řeší kompatibilitu s legacy aplikacemi.
V průběhu změny by to celkem jistě přineslo různé bugy. Z pohledu uživatelů by tedy zpomalili inovace a rozkopávali to, co fungovalo.
To je samozřejmě čistě hypotetická diskuse, nepočítám, že by MS se k tomu doopravdy chystal minimálně během příštích několika let. Ale zas takový problém by to nebyl. Jádra Linux a NT jsou si dostatečně podobná z hlediska poskytovaných funkcí, že do jisté míry je opravdu možné jedno nahradit druhým a naopak a přizpůsobit systémové knihovny. Wine je důkazem, že Windowsové aplikace můžou v principu fungovat na Linuxu a kdyby se toho chopil sám Microsoft, jistě by to snadno dotáhl do podoby, kde by Franta Uživatel rozdíl ani nepoznal. A pro případy, kde by tohle opravdu nefungovalo, by mohli do systému zahrnout virtualizované Windows 10 pro legacy aplikace. Přesně tak to ostatně udělali už s OS/2.
.NET Core je od verze 1 multiplatformní. Novinka .NET 5 je, že sjednocuje .NET Core a .NET Framework, který byl Windows only. Když bylo potřeba mít sdílený kód, musel splňovat .NET Standard. Tímto to odpadá a na Windows se již bude používat .NET 5 jako plnohodnotný nástupce Frameworku, protože je 100% kompatibilní.
Má to však jistá omezení, například to, že GUI aplikace s WPF jdou stejně spustit jen na Windows. Ale pro serverové aplikace je to perfektní.
Tak on .NET 5.0 má, pokud si dobře vzpomínám, v podstatě sjednotit .NET Framework a .NET Core. A .NET Core byl pro Linux.
Mono dnes vyvíjí Microsoft, a jeho implementace se už dříve přibližovala .NET Frameworku a .NET Core – AFAIR části kódu prostě zkopírovali. Nejsem si jist, jaký bude osud Mona s .NET – mám za to, že Mono měla být alternativní implementace starého .NET Frameworku (4.* a starší), ale nedaří se mi to dohledat. Nedává mi moc smysl podporovat .NET 5 v Mono.
(To neznamená, že MS Mono zahazuje – produktově asi v podstatě ano, ale nejspíš se jeho vhodné části prostě dostaly do .NET 5.)
Zprávička odkazuje na binárky ke stažení, kde je i verze pro Linux. A taky odkazuje na e-mail Esme Povirk z CodeWeaveres (tedy zřejmě vývojáře Wine, nikoli Mono!). Ten ale říká něco jiného než zprávička. Pravda, říká, že .NET 5.0 funguje ve Wine dobře, ale zhruba tady shoda končí. Nevyjadřuje se o Mono jako takovém, ale o Wine Mono, tedy o distribuci Mono pro Wine. A říká, že .NET 5.0 není brán jako součást systému, a tím, že pod Wine funguje dobře, není nutné se mu nějak speciálně věnovat. Tedy něco o dost jiného, než říká zprávička.
A vzhledem k tomu, že se tu vyjadřuji k do jisté míry konkurenčnímu projektu, přidám malý disclaimer: Pracuju v Oracle Labs jako GraalVM Developer, nicméně tento příspěvek píšu sám za sebe a nemusí se shodovat s oficiálním stanoviskem firmy Oracle.
Tady je o Mono vyborny podcast. Dozvite se tam vse z historie.
https://soundcloud.com/msimecek/dotnet-cz-episode-41?in=msimecek/sets/net-cz-podcast
Mono vzniklo kdysi dávno jako open-source částečná reimplementace .NET Frameworku (MVC, winForms, ASP.NET atd.). Trochu později MS představil .NET Core jako nový open source základ .NET světa, postupně do něj přepisuje věci jako ASP.NET MVC, WPF a další (stejně jako to dělalo Mono) a tohle vyvrcholilo vydáním .NET 5.0 jako nové hlavní větve.
Mono tedy nedává smysl, .NET 5.0 a Mono mají stejný cíl, nad .NET Core reimplementují zbylé knihovny a API, které se kolem .NET používaly.
.NET 5.0 jsou k dispozici i platform specific kódy a ty které jsou určeny pouze pro Windows dokáže právě dobře řešit wine, který zpřístupňuje Windows API na linuxu. Zbytek běhá na linuxu dobře.
.NET 5.0 není plně zpětně kompatibilní, takže kód se musí stejně upravit (ať již původně byl v Mono nebo .NET Core s použitím dalších knihoven od MS).
Možná trochu zmatečný. .NET 4.x mělo být správně uvedeno jako .NET Framework 4.x. Ten běhá jenom pod Windows. Verze .NET Core a .NET 5 jsou už nativně multiplatformní. Jedou na Linuxu. Není důvod to spouštět přes Wine.
Mono tedy stále dává smysl pro ty, kteří potřebují .NET Framework 4.x specifické věci implementované v Mono.
Tak sice je ta zpravicka trochu zmatecna, ale ono to dava smysl. Mono bylo super a melo svuj historicky vyznam. Ale to se tykalo jen stareho .NET frameworku. Nove je .NET multiplatformni takze zde neni duvod se snazit vytvaret podporu neceho co uz tu je. Ja osobne jsem rad ze muzu pouzivat C# a posledni dobou i spoustu knihoven v nem napsanych diky tomuto pocinu. Co me mrzi je ze bohuzel je to stale velmi omezne diky mysleni jak ty lidi psali kod. Tim mam namysly to ze spousta knihoven se sice tvari ze je platforme nezavisla ale casto to ma sve problemy. Bud to na Linuxu vubec nejde a nebo je to zavisle na GUI i v pripadech kde to nedava smysl (proste misto toho aby to zpocitalo vzdalenost bodu nejak rozumne tak to vezme vzdalenost bodu na obrazovce a potrebuje to Xka)