Microsoft tuo DirectX 12 -kiihdytyksen Linux Subsystem for Windowsiin

  • Keskustelun aloittaja Keskustelun aloittaja Kaotik
  • Aloitettu Aloitettu

Kaotik

Banhammer
Ylläpidon jäsen
Liittynyt
14.10.2016
Viestejä
22 630
Microsoft on ilmoittanut tuovansa DirectX 12 -tuen Windows 10:n Linux Subsystem for Windowsille. Se vaatii kuitenkin taustalle Windowsin ja tuki toteutetaan DirectX:n GPU-PV- eli WDDM GPU Paravirtualization -teknologiaa hyödyntäen.
Linuxille on puolestaan tehty täysin uusi dxgkrnl-kerneliajuri, mikä kommunikoi Windowsin virtualisoiman GPU:n kanssa, D3D12-rajapinta, uusi DxCore, mikä on modernisoitu versio DXGI:stä, sekä DirectML.
Tuen myötä myös Linux-sovellukset voivat hyödyntää Microsoftin rajapintoja, mutta niiden suorittaminen rajautuu Windows Subystem for Linuxin alle.

 
Tää helpottaa pelien tekoa Linuxin puolelle?
Ei käytännössä. Tämä siis koskee vain Windows Subsystem for Linuxia, eli Windows 10:n sisällä pyörivää Linuxia eikä se DirectX toimi millään muulla Linuxilla (koska vaatii taustalleen sen Windowsin DirectX:n ja virtualisoidun GPU:n)
 
Voisko myös sen directX:n virtualisoida ilman koko Windowsia?
 
Tämä on kyllä aika käsittämätön ominaisuus. Vaikea kuvitella, että mihin joku tätä tarvitsee.

No, ei ole tietty multa pois, että on feature joka toimii vain windowssin päällä linux-järjestelmää pyörittäville.
 
Tämä on kyllä aika käsittämätön ominaisuus. Vaikea kuvitella, että mihin joku tätä tarvitsee.

No, ei ole tietty multa pois, että on feature joka toimii vain windowssin päällä linux-järjestelmää pyörittäville.
99.9999999% käyttäjistä täysin turha ominaisuus. Oikeastaan ainoa mihin tuota voisi kuvitella käytettävän olisi DX tuen testailu linuxilla ennen kuin:
Pisst. Windows 11 pyörii linux ytimellä. :smoke:
 
Windows 11 on .net only ja legacykama suoraan romukoppaan? (yhteensopivuus virtualisoinnilla.) Sitten hommassa voisi olla joku järki. Mutta driver model ja kaikki... kuulostaa ufolta.

Mutta ehkä Linus on kohta töissä MS:llä.
 
Tällä hetkellä Windows Subsystem for Linuxissa ei ole vissiin oikein mitään rautakiihdytettynä, tämän kautta myötä onnistuu myös OpenCL- ja OpenGL -kiihdytykset (ne mapataan D3D12:lle MS:n työkaluilla automaagisesti) ja Vulkan-tuen lisäämistä tutkitaan.
 

Microsoft saa kernelin jota ylläpitää pääosin muut tahot, laajalti käytetty ja testattu myöskin muiden toimesta (ja kustannuksella), ainoastaan jos itse tarvitsevat jotakin joutuvat kaivamaan kuvetta. Tai kutittelemaan sopivaa Linux-devaria leuan alta.

Siihen kylkeen joko kotipolttoinen c-kirjasto jonka pohjaksi voi ottaa vaikka BSD libc:n (vrt. Android) joten sitä ei tarvitse edes avata, tai vaikka glibc jos eivät halua kehittää omaa. Tämän kakun päälle sitten omat APIt ja userland mukaanlukien Waylandilla toteutettu GUI, niin kappas. Windows ilman kaikkea legacy-taakkaa ensimmäisestä NT:stä lähtien, kuitenkin yhteensopivuuskerroksilla valtaosa vanhoista sovelluksista toimii sellaisenaan. Ja halutessaan voivat pitää suuren osan tuosta edelleen suljettuna.
 
Nykyiselläänhän Windows (tai ainakin sen kerneli) pyörii jo tarvittaessa virtualisoituna ilman, että se näkyy käyttäjälle millään tapaa, ja nyt kun alkaa olemaan oma Linux kernelikin aikalailla kuosissa, ei ole enää kuin ajan kysymys milloin tuo virtualisoitu Windows pyörii sen päällä. Microsoft ei ole turhaan ilmoittanut Windows 10:n olevan viimeinen Windows. :smoke:
 
