fwsgonzo / barebones Goto Github PK
View Code? Open in Web Editor NEWBarebones multiboot kernel for beginners
Barebones multiboot kernel for beginners
I have added support for ubsan now, however there is a problem with using clang, as its referencing some C++ typeid structures. I tried adding -fno-sanitize=vptr
, but it had no effect on linking.
hello,
Get this error when trying to build_iso.sh on MacOS
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/thierry/Dev/barebones/machines/default/build
Scanning dependencies of target exceptions
Scanning dependencies of target tinyprintf
[ 7%] Building C object ext/CMakeFiles/tinyprintf.dir/tinyprintf/tinyprintf.c.o
[ 7%] Creating directories for 'exceptions'
[ 11%] Performing download step (download, verify and extract) for 'exceptions'
-- Downloading...
dst='/Users/thierry/Dev/barebones/machines/default/build/exceptions/src/exceptions.zip'
timeout='none'
-- Using src='https://github.com/fwsGonzo/barebones/releases/download/exceptions/exceptions.zip'
[ 14%] Linking C static library libtinyprintf.a
[ 14%] Built target tinyprintf
Scanning dependencies of target kernel
[ 25%] Building C object src/CMakeFiles/kernel.dir/hw/serial1.c.o
[ 25%] Building C object src/CMakeFiles/kernel.dir/crt/c_abi.c.o
[ 25%] Building C object src/CMakeFiles/kernel.dir/kernel/kernel_start.c.o
/Users/thierry/Dev/barebones/src/hw/serial1.c:4:48: error: argument to 'section' attribute is not valid for this target: mach-o section specifier requires a segment and
section separated by a comma
static char initialized attribute((section(".data"))) = 0;
^
1 error generated.
make[2]: *** [src/CMakeFiles/kernel.dir/hw/serial1.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/Users/thierry/Dev/barebones/src/kernel/kernel_start.c:6:13: warning: unused function '__init_paging' [-Wunused-function]
static void __init_paging()
^
1 warning generated.
A glaring flaw is the lack of a 512b minimal bootloader that ATA loads the kernel to its dest and then enters protected and jumps to _start. One reason to add one is the extra swag of having very very tiny kernels that still can do stuff.
Several problems:
In short, it may just not be worth it.
I can't find any mention of the license in the repository, which one is it? Is it public domain or something more restrictive?
There is a case for bundling libcxxabi with the project so that we can potentially enable RTTI and exceptions in C++. This will come at a cost in binary size, for the most part, but it will at the very least be a CMake option. Sadly, the archive may have to be compiled beforehand and bundled as a download.
The archive will likely bring in a few extra dependencies on C standard functions.
There is clearly a problem with gc-sections and 32-bit builds. Does not enter kernel_start properly, so it's a linker, alignment or both issue.
How did you compile libc++abi.a and libgcc.a?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.