xref: /freebsd/sys/README.md (revision fe3e92e6868dce2ed94c98428b8df1f27ed3ef63)
1FreeBSD Kernel Source:
2----------------------
3
4This directory contains the source files and build glue that make up the FreeBSD
5kernel and its modules, including both original and contributed software.
6
7Kernel configuration files are located in the `conf/` subdirectory of each
8architecture. `GENERIC` is the configuration used in release builds. `NOTES`
9contains documentation of all possible entries. `LINT` is a compile-only
10configuration used to maximize build coverage and detect regressions.
11
12Documentation:
13--------------
14
15Source code documentation is maintained in a set of man pages, under section 9.
16These pages are located in [`share/man/man9`](../share/man/man9), from the
17top-level of the src tree. Consult [`intro(9)`](https://man.freebsd.org/intro/9)
18for an overview of existing pages.
19
20Some additional high-level documentation of the kernel is maintained in the
21[Architecture Handbook](https://docs.freebsd.org/en/books/arch-handbook/).
22
23Source Roadmap:
24---------------
25| Directory | Description |
26| --------- | ----------- |
27| amd64 | AMD64 (64-bit x86) architecture support |
28| arm | 32-bit ARM architecture support |
29| arm64 | 64-bit ARM (AArch64) architecture support |
30| bsm | Basic Security Module headers - `audit(4)` and `bsm(3)` |
31| cam | Common Access Method storage subsystem - `cam(4)` and `ctl(4)` |
32| cddl | CDDL-licensed optional sources such as DTrace |
33| compat | Linux compatibility layer, FreeBSD 32-bit compatibility |
34| conf | kernel build glue |
35| contrib | 3rd-party imported software such as OpenZFS |
36| crypto | crypto drivers |
37| ddb | interactive kernel debugger - `ddb(4)` |
38| dev | device drivers and other arch independent code |
39| dts | FreeBSD-specific device tree sources |
40| fs | most filesystems, excluding UFS, NFS, and ZFS |
41| gdb | kernel remote GDB stub - `gdb(4)` |
42| geom | GEOM framework - `geom(4)` |
43| gnu | GPL-licensed sources |
44| i386 | i386 (32-bit x86) architecture support |
45| isa | PC ISA bus implementation |
46| kern | main part of the kernel |
47| kgssapi | kernel-space GSSAPI implementation |
48| libkern | libc-like and other support functions for kernel use |
49| modules | kernel module infrastructure |
50| net | core networking code |
51| net80211 | wireless networking (IEEE 802.11) - `net80211(4)` |
52| netgraph | graph-based networking subsystem - `netgraph(4)` |
53| netinet | IPv4 protocol implementation - `inet(4)` |
54| netinet6 | IPv6 protocol implementation - `inet6(4)` |
55| netipsec | IPsec protocol implementation - `ipsec(4)` |
56| netlink | kernel network configuration protocol - `netlink(4)` |
57| netpfil | packet filters - `ipfw(4)`, `pf(4)`, and `ipfilter(4)` |
58| netsmb | Server Message Block protocol implementation |
59| nfs | common code and headers for Network File System |
60| nfsclient | NFS client implementation for mounting and stats |
61| nfsserver | NFS server implementation for exporting local filesystems to network |
62| nlm | Network Lock Management protocol implementation |
63| ofed | OpenFabrics Enterprise Distribution implementation |
64| opencrypto | OpenCrypto framework - `crypto(7)` |
65| powerpc | PowerPC/POWER (32 and 64-bit) architecture support |
66| riscv | 64-bit RISC-V architecture support |
67| rpc | Open Network Computing Remote Procedure Call implementation - `rpc(3)` |
68| security | security facilities - `audit(4)` and `mac(4)` |
69| sys | kernel headers |
70| teken | terminal emulation interface implementation - `teken(3)` |
71| tests | kernel unit tests |
72| tools | kernel build scripts and utilities |
73| ufs | Unix File System - `ffs(4)` |
74| vm | virtual memory system |
75| x86 | code shared by AMD64 and i386 architectures |
76| xdr | External Data Representation implementation - `xdr(3)` |
77| xen | Xen hypervisor support - `xen(4)` |
78