-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
99 lines (74 loc) · 2.93 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
CSE 506 - Operating Systems Assignment 2
Author : Meng-Chieh Yang
ID : 110452591
Date : 11/01/16
* File:
/usr/src/hw2-mengyang/fs/trfs/
- record.h: defined record structure, operation message, MACRO for checking bitmap.
- trctl.h : defined TRCTL magic number, defined action name (ALL, NONE, BITMAP, RETRIEVE)
- trfs.h : added SUPER_MAGIC Number, add new structures.
- main.c : modified to accept mounting option.
- lookup.c: modified function name.
- mmap.c : modified function name.
- super.c : modified trfs_put_super.
- dentry.c: modified function name.
- inode.c : modified function for tracing.
- file.c : added trfs_record function for recording operations, modified function for tracing.
- install.sh: provide a quickier way to load and mount our file system.
- remove.sh : provide a quickier way to unload and umount our file system.
/usr/src/hw2-mengyang/hw2/
- record.h : same as "record.h" at hw2-mengyang/fs/trfs/.
- trctl.h : same as "trctl.h" at hw2-mengyang/fs/trfs/.
- trctl.c : user level application for bitmap.
- treplay.c: only implemented reading binary data part.
- test/* : here are some test files you can use to test the file system.
* Mount:
At /usr/src/hw2-mengyang/fs/trfs/
two methods: 1) use install.sh 2) step-by-step
1) Use install.sh:
- sh install.sh
2) Step-by-step:
- make
- insmod trfs.ko
- mount your system at some /lower/path/
- mount -t trfs -o tfile=/output/file/path /lower/path/ /mnt/trfs/
in our example, we use tfile=/tmp/tfile1.txt as our output path(should be an empty file).
* Umount:
At /usr/src/hw2-mengyang/fs/trfs/
two methods: 1) use remove.sh 2) step-by-step
1) Use remove.sh:
- sh remove.sh
2) Step-by-step
- umount /mnt/trfs/
- umount /lower/path/
- rmmod trfs
* Usage:
1) When at /usr/src/hw2-mengyang/hw2/:
first use make to make .o file
for controling what operations you want to trace, use
./trctl [CMD] /mnt/trfs
where CMD can be
- none: tracing nothing (0x00000000)
- all: tracing everything (0xffffffff)
- 0xNNNNNNNN: tracing some specific operations
To be specific:
- 0x00000001: only open
- 0x00000002: only close
- 0x00000004: only read
- 0x00000008: only write
- 0x00000010: only create
- 0x00000020: only remove
can be tracing, or you can use any combination like 0x00000011 to record open and create.
if use
./trctl /mnt/trfs
then if will retrieve the current bitmap and show you in hex format.
(The default of bitmap is 0xffffffff, which is to record everything.)
2) trfs will trace every desired operations in mounting path(/mnt/trfs in our example), and
write these records into tfile path (/tmp/tfile1.txt in our example) in binary format.
3) to test trfs, you can use the files in /usr/src/hw2-mengyang/hw2/test/ and use
sh test1.sh
and use dmesg for checking message.
4) wehn at /usr/src/hw2-mengyang/hw2/:
one can use
./treplay [-ns] /tmp/tfile1.txt
to show the record data (binary format)