Microsoft ei ole turhaan ilmoittanut Windows 10:n olevan viimeinen Windows. :smoke:
Ehkä viimeinen "perinteinen" Windows.
Microsoft has been discussing the idea of Windows as a service, but the company hasn't really explained exactly how that will play out with future versions of Windows. That might be because there won't really be any future major versions of Windows in the foreseeable future. Microsoft has altered the way it engineers and delivers Windows, and the initial result is Windows 10. Instead of big releases, there will be regular improvements and updates
 
  • Tykkää
Reactions: BOT
Miten esim. kaikki ajurit joita on vuosien sivut kirjoiteltu ja sertifioitu winkkarille? Veikkaan että nykyinen Win10 on vielä kuvioissa sellaisenaan pidemmän tovin.

Toki vois liittyä Windows 10X:ään ARM:illa mikä väkisinkin katkaisee yhteensopivuutta x86 historian kanssa ja asioita voi tehdä uusiksi.
 
Miten esim. kaikki ajurit joita on vuosien sivut kirjoiteltu ja sertifioitu winkkarille?
Ei kai tuolla ole sinänsä väliä, kun eihän kympillekään löydy välttämättä kaikille vanhoille laitteille ajureita. Mutta eipähän se varmaan ole kun vaan ajan kysymys milloin M$ puskee pihalle oman desktop Linux-distron.
 
Ei kai tuolla ole sinänsä väliä, kun eihän kympillekään löydy välttämättä kaikille vanhoille laitteille ajureita. Mutta eipähän se varmaan ole kun vaan ajan kysymys milloin M$ puskee pihalle oman desktop Linux-distron.
Kyllä se hyvin epätodennäköistä on. Mitä syitä Microsoftilla olisi ajaa kotikäyttäjiä Linuxille, ja vielä toiseenkin suuntaan, mitä syitä kotikäyttäjällä olisi haluta siirtyä Linuxiin?
Palvelinmaailma on täysin eri asia tietenkin ja siellä MS panostaa myös Linuxiin (ja on julkaissut oman distronkin)
 
Ei kait tässä käyttäjäkokemusta oltu muuttamassa, vaan vaihtamassa sitä syvintä prosessien hallinta käskyttäjää. Eli NT4.0 kerneliä Linux(TM) kerneliin?
 
Ei kait tässä käyttäjäkokemusta oltu muuttamassa, vaan vaihtamassa sitä syvintä prosessien hallinta käskyttäjää. Eli NT4.0 kerneliä Linux(TM) kerneliin?
Niin, mutta edelleen kysyin miksi, se on irrelevanttia olisiko käyttöliittymä ja kokemus identtiset vai ei, mutta jokin syy pitäisi olla miksi Microsoft haluaisi näin tehdä ja päin vastoin, kuluttajilla pitäisi olla jokin syy haluta sitä muutosta (oletan että sitä nyt jonkin näköinen joukko haluaa, en tiedä miksi)
 
640K is Enough For Anyone
Ja siitä vähän ekstrapoloit ja mietit missä kohtaa kenkää se kivi onkaan. :think:
 
640K is Enough For Anyone
Ja siitä vähän ekstrapoloit ja mietit missä kohtaa kenkää se kivi onkaan. :think:
Mikä siinä Linux-ytimessä olisi parempaa? Eikä nykyiset NT-kernelit ole lähelläkään 4.0-kerneliä.
Edelleen siiis, miksi, minkä syyn vuoksi, Microsoft haluaisi tehdä sen ihan helvetillisen homman, että lähtisi tekemään niin radikaalia muutosta?
 
En tiedä. Oma veikkaukseni on, että koodi on ajautunut purkan paikkaukseen teipillä ja parilla lisä purkalla. Jolloin koko juttu pitäs vetää vessasta alas. Jos näin, niin silloin valmiin koodin houkutus voi olla ylivoimainen.
 
Kyllä se hyvin epätodennäköistä on. Mitä syitä Microsoftilla olisi ajaa kotikäyttäjiä Linuxille, ja vielä toiseenkin suuntaan, mitä syitä kotikäyttäjällä olisi haluta siirtyä Linuxiin?
Palvelinmaailma on täysin eri asia tietenkin ja siellä MS panostaa myös Linuxiin (ja on julkaissut oman distronkin)
No miks ei? Päästään vähitellen vanhasta koodista eroon ja vanhaa softaakin voidaan sitten virtuaalikoneen avulla vielä pyörittää ja kyllähän MS varmasti hyötys tuosta kun niin moni kehittää Linuxia. Kotikäyttäjien haluista tuskin ihan hirveesti tuossa tilanteessa kyseltäis, jos varsinkin se ei juuri näkyviä muutoksia aiheuttas.
 
Microsoft on touhunnut sekä open-sourcen että Linuxin parissa jo pitkään. Touhuaa myös monen muun asian kuten konsolien ja AR:n kanssa eikä nekään tarkoita että yrityksen yleinen suunta tai Windows-sarjan tulevaisuus olisi jotenkin määräytymässä niiden kautta.

Kyseisellä firmalla on käsittääkseni sen verran syvät taskut että tälläisiä R&D proggiksia voidaan tehdä ilman sen syvällisempiä merkityksiä kokonaisuudelle.
 
Kyseisellä firmalla on käsittääkseni sen verran syvät taskut että tälläisiä R&D proggiksia voidaan tehdä ilman sen syvällisempiä merkityksiä kokonaisuudelle.

Liikevoittoa ja tuottoa sijoittajillehan se pörssiyhtiö tavoittelee. Ei edes rahoissaan oleva firma täysin tyhjään R&D:hen syydä, kyllä kaikelle jonkinlainen tienauspotentiaali katsotaan. Tuo ei edes ole enää mitään pientä näpertelyä mitä muutama työntekijä on puoliksi omalla ajallaan tehnyt.
 
Liikevoittoa ja tuottoa sijoittajillehan se pörssiyhtiö tavoittelee. Ei edes rahoissaan oleva firma täysin tyhjään R&D:hen syydä, kyllä kaikelle jonkinlainen tienauspotentiaali katsotaan. Tuo ei edes ole enää mitään pientä näpertelyä mitä muutama työntekijä on puoliksi omalla ajallaan tehnyt.

Kyllähän parempi virtualisointituki on ihan rahanarvoista toimintaa. Lähinnä pointti oli että tälläistä voidaan tehdä täysin itsenäisenä kokonaisuutena eikä sen tarvitse palvella Windowsin omaa kehityskaarta ollenkaan, koska on resursseja jakaa useaan suuntaan.

Hyvä kontrasti on AMD:n BIOS-tilanne; jos olis resursseja ylen määrin niin kyllä niitä bioseja tunkattaisiin vaikka mihin lankkuihin ja asiakastukitiimi tulisi vaikka paikan päälle flässäämään oikean biosin jos tumpelot ei osaa. Mutta kun ei ole niin kaikki toiminta pitää tukea uusia tuotteita ja wanhat jääkööt tallotuksi kehityksen jalkoihin.
 
Syy on ML/AI josta MS haluaisi kakun. Tällä hetkellä suurin osa työkaluista on linux-only ja myös ne GPU kiihdytety. DirectX12han on myös ML api, mutta sen käyttöaste on ihan 0 kun se ei linuxilla toimi

Sasha Levin:

- Why DX12 on linux? Looking at this feels like classic divide and

There is a single usecase for this: WSL2 developer who wants to run
machine learning on his GPU. The developer is working on his laptop,
which is running Windows and that laptop has a single GPU that Windows
is using.

Since the GPU is being used by Windows, we can't assign it directly to
the Linux guest, but instead we can use GPU Partitioning to give the
guest access to the GPU. This means that the guest needs to be able to
"speak" DX12, which is why we pulled DX12 into Linux.
 
Hyvä kontrasti on AMD:n BIOS-tilanne; jos olis resursseja ylen määrin niin kyllä niitä bioseja tunkattaisiin vaikka mihin lankkuihin ja asiakastukitiimi tulisi vaikka paikan päälle flässäämään oikean biosin jos tumpelot ei osaa. Mutta kun ei ole niin kaikki toiminta pitää tukea uusia tuotteita ja wanhat jääkööt tallotuksi kehityksen jalkoihin.

