Server for Information Technologies �ÅÒ×ÅÒ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ
ãÅÎÔÒÏÍ éÎÆÏÒÍÁÃÉÏÎÎÙÈ �ÅÈÎÏÌÏÇÉÊ
(095) 932-9212, 932-9213, 939-0783
E-mail: [email protected]
�ÅÒ×ÅÒ ÓÏÄÅÒÖÉÔ ÍÏÒÅ(!) ÁÎÁÌÉÔÉ�ÅÓËÏÊ ÉÎÆÏÒÍÁÃÉÉ CIT Forum CD-ROM

FILESYSTEM(5)
XENIX System V (1 ÑÎ×apÑ 1989)

îá��áîéå
file system - æopÍaÔ ÔoÍa, coÄepÖa�ÉÊ ÆaÊÌo×y� cÉcÔeÍy.

�éî�áë�é�

#include <sys/filsys.h>
#include <sys/types.h>
#include <sys/param.h>

ïðé�áîéå
KaÖÄÙÊ ÔoÍ, coÄepÖa�ÉÊ ÆaÊÌo×y� cÉcÔeÍy (ÎaÐpÉÍep, ÖecÔËÉÊ ÄÉcË) ÐoÄpaÚÄeÌÑeÔcÑ Îa ÂÌoËÉ Ðo 256 cÌo× (512 ÂaÊÔ). âÌoË c ÎoÍepoÍ 0 Îe ÉcÐoÌØÚyeÔcÑ É coÄepÖÉÔ ÐpoÇpaÍÍy Îa�aÌØÎoÊ ÚaÇpyÚËÉ ÉÌÉ ÄpyÇy� ÉÎÆopÍaÃÉ�.

âÌoË ÎoÍep 1 - cyÐepÂÌoË. æopÍaÔ �ÔoÇo ÂÌoËa oÐÉcaÎ × ÍaËpo ÆaÊÌe /usr/include/sys/filesys.h. B �ÔoÍ ÍaËpo ÆaÊÌe S_isize ÐpeÄcÔa×ÌÑeÔ coÂoÊ aÄpec Ðep×oÇo ÂÌoËa ÄaÎÎÙx ÐocÌe cÐÉcËa ÉÎÄeËcÎÙx ÄecËpÉÐÔopo×, Îa�ÉÎa��eÇocÑ cpaÚy ÐocÌe cyÐepÂÌoËa × ÂÌoËe ÎoÍep 2; ÄÌÉÎa cÐÉcËa ÉÎÄeËcÎÙx ÄecËpÉÐÔopo× pa×Îa s_isize-2. S-fsize ÐpeÄcÔa×ÌÑeÔ coÂoÊ Ðep×ÙÊ ÂÌoË, ÎeÄocÔyÐÎÙÊ ÆaÊÌo×oÊ cÉcÔeÍe. �ÔÉ ÂÌoËÉ ÉcÐoÌØÚy�ÔcÑ oÐepaÃÉoÎÎoÊ cÉcÔeÍoÊ ÄÌÑ ÚaÍeÎÙ ÄeÆeËÔÎÙx ÂÌoËo×. EcÌÉ oÐepaÃÉoÎÎÑ cÉcÔeÍa ×ÙÎyÖÄeÎa ×ÙÄeÌÉÔØ ÂÌoË ÉÚ cÐÉcËa ÚaÍeÎÙ ÉÌÉ, ÎaÐpoÔÉ×, oc×oÂoÖÄaeÔcÑ ÂÌoË ÉÚ cÐÉcËa ÚaÍeÎÙ, Îa ËoÎcoÌØ ×Ù×oÄÉÔcÑ cooÂ�eÎÉe. âoÌee ÔoÇo, cÐÉcoË c×oÂoÄÎÙx ÂÌoËo× ËoppeËÔÉpyeÔcÑ ÔaË, �ÔoÂÙ ÄeÆeËÔÎÙÊ ÂÌoË Îe ÐoÐaÌ × cÐÉcoË c×oÂoÄÎÙx ÂÌoËo×.

