@@ -13,7 +13,7 @@ KSMBD architecture
13
13
The subset of performance related operations belong in kernelspace and
14
14
the other subset which belong to operations which are not really related with
15
15
performance in userspace. So, DCE/RPC management that has historically resulted
16
- into number of buffer overflow issues and dangerous security bugs and user
16
+ into a number of buffer overflow issues and dangerous security bugs and user
17
17
account management are implemented in user space as ksmbd.mountd.
18
18
File operations that are related with performance (open/read/write/close etc.)
19
19
in kernel space (ksmbd). This also allows for easier integration with VFS
@@ -24,8 +24,8 @@ ksmbd (kernel daemon)
24
24
25
25
When the server daemon is started, It starts up a forker thread
26
26
(ksmbd/interface name) at initialization time and open a dedicated port 445
27
- for listening to SMB requests. Whenever new clients make request, Forker
28
- thread will accept the client connection and fork a new thread for dedicated
27
+ for listening to SMB requests. Whenever new clients make a request, the Forker
28
+ thread will accept the client connection and fork a new thread for a dedicated
29
29
communication channel between the client and the server. It allows for parallel
30
30
processing of SMB requests(commands) from clients as well as allowing for new
31
31
clients to make new connections. Each instance is named ksmbd/1~n(port number)
@@ -34,12 +34,12 @@ thread can decide to pass through the commands to the user space (ksmbd.mountd),
34
34
currently DCE/RPC commands are identified to be handled through the user space.
35
35
To further utilize the linux kernel, it has been chosen to process the commands
36
36
as workitems and to be executed in the handlers of the ksmbd-io kworker threads.
37
- It allows for multiplexing of the handlers as the kernel take care of initiating
37
+ It allows for multiplexing of the handlers as the kernel takes care of initiating
38
38
extra worker threads if the load is increased and vice versa, if the load is
39
- decreased it destroys the extra worker threads. So, after connection is
40
- established with client. Dedicated ksmbd/1..n(port number) takes complete
39
+ decreased it destroys the extra worker threads. So, after the connection is
40
+ established with the client. Dedicated ksmbd/1..n(port number) takes complete
41
41
ownership of receiving/parsing of SMB commands. Each received command is worked
42
- in parallel i.e., There can be multiple clients commands which are worked in
42
+ in parallel i.e., there can be multiple client commands which are worked in
43
43
parallel. After receiving each command a separated kernel workitem is prepared
44
44
for each command which is further queued to be handled by ksmbd-io kworkers.
45
45
So, each SMB workitem is queued to the kworkers. This allows the benefit of load
@@ -49,9 +49,9 @@ performance by handling client commands in parallel.
49
49
ksmbd.mountd (user space daemon)
50
50
--------------------------------
51
51
52
- ksmbd.mountd is userspace process to, transfer user account and password that
52
+ ksmbd.mountd is a userspace process to, transfer the user account and password that
53
53
are registered using ksmbd.adduser (part of utils for user space). Further it
54
- allows sharing information parameters that parsed from smb.conf to ksmbd in
54
+ allows sharing information parameters that are parsed from smb.conf to ksmbd in
55
55
kernel. For the execution part it has a daemon which is continuously running
56
56
and connected to the kernel interface using netlink socket, it waits for the
57
57
requests (dcerpc and share/user info). It handles RPC calls (at a minimum few
@@ -124,7 +124,7 @@ How to run
124
124
1. Download ksmbd-tools(https://github.com/cifsd-team/ksmbd-tools/releases) and
125
125
compile them.
126
126
127
- - Refer README(https://github.com/cifsd-team/ksmbd-tools/blob/master/README.md)
127
+ - Refer to README(https://github.com/cifsd-team/ksmbd-tools/blob/master/README.md)
128
128
to know how to use ksmbd.mountd/adduser/addshare/control utils
129
129
130
130
$ ./autogen.sh
@@ -133,7 +133,7 @@ How to run
133
133
134
134
2. Create /usr/local/etc/ksmbd/ksmbd.conf file, add SMB share in ksmbd.conf file.
135
135
136
- - Refer ksmbd.conf.example in ksmbd-utils, See ksmbd.conf manpage
136
+ - Refer to ksmbd.conf.example in ksmbd-utils, See ksmbd.conf manpage
137
137
for details to configure shares.
138
138
139
139
$ man ksmbd.conf
@@ -145,7 +145,7 @@ How to run
145
145
$ man ksmbd.adduser
146
146
$ sudo ksmbd.adduser -a <Enter USERNAME for SMB share access>
147
147
148
- 4. Insert ksmbd.ko module after build your kernel. No need to load module
148
+ 4. Insert the ksmbd.ko module after you build your kernel. No need to load the module
149
149
if ksmbd is built into the kernel.
150
150
151
151
- Set ksmbd in menuconfig(e.g. $ make menuconfig)
@@ -175,7 +175,7 @@ Each layer
175
175
1. Enable all component prints
176
176
# sudo ksmbd.control -d "all"
177
177
178
- 2. Enable one of components (smb, auth, vfs, oplock, ipc, conn, rdma)
178
+ 2. Enable one of the components (smb, auth, vfs, oplock, ipc, conn, rdma)
179
179
# sudo ksmbd.control -d "smb"
180
180
181
181
3. Show what prints are enabled.
0 commit comments