Hyvä esimerkki, sillä vastaavaltahan tuo tilanne vaikuttaisi NT kernelin kohdallakin. Se ei ilmeisesti oikein taivu suurille ydinäärille eikä NUMA-toteutuskaan taida pelin parasta antia olla. Serveripuolella Windowsilla ei enää juurikaan jakoja ole, mutta työasemaprosessoreiden ydimäärät menee jo yli hanskauskapasiteetin ja työpöydätkin seuraavat perässä. Jos tuo olisi triviaalisti ratkaistavissa, niin se olisi jo tehty aikaa sitten ettei serverimarkkinoita olisi menetetty muille käyttöjärjestelmille.
 
Mikä siinä Linux-ytimessä olisi parempaa? Eikä nykyiset NT-kernelit ole lähelläkään 4.0-kerneliä.
Edelleen siiis, miksi, minkä syyn vuoksi, Microsoft haluaisi tehdä sen ihan helvetillisen homman, että lähtisi tekemään niin radikaalia muutosta?
Linux kerneli on ilmainen ja pitkässä juoksussa säästää rahaa, lisäksi se on dramaattisesti nopeampi työasemakäytössä. Jos käytännössä saa vaikka 19 lisäydintä vastaavan määrän lisää vääntöä alustalleen, niin kyllä moni vaihtaa leiriä. (eti vaikka phoronixin threadripper testit aiheesta)
 
Jos tuo olisi triviaalisti ratkaistavissa, niin se olisi jo tehty aikaa sitten ettei serverimarkkinoita olisi menetetty muille käyttöjärjestelmille.
Kerrohan milloin windows on ollut serverimarkkinoilla johdossa. :D

E: oikeampi sanamuoto olisi siis hävittiin. :)
 
Kerrohan milloin windows on ollut serverimarkkinoilla johdossa. :D

E: oikeampi sanamuoto olisi siis hävittiin. :)

En kyllä mielestäni mistään johtoasemasta edes maininnut? Tai edes markkinaosuuksista, selkeästihän tuossa lukee että ne serverimarkkinat on menetetty, eli hävitty koko peli. Otettu takkiin ja palattu häntä koipien välissä Linuxin asennusmediaa tutkimaan.
 
Eipä taida lisenssikauppa tuolla enää kauheasti kiinnostaa kun Azure ja muut palvelut painaa rahaa brrrrrr.. Kun ei tarvitse kauppaa lisenssiä niin voi nappaa opensourcea pohjalle, ei tarvitse itse koodailla ja kehittää kaikkea alusta loppuun
 
Kyllä se hyvin epätodennäköistä on. Mitä syitä Microsoftilla olisi ajaa kotikäyttäjiä Linuxille, ja vielä toiseenkin suuntaan, mitä syitä kotikäyttäjällä olisi haluta siirtyä Linuxiin?
Palvelinmaailma on täysin eri asia tietenkin ja siellä MS panostaa myös Linuxiin (ja on julkaissut oman distronkin)

Ei kotikäyttäjille windows tule muuttumaankaan, ainoastaan devaajille. Eihän MS saa rahaa tuotteillaan oikein, palveluillaan kyllä. WSL on muutenkin vähän purkkaviritys (buginen) ja WSL2 on oikeaan suuntaan. Lähinnä kun MS:n palvelut pyörii linuxilla, niin devaaja säästää aika paljon aikaa, rahaa ja hermoja jos voi kehittää sillä alustalla millä kohdeympäristö pyörii, oli minkälaiset virtualisointimahdollisuudet tahansa.

Ei ole enää pitkä matka Windows for home and business users ja sitten Windows Pro for developers (linux). Teamskin löytyy linuxille MS:n tekemänä.
 
Saisihan Windows mm. enemmän levyjärjestelmiä ja responsiivisemman järjestelmän näin yleisestikin. En oikeasti ymmärrä miten Win10 vs Gentoo ero voi olla hiiressä niin suuri, että Win 10 vastaa 240Hz tilassa about Gentoossa 120/144Hz näyttötilaa, jos siis vertaan hiiren responsiivisuutta...
 
Saisihan Windows mm. enemmän levyjärjestelmiä ja responsiivisemman järjestelmän näin yleisestikin. En oikeasti ymmärrä miten Win10 vs Gentoo ero voi olla hiiressä niin suuri, että Win 10 vastaa 240Hz tilassa about Gentoossa 120/144Hz näyttötilaa, jos siis vertaan hiiren responsiivisuutta...

Minullakin pöytäkone dualboottailee Gentoo + Win10, jälkimmäinen käytössä lähinnä muutaman moninpelaajapelin takia. Yleensä en vaivaudu testaamaan kummallako peli pyörii paremmin, pelaan Gentoossa ellei ole teknistä estettä tai vaadita liiallista säätöä.
Ainut poikkeus mitä olen kokeillut kummallakin puolella on Witcher 3, ja oma (subjektiivinen) kokemus oli että Gentoossa peli tuntui reagoivan hiireen ja ohjaukseen paljon paremmin. Lisäksi samoilla grafiikka-asetuksilla Gentoolla sain nopeamman ruudupäivityksen. Ei lainkaan huonosti ottaen huomioon että se ei ole edes natiivi sovellus.
 
640K is Enough For Anyone
Ja siitä vähän ekstrapoloit ja mietit missä kohtaa kenkää se kivi onkaan. :think:

Mitä tekemistä jollain valheellisella myytillä on minkään kanssa?

Microsoftilla ei ollut mitään tekemistä alkuperäisen PCn muistirajoitusten kanssa, eikä kukaan microsoftin edustaja ole esittänyt tuollaista lausetta.

Alkuperäisen PCn muistirajoitus tuli ihan siitä, että sen 8088-prosessorilla pystyi osoittamaan maksimissaan 1024 kilotavua muistia, mutta osa tästä muistiavaruudesta piti varata muistimapatun IOn käyttöön oheislaitteille.

IBMn insinöörit tekivät päätöksen, että ylimmät 384 kilotavua varataan muistimapatun IOn käyttöön oheislaitteille, ja alimmat 640 jätetään normaaliksi RAMiksi ohjelmien käyttöön.

Jos koko 1024 kilotavua olisi varattu normaalin RAMiksi, eikä mitään jätetty muistimapatulle IOlle, ei olisi esimerkiksi ollut mitään yhtä nopeaa ja helppoa tapaa millä pelit olisivat voineet piirtää grafiikkansa ruudulle; Käytännössä (melkein) kaikki IO olisi ollut hankalampaa tai hitaampaa.

Sen jälkeen kun prosessoriksi oli valittu 8088, ainoa asia minkä järkevästi olisi voinut tehdä eri tavalla olisi ollut, että tämä raja olisi 640 kilotavun sijasta valittu esim. 704 kiB tai 768 kiB kohdalle. Ja silloin olisi vaan valitettu 704 kB tai 768 kB rajasta, samalla tavalla tajuamatta syytä siihen. (192 kiB olisi ollut jo liian vähän IOlle joten 832 ei olisi ollut järkevä paikka rajalle)

Ainoa tapa millä tältä rajalta olisi vältytty, olisi ollut että olisi valitttu IBM PC:hen sellainen prosessori, jossa on paljon suurempi muistiavaruus, kuten esimerkiksi Motorolan 68000. 68000 olisi kuitenkin tehnyt koneesta paljon kalliimman; 68000 oli tuplasti isompi piiri ja käytti tuplasti leveämpää muistiväylää kuin 8088. Zilog Z8000 olisi ollut saman kokoluokan prosessori 24-bittisellä (16 MiB) muistiavaruudella, mutta Zilog ja IBM eivät olleet kovin hyvissä väleissä keskenään, eikä Z8000lla ollut toista toimittajaa, joten olisi ollut IBMlle liian suuri bisnesriski ostaa prosessorinsa Zilogilta.

Microsoft sitten vaan teki käyttiksen, joka toimi IBMn raudalla, jossa nämä rajoitukset olivat.

Ja myöhemmin (n. 1980- ja 1990-lukujen vaihteessa ) Microsoft itseasiassa teki aika paljonkin tuon (IBMstä johtuvan) 640kiB rajan kiertämiseen;
* Kun 286essa oli bugi joka mahdollisti "vahingossa" ylimääräisen 65520 tavun osoittamisen tuon 1024kiB yläpuolelta, microsoft teki DOSiin rajapinnan tämän muistin hallitsemiselle (himem.sys, dos 5)
* Kun 386n muistinhallintayksikkö mahdollisti EMS-muistin toteuttamisen ilman erillistä EMS-muistikorttia, microsoft toteutti DOSiin emm386.sys:n joka mahdollisti softapohjaisen EMS-muistin käytön 386lla.(*) (dos 6)
* Lisäksi mahdollistettiin laiteajurien lataaminen tuonne IO-aluelle kohtiin, joissa IO-muistien väleissä oli aukkoja joista näkyi normaali keskusmuisti (loadhi) jolloin näiden ei tarvinnut olla tuon 640 kiB rajan alapuolella ja tämä säästyi itse ohjelmille.


