Server for Information Technologies ������ ��������������
������� �������������� ����������
(095) 932-9212, 932-9213, 939-0783
E-mail: [email protected]
������ �������� ����(!) ������������� ���������� CIT Forum CD-ROM

FS(4)

��������
fs - ������ ����, ����������� �������� �������

���������

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

��������
�� ���� ����� �������� ������� �������� � ����������� ������� ������������ �������� ������ ����������. ������ ��� (������� ����������) �������� �� ��������� ���������� ��������, ������� ����� 1024 ����. ������ ���� ������ ������, � ���������� ������� ����� ���������. ������������� ������������ ���������� BUFSIZ, ������ ������� �������. ��� ���������� �� ���������� ����� <stdio.h>. ���������� ������� � � ���, ��� ������� cpio(1), fsdb(1M) � ����� ������������� �������� � 512 �������� �������. ��� ������� ������������ ������� �������������� ����/�����. �������� ����� �� ������������ 512-������� �����, ��� ��� ��� ������������� ������� dd(1) ���� ��������� ������ ������ ������� ���������. ������, ��� ��������� ������ �������� �����/������ ��-�������� ������� �� 512-��������.

������ 512 ���� ������� 0 ����� ��������� ���������� �� �������������� ��������. ������ �������� ������� 0 ���������� �����������.

������ 1 �� ������������. � ��������, ������� �� �������, ������������� ��������� ������ � ���������� �����. ��������� ��� �� �������� ��������� ��������� ��������.

��������� ����� ��������� ������:

struct filsys {
  ushort  s_isize;          /* ������ ������ ����������
                               ������ � ������ */
  daddr_t s_fsize;          /* ������ ����� ���� �
                               ������ */
  short   s_nfree;          /* ���������� ������� �
                               ������� s_free */
  daddr_t s_free[NICFREE];  /* ������ ��������� ������
                               */
  short   s_ninode;         /* ���-�� ���������� ���- 
                               ��� � ����. s_inode */
  ino_t   s_inode[NICINOD]; /* ������ ��������� �����- 
                               ����� ������ */
  char    s_flock;          /* ������. ��� ����. ��
                               ������� ����. ������ */
  char    s_ilock;          /* ������. ��� ����. ��
                               ������� ����. ������ */
  char    s_fmod;           /* ���� ����������� �����- 
                               ����� */
  char    s_ronly;          /* ���� ������������ ������
                               �� ������ */
  time_t  s_time;           /* ����� ���������� �����- 
                               ����� ���������� */
  short   s_dinfo[4];       /* ���������� �� ����������
                               */
  daddr_t s_tfree;          /* ���-�� ��������� ������
                               */
  ino_t   s_tinode;         /* ���-�� ��������� �����- 
                               ����� ������ */
  char    s_fname[6];       /* ��� �������� ������� */
  char    s_fpack[6];       /* ��� ���� */
  long    s_fill[14];       /* �����������, �����
                               sizeof(filsys)==512 */
  long    s_state;          /* ��������� �������� ���- 
                               ���� */
  long    s_magic;          /* ���. ����� ����� (���- 
                               ��� V.3) ����. ����. */
  long    s_type;           /* ��� ����� �������� ���- 
                               ���� */
};

#define FsMAGIC 0xfd187e20   /* �������� s_magic */

#define Fs1b    1            /* ���� �� 512 ���� */
#define Fs2b    2            /* ���� �� 1024 ����� */

#define FsOKAY   0x7c269d38  /* s_state: ���������� */
#define FsACTIVE 0x5e72d81a  /* s_state: �������� */
#define FsBAD    0xcb096f43  /* s_state: ����.������ */
#define FsBADBLK 0xbadbc14b  /* s_state:  ����   ������
                                ����� */

���� s_type ���������� ��� �������� �������. � ��������� ����� �������������� ��� ���� �������� ������: ������, � 512-�������� ����������� ������� � �����, ����������, � 1024-�������� �������. ���� s_magic ������������ ��� ����, ����� �������� ������ 512-������� ������� �� �����. ���� �������� ����� ���� �� ��������� � ���������� ������ FsMAGIC, �� ��� �������� ������� ����������� ������ Fs1b, �� ���� ������� ��������� ������; � ��������� ������ ������������ �������� s_type. ������������ ������� ��������� � ������������ �������������� ������� ���������� ������ � ������ ���������� ��������.

���� s_state ���������� ��������� �������� �������. ��� ������� ����������������, �������������� �������� ������� s_state ����� �������� FsOKAY. ����� ����, ��� ������� ���� ������������ � ����� �������� ���������, ��������� ���������� �� FsACTIVE. ��-������� �������������� �������� �������� �������. ���� �� ����� �������� �� ��������������, ��� �������� �������� ������� ����������, ��� �����������, �� ���������� ��������� FsBAD. �����, ����� ����, ��� ��� ����� ��������������, ����� ����������� ��������� FsOKAY.