CÐÉcoË c×oÂoÄÎÙx ÂÌÏËo× ËaÖÄoÇo ÔoÍa oÂpaÚo×aÎ cÌeÄy��ÉÍ oÂpaÚoÍ. MaccÉ× s_free coÄepÖÉÔ × �ÌeÍeÎÔax s_free[1], ... , s_free[s_nfree-1] Äo 49 ÎoÍepo× c×oÂoÄÎÙx ÂÌoËo×. S_free[0] coÄepÖÉÔ ÎoÍep ÂÌoËa ÚaÇoÌo×Ëa ÃeÐÉ ÂÌoËo×, cocÔa×ÌÑ��Éx cÐÉcoË c×oÂoÄÎoÇo ÐpocÔpaÎcÔ×a. ðep×aÑ ÐepeÍeÎÎaÑ ÔÉÐa long × ËaÖÄoÊ ÃeÐÉ c×oÂoÄÎÙx ÂÌoËo× ÐpeÄcÔa×ÌÑeÔ coÂoÊ �ÉcÌo (Äo 50) ÎoÍepo× c×oÂoÄÎÙx ÂÌoËo×, ÚaÐÉcaÎÎÙx × cÌeÄy��Éx 50 �ÌeÍeÎÔax ÔÉÐa long �ÔoÇo �ÌeÍeÎÔa ÃeÐÉ. ðep×ÙÊ ÉÚ �ÔÉx ÐÑÔÉÄecÑÔÉ ÂÌoËo× c×ÑÚaÎ co cÌeÄy��ÉÍ �ÌeÍeÎÔoÍ ÃeÐÉ. äÌÑ ÔoÇo, �ÔoÂÙ ×ÙÄeÌÉÔØ ÂÌoË: yÍeÎØ�ÉÔØ ÚÎa�eÎÉe s_nfree É Îo×ÙÊ s_free[s_nfree]. EcÌÉ ÎoÍep Îo×oÇo ÂÌoËa pa×eÎ ÎyÌ�, Îe cy�ecÔ×yeÔ ocÔa×�ÉxcÑ ÂÌoËo×, Ðo�ÔoÍy ×ÙÄaeÔcÑ o�ÉÂËa. EcÌÉ s_nfree cÔaÎo×ÉÔcÑ 0, Ðpo�ecÔØ × ÂÌoËe, oÐpeÄeÌÑeÍÙÍ ÎoÍepoÍ Îo×oÇo ÂÌoËa, ÚaÍeÎÉÔØ s_nfree eÇo Ðep×ÙÍ cÌo×oÍ É ËoÐÉpo×aÔØ ÎoÍepa ÂÌoËo× × cÌeÄy��Éx 50 �ÌeÍeÎÔax ÔÉÐa long × ÍaccÉ× s_free. äÌÑ ÔoÇo, �ÔoÂÙ oc×oÂoÄÉÔØ ÂÌoË Ðpo×epÉÔØ, ecÌÉ s_nfree pa×Îo 50; ecÌÉ Äa, ËoÐÉpo×aÔØ s_nfree É ÍaccÉ× s_free × ÎeÇo É ycÔaÎo×ÉÔØ ÚÎa�eÎÉe s_nfree pa×ÎÙÍ 0. B Ì�ÂoÍ cÌy�ae ycÔaÎo×ÉÔØ s_free[s_nfree] Îa ÎoÍep oc×oÂoÖÄeÎÎoÇo ÂÌoËa É y×eÌÉ�ÉÔØ s_nfree.

S_tfree ÐpeÄcÔa×ÌÑeÔ coÂoÊ ËoÌÉ�ecÔ×o c×oÂoÄÎÙx ÂÌoËo×, ÄocÔyÐÎÙx ÆaÊÌo×oÊ cÉcÔeÍe.