Summa summarum: Microsoftilla ei ole mitään tekemistä alkuperäisen rajan olemassalemisen kanssa, mutta microsoft on tehnyt paljon auttaakseen sen kiertämiseen.



(*) EMS-muisti oli siis alunperin muistia, jossa yhden 64 kiB "ikkunan" kautta näkyi osa EMS-muistikortilla olevaa paljon isompaa ulkoista muistia, ja erillisillä komennoilla käskytettiin, että mikä kohta sitä isompaa muistia on siitä ikkunasta näkyvissä, tämän kaiken siis toteutti alunperin EMS-muistilla oleva rauta. Koska EMS-muistin käyttö vaati tätä ikkunan vaihtelua, sitä ei käytännössä järkevästi voinut käyttää esim. koodin ajamiseen, vaan sinne tallennettiin esim. pelien musiikkeja tms. joista pystyttiin ikkuna kelaamaan aina sopivan kohtaan helposti sen mukaan, mitä musiikkia piti soittaa tms.
 
Viimeksi muokattu:
Mikä siinä Linux-ytimessä olisi parempaa? Eikä nykyiset NT-kernelit ole lähelläkään 4.0-kerneliä.
Edelleen siiis, miksi, minkä syyn vuoksi, Microsoft haluaisi tehdä sen ihan helvetillisen homman, että lähtisi tekemään niin radikaalia muutosta?

Kyllä ne nykyiset windows-kernelit perustuu edelleen aika pitkälti samoihin rajapintoihin, lähinnä grafiikkapuoli on laitettu pariin kertaan uusiksi.

Ja niissä rajapinnoissa on kyllä aika paljon epäoptimaalisuutta kun ne perustuu pitkälti 1980-luvun ylistotutkijoiden visioihin siitä, että mikrokernel on the juttu vaikka tosiasiassa mikrokernel on suorituskyvyn kannalta aika huono juttu.

Ajan myötä yhtä enemmän asioita windowsisssa on tungettu sinne itse kerneliin, ajautuen kauemmas alkuperäisestä mikrokernel-ideasta, mutta kun alkuperäinen perusdesign on se mikrokernel, niin purkaksi on mennyt.


Monoliittikernelissä softa tekee yhden systeemikutsun. Sama säie jatkaa ajamista kernel-moodissa, ja voi käyttää suoraan softan omassa muistissa olevia puskureita, lukea tallennetavan datan sieltä tai tunkea ladatun datan sieltä. kernelin sisällä vaihtelu filesystem-koodin, verkkoajurikoodin, levyohjainkoodin välillä jne ei sisällä mitään overheadia, kaikki menee funktiokutsulla jossa voidaan vain välittää pointteri että missä on puskuri jossa data on tai jonne se pitää tunkea. Kun IO-operaatio on tehty, palataan softan puolelle ja softan oman koodin ajaminen jatkuu. Samalla ytimellä oli koko ajan sama säie ajossa, säie vaan käväisi välillä kernel-puolella.

Monta säiettä voi olla myös yhtä aikaa kernel-puolella, tekemässä IOtaan rinnakkain, kun kernelissä on riittävät lukitukset(kuten Linuxissa on)

Puhtaassa mikrokernelissä homma on paljon monimutkaisempaa ja hitaampaa:

1. Softa lähettää tiedostojärjestelmäpalvelimelle viestin, ja Tämän viestin lähettämiseksi sen pitää kutsua kernel-puolen rutiinia, joka ei tee muuta kuin lähettää viestin. Sitten softa menee nukkumaan odottamaan vastausta. (context switch).

2. Tiedostojärjestelmäpalvelinprosessin säie herätetään (context switch) palvelemaan. Se analysoi, mistä data löytyy, ja sen jälkeen lähettää viestin levyajurille, että tällainen data pitäisi lukea. Ja mikäli muita requesteja ei ole tällä välin tullut, menee nukkumaan. Toisaalta, mikäli muita requesteja ON tullut, ne ovat odottaneet turhaan jos tiedostojärjestelmäpalvelinprosessilla on vain yksi säie.

