stanford-oval/wikipedia huggingface dataset:
Linux (ydin)
Moduulit

Linux-ydin tukee ladattavia moduuleja, joita käytetään muun muassa laiteajureille, tiedostojärjestelmätuelle, verkkoprotokollille, uusille järjestelmäkutsuille ja niin edelleen. Ladattavien moduulien tuki on ollut ytimessä versiosta 1.2 (1995) lähtien.
Suorittimet tukevat ytimen kernel-mode suoritustilassa erityiskomentoja ja sallii kaiken muistiavaruuden käytön. Käyttäjän user-mode tilassa sallitut muistialueet ja käskyt ovat rajatumpia. Suorituksen siirto käyttäjän ja ytimen tilojen välillä järjestelmäkutsujen yhteydessä kuluttaa huomattavasti aikaa. Ytimet, joissa kaikki ajurit ovat kiinteästi osana ydintä ilman ladattavia moduuleja, ovat monoliittisia ytimiä, kun taas ladattavia moduuleja tukevia kuvataan toisinaan hybridiytimiksi. Muita ladattavia moduuleja tukevia käyttöjärjestelmiä ovat esimerkiksi Solaris. Linuxiin liittyvässä dokumentaatiossa monoliittisellä ytimellä on viitattu ytimeen, josta ladattavien moduulien tuki on kytketty pois käännösvaiheessa.
Linux tukee moduulien kryptografista allekirjoittamista. Linux-ytimessä toiminnot voidaan jakaa kaikille moduuleille tai vain GPL-lisenssiä käyttäville moduuleille, jota voidaan käyttää tunnistamaan ytimestä riippuvan toiminnon käyttö (derivative). Suljetun lähdekoodin (ei-GPL) moduulien lataaminen lisää taint-merkinnän, joka kertoo kehittäjille että mahdollisen vian tapahtuessa ongelman syy voi olla tuntemattomassa lähdekoodissa.
Koska ytimeen ladattavat moduulit toimivat ilman rajoituksia ytimen suoritustilassa niiden toteutuksessa on otettava huomioon samat seikat kuin muussa itse ytimessä olevaa ohjelmakoodiakin koskee.
Moduuleja voidaan debugata etänä toiselta koneelta muun muassa Eclipse-kehitysympäristössä.
Käyttäjät voivat ladata ja poistaa moduuleja ajon aikana muun muassa modprobe -komennolla. Moduulit voidaan kääntää ja ladata ytimeen ajonaikana ilman uudelleenkäynnistystä.
Esimerkki minimaalisesta moduulista, joka tulostaa viestin ytimen logiin:
#include <linux/module.h>
#include <linux/kernel.h>

int init_module(void)
{
    printk(KERN_INFO "Welcome.....\n");
    return 0;
}

void cleanup_module(void)
{
    printk(KERN_INFO "Bye....\n");
}
Moduuli ei toteuta main()-funktiota, vaan ytimen koodi kutsuu ladatun moduulin toimintoja.
Virtuaalinen tiedostojärjestelmä