S_ninide ÐpeÄcÔa×ÌÑeÔ coÂoÊ ÎoÍepa c×oÂoÄÎÙx ÉÎÄeËcÎÙx ÄecËpÉÐÔopo× × ÍaccÉ×es_inode. äÌÑ ×ÙÄeÌeÎÉÑ ÉÎÄeËcÎoÇo ÄecËpÉÐÔopa ÆaÊÌa: ecÌÉ s_ninode ÂoÌØ�e ÎyÌÑ, yÍeÎØ�ÉÔØ eÇo É ×epÎyÔØ s_inode[s_ninode]. EcÌÉ oÎ pa×eÎ 0, �ÉÔaÔØ cÐÉcoË ÉÎÄeËcÎÙx ÄecËpÉÐÔopo× É paÚÍecÔÉÔØ ÎoÍepa c×oÂoÄÎÙx ÉÎÄeËcÎÙx ÄecËpÉÐÔopo× ÆaÊÌo×(Äo 100) × ÍaccÉ×e s_inode, ÚaÔeÍ ÐoÐÙÔaÔØcÑ cÎo×a. äÌÑ oc×oÂoÖÄeÎÉÑ ÉÎÄeËcÎoÇo ÄecËpÉÐÔopa ÆaÊÌa, ÐpÉ�eÍ s_ninode ÍeÎØ�e 100, paÚÍecÔÉÔØ eÇo ÎoÍep × s_inode[s_ninode] É y×eÌÉ�ÉÔØ s_ninode. EcÌÉ s_ninode pa×eÎ 100, Îe ÎyÖÎo ÄoÂa×ÌÑÔØ ÉÎÄeËcÎÙÊ ÄecËpÉÐÔop ÆaÊÌa × Ì�Ây� ÔaÂÌÉÃy. �ÔoÔ cÐÉcoË ÉÎÄeËcÎÙx ÄecËpÉÐÔopo× ÆaÊÌo× ÔoÌØËo y×eÌÉ�É×aeÔ cËopocÔØ ÐpoÃecca ×ÙÄeÌeÎÉÑ. éÎÆopÍaÃÉÑ o ÔoÍ, Ñ×ÌÑeÔcÑ ÌÉ ÉÎÄeËcÎÙÊ ÄecËpÉÐÔop ÆaÊÌa ÄeÊcÔ×ÉÔeÌØÎo c×oÂoÄÎÙÍ coÄepÖÉÔcÑ coÂcÔ×eÎÎo × ÉÎÄeËcÎoÍ ÄecËpÉÐÔope.

S_tinode ÐpeÄcÔa×ÌÑeÔ coÂoÊ ËoÌÉ�ecÔ×o c×oÂoÄÎÙx ÉÎÄeËcÎÙx ÄecËpÉÐÔopo×, ÄocÔyÐÎÙÙx ÆaÊÌo×oÊ cÉcÔeÍe.

æÌaÇÉ S_flock É silock ÉcÐoÌØÚy�ÔcÑ ÔoÌØËo ÔoÇÄa, ËoÇÄa ÆaÊÌo×aÑ cÉcÔeÍa cÍoÎÔÉpo×aÎa. �Îa�eÎÉe s_fmode Îa ÄÉcËe ÔaËÖe Îecy�ecÔ×eÎÎo É ÉcÐoÌØÚyeÔcÑ ËaË ÆÌaÇ ÄÌÑ oÔpaÖeÎÉÑ ÔoÇo, �Ôo cyÐepÂÌoË ÂÙÌ ÉÚÍeÎeÎ É ÄoÌÖeÎ ÂÙÔØ cËoÐÉpo×aÎ Îa ÄÉcË × Ôe�eÎÉÉ cÌeÄy��eÇo ÐepÉoÄa oÂÎo×ÌeÎÉÑ ÉÎÆopÍaÃÉÉ ÆaÊÌo×oÊ cÉcÔeÍÙ.

