version: 0.0.1
description: C++ framework for the linux kernel
website: https://veltzer.github.io/kcpp
C++ has lots of issues which are not dealt with in the kernel.
- Problems in linking.
- Exception handling that needs to be turned off.
- Memory management functions (like new and delete) which need to be implemented.
- The kernel headers are not suitable for inclusion for a C++ compiler since they conflict with many C++ constructs ('class' for instance and more).
- The kernel build system does not compile C++ correctly, or even at all.
- separate the "top part" - the one that is getting called by Linux, like driver entry and exit points, interrupt functions, tasklets, whatever and handle them in a C layer. expose APIs for all of these facilities and other low level facilities (printk, hardware access and more) via C functions.
- write a top part that only accesses these services by well controlled C functions which do not include the kernel headers and are C++ friendly. In the top part write a framework for device driver writing based on OO concepts (inherit from Device and implement the relevant methods).
- Add ability to include header files directly in C++ code. Progress: have 'copy_headers' target in makefile which also applies patch but headers are still hard to work with... This is to be developed as a patch to the linux kernel (big project - watch out! may never happen...)
- add a framework for writing char drivers
- http://code.google.com/p/kernelcpp/ They do not have a buffer layer but instead do "extern C" before kernel headers. Try to see if this works for a big example. They have all kinds of other ideas about constructors for global object and so on.
- http://www.drdobbs.com/cpp/c-exceptions-the-linux-kernel/229100146
Mark Veltzer, Copyright © 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026