Linux-ydin tukee virtuaalista tiedostojärjestelmää (VFS), joka sallii ytimen tukea useita konkreettisia tiedostojärjestelmiä. Vastaava rakenne on toteutettu esimerkiksi SunOS-käyttöjärjestelmässä.
Ytimen järjestelmäkutsujen alla sijaitsee VFS-kerros, jonka alla sijaitsevat varsinaiset tiedostojärjestelmät. Tiedostojärjestelmien alla sijaitsee lohkopohjainen kerros, jonka alla sijaitsevat laiteajurit. VFS-kerros on abstraktiokerros, joka erottaa POSIX-yhteensopivan rajapinnan tiedostojärjestelmäkohtaisista toteutuksista.
Keskeisiä olioita VFS:n toteutuksessa ovat:
inode (”indeksinoodi”)
dentry (”hakemistomerkintä”)
file (tiedosto)
superblock (”päälohko”)
Superblock sisältää korkean tason metatiedon tiedostojärjestelmästä, josta on useita kopioita levyllä varmistuksen vuoksi ja sisältää käyttöön liitetyn (engl. mount) tiedon.
Dentry sisältää yhden hakemistokomponentin (yksi osa hakemistopolkua) hierarkkisessa rakenteessa, joka säilytetään vain muistissa eikä tallenneta levylle. Inode sisältää metatietoa yhdestä tiedostosta pois lukien sen nimen ja varsinaisen sisällön: inode voi viitata myös muun tyyppisiin tietoihin kuten laitteisiin tai muistiin. Yksittäiseen inodeen voi olla useita viittauksia kuten kovia linkkejä (engl. hard link).
VFS tarjoaa toiminnot käyttäjäsovelluksille sekä ytimen sisäisen abstraktiorajapinnan ytimen toiminnoille.
VFS:n avulla ydin tukee lohkopohjaisia tiedostojärjestelmiä (Btrfs, ext2 / ext3 / ext4, JFS, XFS, ISO 9660, UDF), verkkopohjaisia (NFS, coda, AFS, SMB, 9P), yhdistelmäjärjestelmiä (overlayfs, unionfs), RAM-levyn kanssa käytettäviä (tmpfs, ramfs) ja eritystarkoituksiin suunniteltuja (debugfs, sysfs). Erityisesti flash-muistin kanssa käytettäväksi suunniteltuja ovat f2fs ja ubifs. zonefs on yksinkertainen alueita (zone) tukeva tiedostojärjestelmä, joka ei piilota sekventiaalista kirjoitustarvetta POSIX-rajapinnan taakse ja on siten lähempänä suoraa lohkokirjoitusta. NILFS2 on logirakenteinen tiedostojärjestelmä, joka tukee jatkuvia tilannekuvia (snapshot). Lisäksi tuettuja ovat klustereissa käytettävät tiedostojärjestelmät kuten GFS ja OCFS2. Ceph on hajautettu tiedostojärjestelmä, joka tukee POSIX-yhteensopivaa käyttöä.
Linux laajentaa alkuperäisen Unixin periaatetta käyttää tiedostokahvoja (”Everything is a file”) myös muun muassa ajoitustapahtumiin, verkkorajapintaan sekä uudenlaisiin laitteisiin, joita ei ollut olemassa Unixia kehitettäessä. Käsitettä on laajennettu myös prosessien käsittelyyn.
Muistinhallinta

Linux tukee useita muistinhallintaan liittyviä ominaisuuksia:
ylivaraus (engl. overcommit)
OOM Killer, joka tappaa prosessin, jotta järjestelmä voi jatkaa normaalisti kun saatavilla oleva muisti on varattu eikä normaalilla tavalla voi palauttaa muistia käyttöön (reclaim)
muistin ja muiden resurssien käyttörajat (cgroups)
heterogeeninen muisti (HMM)
jaettu DMA-kelpoinen muisti (DMA-BUF).
suuret muistisivut (hugepage)
yhdistelmäsivut
viisitasoinen sivutus vaihtoehtona aiemmalle nelitasoiselle
memfd_secret: prosessin yksityistä muistia
Multi-generational LRU (MGLRU)
vierasmuistialueet virtuaalikoneille (guest_memfd)
identtisten muistisivujen yhdistäminen (Kernel Samepage Merging, KSM)
Ydin pyrkii pitämään muistissa tietoa, jota käyttäjän ohjelmat haluavat käyttää. Levyltä lukeminen on verrattain hidasta, joten vapaata muistia käytetään välimuistina levyltä luetuille tiedoille ja järjestetään viimeksi käytetyn mukaan (Last Recently Used, LRU). Muistin ollessa täynnä puskureista vapautetaan tilaa, sekä muistia voidaan sivuttaa levylle. MGLRU (Multigenerational LRU) pitää useampia listoja järjestämiseen tyypin ja iän mukaan.
Ydin tukee muistin pakkausta läpinäkyvästi (RAM-levyn kanssa zram-ominaisuudella, sivutuksen kanssa zswap-ominaisuudella) sekä muistin salausta läpinäkyvästi (AMD SME, SEV). Pakkausta muistissa voidaan käyttää viivästyttämään levylle sivutuksen tarvetta vähentäen levy-IO:n tarvetta.
Ydin tukee jaettua muistia System V- ja POSIX-rajapintojen avulla. Muistinhallinta tukee avainpohjaista suojausta.
Ytimen muistisivujen käsittelyyn on otettu käyttöön foliot. Foliot voivat kattaa yksittäisen sivun tai useamman sivun yhtenäisen alueen (yhdistelmäsivut). Foliot tukevat eri kokoisia muistisivuja arkkitehtuureilla, jotka tukevat niitä. Folioiden käytöllä parannetaan suorituskykyä ja yksinkertaistetaan käsittelyä, sekä parannetaan joustavuutta.
Muistivarauksen hallintaan on kehitetty kolme konfiguroitavaa vaihtoehtoa: SLAB, SLOB ja SLUB.
SLAB, perustuu algoritmiin, jonka Jeff Bonwick kehitti SunOS:lle ja sittemmin käytetty useissa BSD-variaatioissa
SLUB, yksinkertaistettu SLAB, esitelty vuonna 2007 ja tarkoitettu korvaamaan SLAB
SLOB, alkuperäisen Unixin tyylinen, joka on muistikäytön kannalta hyvä mutta skaalautuu huonosti ja kärsii fragmentaatiosta
Muistivaraukseen on esitetty eri vaihtoehtoja, mutta niitä ei ole hyväksytty ytimeen ja ytimessä käytetyistä SLOB on poistettu versiossa 6.4. SLAB on poistettu versiossa 6.8 ja jäljelle jäi SLUB, jonka myötä ytimen toimintoja on voitu yksinkertaistaa.
Ytimen käyttämää muistimallia on kuvattu ISO/IEC artikkelissa P0124R4.
Laiteajurit

Linux-ydin tukee usean prosessorin järjestelmiä, ytimen sisäistä moniajoa, asynkronisia keskeytyksiä, ajoittimia ja yksittäistä laitetta voi yrittää käyttää useampi prosessi samaan aikaan: laiteajureja on voitava käyttää usesta kontekstista yhtä aikaa (reentrant). Laiteajurit voidaan kääntää kiinteästi osaksi ydintä tai ajonaikana ladattaviin moduuleihin.
Ajurit toteuttavat mekanismin (tarjotut ominaisuudet), eivät käytäntöä (miten ominaisuuksia voi hyödyntää) Unix-tapaan.
Yksinkertaisimmillaan ajurit käyttävät vain IO-muistialueita, mutta useimmat laitteet vaativat monimutkaisempaa käsittelyä.
Laiteajurit ovat tapahtumapohjaisia, jotka reagoivat järjestelmäkutsuihin, laitteistokeskeytyksiin ja niin edelleen. Linuxissa on mahdollista käsitellä laitteita kuten teollisuus-IO -kortteja IO-porttien kautta ioperm rajapinnan avulla myös käyttäjäavaruudesta.
Linux ydin tukee VFIO-kehystä (Virtual Function I/O, Versatile Framework for userspace I/O) IOMMU-toiminnon kanssa. VFIO mahdollistaa IOMMU:n kanssa turvalliset käyttäjäavaruuteen sijoitetut laiteajurit ”läpiviennillä” muun muassa virtuaalikoneille.
LKDDb (Linux Kernel Driver DataBase) on projekti, joka pyrkii kokoamaan kattavan tietokannan Linuxin tukemasta laitteistosta ja protokollista. Tietokanta sisältää laitteiden tunnisteet, ytimen konfiguraation ja ajurin tiedostonimen. Käyttäjät voivat lisätä omia laitetietoja.
Verkkotoiminnot

