{"id":22442955,"url":"https://github.com/veltzer/kcpp","last_synced_at":"2025-08-01T18:33:46.544Z","repository":{"id":139750093,"uuid":"2195192","full_name":"veltzer/kcpp","owner":"veltzer","description":"C++ framework for the linux kernel","archived":false,"fork":false,"pushed_at":"2024-09-18T01:56:05.000Z","size":203,"stargazers_count":32,"open_issues_count":0,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-09-18T05:38:01.698Z","etag":null,"topics":["c-plus-plus","kernel","linus-torvalds","linux","object-oriented"],"latest_commit_sha":null,"homepage":"https://www.veltzer.net","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/veltzer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["veltzer"]}},"created_at":"2011-08-12T03:58:57.000Z","updated_at":"2024-09-18T01:56:08.000Z","dependencies_parsed_at":"2023-11-18T23:24:57.884Z","dependency_job_id":"34adaa2b-27ca-482b-a9e4-c7303e3f43c1","html_url":"https://github.com/veltzer/kcpp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veltzer%2Fkcpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veltzer%2Fkcpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veltzer%2Fkcpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veltzer%2Fkcpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/veltzer","download_url":"https://codeload.github.com/veltzer/kcpp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228398589,"owners_count":17913642,"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":["c-plus-plus","kernel","linus-torvalds","linux","object-oriented"],"created_at":"2024-12-06T02:21:28.054Z","updated_at":"2025-08-01T18:33:46.533Z","avatar_url":"https://github.com/veltzer.png","language":"C","funding_links":["https://github.com/sponsors/veltzer"],"categories":[],"sub_categories":[],"readme":"## kcpp\n\nversion: 0.0.1\n\ndescription: C++ framework for the linux kernel\n\nwebsite: https://veltzer.github.io/kcpp\n\n## Build\n\n![build](https://github.com/veltzer/kcpp/workflows/build/badge.svg)\n\n\n## Contact\n\nchat with me at [![gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/veltzer/mark.veltzer)\n\nPOC for writing C++ modules for the Linux kernel\n================================================\n\nC++ has lots of issues which are not dealt with in the kernel.\n* Problems in linking.\n* Exception handling that needs to be turned off.\n* Memory management functions (like new and delete) which need to be implemented.\n* The kernel headers are not suitable for inclusion for a C++ compiler\nsince they conflict with many C++ constructs ('class' for instance and more).\n* The kernel build system does not compile C++ correctly, or even at all.\n\n* separate the \"top part\" - the one that is getting called by Linux, like driver\nentry and exit points, interrupt functions, tasklets, whatever and handle them in a C layer.\nexpose APIs for all of these facilities and other low level facilities (printk, hardware access\nand more) via C functions.\n* write a top part that only accesses these services by well controlled C functions which do\nnot include the kernel headers and are C++ friendly. In the top part write a framework for\ndevice driver writing based on OO concepts (inherit from Device and implement the relevant\nmethods).\n\n* Add ability to include header files directly in C++ code.\nProgress: have 'copy_headers' target in makefile\nwhich also applies patch but headers are still hard to\nwork with...\nThis is to be developed as a patch to the linux kernel (big project - watch out!\nmay never happen...)\n* add a framework for writing char drivers\n\n* http://code.google.com/p/kernelcpp/\nThey do not have a buffer layer but instead do \"extern C\" before kernel headers.\nTry to see if this works for a big example.\nThey have all kinds of other ideas about constructors for global object and so on.\n* http://www.drdobbs.com/cpp/c-exceptions-the-linux-kernel/229100146\n\nMark Veltzer, Copyright © 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%2Fkcpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fveltzer%2Fkcpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveltzer%2Fkcpp/lists"}