All Projects → namjaejeon → Cifsd

namjaejeon / Cifsd

cifsd kernel server(SMB/CIFS server)

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Cifsd

Nock Nock
🚪 Monitor and validate your websites to maintain maximum uptime.
Stars: ✭ 339 (+346.05%)
Mutual labels:  server, network
Open Shell Book
开源书籍:《Shell 编程范例》,面向操作对象学 Shell!本书作者发布了《360°剖析 Linux ELF》视频课程,欢迎订阅:https://www.cctalk.com/m/group/88089283
Stars: ✭ 666 (+776.32%)
Mutual labels:  network, filesystem
Dwarfs
A fast high compression read-only file system
Stars: ✭ 444 (+484.21%)
Mutual labels:  filesystem, performance
Linux Network Performance Parameters
Learn where some of the network sysctl variables fit into the Linux/Kernel network flow
Stars: ✭ 3,112 (+3994.74%)
Mutual labels:  network, performance
Clientserverproject
一个C-S模版,该模版由三部分的程序组成,一个服务端运行的程序,一个客户端运行的程序,还有一个公共的组件,实现了基础的账户管理功能,版本控制,软件升级,公告管理,消息群发,共享文件上传下载,批量文件传送功能。具体的操作方法见演示就行。本项目的一个目标是:提供一个基础的中小型系统的C-S框架,客户端有三种模式,无缝集成访问,winform版本,wpf版本,asp.net mvc版本,方便企业进行中小型系统的二次开发和个人学习。同时网络组件方便的支持读写三菱和西门子PLC的数据,详细见Readme
Stars: ✭ 873 (+1048.68%)
Mutual labels:  server, network
Laravel S
LaravelS is an out-of-the-box adapter between Swoole and Laravel/Lumen.
Stars: ✭ 3,479 (+4477.63%)
Mutual labels:  server, performance
React Adaptive Hooks
Deliver experiences best suited to a user's device and network constraints
Stars: ✭ 4,750 (+6150%)
Mutual labels:  network, performance
Rayo.js
Micro framework for Node.js
Stars: ✭ 170 (+123.68%)
Mutual labels:  server, performance
Vssh
Go Library to Execute Commands Over SSH at Scale
Stars: ✭ 707 (+830.26%)
Mutual labels:  server, network
Node Minecraft Protocol
Parse and serialize minecraft packets, plus authentication and encryption.
Stars: ✭ 697 (+817.11%)
Mutual labels:  server, network
Glusterfs
Gluster Filesystem : Build your distributed storage in minutes
Stars: ✭ 3,437 (+4422.37%)
Mutual labels:  server, filesystem
Go Raknet
An idiomatic Go library implementing a basic version of the RakNet protocol.
Stars: ✭ 40 (-47.37%)
Mutual labels:  server, network
Spark
spark is a performance profiling plugin/mod for Minecraft clients, servers and proxies.
Stars: ✭ 287 (+277.63%)
Mutual labels:  server, performance
Akarin
Akarin is a powerful (not yet) server software from the 'new dimension'
Stars: ✭ 332 (+336.84%)
Mutual labels:  server, performance
Zserver4d
ZServer4D 是一套从商业项目剥离而出的云服务器中间件,可以承载百万级的分布式负载服务,并且支持IoT及内网穿透
Stars: ✭ 199 (+161.84%)
Mutual labels:  server, network
Iris
The fastest HTTP/2 Go Web Framework. AWS Lambda, gRPC, MVC, Unique Router, Websockets, Sessions, Test suite, Dependency Injection and more. A true successor of expressjs and laravel | 谢谢 https://github.com/kataras/iris/issues/1329 |
Stars: ✭ 21,587 (+28303.95%)
Mutual labels:  server, performance
Router
⚡️ A lightning fast HTTP router
Stars: ✭ 158 (+107.89%)
Mutual labels:  server, performance
Simplenet
An easy-to-use, event-driven, asynchronous network application framework compiled with Java 11.
Stars: ✭ 164 (+115.79%)
Mutual labels:  server, network
Vibora
Fast, asynchronous and elegant Python web framework.
Stars: ✭ 5,734 (+7444.74%)
Mutual labels:  server, performance
Tinytcpserver
A small tcp server working under Mono or .NET (4.0) and provides hooks for handling data exchange with clients (works under mono and .net). Behaviour/protocol/reaction could be specified via custom C# script.
Stars: ✭ 14 (-81.58%)
Mutual labels:  server, network

Content

What is CIFSD?

CIFSD is an opensource In-kernel CIFS/SMB3 server created by Namjae Jeon for Linux Kernel. It's an implementation of SMB/CIFS protocol in kernel space for sharing files and IPC services over network. Initially the target is to provide improved file I/O performances, but the bigger goal is to have some new features which are much easier to develop and maintain inside the kernel and expose the layers fully. Directions can be attributed to sections where SAMBA is moving to few modules inside the kernel to have features like RDMA(Remote direct memory access) to work with actual performance gain.

Under PFIF

This code was developed in participation with the Protocol Freedom Information Foundation.

Please see

Git

The development git tree is available at

Maintainers

Bug reports or contribution

For reporting bugs and sending patches, please send the patches to the following mail address:

or open issues/send PRs to CIFSD.

linux-cifsd-devel mailing list subscription

For subscribing to maling list, Insert your mail and info after accessing the following address:

Installing as a stand-alone module

Install prerequisite package for Fedora, RHEL:

	yum install kernel-devel-$(uname -r)

Build step:

	make
	sudo make install

To load the driver manually, run this as root:

	modprobe ksmbd

Installing as a part of the kernel

  1. Let's take [linux] as the path to your kernel source dir.
	cd [linux]
	cp -ar cifsd [linux]/fs/
  1. edit [linux]/fs/Kconfig
	source "fs/cifs/Kconfig"
	+source "fs/cifsd/Kconfig"
	source "fs/coda/Kconfig"
  1. edit [linux]/fs/Makefile
	obj-$(CONFIG_CIFS)              += cifs/
	+obj-$(CONFIG_SMB_SERVER)       += cifsd/
	obj-$(CONFIG_HPFS_FS)           += hpfs/
  1. make menuconfig and set cifsd
	[*] Network File Systems  --->
		<M>   SMB server support

build your kernel

Features

Implemented

  1. SMB1(CIFS), SMB2/3 protocols for basic file sharing
  2. Dynamic crediting
  3. Compound requests
  4. oplock/lease
  5. Large MTU
  6. NTLM/NTLMv2
  7. Auto negotiation
  8. HMAC-SHA256 Signing
  9. Secure negotiate
  10. Signing Update
  11. Pre-authentication integrity(SMB 3.1.1)
  12. SMB3 encryption(CCM, GCM)
  13. SMB direct(RDMA)
  14. Win-ACL
  15. Kerberos

Planned

  1. Multi-channel
  2. Durable handle v1/v2
  3. Persistent handles
  4. Directory lease

Supported Linux Kernel Versions

  • Linux Kernel 4.1 or later

CIFSD architecture

               |--- ...
       --------|--- ksmbd/3 - Client 3
       |-------|--- ksmbd/2 - Client 2
       |       |         _____________________________________________________
       |       |        |- Client 1                                           |
<--- Socket ---|--- ksmbd/1   <<= Authentication : NTLM/NTLM2, Kerberos(TODO)|
       |       |      | |      <<= SMB : SMB1, SMB2, SMB2.1, SMB3, SMB3.0.2,  |
       |       |      | |                SMB3.1.1                             |
       |       |      | |_____________________________________________________|
       |       |      |
       |       |      |--- VFS --- Local Filesystem
       |       |
KERNEL |--- ksmbd/0(forker kthread)
---------------||---------------------------------------------------------------
USER           ||
               || communication using NETLINK
               ||  ______________________________________________
               || |                                              |
        ksmbd.mountd <<= DCE/RPC, WINREG                         |
               ^  |  <<= configure shares setting, user accounts |
               |  |______________________________________________|
               |
               |------ smb.conf(config file)
               |
               |------ ksmbdpwd.db(user account/password file)
                            ^
  ksmbd.adduser ---------------|

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].