Ydin tukee useita protokollia mukaan lukien TCP/IP-protokollapino.
Ytimeen on kehitetty useita menetelmä suodattaa (engl. filtering) ja reitittää (engl. routing) verkkoprotokollien paketteja. Eräitä ratkaisuja Linuxissa ovat netfilter ja Berkeley Packet Filter (BPF), joka on saatavilla myös useille muille Unixin kaltaisille käyttöjärjestelmille. Open vSwitch on verkkopakettien käsittelyn menetelmä, jolla voi toteuttaa Ethernet-kytkimen, virtuaalilähiverkkoja ja niin edelleen. 
Ydin tukee VPN-verkkoja muun muassa IPsec-protokollalla ja WireGuardilla.
Linux tukee Remote DMA -ratkaisuja.
Käyttäjäoikeuksienhallinta

Linux on monen käyttäjän käyttöjärjestelmä, joka pitää käyttäjäkohtaiset tiedot erillään ja tukee usean käyttäjän yhtäaikaista käyttöä.
Linux Security Modules (LSM) on kehys pääsynvalvontamekanismeille, joka mahdollistaa erilaisia valvontamekanismeja ladattavina ytimen moduuleina.
Linux-ydin tukee perinteisten Unix-tyylisten oikeuksienhallinnan lisäksi Access Control List (ACL) ja Mandatory Access Control (MAC) -tyyppisiä mekanismeja kuten SELinux, AppArmor, TOMOYO ja Smack. Yama on Discretionary Access Control (DAC) -mekanismi.
Linux Integrity Measurement Architecture (eli IMA) on alijärjestelmä, jota voidaan käyttää havaitsemaan tiedostomuutoksia (vahingossa tai haitallisesti tehtyjä muutoksia). IMA:n tarkoitus vakuuttaa etänä, että järjestelmässä suoritetaan vain tunnettuja ja hyväksyttyjä ohjelmia. IMA on vastuussa tiivisteen laskemisesta ennen lataamista ja raportoi sen eteenpäin. IMA-järjestelmään kuuluva Extended Verification Module (EVM) havaitsee muutoksia ja liittyy SELinux- ja Linux Security Modules (LSM)-kehyksiin. EVM tekee toisen tiivisteen tiedostojen attribuuteista.
seccomp on mekanismi, jolla voi rajata pääsyä järjestelmäkutsuihin hiekkalaatikoiden tekoa varten.
Landlock on vallitsevien oikeuksien (kuten globaali tiedostojärjestelmäpääsy) rajoittamiseen suunnattu pinottava turvamoduuli (LSM), jota voidaan käyttää hiekkalaatikoiden tekemiseen.
Prosessien välinen kommunikointi

Linux-ydin tukee useimpia tyypillisiä menetelmiä prosessien väliseen kommunikaatioon kuten anonyymit putket, nimetyt putket, viestijonot ja jaettu muisti. Linuxissa on mahdollista käyttää myös useita muita menetelmiä.
Lisäksi on mahdollista käyttää useita käyttäjäavaruudessa toimivia menetelmiä kuten D-Bus, jotka perustuvat daemon-prosessien palveluihin.
Muita ratkaisuja ovat muun muassa kehityksen alla oleva bus1 ja Androidin käyttämä binder.
Virheenjäljitys

Linux-ydin tukee kahdenlaisia debuggeriohjelmia ytimen virheenjäljitykseen: kdb (komentorivillä, ei lähdekooditason debuggausta) ja kgdb (etänä, lähdekooditason debuggaus).
kdb tukee mm. muistin ja rekisterien tilojen tutkimista ja pysäytyskohtien asettamista. kgdb käytetään GNU Debuggerin kanssa.
Lisäksi ydin tukee suorituksen seurantaan muita menetelmiä kuten ftrace, strace, ptrace() ja kprobe.
Suorituskyvyn profilointiin on olemassa muun muassa perf laskurit, jota ovat edeltäneet oprofile, perfctr ja perfmon2. Kerättyjä laskurien tietoja käsitellään muun muassa perf-työkaluilla.
Toimintojen sanitointiin on useita seurantaominaisuuksia kuten muistiviittauksiin (KASAN), epämääriteltyyn toimintaan (UBSAN), rinnakkaisuuteen (KCSAN) ja alustamattoman muistin käyttöön (KMSAN).
Kernel Electric-Fence (KFENCE) on näytteistykseen perustuva muistiturvallisuuden seuraaja, jota on suunniteltu käyttöön myös tuotantoympäristöissä.
Virtualisointi ja säiliöinti

Ydin tukee hypervisor-virtualisointia kuten KVM sekä säiliöintiä. Xen-tuki sekä isäntänä (Dom0) että vieraana (DomU) on ollut ytimessä versiosta 3.0 lähtien. Lisäksi User-mode Linux mahdollistaa ytimen ajamisen käyttöjärjestelmän prosessina (Linux-on-Linux, Linux-on-Windows). Cooperative Linux (CoLinux) on virtualisointiin perustuva projekti, jolla Linux-ydintä voidaan pienen virtuaalikoneen avulla suorittaa Windowsin rinnalla.
Jailhouse on turvakriittisiin järjestelmiin tarkoitettu virtualisointi Linuxille. Lisäksi ACRN-hypervisorille on tukea.
Linuxia voi käyttää Hyper-V virtualisoinnissa juuriosiona, jolla on suora pääsy laitteistoon ja joka hallinnoi muun muassa muistinkäyttöä, laitepääsyä ja levyn käyttöä.
Live patching

Ytimessä on tuki ohjelmakoodin päivityksille ilman järjestelmän tai sovelluksien uudelleen käynnistämistä. Live patching -ominaisuus on julkaistu ytimen versiossa 4.0. Tyypillinen käyttökohde ovat tietoturvapäivitykset esimerkiksi järjestelmän ollessa raskaan kuormituksen alla.
Ominaisuus on yksi kolmesta ominaisuudesta, jotka voivat muuttaa suorituskohdetta ajonaikaisesti: kaksi muuta ovat kprobe ja ftrace. Päivitykset jaetaan ytimen moduuleina, joissa on uusi toteutus korvattavasta toiminnosta.
Ominaisuus on tarkoitettu kriittisiin päivityksiin ympäristöissä, joissa on vaatimuksia palveluiden saatavuudelle.
Konfigurointi

Ennen käännöstä tehtävä konfigurointi tehdään Kconfig/kbuild-työkalulla (huom: eri kuin KDE-projektin KConfig). Kconfigissa on makrokieli, jonka avulla asetetaan käännöksessä mukana olevat ominaisuudet ja luodaan tarvittavat tiedostot ohjelmointikielen kääntäjälle. Käännösvalinnat voidaan esittää valikkona, josta voi valita muun muassa laiteajureita ja useita muita asetuksia. Esimerkiksi Androidia varten ydin voidaan konfiguroida alhaisen muistimäärän järjestelmää varten. Eri jakeluversiot voivat käyttää eri ytimen konfiguraatioita tarkoituksensa mukaisesti.
Käynnistyksen yhteydessä ytimelle voidaan antaa komentoriviparametreja käynnistyslataajan kautta. Parametrit voidaan asettaa käynnistyslataajan omaan konfiguraatioon.
Käynnissä olevan ytimen asetuksia voidaan muuttaa sysctl-toiminnon avulla käyttäjäavaruudesta.
Alustat

Linux on historian eniten eri laitteistoalustoja tukeva käyttöjärjestelmä.
Linux tukee NUMA-muistiarkkitehtuurin tietokoneita ja toteuttaa järjestelmäkutsuja järjestelmien hallintaan. Tuki on ollut ytimessä versiosta 2.5 lähtien ja on parannettu jälkeenpäin.
UClinux-projektin myötä Linux tukee myös digitaalisia signaaliprosessoreita sekä mikrokontrollereita sulautetuissa järjestelmissä ja reitittimissä. Projekti on integroitu ytimen päähaaraan versiossa 2.5.46.
Linux on myös sovitettu toimimaan Mach- ja L4-mikroytimien päällä MkLinux ja L4Linux -projekteissa.
64-bittisten alustojen yleistymisestä johtuen on keskusteltu 32-bittisten alustojen tulevaisuudesta ja tuesta: sulautetuissa järjestelmissä 32-bittisiä versioita käytetään yhä paljon.
Linux tukee Open Firmware Device Tree (DT) määrittelyjä sekä ACPI Device Tree toimintoja. DT-määrittely on laajennettu yleiskäyttöiseksi kaikille alustoille  UEFI-tuen avulla ydin tukee sen ajonaikaisia palveluita.
Linux tukee hotplug-toimintoja ytimen versiosta 2.4 lähtien: oheislaitteiden lisäksi suorittimet ja muisti on mahdollista liittää tai poistaa käytön aikana. Suorittimen hotplug-toiminto oli suunniteltu alun perin vikaantuneen laitteen poistamiseen järjestelmästä, mutta se on löytänyt käyttöä myös energian käytön hallintaan sekä virtualisoiduissa ympäristöissä vieraskäyttöjärjestelmille.
Lisensointi

Linuxin varhaiset versiot oli julkaistu Torvaldsin itse kirjoittamalla lisenssillä, joka ei sallinut ytimen levitystä rahaa vastaan koska halusi sen pysyvän ilmaisena eikä niinkään vapaan ideologian mukaisena. Eräiden tahojen toivoessa voivansa kerätä Linuxin levittämisestä syntyvät kustannukset Torvalds päätti muuttaa lisenssiä ja totesi rahaan liittyvän rajoituksen olleen virhe.
Linus ilmoitti version 0.12 julkistuksen yhteydessä siirtyvänsä käyttämään GNU GPL -lisenssiä 1. helmikuuta 1992 lähtien. Ytimen nykyinen lisenssi on GPL versio 2 ja Torvalds on sanonut vastustavansa siirtymistä versioon 3 sen lisäämien käyttörajoituksien vuoksi.
Torvalds on kuvaillut päätöstään julkaista Linux-ydin GPL-lisenssillä parhaaksi tekemäkseen asiaksi.
Lisenssiä on täsmennetty myös, että se on ainoastaan GPL versio 2.0 ja ettei ytimen lisenssi koske ohjelmia, jotka vain käyttävät ytimen järjestelmäkutsuja. Ytimessä on siirrytty käyttämään Software Package Data Exchange (SPDX) -tunnisteita toistuvan tekstin vähentämiseen ja helpompaan tarkistamiseen automaattisesti.
Koska Linux-ydin käyttää nimenomaan GNU GPL versiota 2 (GPLv2), sitä eivät sido lisenssiversion 3 rajoitukset, joita Torvalds on vastustanut ja on ilmoittanut, ettei Linux-ydin siirry versioon 3. Torvalds arvosteli lisenssiversion 3 tiukkaa linjaa kaupallisiin ja omisteisiin ohjelmistoihin.
Linux-libre on Linux-ytimeen perustuva ydin, josta on poistettu ei-vapaat (omisteiset) firmware-osiot.
Kirjallisuutta

Bovet, Daniel P.; Cesati, Marco: Understanding the Linux Kernel.  O'Reilly, 2005 (2000).  ISBN 0-596-00565-2
Corbet, Jonathan; Rubini, Alessandro; Kroah-Hartman, Greg: Linux Device Drivers.  O'Reilly, 2005 (1998).  ISBN 9781449371616  Linux Device Drivers, Third Edition.
Benvenuti, Christian: Understanding Linux Network Internals.  O'Reilly, 2006.  ISBN 0-596-00255-6
Hallinan, Christopher: Embedded Linux Primer: A Practical, Real-World Approach.  Prentice-Hall, 2007.  ISBN 0-13-167984-8
Raymond, Eric S.: The Cathedral and the Bazaar.  O'Reilly, 1999.  ISBN 1-56592-724-9
Gorman, Mel: Understanding the Linux Virtual Memory Manager.  Prentice Hall, 2004.  ISBN 0-13-145348-3  Teoksen verkkoversio.
Aiheesta muualla

Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta .
Torvaldsin ilmoitus Linuxin versiosta 0.02 Internetin postituslistalla vuonna 1991 (englanniksi)
kernel.org Linux-ydin (englanniksi)
Ytimen dokumentaatiota – viittaa viimeisimpään versioon (englanniksi)
Linux.fi – suomenkielinen Linux-aiheinen wiki, joka sisältää tietoa ja vinkkejä Linuxiin käyttöön
Helsingin yliopiston 4.9.2006 järjestämän Linuxin 15-vuotisseminaarin sivu
The Linux man-pages project (englanniksi)
Linux-ytimen toiminnot tasoittain.
Sankey-diagrammi ytimen lähdekoodin jakaantumisesta rivimäärän mukaan.
Linux-ytimen IO-pino
Pétros Voúlgaris

| Pétros Voúlgaris> Πέτρος Βούλγαρης.Kreikan pääministeri |
| --- | --- |
 9. huhtikuuta 1945 – 17. lokakuuta 1945  
Edeltäjä:  Nikólaos Plastíras
Seuraaja:  Damaskinós
Henkilötiedot
Syntynyt: 13. syyskuuta 1884 Hydra, Kreikka
Kuollut: 26. marraskuuta 1957 (73 vuotta) Ateena, Kreikka
Ammatti:  sotilas, vara-amiraali
Tiedot
Uskonto:  ortodoksi
Pétros Voúlgaris (kreik. Πέτρος Βούλγαρης, 13. syyskuuta 1884 Hydra, Kreikka – 26. marraskuuta 1957 Ateena, Kreikka) oli kreikkalainen amiraali, joka toimi Kreikan pääministerinä vuonna 1945.
Elämä ja ura > Sotilasura

Voúlgaris syntyi Hydran saarella, mutta muutti jo kaksivuotiaana isänsä kuoleman jälkeen äitinsä kanssa Ateenaan. Hän siirtyi 16-vuotiaana Kreikan merisotakouluun ja valmistui vuonna 1903 meriupseeriksi. Vuosina 1908–1910 hän opiskeli ulkomailla, ja vuonna 1912 hän palveli ranskalaisessa risteilijä Ernst Renanilla. Vuosina 1912–1913 hän osallistui Balkanin sotiin palvellen hävittäjä Panthirilla. Hänet ylennettiin yliluutnantiksi. Tällöin hän toimi laivastoministeri, amiraali Pávlos Kountouriótiksen adjutanttina.
Elokuussa 1916 Voúlgaris liittyi Pohjois-Kreikan Thessalonikissa perustetun Elefthérios Venizéloksen vastahallituksen tukijoihin, jotka osallistuivat Keskusvaltojen joukkojen mukana Ensimmäiseen maailmansotaan. Vuosina 1916–1919 Voúlgaris toimi hävittäjä Véloksen komentajana Egeanmerellä. Keväällä 1919 hän osallistui Venäjän sisällissotaan ja syksyllä 1919 Vähä-Aasiassa käynnistyneeseen Kreikan-Turkin väliseen sotaan. Sen jälkeen 1919-1920 hän työskenteli meriministeriössä.
Marraskuussa 1920 Venizéloksen kannattajat kokivat tappion. Sen seurauksena Voúlgaris erotettiin kuninkaallisen hallituksen toimesta. Tappio sodassa Turkkia vastaan johti kuitenkin myös kuningasvallan tappioon, ja Voúlgaris kutsuttiin takaisin palvelukseen syyskuussa 1922. Sen jälkeen hän toimi komentajana hävittäjä Léonilla, Fáliron laivastotukikohdan komentajana ja jälleen komentajana hävittäjä Panthirilla. Epävakaiden Kreikan tasavallan vuosien aikana 1924–1926 aikana Voúlgaris oli välillä palveluksessa ja välillä erotettuna.
Vuosina 1926–1930 Voúlgaris toimi laivaston ilmavoimien komentajana. Sen jälkeen hän työskenteli useissa hallinnon tehtävissä, kunnes vuonna 1934 hänestä tuli Kreikan sotilasasiamies Istanbuliin. Maaliskuussa 1935 Venizéloksen kannattajat tekivät epäonnistuneen vallankaappausyrityksen. Sen seurauksena Voúlgaris erotettiin hetkeksi, kunnes kuningasvallan paluun jälkeen tehdyn armahduksen myötä marraskuussa 1935 hänet otettiin takaisin palvelukseen, mutta siirrettiin samalla reserviin alimman amiraalin arvon meriupseerina.
Elämä ja ura > Politiikassa

