Virtuelt filsystem

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 17. december 2019; checks kræver 3 redigeringer .

Et virtuelt filsystem ( engelsk  virtuelt filsystem  - VFS) eller en virtuel filsystemswitch ( engelsk  virtuel filsystemswitch ) er et abstraktionslag over en specifik filsystemimplementering . Formålet med VFS er at give ensartet adgang for klientapplikationer til forskellige typer filsystemer. VFS kan bruges til at få adgang til lokale enheder og filer ( fat32 , ext4 , ntfs ), netværksenheder og filer på dem ( nfs ) og ikke-datalagringsenheder ( procfs [1] ). VFS erklærer en programmeringsgrænseflade mellem kernen og et bestemt filsystem, så tilføjelse af understøttelse af et nyt filsystem kræver ikke ændringer af operativsystemkernen .

Udviklingshistorie

Et af de første virtuelle filsystemer i Unix-lignende operativsystemer blev implementeret af Sun Microsystems i SunOS 2.0 i 1985 . Dette gjorde det muligt for Unix-systemopkald at få transparent adgang til lokal UFS og fjern - NFS . Af denne grund kopierede Unix-leverandører, der licenserede NFS-kode, ofte Suns VFS-design. Andre filsystemer kan monteres på samme måde: Der var en implementering af MS-DOS FAT -filsystemet udviklet af Sun, der brugte SunOS VFS, selvom det ikke blev sendt som et produkt før SunOS 4.1. SunOS-implementeringen er kernen i VFS-mekanismen i System V Release 4 .

John Heidemann udviklede en stablet VFS under SunOS 4.0 til det eksperimentelle Ficus -filsystem . Dette projekt involverede kodegenbrug på tværs af filsystemer med forskellig, men lignende semantik (for eksempel kan et krypteret filsystem bruge et navngivningssystem og kode til at gemme data fra et ukrypteret filsystem). I sin afhandling tilpassede Heidemann dette arbejde til brug i 4.4BSD. Efterkommere af denne kode ligger til grund for implementeringerne af moderne filsystemer i BSD -afledte operativsystemer , inklusive Mac OS X.

VFS-enhed

Som tidligere nævnt er hovedformålet med moderne VFS at organisere en enkelt brugergrænseflade til adgang til forskellige filsystemer, hvis drivere er indlæst i computerens hukommelse. For at nå dette mål kræver operativsystemkernen oprettelsen af ​​en enkelt programmeringsgrænseflade til interne kernekald. Denne grænseflade bør være bred nok med hensyn til funktionalitet, da den vil blive brugt til at få adgang til et meget stort antal forskellige (med hensyn til egenskaber og funktionalitet) filsystemer. Ud over standard åbne/lukke og læse/skrive opkald til filer, er VFS forpligtet til at have en grænseflade til revalidering (fra engelsk revalidation ) data, arbejde med caches , afsendelse af specielle anmodninger (IOCTL - Input/Output Control ) samt som for at organisere den aktuelle session med en åben fil.

For at arbejde med VFS skal filsystemdriveren implementere de udpegede programkald under hensyntagen til detaljerne i arbejdet i dette filsystem. Driveren kan kun understøtte en del af VFS API-kaldene, i hvilket tilfælde OS-kernen skal "mute" korrekt de tilsvarende ubehandlede anmodninger fra brugeren.

Faktisk kan VFS-grænsefladen til filsystemdrivere være en definition af selve begrebet et filsystem. Enhver driver, der implementerer VFS API-funktionaliteten og er korrekt indlæst i kernen, bliver en filsystemdriver, uanset om den bruges til filadgang eller ej. Desuden er funktionaliteten af ​​selve filsystemet muligvis ikke engang i driveren, men i brugerrummet . Et slående eksempel på denne tilgang er filsystemet i brugerrummet ( Filesystem in Userspace  - FUSE ).

Applikation i moderne operativsystemer

På OS/2 og Microsoft Windows kaldes den virtuelle filsystemmekanisme for et installerbart filsystem .

På Linux er VFS-mekanismen, ligesom al kernekode, open source. Dette giver filsystemudviklere mulighed for at skrive deres drivere så effektivt som muligt. Som et resultat understøtter Linux montering af langt de fleste moderne filsystemer.

På Unix inkluderer filsystemer filsystemswitchen i System V Release 3 og i Ultrix .

Se også

Noter

  1. FreeBSD: Virtuelle filsystemer . Hentet 18. juni 2010. Arkiveret fra originalen 12. juni 2017.

Links

Litteratur

E. Tanenbaum, H. Bos Moderne styresystemer. - 4. udg. - Skt. Petersborg: Peter, 2018.