Talk:Meaty Skeleton
2016-09-02 Changes
Hello. I'm am modernizing Meaty Skeleton a bunch. The list of changes is too big for the summary field, so here's the list of changes:
- Avoid unportable make -C option and just use cd.
- Don't use unportable rm -v option.
- Fix typo in config.sh.
- Don't rely on PWD variable being set, just use pwd(1) to get it.
- Use upcoming-POSIX != make syntax to run shells and not $(shell).
- Don't overuse := in makefiles.
- Don't locate crtbegin.o and crtend.o when not compiling.
- Switch to portable .SUFFIXES wildcards to get them more known.
- Fix kernel link like order with respect to libk and libgcc.
- Verify multibootness with grub-file.
- Use -MD to properly handle header dependency tracking.
- Replace unportable cp -RTv.
- Pass unportable --preserve=timestamp to cp to avoid -MD issues.
- Align boot.S and linker.ld with bare bones.
- Remove kernel_early abstraction.
- Switch coding style to match bare bones.
- Move vga text mode buffer constants into tty.c.
- Move vga.h from public kernel header to private arch header.
- Prefix all vga.h declarations with vga_.
- Remove _myos from __is_kernel/libc/libk detection macros.
- Don't build libc.a anymore.
- Add EOF to stdio.h to detect putchar errors.
- Simplify printf, handle errors in putchar and error output exceeds INT_MAX.
- Clarify non-libk case in putchar and abort.
- Don't pass -fbuiltin as it's not safe for freestanding environments.
See the history page on the article for the full changes. --Sortie 14:59, 2 September 2016 (CDT)
Reverting makefile changes
Unfortunately, Debian and Ubuntu based distros (and probably many, many more) are still on GNU Make 3.8, which does not support the use of !=. I have added troubleshooting to the bottom of the page to document this problem and how to solve it:
DEFAULT_HOST := $(shell ../default-host.sh)
Sigtau 00:03, 3 October 2016 (CDT)
Deprecation of the tutorial
For the same reasons, as in the Talk:Bare Bones#Deprecation of the tutorial, I am proposing to deprecate this tutorial, due to the numerous problems that this brings to the unsuspected beginners that might follow it, that are associated with using very outdated stuff, including multiboot1, VGA text, no paging, targeting ia32, and so on.
--Mishakov (talk) 08:15, 11 June 2026 (UTC)
- Yeah, I am currently overhauling the article (will be submitted soon) to use Multiboot 2, with framebuffer font rendering and serial line support too. As for paging, you're starting to ask for the impossible. Do not forget that Bare Bones is the Hello World tutorial. It's supposed to show people how to compile some boot and boot to hello world, with a reasonable amount of knowledge. A full Multiboot 2 kernel, with 64-bit paging, font rendering, and everything else -- it's a LOT of concepts for newcomers to understand. We have these easy 32-bit tutorials without paging, which people can solve, and then move onto the more advanced tutorials, one topic at a time. --Sortie (talk) 20:51, 22 June 2026 (UTC)