Octocontrabass wrote:zehawk wrote:In the meantime, am I ok to use my dev pc as a testbed then? I guess people are giving conflicting answers, some say definitely not and others say there's no harm in doing it.
If you unplug the hard drive(s) before testing, you have nothing to worry about. It's kind of a pain to do that, though.
For the most part, I avoid testing on my dev PC simply because unplugging the drives is more work than putting the floppy disk in another machine. (That, and my most recent progress has been geared more towards older hardware anyway...)
That's a good solution to any potential problems. But you wouldn't want to do that on a long-term basis or you might indeed end up physically harming the computer.
I think the OP has misunderstood my concerns about the potential problems. I am assuming that with an OS of and
y reasonable complexity you will want to write to a storage device. You might think "I'm nly going to write to my USB drive" so my main drive won't be affected. Fine - if you get it right. But one small error can mean that you write to the wrong part of the wrong drive and corrupt your operating system.
If you are prepared for that eventuality and can easily clone a working image of the disk back then it might be less of a problem. But the "I'm only writing to my USB drive" is not a valid argument. I think it is highly unlikely that you will be able to communicate with USB devices any time soon. (I'm assuming here that you are not restricting yourself to a real-mode MS-DOS clone with everything done via BIOS calls. If that's all you are aiming at then most problems disappear.) By far the easiest mass storage device to access, certainly for your early attempts, is going to be an IDE/ATA hard drive; and that - I assume - is what you have your OS stored on. So the potential to corrupt your OS shouldn't be ignored.
I think the idea of running on real hardware is one that often seems to attract newcomers, but it has everything going against it. I think we've covered most of the reasons for that already. A VM is by far the most useful testbed for a fledgling OS. And with a VM you don't have to rely on a very particular hardware configuration if you want someone else to run your OS on their machines. So I would suggest, in order of preference:
1. Use a VM on your current PC. Forget about real hardware until you have advanced a little more.
2. Use a computer that has nothing of value on it as your testbed.
3. Use your main computer, but unplug your hard drive every time you run your tests.
4. Use your main computer, don't unplug your hard drive, and be prepared to restore your hard disk from a cloned image or from good backups.
5. Use your main computer, don't unplug your hard drive, cross your fingers, and be prepared to recreate everything on your computer from scratch.
6. Take up cat herding instead. It's much safer and easier than OS development.