Development rules
Linus Torvalds releases a new kernel and opens a 2-week merge window, however, test-linux has no development cycle restrictions, submissions, development, and releases can be done at any time.
Sub-Directories
Each scripts directory contain scriptions(bpftrace, bcc, shell).
Each modules directory contain Linux Modules(KO) source code.
Each samples directory contain source userspace code.
Each commands directory contain relative command lines.
Each images directory contains relative images.
Files
Each README.md is current directory’s description.
Each FAQ.md is current directory’s FAQs.
Each abbrev.md and abbrev.rst is current directory’s relative abbreviation. - scripts: ./abbrev.sh to check all abbreviations.
Each history.md and history.rst is store history of some technology.
Each drawio contains relate directory diagrams.
Never call include in *.mk file, only call include in Makefile.
Each kconfig contains kernel CONFIG, each CONFIG is placed in the kconfig of the corresponding directory, and the public CONFIG is placed in the kconfig of the top-level directory. - scripts: ./kconfig.sh to check all kernel config;
Each *_helpers* is helpers program/script of current directory, better LGPL-2.1 OR BSD-2-Clause license.
Each requirements.txt is Python pip –requirement for each directory.
Ignore file (check .gitignore).
If you want to write a text Note, use .md**(**markdown).
There are so many symlinks in this repo, so you better clone this repo in linux system, if windows, oops. You’d better use make check (or ./scripts/broken-symlinks.sh) check invalid links and modify them.
Template of Test-Linux
Store all template make files of test-linux.
In the test-linux project, all Makefiles in the template directory have the .mk extension. The .mk extension better not be used in other directories.
Template Syntax
If you want to check if a feature or software exists, you need to set HAVE_ to either n or y, for example, in cuda.mk define HAVE_CUDA=y if cuda was installed in your system.
HAVE_ cannot be empty. For example, you cannot use ifdef HAVE_CUDA to determine whether CUDA is installed.
Licenses
If the source code file has a copyright information at the beginning, the copyright of the source code is the description content, otherwise, it is the copyright of the test-linux repository.
If the code does not specify, then it follows GPLv3.
BPF programs always follow GPLv2.
The copyright line format must be Copyright (C) Year-Year Author.