Najwazniejsze struktury danych napotkane przy czytaniu zrodel funkcji open, creat, close.

task_struct *current; /* obecnie wykonywany proces */

struct task_struct{
	unsigned short uid,euid,suid,fsuid;
	unsigned short gid,egid,sgid,fsgid;  /* identyfikatory procesu */
	struct rlimit rlim[RLIM_NLIMITS]; /* tablica rlim jest indeksowana rodzajem zasobu, 
	np. rlim[RLIMIT_NOFILE] mowi o ograniczeniach na liczbe otwartych plikow */
	struct fs_struct *fs;
	struct files_struct *files;
	...
}

struct rlimit{
		long rlim_cur; /* obecna maks. liczba zasobow danego typu*/
		long rlim_max;/* maks.dopuszczalna liczba zasobow */
}
/* opisuje ograniczenie na zasoby jednego typu. W przypadku liczby otwartych plikow oba pola (rlim_cur,rlim_max) inicjalizowane sa na  NR_OPEN=256*/

struct fs_struct{
	unsigned short umask;
	...
}

struct files_struct { /*informacja o otwartych plikach */
	struct file *fd[NR_OPEN];/* tablica deskryptorow */
	...
}

struct file {
	loff_t f_pos; /* pozycja od ktorej nastapi czytanie/pisanie do pliku*/
	unsigned short f_count ; /* licznik odwolan do tej pozycji w tablicy plikow */
	struct file *f_next, *f_prev; /* lista dwukierunkowa */
	struct inode * f_inode; /* wskaznik do tablicy i-wezlow */
	...
}    /* element tablicy(listy) plikow*/

struct inode {
	uid_t i_uid;
	gid_t i_gid;
	...
}    /* element tablicy i-wezlow */

Autor: Marcin Rychlik