<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wx="http://ilps.science.uva.nl/WikiXML/wx" xml:lang="it" lang="it">
<head>
<title>Preboot Execution Environment</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="Preboot_Execution_Environment"/>
<meta name="wx_page_id" content="1136585"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="Preboot Execution Environment" id="wxsec1"><h1 class="pagetitle" id="wx1">Preboot Execution Environment</h1>

<p id="wx2"><b id="wx3">Preboot Execution Environment</b> (PXE), ovvero <b id="wx4">ambiente di esecuzione pre-boot</b>, è un metodo per eseguire il <a href="/wit/Boot" title="Boot" wx:linktype="known" wx:pagename="Boot" wx:page_id="137724" id="wx5">boot</a> di un <a href="/wit/Computer" title="Computer" wx:linktype="known" wx:pagename="Computer" wx:page_id="1483" id="wx6">computer</a> utilizzando una connessione di rete <a href="/wit/Ethernet" title="Ethernet" wx:linktype="known" wx:pagename="Ethernet" wx:page_id="14555" id="wx7">ethernet</a> ed il supporto di un <a href="/wit/Server" title="Server" wx:linktype="known" wx:pagename="Server" wx:page_id="4006" id="wx8">server</a>, senza bisogno di una unità di <a href="/wit/Memoria_di_massa" title="Memoria di massa" wx:linktype="known" wx:pagename="Memoria_di_massa" wx:page_id="76850" id="wx9">memoria di massa</a>.</p>

<p id="wx10">PXE fu introdotto come parte del framework Wired for Management di Intel, ed è descritto nella <a href="http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf" class="external text" wx:linktype="external" rel="nofollow" id="wx11">specifica</a> (v2.1) pubblicata da Intel e Systemsoft il <a href="/wit/20_settembre" title="20 settembre" wx:linktype="known" wx:pagename="20_settembre" wx:page_id="5240" id="wx12">20 settembre</a> <a href="/wit/1999" title="1999" wx:linktype="known" wx:pagename="1999" wx:page_id="4664" id="wx13">1999</a>.</p>

<p id="wx14">Questa voce descrive la modalità di funzionamento prevista nella specifica ma anche alcune varianti comunemente implementate.</p>

<p id="wx15">PXE utilizza molteplici protocolli di rete:</p>

<ul id="wx16">
<li id="wx17"><a href="/wit/IP" title="IP" wx:linktype="known" wx:pagename="IP" wx:page_id="70794" id="wx18">IP</a></li>

<li id="wx19"><a href="/wit/UDP" title="UDP" wx:linktype="known" wx:pagename="UDP" wx:page_id="92875" id="wx20">UDP</a></li>

<li id="wx21"><a href="/wit/DHCP" title="DHCP" wx:linktype="known" wx:pagename="DHCP" wx:page_id="58061" id="wx22">DHCP</a></li>

<li id="wx23"><a href="/wit/TFTP" title="TFTP" wx:linktype="known" wx:pagename="TFTP" wx:page_id="319039" id="wx24">TFTP</a></li>
</ul>

<p id="wx25">Inoltre, utilizza concetti come <a href="/wit/GUID" title="GUID" wx:linktype="known" wx:pagename="GUID" wx:page_id="436861" id="wx26">GUID</a>/<a href="/wit/UUID" class="new" title="UUID" wx:linktype="unknown" wx:pagename="UUID" id="wx27">UUID</a> e <a href="/wit/Universal_Network_Device_Interface" class="new" title="Universal Network Device Interface" wx:linktype="unknown" wx:pagename="Universal_Network_Device_Interface" id="wx28">Universal Network Device Interface</a> ed estende il firmware del client PXE (il computer che viene avviato via PXE con un ulteriori <a href="/wit/Application_programming_interface" title="Application programming interface" wx:linktype="known" wx:pagename="Application_programming_interface" wx:page_id="12780" id="wx29">Application programming interface</a>.</p>

<div id="wx_toc"/>

<a id="Utilizzi" name="Utilizzi"/>
<wx:section level="2" title="Utilizzi" id="wxsec2"><h2 id="wx30">Utilizzi</h2>

<p id="wx31">Il boot via PXE viene utilizzato nei seguenti scenari:</p>

<ul id="wx32">
<li id="wx33">
<p id="wx34">installazione via rete di un sistema operativo. Il sistema operativo viene installato in modo tradizionale, ovvero sulla memoria di massa. Questa modalità permette di installare un sistema operativo senza dover acquistare o masterizzare un cd-rom, e funziona anche in assenza delle periferiche spesso usate a questo scopo (lettore <a href="/wit/Cd-rom" title="Cd-rom" wx:linktype="known" wx:pagename="Cd-rom" wx:page_id="182909" id="wx35">cd-rom</a>, memorie <a href="/wit/USB" title="USB" wx:linktype="known" wx:pagename="USB" wx:page_id="21680" id="wx36">USB</a>, possibilmente anche monitor e tastiera)</p>
</li>

<li id="wx37">
<p id="wx38">possibilità di caricare su un calcolatore un sistema operativo diverso da quello normalmente usato, ad esempio per riparare una installazione malfunzionante o per utilizzarlo per funzioni particolari.</p>
</li>

<li id="wx39">
<p id="wx40">network computing, ovvero utilizzo primario di un sistema operativo caricato dalla rete.</p>
</li>
</ul>

<a id="Funzionamento" name="Funzionamento"/>
</wx:section><wx:section level="2" title="Funzionamento" id="wxsec3"><h2 id="wx41">Funzionamento</h2>

<p id="wx42">PXE può essere considerato uno dei modi per caricare il sistema operativo su un calcolatore.</p>

<p id="wx43">Quando è presente la funzionalità PXE, il <a href="/wit/Bios" title="Bios" wx:linktype="known" wx:pagename="Bios" wx:page_id="117866" id="wx44">bios</a> presenta all'utente la possibilità di scegliere, tra i possibili dispositivi da cui caricare il <a href="/wit/Sistema_operativo" title="Sistema operativo" wx:linktype="known" wx:pagename="Sistema_operativo" wx:page_id="3917" id="wx45">sistema operativo</a>, il boot da rete.</p>

<p id="wx46">Se viene selezionata questa opzione, il firmware PXE utilizza DHCP per configurare un indirizzo IP sulla scheda di rete ed individuare un server ("boot server") da cui scaricare via TFTP un file, immagazzinandolo nella memoria RAM. Questo file viene poi eseguito, provvedendo ad avviare un sistema operativo.</p>

<p id="wx47">Nella modalità di funzionamento prevista dallo standard, il server DHCP non fornisce direttamente il boot server, ma agisce da "PXE redirection service", ovvero redirige il client ai <b id="wx48">server PXE</b> disponibili. I server PXE sono server DHCP modificati, che utilizzano la porta UDP 4011, e forniscono al client l'indirizzo IP del boot server ed il nome del <a href="#Network_Bootstrap_Program" title="" wx:linktype="fragment" wx:fragment="Network_Bootstrap_Program" id="wx49">network bootstrap program</a> (NBP) da scaricare.</p>

<p id="wx50">Nella pratica, normalmente il firmware PXE è in grado di ricevere direttamente dal server DHCP i parametri necessari per identificare il boot server e il file da scaricare, ed è quindi possibile configurare un normale server DHCP per fornire i parametri necessari al boot via PXE.</p>

<a id="Piattaforme_supportate" name="Piattaforme_supportate"/>
</wx:section><wx:section level="2" title="Piattaforme supportate" id="wxsec4"><h2 id="wx51">Piattaforme supportate</h2>

<p id="wx52">PXE è stato progettato per essere utilizzabile su molte architetture. La specifica v2.1 definisce identificatori di architettura per 6 tipi di sistemi, compresi IA64 Itanium architecture e Alpha. Tuttavia, la specifica copre competamente solo Intel 32 Bit (<a href="/wit/IA-32" title="IA-32" wx:linktype="known" wx:pagename="IA-32" wx:page_id="2309" id="wx53">IA-32</a>). Intel ha incluso PXE nella <a href="/wit/Extensible_Firmware_Interface" title="Extensible Firmware Interface" wx:linktype="known" wx:pagename="Extensible_Firmware_Interface" wx:page_id="131913" id="wx54">Extensible Firmware Interface</a> per <a href="/wit/IA-64" title="IA-64" wx:linktype="known" wx:pagename="IA-64" wx:page_id="325194" id="wx55">IA-64</a>, creando uno standard de facto con la sua implementazione.</p>

<a id="Uso_del_DHCP" name="Uso_del_DHCP"/>
</wx:section><wx:section level="2" title="Uso del DHCP" id="wxsec5"><h2 id="wx56">Uso del DHCP</h2>

<p id="wx57">Il client PXE si identifica come tale verso il server DHCP, inserendo nel pacchetto DHCPDISCOVER, il parametro <tt id="wx58">Class Id</tt> con un valore della forma</p>

<pre id="wx59">
“PXEClient:Arch:xxxxx:UNDI:yyyzzz”
</pre>

<p id="wx60">Se è disponibile a ottenere i parametri di boot direttamente dal server DHCP, richiede i seguenti parametri:</p>

<pre id="wx61">
                              Data 
Tag     Name                  Length  Meaning                               Reference
---     ----                  ------  -------                               ---------
66      Server-Name              N    TFTP Server Name                      [RFC2132] 
67      Bootfile-Name            N    Boot File Name                        [RFC2132]
</pre>

<p id="wx62">Il server DHCP decide se inviare i parametri necessari al boot da rete, e quali parametri inviare, sulla base dei dati presenti nella richiesta DHCP. Ad esempio, può essere necessario fornire a calcolatori differenti diversi boot file.</p>

<p id="wx63">In particolare, il formato dell'opzione <tt id="wx64">Class Id</tt> è costruito per codificare in modo standard i dati necessari ad identificare un client.</p>

<a id="Men.C3.B9_PXE" name="Men.C3.B9_PXE"/>
<wx:section level="3" title="Menù PXE" id="wxsec10"><h3 id="wx65">Menù PXE</h3>

<p id="wx66">Il protocollo PXE permette inoltre al server DHCP di inviare al client gli elementi per offrire all'utente un menù diverse opzioni di boot. Questo menù viene implementato dal firmware PXE, e permette di proseguire nel processo di boot con diversi server o file a seconda delle scelte dell'utente.</p>

<a id="Scaricamento_del_Network_Bootstrap_Program" name="Scaricamento_del_Network_Bootstrap_Program"/>
</wx:section></wx:section><wx:section level="2" title="Scaricamento del Network Bootstrap Program" id="wxsec6"><h2 id="wx67">Scaricamento del Network Bootstrap Program</h2>

<p id="wx68">Dopo aver identificato il boot server da usare ed il nome del file da scaricare, il firmware PXE scaricherà questo file via TFTP, memorizzandolo nella propria <a href="/wit/Random_Access_Memory" title="Random Access Memory" wx:linktype="known" wx:pagename="Random_Access_Memory" wx:page_id="27082" id="wx69">RAM</a>, ne verificherà la correttezza e lo eseguirà. A questo punto il compito del PXE in senso stretto è finito, ed è il NBP a prendere il controllo del calcolatore.</p>

<a id="Multicast" name="Multicast"/>
<wx:section level="3" title="Multicast" id="wxsec11"><h3 id="wx70">Multicast</h3>

<p id="wx71">Il protocollo PXE prevede la possibilità di far scaricare il NBP in modalità <a href="/wit/Multicast" title="Multicast" wx:linktype="known" wx:pagename="Multicast" wx:page_id="41526" id="wx72">multicast</a>, in modo da ridurre il carico sulla rete e sul server nel caso molti client tentino di avviarsi contemporaneamente.</p>

<a id="il_Network_Bootstrap_Program" name="il_Network_Bootstrap_Program"/>
</wx:section></wx:section><wx:section level="2" title="il Network Bootstrap Program" id="wxsec7"><h2 id="wx73">il Network Bootstrap Program</h2>

<p id="wx74">In pratica, spesso l'NBP è in effetti un <a href="/wit/Boot_loader" title="Boot loader" wx:linktype="known" wx:pagename="Boot_loader" wx:page_id="114931" id="wx75">boot loader</a>, ovvero un programma che a sua volta scarica via TFTP il kernel del sistema operativo e possibilmente un "initial ramdisk", ovvero l'immagine di un <a href="/wit/Filesystem" title="Filesystem" wx:linktype="known" wx:pagename="Filesystem" wx:page_id="31705" id="wx76">filesystem</a> che viene copiata in memoria RAM (detta comunemente <a href="/wit/Initrd" title="Initrd" wx:linktype="known" wx:pagename="Initrd" wx:page_id="297175" id="wx77">initrd</a>).</p>

<p id="wx78">L'immagine di disco contenuta nell'initrd potrà accedere ad ulteriori componenti attraverso la rete, ad esempio montare un filesystem di rete, come <a href="/wit/NFS" title="NFS" wx:linktype="known" wx:pagename="NFS" wx:page_id="93138" id="wx79">NFS</a> o <a href="/wit/CIFS" title="CIFS" wx:linktype="known" wx:pagename="CIFS" wx:page_id="544548" id="wx80">CIFS</a>, se lo scopo è realizzare una installazione diskless, oppure scaricare moduli di un programma di installazione e sistema operativo da installare via <a href="/wit/FTP" title="FTP" wx:linktype="known" wx:pagename="FTP" wx:page_id="1824" id="wx81">FTP</a> o <a href="/wit/HTTP" title="HTTP" wx:linktype="known" wx:pagename="HTTP" wx:page_id="2250" id="wx82">HTTP</a>, se lo scopo è installare un nuovo sistema operativo.</p>

<a id="Men.C3.B9_del_bootloader" name="Men.C3.B9_del_bootloader"/>
<wx:section level="3" title="Menù del bootloader" id="wxsec12"><h3 id="wx83">Menù del bootloader</h3>

<p id="wx84">Il bootloader può offrire all'utente un menù con diverse opzioni di boot, e/o la possibilità di modificare i parametri passati al sistema operativo, ed implementare diversi modi di scaricare il resto del sistema operativo.</p>

<a id="Sicurezza" name="Sicurezza"/>
</wx:section></wx:section><wx:section level="2" title="Sicurezza" id="wxsec8"><h2 id="wx85">Sicurezza</h2>

<p id="wx86">PXE eredita tutte le debolezze di DHCP, ma ne amplifica la portata, in quanto al protocollo viene demandata non solo l'assegnazione di un indrizzo IP, ma la selezione di un sistema operativo da eseguire, che avrà il controllo completo dell'hardware.</p>

<p id="wx87">Se non è garantita la sicurezza fisica del calcolatore, e quindi è possibile che estranei lo colleghino a reti diverse da quella prevista, lasciare abilitata l'opzione di boot via PXE è equivalente a permettere l'avvio da dispositivi rimuovibili: avendo accesso alla console e la possibilità di riavviare il calcolatore un estraneo potrà avviare un sistema operativo di propria scelta, con il quale tra l'altro avrà libero accesso a tutti i dati memorizzati sulla memoria di massa del calcolatore.</p>

<p id="wx88">Inoltre, visto che è possibile che su una rete venga installato un server DHCP malevolo, tale server può anche offrire ad eventuali client PXE un sistema operativo malevolo. Per questo motivo, su un calcolatore che dovrebbe eseguire un sistema operativo dalla propria memoria di massa, l'opzione di boot via PXE dovrebbe essere disabilitata.</p>

<p id="wx89">Un client PXE dovrebbe assicurarsi che l'immagine che avvia venga da una sorgente di fiducia. Il protocollo prevede funzionalità in questo senso.</p>

<p id="wx90">Se il NBP contiene dati sensibili, come ad esempio password o chiavi crittografiche per accedere ad altri servizi, è possibile che un estraneo collegato abusivamente alla rete ne ottenga una copia, pertanto bisogna assicurarsi che tale file venga inviato solo a client di fiducia.</p>

<a id="Collegamenti_esterni" name="Collegamenti_esterni"/>
</wx:section><wx:section level="2" title="Collegamenti esterni" id="wxsec9"><h2 id="wx91">Collegamenti esterni</h2>

<ul id="wx92">
<li id="wx93"><a href="http://www.ietf.org/rfc/rfc4578.txt" class="external" wx:linktype="external" id="wx94">RFC 4578</a>
<p id="wx95">- Parametri DHCP usati con PXE</p>
</li>

<li id="wx96"><a href="irc://irc.freenode.net/pxe" class="external text" wx:linktype="external" rel="nofollow" id="wx97">#pxe</a>
<p id="wx98">- Un canale dedicato a PXE su <a href="http://freenode.net/" class="external text" wx:linktype="external" rel="nofollow" id="wx99">freenode.net</a></p>
</li>

<li id="wx100"><a href="http://dev.brantleyonline.com/wiki/index.php/PXE_Booting_Index" class="external text" wx:linktype="external" rel="nofollow" id="wx101">PXE wiki</a>
<p id="wx102">- una wiki dedicata a PXE</p>
</li>

<li id="wx103"><a href="http://vamosproject.org/PXE" class="external text" wx:linktype="external" rel="nofollow" id="wx104">Vamos project PXE page</a>
<p id="wx105">- risorse PXE</p>
</li>

<li id="wx106"><a href="http://h18013.www1.hp.com/products/servers/management/rdp/knowledgebase/00000138.html" class="external text" wx:linktype="external" rel="nofollow" id="wx107">PXE error codes</a>
<p id="wx108">- un catalogo di codici d'errore PXE</p>
</li>

<li id="wx109"><a href="http://syslinux.zytor.com/pxe.php" class="external text" wx:linktype="external" rel="nofollow" id="wx110">pxelinux</a>
<p id="wx111">- un <a href="/wit/Boot_loader" title="Boot loader" wx:linktype="known" wx:pagename="Boot_loader" wx:page_id="114931" id="wx112">boot loader</a> usato per caricare altri sistemi operativi via PXE</p>
</li>

<li id="wx113"><a href="http://www.sweetnam.eu/index.php/PXE/Kickstart_Rough_Howto" class="external text" wx:linktype="external" rel="nofollow" id="wx114">PXE Quickstart HowTo</a>
<p id="wx115">- Quickstart HowTo</p>
</li>

<li id="wx116"><a href="http://home.allegiance.tv/~joem298/" class="external text" wx:linktype="external" rel="nofollow" id="wx117">DOS via PXE HowTo</a>
<p id="wx118">- Simple HowTo for booting DOS (or any other bootable floppy) via PXE using PXELINUX and TFTPD32</p>
</li>
</ul>
</wx:section></wx:section></div>
<div id="wx_categorylinks">
<a href="/wit/index.php?title=Speciale:Categories&amp;article=Preboot_Execution_Environment" title="Speciale:Categories" wx:linktype="known" wx:pagename="Speciale:Categories" id="wx119">Categoria</a>: <span dir="ltr" id="wx120"><a href="/wit/Categoria:Processi_di_avvio" title="Categoria:Processi di avvio" wx:linktype="known" wx:pagename="Categoria:Processi_di_avvio" wx:page_id="1062329" id="wx121">Processi di avvio</a></span></div>
<div id="wx_languagelinks">
Altre lingue: <a href="http://de.wikipedia.org/wiki/Preboot_Execution_Environment" class="external" wx:linktype="interwiki" wx:pagename="de:Preboot_Execution_Environment" id="wx122">Deutsch</a> | <a href="http://en.wikipedia.org/wiki/Preboot_Execution_Environment" class="external" wx:linktype="interwiki" wx:pagename="en:Preboot_Execution_Environment" id="wx123">English</a> | <a href="http://es.wikipedia.org/wiki/PXE" class="external" wx:linktype="interwiki" wx:pagename="es:PXE" id="wx124">Español</a> | <a href="http://fr.wikipedia.org/wiki/Preboot_Execution_Environment" class="external" wx:linktype="interwiki" wx:pagename="fr:Preboot_Execution_Environment" id="wx125">Français</a> | <a href="http://ja.wikipedia.org/wiki/Preboot_Execution_Environment" class="external" wx:linktype="interwiki" wx:pagename="ja:Preboot_Execution_Environment" id="wx126">日本語</a> | <a href="http://ko.wikipedia.org/wiki/PXE" class="external" wx:linktype="interwiki" wx:pagename="ko:PXE" id="wx127">한국어</a> | <a href="http://nl.wikipedia.org/wiki/Preboot_Execution_Environment" class="external" wx:linktype="interwiki" wx:pagename="nl:Preboot_Execution_Environment" id="wx128">Nederlands</a> | <a href="http://pl.wikipedia.org/wiki/Preboot_Execution_Environment" class="external" wx:linktype="interwiki" wx:pagename="pl:Preboot_Execution_Environment" id="wx129">Polski</a> | <a href="http://ru.wikipedia.org/wiki/PXE" class="external" wx:linktype="interwiki" wx:pagename="ru:PXE" id="wx130">Русский</a> | <a href="http://sv.wikipedia.org/wiki/Preboot_Execution_Environment" class="external" wx:linktype="interwiki" wx:pagename="sv:Preboot_Execution_Environment" id="wx131">Svenska</a> | <a href="http://tr.wikipedia.org/wiki/PXE" class="external" wx:linktype="interwiki" wx:pagename="tr:PXE" id="wx132">Türkçe</a></div>
</body>
</html>
