Hypervisorit ja virtualisoinnin perusteet
Muodostakaa kokonaiskuva laitteistovirtualisoinnin peruskäsitteistä, hypervisorien toiminnasta ja niiden vuorovaikutuksesta suorittimen kanssa.
Hypervisorit ja virtualisoinnin perusteet on ilmainen Assembly-kieli ja x86-tason järjestelmäohjelmointi-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Assembly-kieli ja x86-tason järjestelmäohjelmointi-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Assembly-kieli ja x86-tason järjestelmäohjelmointi-kurssilla on yhteensä 4 oppituntia.
Mitä virtualisointi on?
Kuvitelkaa, että käytätte useita tietokoneita, joista jokaisella on oma käyttöjärjestelmänsä, yhdellä fyysisellä koneella. Tätä tehokasta käsitettä kutsutaan virtualisoinniksi.
Sen avulla yhden tietokoneen resursseja, kuten suoritinta, muistia ja tallennustilaa, voidaan jakaa useiden virtuaaliympäristöjen kesken.
Miksi virtualisoimme
Virtualisointi tarjoaa monia etuja, minkä vuoksi se on nykyaikaisen tietojenkäsittelyn kulmakivi:
- Palvelinten yhdistäminen: Useita palvelimia voidaan käyttää harvemmilla fyysisillä koneilla, mikä säästää tilaa ja energiaa.
- Resurssien eristys: Jokainen virtuaalikone (VM) on eristetty, joten yhden ongelmat eivät vaikuta muihin.
- Kehitys ja testaus: Ohjelmistokehitystä ja testausta varten voidaan luoda nopeasti uusia ympäristöjä vaikuttamatta tuotantojärjestelmiin.
- Tietoturva: Mahdollisesti riskialttiit sovellukset voidaan eristää hiekkalaatikkoon.
Hypervisori: VMM
Virtualisoinnin ytimessä on hypervisori, joka tunnetaan myös nimellä Virtual Machine Monitor (VMM).
Hypervisori on ohjelmisto- tai laiteohjelmistokerros, joka luo virtuaalikoneita ja suorittaa niitä. Se hallitsee fyysisen laitteiston resursseja ja jakaa niitä eri virtuaalikoneille.
Tyyppi 1: bare metal -hypervisorit
Hypervisoreita on kahta päätyyppiä.
Tyypin 1 hypervisorit toimivat suoraan isäntäkoneen fyysisellä laitteistolla ilman taustalla olevaa käyttöjärjestelmää. Niitä kutsutaan usein bare metal -hypervisoreiksi.
- Esimerkkejä: VMware ESXi, Microsoft Hyper-V, Xen.
- Hyödyt: Suora laitteistokäyttö parantaa suorituskykyä, tehokkuutta ja tietoturvaa.
Tyyppi 2: isännöidyt hypervisorit
Sen sijaan Type 2 -hypervisorit toimivat sovelluksina olemassa olevan käyttöjärjestelmän (isäntäkäyttöjärjestelmän) päällä.
Isäntäkäyttöjärjestelmä hallitsee laitteistoa, minkä jälkeen hypervisor virtualisoi resurssit vieras-VM:iä varten.
- Esimerkkejä: Oracle VirtualBox, VMware Workstation, Parallels Desktop.
- Hyödyt: Helppo asentaa ja käyttää työpöytäkoneessa, sopii hyvin testaukseen ja henkilökohtaiseen käyttöön.
Virtuaalikoneet ja vieraskäyttöjärjestelmät
Virtuaalikone (VM) on tietokonejärjestelmän emulaatio. Se toimii fyysisen tietokoneen tavoin, ja sillä on oma virtuaalinen suoritin, muisti, kiintolevy ja verkkoliitännät.
VM:n sisällä toimivaa käyttöjärjestelmää kutsutaan vieraskäyttöjärjestelmäksi (esimerkiksi Windows, Linux tai macOS).
Suorittimen toiminta ja suojausrenkaat
Muistattehan, että käyttöjärjestelmät toimivat yleensä Ring 0 -tasolla (kaikkein suurimpien käyttöoikeuksien tilassa) voidakseen käyttää laitteistoa. VM:n vieraskäyttöjärjestelmät *luulevat* olevansa Ring 0 -tasolla.
Hypervisor sieppaa vieraskäyttöjärjestelmän etuoikeutetut käskyt ja muuntaa ne. Näin vieraskäyttöjärjestelmä ei voi hallita laitteistoa suoraan, mikä estää ristiriidat ja säilyttää eristyksen.
Laitteistoavusteinen virtualisointi
Nykyaikaiset suorittimet sisältävät erityisiä laajennuksia, jotka tehostavat virtualisointia huomattavasti. Näitä kutsutaan laitteistoavusteisen virtualisoinnin tekniikoiksi:
- Intel VT-x (Virtualization Technology for x86)
- AMD-V (AMD Virtualization)
Nämä laajennukset tuovat suorittimeen uusia tiloja, kuten VMX root- ja non-root-tilat. Niiden ansiosta hypervisor voi hallita virtuaalikoneita suoremmin, mikä vähentää käskyjen sieppaamisesta ja muuntamisesta aiheutuvaa kuormaa.
Virtualisointi käytännössä
Virtualisointi on keskeinen osa monia nykyaikaisia tekniikoita:
- Pilvilaskenta: Julkiset pilvipalvelut (AWS, Azure, Google Cloud) perustuvat laajoihin virtualisoituihin infrastruktuureihin.
- Konttiteknologia: Dockerin kaltaiset tekniikat rakentuvat käyttöjärjestelmätason virtualisoinnin päälle.
- Suojaushiekkalaatikot: Epäluotettavia ohjelmistoja suoritetaan eristetyissä virtuaalikoneissa järjestelmän vaarantumisen estämiseksi.
- Vanhat sovellukset: Vanhempia ohjelmistoja voidaan käyttää edelleen nykyaikaisella laitteistolla.
Pikakertaus
Mitkä seuraavista ovat Type 1 -hypervisorin ominaisuuksia?
Kertaus: virtualisoinnin perusteet
Tässä oppitunnissa tutustuimme virtualisoinnin kiinnostavaan maailmaan. Opimme, mitä virtualisointi on, miksi se on niin tärkeää ja mikä on hypervisorin keskeinen rooli.
Ymmärrätte nyt Type 1 -hypervisorien (bare-metal) ja Type 2 -hypervisorien (hosted) erot, VM:ien ja vieraskäyttöjärjestelmien vuorovaikutuksen sekä laitteistoavusteisen virtualisoinnin (VT-x/AMD-V) merkityksen tehokkaan suorituskyvyn kannalta.
Opi Assembly tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Hypervisorit ja virtualisoinnin perusteet” ilmainen?
Kyllä – oppitunnin ”Hypervisorit ja virtualisoinnin perusteet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Assembly-kieli ja x86-tason järjestelmäohjelmointi-kurssin, päivitä CoddyKit PROhon. Assembly-kieli ja x86-tason järjestelmäohjelmointi-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Hypervisorit ja virtualisoinnin perusteet”?
Muodostakaa kokonaiskuva laitteistovirtualisoinnin peruskäsitteistä, hypervisorien toiminnasta ja niiden vuorovaikutuksesta suorittimen kanssa. Harjoittelet Assembly-kieli ja x86-tason järjestelmäohjelmointi-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Assembly-kieli ja x86-tason järjestelmäohjelmointi-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Assembly-kieli ja x86-tason järjestelmäohjelmointi-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Hypervisorit ja virtualisoinnin perusteet”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Assembly-kieli ja x86-tason järjestelmäohjelmointi-oppitunnilla?
Kyllä. Jokainen Assembly-kieli ja x86-tason järjestelmäohjelmointi-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Sivutus ja muistinhallintayksikkö (MMU)
- Suojausrenkaat ja käyttöoikeudet
- Hypervisorit ja virtualisoinnin perusteet
- Segmentointi ja Global Descriptor Table (GDT)