onlyonemac wrote:
While I have a clear idea of what I want my project to be, and some idea of how I would implement that on a high level, I cannot start anything along those lines until I've got all the little bits and pieces to handle I/O and memory allocation.
Technically, my system will have to interact with hardware, but to call it an OS in the conventional sense like Linux or Windows is a misrepresentation. I envision a prototyping tool, where there is one and only one application running in a flat memory model, be it protected or long mode. In the mid 80's, I wrote an application for a property management firm in C. Having some knowledge of relational databases, all I did was worry about having all the essential information for tenants, owners, vendors, payable and receivable transactions. In two years the system evolved into having capabilities not even I envisioned and I'm sure it was only because so much detail was incorporated into the core. Hopefully that paradigm will yield similar results in this endeavour.
Personally, that is the last thing I would even begin to entertain, is a fully functional pre-emptive multi-tasking system, complete with file management for terra byte capacity media. Unix is 57, Windows 33 and Linux 23 yrs old and were collaborations of hundreds of people.
Micronix by Morrow Designs in 1982 for the Z80 I believe was the first OS fashioned after *nix. The next was Linux in 1991 but both had the advantage of crafting their works after an already operational system, albeit for desktop environments.
To avoid disappointment or be discouraged my tool chain is but one program, FASM, coupled with Bochs and HexEdit. Should this be the de-facto standard for OS development, I seriously doubt it, but the simplicity works for me, but I do document my sources thuorouly. The analogies like "One day at a time" or "One brick at a time" have a lot to be said for themselves and no matter the objective, meticulously looking after minute details in each facet, will result in a functional system.