Vuodesta 1935 Voúlgaris työskenteli yksityisen teollisuuden palveluksessa Egyptissä. Toisen maailmansodan aikana Kreikan pakolaishallitus kutsui hänet palvelukseen. Vuosina 1943–1944 hän toimi Emmanouíl Tsouderóksen pakolaishallituksen ilmailuministerinä. Ministerikauden jälkeen hänet nimitettiin huhtikuussa 1944 laivaston komentajaksi vara-amiraalin arvoisena. Ensi töikseen hän joutui johtamaan vasemmistolaisten ELAS:ia lähellä olevien Kreikan laivaston upseerien kapinan kukistamista.,
Voúlgaris johti Kreikan laivaston paluuta Kreikkaan saksalaismiehityksen päätyttyä lokakuussa 1944. Tilanne miehityksestä vapautuneessa Kreikassa oli kireä. Hänestä tuli sijaishallitsija, arkkipiispa Damaskinóksen nimittämänä kenraali Nikólaos Plastíraksen jälkeen Kreikan pääministeri 9. huhtikuuta 1945. Voúlgaris johti sen jälkeen kahta hallitusta, joista ensimmäinen istui elokuun 11. päivään asti ja sen jälkeen toista hallitustaan aina lokakuun 17. päivään asti. Hän ei ehtinyt johtaa hallitustaan ensimmäisiin sodanjälkeisiin parlamenttivaaleihin, jotka saatiin järjestettyä maaliskuun lopussa 1946., ,
Tunnustuksena toisen maailmansodan aikaisesta toiminnastaan aina laivaston kotiinpaluuseen asti tehdystä työstä Voúlgarikselle myönnettiin sen ajan korkein kreikkalainen kunniamerkki, Urheuden risti (englanniksi Cross of Valour). Vara-amiraali Voúlgaris kuoli Ateenassa 26. marraskuuta 1957.
Human Genome Project

Human Genome Projectin tunnus
Human Genome Project eli HGP-hanke on pääosin amerikkalaisrahoitteinen ihmisen geeniperimää kartoittava hanke, joka perustettiin vuonna 1990 ja valmistui 2003. Tietojen analysointi jatkuu yhä. Hankkeen oletettiin vievän aikaa ainakin 15 vuotta, mutta se saatiin valmiiksi oletettua aiemmin johtuen nopeasta teknisestä kehityksestä.
Hankkeen tavoitteiksi määriteltiin ihmisen kaikkien noin 20 000–25 000 geenin tunnistaminen ja koko 3 x 109 emäsparin mittaisen DNA:n sekvensointi. Hankkeen piirissä toimivat tutkijat ryhmittyivät koko maailman kattavaksi tutkijaorganisaatioksi. Hanketta kutsuttiin lyhennenimellä HUGO eli Human Genome Organisation.
Sekvenssin valmistuminen

Ensimmäisenä raakaversion ihmisen DNA-sekvenssistä sai aikaan yksityinen yritys nimeltä Celera Genomics. HGP-hanke sai valmiiksi oman sekvenssinsä muutama kuukausi Celeran ilmoituksen jälkeen.