Ist denn so grosses geheimnis?
Ist denn so grosses geheimnis?
Goethe wrote that long ago. The full translation would be something like "Is it such a big mistery like Man, World and God? Not! But nobody dares to unveal it, hence it's still a mistery".
Writing and OS is not that difficult. It's been done over and again, and has become easier as tools have evolved. Many CS schools have OS courses where students are expected to write an OS or parts of it. Minix, Oberon, VSTa, Linux, OMU, and an endless list of OSes come to mind that were written by one person in a reasonable time. Even venerable old CP/M and the original DOS are said to.
What is costly is writing drivers for all possible existing hardware, and tweaking it for optimal speed. But if all you want is to learn the basics, that is no big deal.
As for the rest of arguments: first, define UNIX. If you mean a full bloated cluster, SMP, distributed, POSIX compliant system it certainly will take more time. If you mean UNIX v6 or v7 making a clone from scratch using only C might be done in a few months by a competent programmer. Even so, with adequate reasoning one might argue if anything beyond that is really needed inside the kernel. For someone wanting to learn, v6 (or MINIX) maybe a sensible project.
Next, define "programming". If you are going to do it in assembler as it was still done in the 70's I agree that it will be more difficult. If you allow using tools, moving to PL/I (or PL/M as for CP/M), C or C++ will certainly help speed up development, mostly so if you rely on Minix or Oberon books. If you add more tools, it becomes even easier: Sprite over Mach took about 6 student months to develop. Using L4 or similars and extra tools will certainly speed things up as well. It all depends on the tools. Even the machine itself can be a tool: a virtual machine like the one used for Nachos in teaching OS development simplifies things a lot as well.
Then, after all that, consider using your brain: even driver development needs not be a nightmare, you can hijack others' drivers, as L4 can do, or as happens with ndiswrapper, or you could implement hooks to a well defined DDK API... You would concentrate on true OS design decisions instead of low level details.
The point is, writing and OS is not difficult, what is difficult is making the right design decisions. And that is why people complains so much about Windows: even when they start from good design decisions MS tends to spoil them later on by bloating their OS and making it needlessly complex and inherently more buggy and difficult to maintain. MS persistently ignores the KISS principle to earn moot/imaginary marketing advantages, and that's their problem.
As for the OP, my advice would be: consider getting a copy of Tannenbaum's MINIX book or Wirth's Oberon books, have a look at the code of other similar OSes for inspiration (like VSTa, OMU, whichever), set up an emulator to start working and google the Net for some recent discussions on OS design principles. Who knows? You may end up with a great new idea that beats us all and brings us to a new OS era. At the very worst you may end up learning something -and maybe even get to write a few lines of code.