���� s_isize ������ ����� ������� ����� ������ ����� ������ ���������� ������; ��� ������ ���������� ���������� �� ������� �����. ����� �������, ������ ���������� ������ ����� ����� s_isize-2 �����. �������� s_fsize ���� ������ ����, ������� ������������ ���������� ��� ���������� ������. ��� ��� ����� ������������ �������� ��� ��������� ������ ������� ������; ���� �������� ����� ����� ���������� �� ������ ��������� ������ ���, ��������, �������������, �� �� ��������� ������� ��������� ��������������� ���������. ����� ����, ������ ��������� ������ ���������, ����� ������������� ���������� ��������� ������� ������ �� �������� ������������� ������.

������ ���������� ������������ ��� ������� ���� ������� ��������� �������. ������ s_free �������� �� 50 ������� ��������� ������ s_free [0], ..., s_free [s_nfree - 1]. ���� � ������� s_free [0] �������� ��������� ��������� ������ ���������� ������������. ������� ����� (������� �����) � ���� ����� �������� ���������� (�� 50) ������� ��������� ������, ��������� � ����������� 50 ������, ������ ������ ����� ������������ ������ ������� �� ��������� ������� ������ ���������� ������������ � ����������� ����������. ����� �������, ������ ������� ������ ���������� ������������ ������������� � ������ ���������� ����� � ������� ��� ��, ��� ���� ����� s_nfree � s_free, �������� ���� ��������� ������.

����� ������ ��������� ����, ���� ��������� �������� s_nfree � �������� ���� � ������� s_free [s_nfree]. ���� ����� ����������� ����� ����� 0, ��� ��������, ��� �� ���� ��� ��������� ������, �� ���� ����� ����� ������. ���� �������� s_nfree ����� �������, ����� ��������� ���������� ����, ��������� ��� ������� ����� � ���� s_nfree, � ����������� 50 ���� - � ������ s_free.

��� ������������ �����, ���� �������� s_nfree ����� 50, ������� ����������� ���� ����� s_nfree � s_free � ������ ����� �����, �������� ���� � ���������� s_nfree ������ 0. � ����� ������, ����� �������������� ����� ���������� � ������� ������� s_free [s_nfree], ����� ���� ���� s_nfree ������������� �� 1.

���� s_tfree ������ ����� ���������� ��������� ������, ��������� �������� �������.

���� s_ninode ������ ���������� ������� ��������� ���������� ������ � ������� s_inode. ����� ������ ��������� ��������� ����� � ������, ����� s_ninode ������ 0, ��� ���� ������� ��������� �� 1 � �������� ��������� � ������� s_inode [s_ninode]. ���� �� �������� s_ninode ����� 0, ����� ��������� ��������� ������ � ������ ��������� (�� ����� 100) ��������� � ������ s_inode, ����� ���� ����� ���������� �������� ���������.

��� ������������ ���������, ���� �������� s_ninode ������ 100, ����� ��������� ������� ��������� � ������� ������� s_inode [s_ninode] � ��������� ���� s_ninode �� 1. ���� �� �������� s_ninode ����� 100, �� ����� ���������� � ����������� ����� ������������. ���� � ���, ��� ������� ������� ��������� ���������� ������������� ������ ��� ��������� �� ������; � ����� ��������� ���� �������, �������� �� ��� �����.

�������� s_tinode ���� ����� ���������� ��������� ���������� ������, ��������� �������� �������.

����� s_flock � s_ilock �������������� ������ � ����� �������� ������� � ����������� ������; �� �������� �� ����� �� ����������. �������� ����� s_fmod �� ����� ����� �� ��������������; ���� ���� ����������, ��� ��������� ��� ������� � ������ ���� ������� �� ���� �� ����� ���������� ���������� ���������� � �������� �������.

���� s_ronly �������� ������ �� ������.

���� s_time ���� ����� ��������� ����������� ���������� �������� �������. ��� ���������� ����������� ������, ��������� � 00:00:00 1 ������ 1970�. (�� ��������).

���� s_fname ���� ��� �������� �������, � s_fpack - ��� ����.

������ ���������� ������ ���������� � 1. ����� ��������� ���������� 64 �����. ��������� ����� 1 � ��������� ����� �� ������������. ��������� ����� 2 �������������� ��� ��������� �������� �������� �������. ������ ��������� �� ����� ����������������� ����������. ������ ��������� ������������� ������ �����. ������ ��������� ����� ��. � inode(4).

�����

/usr/include/sys/fs/*

��. �����
mount(2), inode(4).
finito(1M), fsck(1M), fsdb(1M), mkfs(1M) � ����������� ��������������.
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT