Skip to content

Future Direction

May 15, 2012

I’ve come to something of a dilemma. The original intent of my website was to provide a simple, easily understood, example of a basic operating system. To keep this simplicity I have written my own versions of library routines such as printf, strcpy, strlen, etc., and my own utility programs such as ls, pwd, etc. I could continue this way, getting ever more complicated and reinventing many wheels, or I can attempt to make the system more comprehensive by making use of the many GNU programs that are available. In particular I would like to have an assembler and C compiler running on IanOS to make it self hosting.

Writing an assembler (relatively easy) and a C compiler (much harder) would be interesting projects, but it’s not really what I want to concentrate on right now. I’d rather look into making the basic OS more robust and look into subjects such as networking, supporting PCI and USB devices, and other core enhancements. Perhaps even getting the system to run on a real physical machine. I don’t mind reinventing some wheels (after all, that’s what writing your own OS is all about) but there is a limit to what one person can reasonably do; and, certainly at the moment, I want to keep this as a one-person project.

To facilitate this, I’ve ported newlib (a version of the standard C library) to IanOS, and it seems to be working quite well. This is a first step towards porting binutils and gcc (but quite a bit more work to be done yet) and provides many useful, well debugged, functions. Unfortunately this adds a level of complexity that detracts from the original aim. I have decided that, at least for the time being, I am going to freeze the version presented on my web site, with perhaps minor changes as I discover bugs, to the pre-newlib version. This is the “master” branch on github. I have now produced another branch, “newlib”, which contains the changes that I have made to aid porting and new versions of the tasks rewritten using the standard C library.

If anyone wants to experiment with newlib I suggest they download the “newlib” branch and then look at OSDevWiki (you should look at that website anyway if you have any interest in home-brew OSs), where instructions are given for producing a toolchain aimed at your own OS and for porting newlib. Should there be enough interest in this I may, in time, produce a detailed set of instructions for doing this.

From → IanOS

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: