Hi,
WaterOS wrote:
Where would I learn things like push, pop, mov byte, in, out, loading sectors the proper way (like MikeOS), comparing strings and making drivers etc?
On a scale from 1 to 10 where 1 is very basic OS development and 10 is very advanced OS development; half of the things you've listed (push, pop, mov byte, comparing strings) are just "programming" and aren't even on that scale.
I'd say that the minimum needed to be on the scale is designing (possibly very crude/simple) functionality (memory management, scheduler, etc) and (possibly very crude/simple) device driver interfaces; and then implementing code (memory manager, scheduler, drivers, etc) that provides the functionality and interfaces you designed. The difference between basic OS development and advanced OS development (or, where you are on the scale from 1 to 10) is in how well designed your functionality and interfaces are.
If you're merely using functionality/interfaces someone else designed and provided (e.g. only using BIOS functions designed by IBM and implemented by firmware developers) then you are not developing an OS and you aren't an OS developer - you're only writing software/applications for an existing OS or environment.
omarrx024 wrote:
There's no "proper" way to load sectors.
There's:
- a "so basic that it doesn't even count as OS development" way to load sectors (e.g. using BIOS or UEFI services, or Linux or Windows services, or C library functions, to do it for you)
- a basic way to load sectors (e.g. using a simple "storage device driver" interface/abstraction and a simple driver designed to provide that interface/abstraction)
- a more advanced way to load sectors (e.g. an advanced "storage device driver" interface/abstraction, which includes things like device/media auto-detection, asynchronous requests, IO scheduling, fault detection and/or fault tolerance, features like "secure erase", device and/or media insertion and removal, etc)
- a very advanced way to load sectors (where the "storage device driver" interface/abstraction involves original research into new techniques that are not documented anywhere)
Cheers,
Brendan