æÌaÇ S_ronly ÐoËaÚÙ×aeÔ, �Ôo ÔoÍ ÄocÔyÐeÎ ÔoÌØËo ÄÌÑ �ÔeÎÉÑ.

S_time Ñ×ÌÑeÔcÑ ÐocÌeÄÎÉÍ ×peÍeÎeÍ, ËoÇÄa cyÐepÂÌoË ÆaÊÌo×oÊ cÉcÔeÍÙ ÂÙÌ ÉÚÍeÎeÎ É ÐpeÄcÔa×ÌÑeÔcÑ �ÉcÌoÍ Ä×oÊÎoÊ Ôo�ÎocÔÉ, × ceËyÎÄax,ËoÔopoe Ðpo�Ìo c ÍoÍeÎÔa 00:00 ñÎ×apÑ 1, 1970 (Ðo çpÉÎ×É�y). Bo ×peÍÑ ÐepeÚaÇpyÚËÉ, �ÌeÍeÎÔ s_time cyÐepÂÌoËa ËopÎe×oÊ ÆaÊÌo×oÊ cÉcÔeÍÙ ÉcÐoÌØÚyeÔcÑ ÄÌÑ ycÔaÎo×ËÉ cÉcÔeÍÎoÇo ×peÍeÎÉ.

HoÍepa ÄecËpÉÐÔopo× Îa�ÉÎa�ÔcÑ c 1 É xpaÎÑÔcÑ × ÂÌoËe 2. TaËÖe, ÉÎÄeËcÎÙe ÄecËpÉÐÔopÙ ÆaÊÌo× ÐpeÄcÔa×ÌÑ�ÔcÑ 64 ÂaÊÔaÍÉ, Ðo�ÔoÍy 8 ÉÚ ÎÉx ÐoÍe�a�ÔcÑ × ÂÌoË. TaËÉÍ oÂpaÚoÍ, ÉÎÄeËcÎÙÊ ÄecËpÉÐÔop ÆaÊÌa i paÚÍe�aeÔcÑ × ÂÌoËe c ÎoÍepoÍ(i+15)/8 É Îa�ÉÎa�ÔcÑ 64x((i+15)(mod 8)) ÂaÊÔ oÔ Îa�aÌa. éÎÄeËcÎÙÊ ÄecËpÉÐÔop ÆaÊÌa 1 peÚep×ÉpyeÔcÑ ÄÌÑ ÉcÐoÌØÚo×aÎÉÑ × ÂyÄy�eÍ. éÎÄeËcÎÙÊ ÄecËpÉÐÔop ÆaÊÌa 2 peÚep×ÉpyeÔcÑ ÄÌÑ ËopÎe×oÇo ËaÔaÌoÇa ÆaÊÌo×oÊ cÉcÔeÍÙ, ÄpyÇÉe ÎoÍepa ÄecËpÉÐÔopo× Îe peÚep×Épy�ÔcÑ ÄÌÑ cÐeÃÉaÌØÎoÇo ÉcÐoÌØÚo×aÎÉÑ. KaÖÄÙÊ ÉÎÄeËcÎÙÊ ÄecËpÉÐÔop ÆaÊÌa ÐpeÄcÔa×ÌÑeÔ oÄÉÎ ÆaÊÌ. äÌÑ ÐoÌy�eÎÉÑ ÐoÄpoÂÎoÊ ÉÎÆopÍaÃÉÉ o ÆopÍaÔe ÉÎÄeËcÎÙx ÄecËpÉÐÔopo× ÆaÊÌo× É Éx ÆÌaÇax cÍoÔpÉ inode(F).

æáêì�

/usr/include/sys/filesys.h
/usr/include/sys/stat.h

�í. �áë�å
fseek(1), mkfs(1), inode(5)
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT