aboutsummaryrefslogtreecommitdiffstats
path: root/imgs
diff options
context:
space:
mode:
authorWe-unite <3205135446@qq.com>2024-08-19 19:41:01 +0800
committerWe-unite <3205135446@qq.com>2024-08-22 14:12:01 +0800
commitf9f8f35ccd8b505a827d40f95c52ed039512b79d (patch)
tree241c393f6b865958191df802cd112f26d40dddc4 /imgs
parentae4957b41156d576e849ec0424edd4d89d8d49f2 (diff)
downloadgodo-f9f8f35ccd8b505a827d40f95c52ed039512b79d.tar.gz
godo-f9f8f35ccd8b505a827d40f95c52ed039512b79d.zip
Write documents of the program.
Add README.md on the design of the whole program, and how its every part(listener, filter) works, finally how to compile and use them. Besides, notes.md records the things and technology learned in this program, such as how to read kernel src, how the pthread_create/fork/ clone syscall works on processes and threads, the techs used to make docker container works well, and books to be read. Good good study, day day up.
Diffstat (limited to '')
-rw-r--r--imgs/all.drawio67
-rw-r--r--imgs/listener.drawio106
2 files changed, 173 insertions, 0 deletions
diff --git a/imgs/all.drawio b/imgs/all.drawio
new file mode 100644
index 0000000..acfa35d
--- /dev/null
+++ b/imgs/all.drawio
@@ -0,0 +1,67 @@
1<mxfile host="65bd71144e">
2 <diagram id="I_XTTxZs5cPDDl4HmgJE" name="第 1 页">
3 <mxGraphModel dx="1038" dy="446" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
4 <root>
5 <mxCell id="0"/>
6 <mxCell id="1" parent="0"/>
7 <mxCell id="2" value="&lt;font face=&quot;Comic Sans MS&quot; style=&quot;font-size: 18px;&quot;&gt;Linux kernel&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
8 <mxGeometry x="140" y="710" width="640" height="110" as="geometry"/>
9 </mxCell>
10 <mxCell id="4" value="listener&lt;br&gt;(godo)" style="rounded=1;whiteSpace=wrap;html=1;fontFamily=Comic Sans MS;fontSize=18;" vertex="1" parent="1">
11 <mxGeometry x="140" y="450" width="160" height="180" as="geometry"/>
12 </mxCell>
13 <mxCell id="10" value="" style="endArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=0;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="4">
14 <mxGeometry relative="1" as="geometry">
15 <mxPoint x="240" y="670" as="sourcePoint"/>
16 <mxPoint x="340" y="670" as="targetPoint"/>
17 </mxGeometry>
18 </mxCell>
19 <mxCell id="11" value="connector" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="10">
20 <mxGeometry relative="1" as="geometry"/>
21 </mxCell>
22 <mxCell id="12" value="" style="endArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="4">
23 <mxGeometry relative="1" as="geometry">
24 <mxPoint x="240" y="670" as="sourcePoint"/>
25 <mxPoint x="340" y="670" as="targetPoint"/>
26 </mxGeometry>
27 </mxCell>
28 <mxCell id="13" value="audit log" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="12">
29 <mxGeometry relative="1" as="geometry"/>
30 </mxCell>
31 <mxCell id="19" value="" style="endArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="30">
32 <mxGeometry relative="1" as="geometry">
33 <mxPoint x="570" y="480" as="sourcePoint"/>
34 <mxPoint x="345" y="340" as="targetPoint"/>
35 </mxGeometry>
36 </mxCell>
37 <mxCell id="20" value="infos" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="19">
38 <mxGeometry relative="1" as="geometry"/>
39 </mxCell>
40 <mxCell id="22" value="filter" style="rounded=1;whiteSpace=wrap;html=1;fontFamily=Comic Sans MS;fontSize=18;" vertex="1" parent="1">
41 <mxGeometry x="380" y="450" width="160" height="180" as="geometry"/>
42 </mxCell>
43 <mxCell id="26" value="" style="endArrow=classic;startArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="22" target="30">
44 <mxGeometry width="50" height="50" relative="1" as="geometry">
45 <mxPoint x="560" y="490" as="sourcePoint"/>
46 <mxPoint x="400" y="410" as="targetPoint"/>
47 </mxGeometry>
48 </mxCell>
49 <mxCell id="27" value="Viewer" style="rounded=1;whiteSpace=wrap;html=1;fontFamily=Comic Sans MS;fontSize=18;" vertex="1" parent="1">
50 <mxGeometry x="650" y="450" width="130" height="180" as="geometry"/>
51 </mxCell>
52 <mxCell id="29" value="" style="endArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="30" target="27">
53 <mxGeometry width="50" height="50" relative="1" as="geometry">
54 <mxPoint x="455" y="340" as="sourcePoint"/>
55 <mxPoint x="670" y="530" as="targetPoint"/>
56 </mxGeometry>
57 </mxCell>
58 <mxCell id="30" value="mongoDB" style="shape=datastore;whiteSpace=wrap;html=1;fontFamily=Comic Sans MS;fontSize=18;" vertex="1" parent="1">
59 <mxGeometry x="400" y="260" width="120" height="140" as="geometry"/>
60 </mxCell>
61 <mxCell id="32" value="" style="shape=actor;whiteSpace=wrap;html=1;fontFamily=Comic Sans MS;fontSize=18;" vertex="1" parent="1">
62 <mxGeometry x="827" y="500" width="60" height="85" as="geometry"/>
63 </mxCell>
64 </root>
65 </mxGraphModel>
66 </diagram>
67</mxfile> \ No newline at end of file
diff --git a/imgs/listener.drawio b/imgs/listener.drawio
new file mode 100644
index 0000000..3c7408e
--- /dev/null
+++ b/imgs/listener.drawio
@@ -0,0 +1,106 @@
1<mxfile host="65bd71144e">
2 <diagram id="bYij1YhiqdmEnY_ocicr" name="第 1 页">
3 <mxGraphModel dx="2344" dy="652" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
4 <root>
5 <mxCell id="0"/>
6 <mxCell id="1" parent="0"/>
7 <mxCell id="35" value="&lt;font style=&quot;font-size: 18px;&quot; face=&quot;Comic Sans MS&quot;&gt;mongodb&lt;/font&gt;" style="shape=datastore;whiteSpace=wrap;html=1;" vertex="1" parent="1">
8 <mxGeometry x="1010" y="80" width="120" height="320" as="geometry"/>
9 </mxCell>
10 <mxCell id="37" value="&lt;font style=&quot;font-size: 18px;&quot; face=&quot;Comic Sans MS&quot;&gt;1. listen to the audit,&lt;br&gt;pass msg down&lt;/font&gt;" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
11 <mxGeometry x="195" y="110" width="160" height="90" as="geometry"/>
12 </mxCell>
13 <mxCell id="38" value="&lt;font face=&quot;Comic Sans MS&quot; style=&quot;font-size: 18px;&quot;&gt;2. Organize recvd msg into events by transection number&lt;/font&gt;" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
14 <mxGeometry x="420" y="110" width="210" height="90" as="geometry"/>
15 </mxCell>
16 <mxCell id="39" value="&lt;font face=&quot;Comic Sans MS&quot; style=&quot;font-size: 18px;&quot;&gt;3. Listen to the kernel connector, gets fork/exit events, pass them down&lt;/font&gt;" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
17 <mxGeometry x="355" y="290" width="275" height="90" as="geometry"/>
18 </mxCell>
19 <mxCell id="40" value="&lt;font style=&quot;font-size: 18px;&quot; face=&quot;Comic Sans MS&quot;&gt;4. Deal with events recvd, push pid/file info into db&lt;/font&gt;" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
20 <mxGeometry x="730" y="110" width="150" height="270" as="geometry"/>
21 </mxCell>
22 <mxCell id="42" value="&lt;font face=&quot;Comic Sans MS&quot; style=&quot;font-size: 18px;&quot;&gt;Linux kernel&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
23 <mxGeometry x="-30" y="110" width="100" height="270" as="geometry"/>
24 </mxCell>
25 <mxCell id="44" value="" style="endArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="42" target="37">
26 <mxGeometry relative="1" as="geometry">
27 <mxPoint x="100" y="180" as="sourcePoint"/>
28 <mxPoint x="240" y="190" as="targetPoint"/>
29 </mxGeometry>
30 </mxCell>
31 <mxCell id="45" value="audit log" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="44">
32 <mxGeometry relative="1" as="geometry"/>
33 </mxCell>
34 <mxCell id="46" value="audit" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="44">
35 <mxGeometry x="-1" relative="1" as="geometry"/>
36 </mxCell>
37 <mxCell id="47" value="" style="endArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" edge="1" parent="1" source="42" target="39">
38 <mxGeometry relative="1" as="geometry">
39 <mxPoint x="80" y="190" as="sourcePoint"/>
40 <mxPoint x="240" y="190" as="targetPoint"/>
41 </mxGeometry>
42 </mxCell>
43 <mxCell id="48" value="process" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="47">
44 <mxGeometry relative="1" as="geometry"/>
45 </mxCell>
46 <mxCell id="49" value="netlink&lt;br&gt;connector" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="47">
47 <mxGeometry x="-1" relative="1" as="geometry"/>
48 </mxCell>
49 <mxCell id="50" value="" style="endArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="37" target="38">
50 <mxGeometry width="50" height="50" relative="1" as="geometry">
51 <mxPoint x="370" y="220" as="sourcePoint"/>
52 <mxPoint x="420" y="170" as="targetPoint"/>
53 </mxGeometry>
54 </mxCell>
55 <mxCell id="52" value="" style="endArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="39" target="40">
56 <mxGeometry relative="1" as="geometry">
57 <mxPoint x="770" y="190" as="sourcePoint"/>
58 <mxPoint x="870" y="190" as="targetPoint"/>
59 </mxGeometry>
60 </mxCell>
61 <mxCell id="53" value="Events" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="52">
62 <mxGeometry relative="1" as="geometry"/>
63 </mxCell>
64 <mxCell id="54" value="" style="endArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" edge="1" parent="1" source="38" target="40">
65 <mxGeometry relative="1" as="geometry">
66 <mxPoint x="770" y="190" as="sourcePoint"/>
67 <mxPoint x="770" y="180" as="targetPoint"/>
68 </mxGeometry>
69 </mxCell>
70 <mxCell id="55" value="Events" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="54">
71 <mxGeometry relative="1" as="geometry"/>
72 </mxCell>
73 <mxCell id="56" value="" style="endArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="42" target="39">
74 <mxGeometry relative="1" as="geometry">
75 <mxPoint x="270" y="280" as="sourcePoint"/>
76 <mxPoint x="430" y="280" as="targetPoint"/>
77 </mxGeometry>
78 </mxCell>
79 <mxCell id="57" value="process info" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="56">
80 <mxGeometry relative="1" as="geometry"/>
81 </mxCell>
82 <mxCell id="58" value="/proc fs" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="56">
83 <mxGeometry x="-1" relative="1" as="geometry"/>
84 </mxCell>
85 <mxCell id="63" value="" style="endArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0.053;entryY=0.302;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="40" target="35">
86 <mxGeometry relative="1" as="geometry">
87 <mxPoint x="780" y="280" as="sourcePoint"/>
88 <mxPoint x="880" y="280" as="targetPoint"/>
89 </mxGeometry>
90 </mxCell>
91 <mxCell id="64" value="pid info" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="63">
92 <mxGeometry relative="1" as="geometry"/>
93 </mxCell>
94 <mxCell id="65" value="" style="endArrow=classic;html=1;fontFamily=Comic Sans MS;fontSize=18;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0.067;entryY=0.727;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="40" target="35">
95 <mxGeometry relative="1" as="geometry">
96 <mxPoint x="780" y="280" as="sourcePoint"/>
97 <mxPoint x="880" y="280" as="targetPoint"/>
98 </mxGeometry>
99 </mxCell>
100 <mxCell id="66" value="file change&lt;br&gt;info" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;fontFamily=Comic Sans MS;fontSize=18;" connectable="0" vertex="1" parent="65">
101 <mxGeometry relative="1" as="geometry"/>
102 </mxCell>
103 </root>
104 </mxGraphModel>
105 </diagram>
106</mxfile> \ No newline at end of file