Page 1 of 1

boot2c - a simple way to write standalone programs for i386

Posted: Mon Sep 30, 2019 7:00 am
by luke64
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!

Re: boot2c - a simple way to write standalone programs for i

Posted: Mon Sep 30, 2019 8:38 am
by iansjack
You ask in your readme.md
So why bother doing such a thing in 2019?
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

Posted: Mon Sep 30, 2019 9:41 am
by luke64
I've got to agree - why, when it is so simple to produce bootable DOS media which would allow you access to more facilities?
Well, the whole premise was not to use any operating system.

Re: boot2c - a simple way to write standalone programs for i

Posted: Fri Oct 04, 2019 5:19 am
by bzt
Hi,
luke64 wrote:I was recently wondering how hard would it be to run C programs on i386 without an OS
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:

Code: Select all

#!/usr/local/bin/tcc -run
#include <stdio.h>

int main() 
{
    printf("Hello World\n");
    return 0;
}
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

Re: boot2c - a simple way to write standalone programs for i

Posted: Fri Oct 04, 2019 10:48 am
by alexfru
Or Smaller C + e.g. BootProg (or FreeDOS).
Unreal mode is supported by the compiler.

Re: boot2c - a simple way to write standalone programs for i

Posted: Fri Dec 27, 2019 4:13 pm
by eekee
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:
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?