Hi there,
I was recently wondering how hard would it be to run C programs on i386 without an OS, and created a GitHub repo to share my approach. I traded portability for simplicity, so it's not the most correct way, but maybe someone will find it useful:
https://github.com/luke8086/boot2c
Any feedback will be appreciated!
boot2c - a simple way to write standalone programs for i386
Re: boot2c - a simple way to write standalone programs for i
You ask in your readme.md
I've got to agree - why, when it is so simple to produce bootable DOS media which would allow you access to more facilities?So why bother doing such a thing in 2019?
Re: boot2c - a simple way to write standalone programs for i
Well, the whole premise was not to use any operating system.I've got to agree - why, when it is so simple to produce bootable DOS media which would allow you access to more facilities?
Re: boot2c - a simple way to write standalone programs for i
Hi,
Using this feature you can truly boot a C program directly, compiled at boot time. However you'll need to integrate a minimal libc at least.
Cheers,
bzt
Are you familiar with Bellard's Tiny C compiler? It is capable of compiling and running C programs in memory (no disks involved). It is perfectly valid to do some script like this under Linux:luke64 wrote:I was recently wondering how hard would it be to run C programs on i386 without an OS
Code: Select all
#!/usr/local/bin/tcc -run
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
Cheers,
bzt
Re: boot2c - a simple way to write standalone programs for i
If I was writing my OS in C, I'd almost be interested. I wouldn't because I'm not so keen on gcc & clang. I'd rather use Watcom or bcc which takes away the fun for you because they can do this already. Or I guess Smaller C, which is evidently better than bcc and might be better than Watcom for making bootable images. I'm a bit impressed by the build process producing a USB boot image, USB boot is a bit difficult. Char-cell snake gives me retro feels. If you add editing and search to hexview, it could be a useful debugging tool for native OSdev. Especially regexp search; could you just link in a suitable library?luke64 wrote:I was recently wondering how hard would it be to run C programs on i386 without an OS, and created a GitHub repo to share my approach. I traded portability for simplicity, so it's not the most correct way, but maybe someone will find it useful:
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie