All Projects → veltzer → demos-linux

veltzer / demos-linux

Licence: GPL-3.0 license
Demos for instruction and exploration of the Linux C/C++ API

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
perl
6916 projects
Makefile
30231 projects
python
139335 projects - #7 most used programming language
Mako
254 projects

Projects that are alternatives of or similar to demos-linux

Wireguard Docs
📖 Unofficial WireGuard Documentation: Setup, Usage, Configuration, and full example setups for VPNs supporting both servers & roaming clients.
Stars: ✭ 3,201 (+4003.85%)
Mutual labels:  kernel-module
rtl2dot
C call graph generator
Stars: ✭ 48 (-38.46%)
Mutual labels:  gcc
C-Cpp-Coverage-for-CLion
Get coverage data in CLion using gcov or llvm-cov
Stars: ✭ 37 (-52.56%)
Mutual labels:  gcc
Umbra
A LKM rootkit targeting 4.x and 5.x kernel versions which opens a backdoor that can spawn a reverse shell to a remote host, launch malware and more.
Stars: ✭ 98 (+25.64%)
Mutual labels:  kernel-module
rkduck
Linux v4.x.x Rootkit
Stars: ✭ 83 (+6.41%)
Mutual labels:  kernel-module
gcc-cross-compiler
A script to cross-compile GCC toolchain for various target architectures.
Stars: ✭ 32 (-58.97%)
Mutual labels:  gcc
meta-quectel-community
Yocto Layer which provides basic support for Quectel wireless modules
Stars: ✭ 25 (-67.95%)
Mutual labels:  kernel-module
pipeVFX
A Visual Effects pipeline to manage jobs, shots and software assignment, with a simple asset manager. Its extensively integrated with CortexVFX and Gaffer. (and it builds booth, with support for Maya, Houdini and Nuke, if you have then installed!)
Stars: ✭ 47 (-39.74%)
Mutual labels:  gcc
perses
Language-agnostic program reducer.
Stars: ✭ 57 (-26.92%)
Mutual labels:  gcc
PuzzleBox
Generate 3D puzzle box (OpenSCAD source)
Stars: ✭ 92 (+17.95%)
Mutual labels:  gcc
xcross
"Zero Setup" cross-compilation for C/C++. Supports numerous architectures, build systems, C standard libraries, vcpkg, and Conan.
Stars: ✭ 29 (-62.82%)
Mutual labels:  gcc
nrf24
nrf24l01 linux device driver
Stars: ✭ 20 (-74.36%)
Mutual labels:  kernel-module
iptables-uwu
iptables target that uwu's outgoing packets
Stars: ✭ 86 (+10.26%)
Mutual labels:  kernel-module
installACMModule
Install the CDC ACM and USB to Serial Modules for the Jetson TX1 or Jetson TX2 Development Kit
Stars: ✭ 28 (-64.1%)
Mutual labels:  kernel-module
homebrew-macos-cross-toolchains
macOS cross compiler toolchains
Stars: ✭ 404 (+417.95%)
Mutual labels:  gcc
msr-safe
Allows safer access to model specific registers (MSRs)
Stars: ✭ 62 (-20.51%)
Mutual labels:  kernel-module
build-gcc
Shell scripts to build various gcc cross-compilers (primarily djgpp)
Stars: ✭ 34 (-56.41%)
Mutual labels:  gcc
TraditionalMitigation
Traditional Mitigation in GCC to defend Memory Corruption Vulnerability
Stars: ✭ 16 (-79.49%)
Mutual labels:  gcc
quickstart-fortran
An easy Windows installer for GFortran and the Fortran Package Manager
Stars: ✭ 44 (-43.59%)
Mutual labels:  gcc
LinuxKernelLearn
Learn Linux Kernel Step by Step, including the Modules, FS, Device Driver etc. --- Linux内核学习,包括Linux各模块,文件系统,设备驱动文件等。
Stars: ✭ 37 (-52.56%)
Mutual labels:  kernel-module

demos-linux

version: 0.0.3

description: demos-linux is a project to demo and explore the Linux user space C/C++ API

website: https://veltzer.github.io/demos-linux

build

build

demos-linux is a project to demo and explore the Linux user space C/C++ API

contact

chat with me at gitter

This project is a source code repository for instructors or expert programmers who want to explore the Linux C/C++ API.

number of examples and their selection

Currently there are 954 examples in this repo. These are the examples I found are useful in explaining the Linux API. The idea is to provide a good coverage of all major features and to resolve disputes about exactly how a certain API works.

Topics covered by the examples

  • Multi-threading
  • Multi-processing
  • Locking
  • Calling system calls without C
  • Performance
  • Coding in assembly
  • Various compiler directives
  • Many more...

Platforms supported

Only ia64 is supported. I used to support i386 but I don't have a 32 bit machine anymore. Other platforms will be supported if someone is willing to do the work and submit the patches.

Contributing

This project needs help. fork, commit and request me to pull. Just open a github account, modify and add examples, commit and ask me to pull... A lot of the code is documented but some of it is not. More documentation would be welcome. I would give attribution to whomever contributes.

License

Code is licensed GPL3 and I hold the copyright unless explicity stolen as attributed in the source code. I encourage people to use this source code as aid for instructing courses. Please give me some credit if you do wind up using this package and consider dropping me a note about the fact that you did use the package so I could feel good...

Similar projects

Michael Kerrisk, the maintainer and author of many of the Linux manual pages has a similar project he calls TLPI (The Linux Programming Interface) of programs he used in his book of the same title. You can find it here http://man7.org/tlpi/code/.

Using it

  • you need python on your machine: try: python --version if python is missing then: for deb based distributions (debian, ubuntu, ...) do: sudo apt-get install python for rpm based distributions (fedora, redhat, centos,...) do: sudo yum install python
  • clone the examples: git clone [email protected]:veltzer/demos-linux.git
  • cd into it: cd demos-linux
  • install the missing packages and headers needed to compile and run this project ./scripts/ubuntu_install.py Mind you this only works for 15.10 and will install a ton of stuff. If you don't want this ton of installations and only want to checkout specific examples compile the individual examples as described below. if you are on a different Linux distribution try to get as much of these for your platform as you can. If you really into contributing I would love a redhat_install.py or some such... then use make
  • compiling a specific example make src/examples/performance/cache_misser.elf the name of the elf binary is the same as the example source code with .elf instead of .[c|cc]. You must be at the root of the project to issue the make command.
  • the most important part: tweak the examples, try to prove me (my comments) wrong, have fun!

Mark Veltzer, Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022

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].