3. Levyajuripalvelinprosessi herätetään (context switch) ja se lukee datan levyltä ja lähettää sen takaisin tiedostojärjestelmäpalvelimelle.

4. Tiedostojärjestelmäpalvelin herätetään (context switch) ja se käsittele levyajurilta luetun datan ja lähettää sen eteenpäin itse softalle.

5. Softa herätetään ja sillä on vihdoin datansa.


Eli siis, puhtaassa mikrokernelissä on pari oleellista ongelmaa:
* Suuri määrä context switchejä kun vaihdellaan palvelinprosessien ja itse softan välillä hidastaa
* Palvelinprosessit ovat natiivisti yksisäikeisiä, jolloin yksisäikeisestä palvelusta tulee helposti pullonkaula jos sitä yritetään käyttää monesta säikeestä. Tämä ei ollut ongelma 1980-luvulla kun meillä oli vain yksi säie ajossa kuitenkin, tämä on helposti huomattava ongelma 2020-luvulla kun meillä voi olla systeemissä kymmeniä säikeitä ajossa yhtä aikaa.
* niiden palvelinprosessien monisäikeistäminen rikkoo oleellisen osan alkuperäisestä mikrokernelin luotettavuuspointeista ja monimutkaistaa designia paljon entisestään ja johtaa todella suureen määrään "turhia" , suurimman osan ajasta idlaavia säikeitä systeemissä. Nämä säikeet pitää kuitenkin pitää skedulerin kirjanpidossa ja niiden pinot pitää tallentaa muistiin jne. Ja uuden säikeen luominen aina palvelemaan uutta pyyntöä on sekin liian hidasta.


Eli tosiaan, kiertääkseen näitä mikrokernelien hitausongelmia monet alunperin mikrokernelpohjaiset systeemit ei enää ole mitään kovin puhtaita mikrokerneleitä, vaan "hybridikerneleitä" joissa aika moni asia tehdään moniliittikernelien tavalla, samaan palvelinprosessiin on tungettu todella paljon tavaraa että voidaan tehdä asiat funktiokutsurajapinnalla niiden välillä, mutta näissä on aika paljon purkkaa sitten kun design on muuttunut lennossa.



Lisäksi Microsoftilla on ollut Windowsin kehitykseen myös vähän sellainen asenne, että siellä ei ole ketään kenen tehtävänä on vaan yleisesti huolehtia siitä, että windows on nopea. Sitä kehitetään "ominaisuudet edellä" bullet pointeilla. Joku asia on tehty > kymmenen vuotta hitaalla algoritmilla, ei ole kenenkään vastuulla optimoida sitä jos siitä ei saada bullet pointtia jota voidaan mainostaa uutena ominaisuutena. Pikemminkin vaan yhteensopivuussyistä kielletään koskemasta koodiin joka toimii, ettei vahingossakaan rikota sitä.
 
Viimeksi muokattu:
Kumpa tulisi toimiva systeemi, että voisin ajaa (kaikkia) Linux-ohjelmia Windowsissa myös GUI-moodissa. On siis monia syitä pysyä edelleen Windowsissa, mutta muutama Linux-softa houkuttaa vaihtamaan käyttöjärjestelmää.

Siis kokeilin Windowsiin asennettavaa ikkunointi-palvelinta, vai millä nimellä sitä kutsuisi, mutta olipas säätö saada toimimaan. Eikä kuitenkaan kaikki ohjelmat tukeneet sitä. Sellainen Windows-tyylinen "asenna klikkaamalla, käytä" helppous puuttuu.
 
Kumpa tulisi toimiva systeemi, että voisin ajaa (kaikkia) Linux-ohjelmia Windowsissa myös GUI-moodissa. On siis monia syitä pysyä edelleen Windowsissa, mutta muutama Linux-softa houkuttaa vaihtamaan käyttöjärjestelmää.

