{"id":22442939,"url":"https://github.com/veltzer/demos-linux","last_synced_at":"2025-04-05T13:08:45.394Z","repository":{"id":2880288,"uuid":"3886665","full_name":"veltzer/demos-linux","owner":"veltzer","description":"demos-linux is a project to demo and explore the Linux user space C/C++ API","archived":false,"fork":false,"pushed_at":"2024-10-17T09:17:52.000Z","size":39089,"stargazers_count":91,"open_issues_count":0,"forks_count":43,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-10-20T09:12:49.169Z","etag":null,"topics":["api","c","c-plus-plus","demos","examples","kernel","linux","samples","userspace"],"latest_commit_sha":null,"homepage":"http://veltzer.github.io/demos-linux/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/veltzer.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/astyle.cfg","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["veltzer"]}},"created_at":"2012-03-31T16:19:40.000Z","updated_at":"2024-10-17T09:17:55.000Z","dependencies_parsed_at":"2023-11-07T11:24:30.141Z","dependency_job_id":"982a8301-f3fa-49ba-8844-96a2e3ebf9f6","html_url":"https://github.com/veltzer/demos-linux","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veltzer%2Fdemos-linux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veltzer%2Fdemos-linux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veltzer%2Fdemos-linux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veltzer%2Fdemos-linux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/veltzer","download_url":"https://codeload.github.com/veltzer/demos-linux/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339158,"owners_count":20923014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","c","c-plus-plus","demos","examples","kernel","linux","samples","userspace"],"created_at":"2024-12-06T02:21:23.750Z","updated_at":"2025-04-05T13:08:45.373Z","avatar_url":"https://github.com/veltzer.png","language":"C++","funding_links":["https://github.com/sponsors/veltzer"],"categories":[],"sub_categories":[],"readme":"## demos-linux\n\nversion: 0.0.1\n\ndescription: demos-linux is a project to demo and explore the Linux user space C/C++ API\n\nwebsite: https://veltzer.github.io/demos-linux\n\n## Build\n\n![build](https://github.com/veltzer/demos-linux/workflows/build/badge.svg)\n\ndemos-linux is a project to demo and explore the Linux user space C/C++ API\n\n## Contact\n\nchat with me at [![gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/veltzer/mark.veltzer)\n\nThis project is a source code repository for instructors or expert programmers\nwho want to explore the Linux C/C++ API.\n\n## Number of examples and their selection\n\nCurrently there are 1066 examples in this repo.\nThese are the examples I found are useful in explaining the Linux API.\nThe idea is to provide a good coverage of all major features and to resolve disputes\nabout exactly how a certain API works.\n\n## Topics covered by the examples\n* Multi-threading\n* Multi-processing\n* Locking\n* Calling system calls without C\n* Performance\n* Coding in assembly\n* Various compiler directives\n* Many more...\n\n## Platforms supported\nOnly ia64 is supported. I used to support i386 but I don't have a 32 bit\nmachine anymore.\nOther platforms will be supported if someone is willing to do the work and submit\nthe patches.\n\n## Contributing\nThis project needs help. fork, commit and request me to pull.\nJust open a github account, modify and add examples, commit and ask me to pull...\nA lot of the code is documented but some of it is not. More documentation would be welcome.\nI would give attribution to whomever contributes.\n\n## License\nCode is licensed GPL3 and I hold the copyright unless explicity stolen as attributed in the source code.\nI encourage people to use this source code as aid for instructing courses.\nPlease give me some credit if you do wind up using this package and consider dropping\nme a note about the fact that you did use the package so I could feel good...\n\n## Similar projects\n* Michael Kerrisk, the maintainer and author of many of the Linux manual pages has a similar project he calls\nTLPI (The Linux Programming Interface) of programs he used in his book of the same title. You can find\nit here http://man7.org/tlpi/code/.\n* https://github.com/bradfa/tlpi-dist\n* https://github.com/dev-area/linux\n* https://github.com/tsuna/contextswitch\n* https://github.com/gurugio/lowlevelprogramming-university\n* https://github.com/devendranaga/linux-systems-programming-with-c\n* https://github.com/devendranaga/gists\n* https://github.com/PacktPublishing/Linux-Kernel-Programming\n* https://github.com/beejjorgensen/bgnet\n* https://github.com/yuzhidi/AdvancedLinuxProgramming\n* https://github.com/Light-City/CPlusPlusThings\n* https://github.com/AnthonyCalandra/modern-cpp-features\n* https://github.com/angrave/SystemProgramming/wiki\n\n## Using it\n* you need python on your machine:\n    try:\n        `python --version`\n    if python is missing then:\n        for deb based distributions (debian, ubuntu, ...) do:\n            `sudo apt-get install python`\n        for rpm based distributions (fedora, redhat, centos,...) do:\n            `sudo yum install python`\n* clone the examples: `git clone https://github.com/veltzer/demos-linux.git`\n* cd into it: `cd demos-linux`\n* install the missing packages and headers needed to compile and run this project `./scripts/ubuntu_install.py`\n    Mind you this only works for 15.10 and will install a ton of stuff.\n    If you don't want this ton of installations and only want to checkout specific examples\n    compile the individual examples as described below.\n    if you are on a different Linux distribution try to get as much of these for your platform\n    as you can. If you really into contributing I would love a `redhat_install.py` or some such...\n    then use `make`\n* compiling a specific example\n        `make src/examples/performance/cache_misser.elf`\n    the name of the elf binary is the same as the example source code with .elf instead of\n    .[c|cc].\n    You must be at the root of the project to issue the `make` command.\n* the most important part: tweak the examples, try to prove me (my comments) wrong, have fun!\n\nMark Veltzer, Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveltzer%2Fdemos-linux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fveltzer%2Fdemos-linux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveltzer%2Fdemos-linux/lists"}