Võrgufailisüsteem

Võrgufailisüsteem (NFS) on võrguprotokoll mis lubab arvutile juurdepääsu failidele võrgu kaudu nii, nagu asuksid need failid sellesama arvuti kohalikel ketastel.
Võrgufailisüsteemi arendas välja Sun Microsystems aastal 1984. NFS on üles ehitatud toetudes avatud võrguandmetöötluse kaudprotseduurikutsete (ONC RPC) protokollidele. NFS on kommentaarinõude (RFC) poolt defineeritud kui avatud standard, mistõttu on kõigil õigus protokolli rakendada.
Versioonid ja variatsioonid.
NFSv1.
NFS protokolli esimene versioon oli kasutusel mõnda aega ja sedagi ainult eksperimenteerimise eesmärgil Sun Microsystemsi siseselt. Kasutamise käigus arendati seda pidevalt edasi ja pärast arengumeeskonna poolt algversiooniga võrreldes protokollile arvestatavalt suurte muudatuste tegemist otsustati avaldada uus versioon ehk v2. Uue versiooni avaldamise eesmärgiks oli luua võiamlus katsetada selle versiooni koostöötamisevabadust ja RPC versiooni tagavaravarianti.
NFSv2.
Protokolli järgmine ehk teine versioon (defineeritud standardis RFC 1094, märts 1989) oli kasutatav ainult üle kasutajadatagrammi protokolli (UDP). NFSi arendajad soovisid hoida serveripoole olekuta, tehes seda näiteks läbi luku kasutamise. NFSi teise versiooni loomisega olid seotud Russel Sandberg, Bob Lyon, Bill Joy, Steve Kleiman, ja teised.
Virtuaalse failisüsteemi kasutajaliides lubas modulaarset implementatsiooni, mis väljendus protokolli lihtsuses. Protokolli kasutajate hulk suurenes ja 1986. aasta veebruariks oli NFSv2 võetud kasutusele mitmetes erinevates operatsioonisüsteemides (näiteks AT&amp;T Unix System V teine versioon, DOS ning Eunice tarkvara kasutavad VAX/VMS). 32-biti arhitektuuri limitatsioonide tõttu oli NFSv2 protokolli kasutades võimalik saata ainult failide esimesed 2 GB.
NFSv3.
Versioon 3 (defineeritud standardis RFC 1813, juuni 1995) lisas:
Esimene NFS versioon kolme ettepanek tehti Sun Microsystems siseselt üsna varsti pärast NFSv2 avaldamist. Peamiseks ajendiks oli püüe leevendada sünkroonkirjutamisega seotud jõudlusprobleeme.. 1992. aasta juuliks olid märkimisväärselt paljud NFSv2 puudused arendusmeeskonna poolt eemaldatud ning ainsaks tähelepanuväärivaks probleemiks peeti suurte failide (64-bit failisuurustele ning nihete) toe puudumist. Sun Microsystems lisas edastusohje protokolli (TCP) toe NFSle samal ajal kui lisati versioon kolme tugi. TCP kasutamine transpordiks tegi NFS kasutamise laivõrgu (WAN) asemel võimalikuks ning lubas UDP poolt kehtestatud 8 KBst suuremate kirjutamis- ja lugemissuuruste kasutamist.
NFSv4.
Versioon 4 (defineeritud standardis RFC 3010, detsember 2000, muudetud standardis RFC 3530, aprill 2003, uuesti muudetud standardis RFC 7530, märts 2015) oli mõjutatud Andrew’ failisüsteemist (AFS) ning serverisõnumiplokist (SMB) ning sisaldas jõudlustäiustusi, kindlustas tugeva turvalisuse läbi Kerberos V5, SPKM-3 või LIPKEY kasutamise ning tutvustas olekuga protokolli. Versioon 4 oli esimene versioon mille arendas välja Internetiehituse töörühm (IETF) pärast seda kui Sun Microsystems andis üle NFS protokolli arenduse. 
NFS versioon 4.1 (defineeritud standardis RFC 5661, jaanuar 2010) eesmärgiks oli anda protokolli tuge, et ära kasutada serveriklastrite juurutamist. 
NFSv4.1 lisab:
Versioon 4.2 on hetkel arendamisel.
Muud laiendused.
WebNFS kui versioonide 2 ja 3 laiendus aitab NFS protokolli lihtsamalt veebibrauserisse integreerida ning võimaldab teha tööd läbi tulemüüride. 2007. aastal avalikustas Sun Microsystems enda kliendipoolse WebNFSi implementatsiooni.
Mitmed protokollid on praeguseks seotud NFSga. Näiteks:
Platvormid.
NFSi kasutatakse tihti UNIX-i operatsioonisüsteemides (näiteks Solaris, AIX ning HP-UX), Apple'i macOS's ning UNIXi-laadsetes operatsioonisüsteemides (näieks Linux ja FreeBSD. See on kasutatav teiste operatsiooni süsteemide jaoks, nagu näiteks: Acorn RISC OS&lt;ref name="Sunfish/Moonfish by Alex Waugh"&gt; &lt;/ref&gt; the klassikaline Mac OS, OpenVMS, MS-DOS, Microsoft Windows, Novell NetWare, ning IBM AS/400.&lt;ref name="OS/400-NFS"&gt;&lt;/ref&gt;
Tüüpiline teostus.
Unix-tüüpi stsenaariumi korral, kus üks masin (klient) vajab ligipääsu andmetele mis paiknevad teises arvutis (NFS server):
NFS kliendil käitatakse tavaliselt asünkroonseid I/O harusid.
Protokolli arendus.
ONC protokolli arendamise ajal pakkus ainult Apollo Network Copmuting System (NCS) võrreldavat funktsionaalsust. Tänu fundamentaalsetele erinevustele kahes kaugprotseduurikutse süsteemis tekkis kaks omavahel võistlevat gruppi. Argumendid keskendusid andmekodeerimise meetoditele – ONC XDR protokoll visualiseeris täisarvud jämedaotsalises järjekorras, isegi kui mõlemad partnerid kasutasid peeneotsalist arhitektuuri. NCSi meetod üritas vältida baidi-vahetust kui kaks partnerit kasutasid sama otsalisust enda masina-arhitektuurides. Märtsis 1987 loodi tööstusgrupp "Network Comuting Forum", mille eesmärgiks oli üritada kaht võrguandmetöötluse keskkonda omavahel lepitada. Paraku see ülesanne ebaõnnestus.
Hiljem teatasid SUN ja AT&amp;T, et nad arendaksid koos AT&amp;T Unix süsteemi neljanda väljaande. See põhjustas paljude teiste Atja T teistel litsentsiomanikel muret, et see paneks SUNi eelisolukorda. Lõpuks viis see selleni, et 1988.a asutasid Digital Equipment, HP, IBM ja teised ühise Vabavara Sihtasutuse (Open Software Foundation, OSF). Iroonilisel kombel olid SUN´i protokoll NFS ning AtjaT loodud RFS olnud seni konkureerivad tooted. Nüüd tekkis olukord, kus NFSi kasutuselevõtt Digital Equipment´i, HP, IBMi jpt arvutimüüjate poolt suunas suurema osa arvutikasutajaid NFSi poolele. NFSi koostalitusvõimet aitas edendada arendusürituste sari nimega „Connectathons“, mis algas 1986.a ning lõi võimalused müüjaneutraalseks programmidevahelise haakumise teostuse testimiseks. 
OSF võttis kasutusele andmetöötluse hajuskeskkonna (DCE) ja andmetöötluse hajuskeskkonna hajusfailisüsteem (DFS) Sun'i/ONC RPC ja NFS´i asemel. DFS kasutas DCEd kui RPCd ja DFS oli tuletatud AFSist. DCE ise oli tuletatud erinevatest tehnoloogiakomplektidest, nagu näiteks Apollo NCS ja Kerberos.
1990-ndad.
Sun Microsystems ning Internet Society (ISOC) jõudsid kokkuleppele, et loovutada ONC RPC muutuste kontrollimine, et ISOC internetiehituse töörühm (IETF) saaks avaldada standardite dokumendid (RFCd), mis on seotud ONC RPC protokollidega ja saaksid laiendada ONC RPCd. OSF üritas teha DCE RPC IETF-standardiks, kuid lõpuks ei olnud nõus kontrolli ära andma. Hiljem otsustas IETF laiendada ONC RPCd, lisades uue autentimise, mis põhines GSSAPI-l ja RPCSEC GSSil. Eesmärk oli vastata IETFi enda kehtestatud nõuetele, et protokollistandardid oleksid piisavalt turvalised. 
Mõne aja pärast andis SUN ISOCle üle õigused HFSi uuematele versioonidele (4 ja hilisemad). 
2000-ndad.
21.sajandiks ei olnud ei DFS ega ka AFS saavutanud SNB-CIFSi või NFSiga võrreldes suurt kaubanduslikku edu. DFSi ja AFSi peamise edasimüüja Transarc omandanud IBM annetas suurema osa AFSi lähtekoodist vabavarakommuunile. 2005.a. kuulutas IBM DFSi ja AFSi müügi lõppenuks. 2010.a jaanuaris pakkus Panasas välja NFSv4.1, mis põhines nende paralleelNFS- tehnoloogial ning väidetavalt parandas andmepöörduse parallelismivõimekust. 
NFSv4.1 pNFS server on serveriressursside ja serverite komplekt.