Siis kokeilin Windowsiin asennettavaa ikkunointi-palvelinta, vai millä nimellä sitä kutsuisi, mutta olipas säätö saada toimimaan. Eikä kuitenkaan kaikki ohjelmat tukeneet sitä. Sellainen Windows-tyylinen "asenna klikkaamalla, käytä" helppous puuttuu.
WSL on saamassa natiivin tuen GUI-softalle. Se on mainittu lyhyesti tuolla tämän uutisen lähdeartikkelissa:
At //build we announced that support for Linux GUI applications is coming to WSL. While today WSL is a console only experience, soon you’ll be able to use your favorite Linux IDE or other GUI application alongside your other Windows applications on your Windows desktop.

How are the pixels going to flow between Linux applications and the Windows desktop hosting them and how are the various window going to be integrated into unified and seamless experience? That’s going to be a story for another time.
 
Jos sattuisi niin ikävästi käymään että x86 päästäisi kylmän pierun tai ainakin joutuisi luopumaan yksinvaltiaan asemastaan niin linux ehkä toimahtaa esim arm:ssa paremmin kun nykyinen ms codebase.
 
Jos sattuisi niin ikävästi käymään että x86 päästäisi kylmän pierun tai ainakin joutuisi luopumaan yksinvaltiaan asemastaan niin linux ehkä toimahtaa esim arm:ssa paremmin kun nykyinen ms codebase.
 
Windows-tyylinen "asenna klikkaamalla, käytä" helppous
Yhtään yhden klikkauksen Windows-ohjelmiston asennusta en muista. Tusina dialogia siellä täällä, "Olethan varma?", "Tää on nyt valmis. Juu | Ei". Ai niin, dialogissa 3 rasti ruudussa X tekee ihan tuubaa, muistinko poistaa?

Helpohko yhden kerran yhteen koneeseen, mutta ei skaalaudu.

(Tallennettu) komentorivi (halutuin valinnoin) tekee saman yhdellä 'Enter'-"klikkauksella", oli koneita 1 tai 100000. Siksi tuo 'winget' on mannaa.


OpenGL mainittiin GUI:n yhteydessä. Entä Vulkan? X11 ja/tai Wayland?
 
Yhtään yhden klikkauksen Windows-ohjelmiston asennusta en muista. Tusina dialogia siellä täällä, "Olethan varma?", "Tää on nyt valmis. Juu | Ei". Ai niin, dialogissa 3 rasti ruudussa X tekee ihan tuubaa, muistinko poistaa?

Helpohko yhden kerran yhteen koneeseen, mutta ei skaalaudu.

(Tallennettu) komentorivi (halutuin valinnoin) tekee saman yhdellä 'Enter'-"klikkauksella", oli koneita 1 tai 100000. Siksi tuo 'winget' on mannaa.


OpenGL mainittiin GUI:n yhteydessä. Entä Vulkan? X11 ja/tai Wayland?
Perusohjelmat asentuvat molemmissa käyttiksissä varsin vaivattomasti. Microsoft Office 365 ei tainnut hirveästi kysellä mitään, kun asennusohjelman käynnisti? Tarkoitinkin että jos Microsoft tekisi sellaisen "hieman" vaivattomamman asennuksen kuin tällä videolla.

Xfce4 asennus

Tuokaan ei ole ihan sitä mitä haluaisin lopulta, vaan käyttäjälle olisi hyvä jos siinä ei olisi erillistä työpöytää, vaan ohjelma avautuisi suoraan omaan ikkunaansa kuin Wordi tai Exceli. Tuollainen erillinen työpöytä, josta avataan ohjelmia, ei eroa paljoa vaikka VirtualBoxin käytöstä. Tarkoituksena jotain yhtä helppoa kuin käynnistää Winellä jonkun exe-tiedoston. Uusimman Winen asennus vaati jonkin verran Googlailua, mutta jos ei olisi ainakaan sen vaikeanpaa.

Windowsissa on voinut asentaa domainiin liitettyihin koneisiin automaattisesti ohjelmia ties miten pitkään. Windows-ässä tekee asennukset ihan yhtä näppärästi kuin Linuxissakin, Winget tuo asiaan lisää helpputta. Ja pidän siitä että käyttölogiikka hieman lähentyisi Linuxia, olisi sitten ehkä helpompaa opetella molemmat järjestelmät.
 

Statistiikka

Viestiketjuista
261 575
Viestejä
4 540 752
Jäsenet
74 827
Uusin jäsen
RomuRauta

Hinta.fi

Back
Ylös Bottom