In Parts I and II of this series, LinuxGazette examined the
process of using tools available with Linux to build a simple boot sector and access the system BIOS. The toy OS will be closely modelled after the Linux kernel – and it will be switching to protected mode soon! This part III shows how it can be done.
hmm as poor as the last few articles… if they do a part4 i sure hope it gets a bit deeper than the current parts1-3
I don’t agree with Stewy. Sure, the articles don’t go to any depth, but for someone without any idea how a x86 OS starts up it might be interesting. Especially Part 1 shows how little is required to show something on the screen.
For someone who is really interested in the low level OS stuff (like me), these articles have been a good read. Sure, they don’t go too deep in explanation, but heck, if you’re reading them, your not a normal computer user, and can probebly use that crazy thing called the Internet to look up some of the subjects covered in more detail.
😉
This isn’t a set of tutorials on writing your own OS; it’s some articles on some specific parts of the initialisation sequence for an x86-based boot loader.
Bah, one of these days I’ll write some real OS howtos…
Have you guys read this speech by one of the original Unix developers?
http://www.cs.bell-labs.com/who/rob/utah2000.pdf
It’s very readable. Basically he says (in 2000) that systems innovation is dead, except at Microsoft. But in many little ways, Apple now is innovating too.
He also says we’re stuck in the hell of benchmarks. Everything is a damn benchmark. A boring, nitpicky thing that turns us all into accountants.
I don’t normally notice raw speed. Only during compilation. So as long as Apples are reasonably fast, they’re better for normal use because they’re so much more usable. They require less understanding to use. If something goes wrong, it’s not so bad; the user can figure out where to go. So PCs are only cheaper if your time is worth nothing.
My time is almost worth nothing, because I can fix PC problems really quickly. But a normal user shouldn’t have to waste her time unless she wants to. And having UNIX is great when she wants to go deeper.
So Satori, Macs are bad FOR YOU. If I had to buy you a present, it’ll be a PC. But your situation is not universal. Once Apple can get its performance issues straight, and stop chasing people with DMCA, I’ll recommend it most of the time.
Please feel free to delete this and the last comment. Argh.
That link (.pdf) and statements are the best I have read about computer related issues. Not being a software or kernel developer myself I have had the same ideia about inovation on computers, those who innovate (Microsoft) are prosecuted for the wrong rea$ons with law suits.
Basically people (corporations and PC users) are very narrowed towards change and prefer to fund short term technologies to start a niche market and profit; that’s narrowed, if some corporation started a really new technology (similar to TetraPak on liquids storage) they would profit exponentially.
For me the same happens in hardware and software applications: who has created a new way of word processing (excluding latex/lyx, maybe) ? a new way of photo editing ? a new way of electronic messaging, a new wide network protocol or packeting (IPV6 will not do it)? a new way of volatile system memory ? a new way of kernel to application addressing ( a reliable hybrid of real time + time-shared kernel or other ‘really new’ way ) a new way of inputing devices (mices are really bad for day-to-day use) ? (…) isn’t there creativity to put in computing ?
And it was a pleasure to read from a respected cientist that MS alone (or almost) does the recent research and implements the inovation (though, throug proprietary standards, damn …) while Linux is another copy of the old Unix stuff which brought only a new and open development model, which is good. At least someone bright has enough clarity to see things how they really are.
If you are writing a new toy OS start thinking about inovation.
While it can be argued that Microsoft is making innovations in the computer market, it can also be argued that those innovations do no good. Take, for example, Cleartype. Great algorithm, great implementation, but so patent-encumbered that all the research done into it is not only useless, but hinders alternative research and implementations. A lot of thhe problem has to do with Microsoft’s taking advantage of the patent system to patent algorithms, like the filtering used in Cleartype. I’ve been working on my own implementation (because the sub-pixel AA in Xft makes italic fonts (Slashdot!) on my 1600×1200 laptop screen unreadable), and in the process of reading the Cleartype papers, I found some genuinely good scienctific work. However, I can’t use any of it. Contrast this to my experience over the summer, where I did a great deal of research on techniques to simulate X-ray diffraction, and I could actually use and build upon the stuff I learned. I guess the summery of my arguement is this: without adherence to an open system and without contributing usable information to the general knowledge base, Microsoft’s advances really cannot be called innovations. Rather, they’re simply new features useful for selling their software.
Not only do I find the subject matter unimpressive, but it’s also inaccurate:
1. Build the GDT.
2. Enable protected mode by setting the PE bit in CR0.
3. Jump to clear the prefetch queue.
This should be:
1. Build the GDT.
2. Set the CR0.PE bit by setting the PE bit in CR0.
3. Enable protected mode and clear the prefetch queue with a far jump.
They’ve got the code right but the reasoning is wrong. Setting PE doesn’t immediately enable protected mode: a far jump to a selector in the GDT does. In fact, you can use this behaviour to give you access to up to 4GB of RAM in real mode, known as ‘unreal mode’ (unreal mode is not full protected mode because you’re still restricted to 64KB of code and stack, and 16-bit opcodes).
But not the one that OSNews posted about ToyOS .
The article that Robert Hanlin found is really good.
ToyOS article is a piece of crap – if you want to design your own OS for Intel CPU you have to read i386 Processor manual. It has example code on how to switch from real mode to protected. I wonder how much these guys copied from it. On the other hand this so-called news just stressed the points made in research article linked by Robert.
ToyOS case shows that OS research is no longer limited to Computer Science departments. It’s now available to everybody with PC and as result there is no research at all.
Call it ‘dead’, call it ‘commercialized’. CS departments in Universities should switch the subject.
“OS for embedded devices” instead of “OS for general computing”. There is still some room for creativity here.
I have to wade in and say that I like these tutorials, find them really interesting, and experiment because I’ve read them.
There is a big variation in the osnews audience and enthusiasm and experience don’t always match and this is just plain suited to some of the audience i.e. me.
Thanks for posting this story, Eugenia.
Great to hear all the experts putting down an article they couldn’t be bothered to write; those of us who aren’t experts likely found it very interesting to get an idea of what goes on right down at the bottom end of things. I’ll never write an OS, so it doesn’t matter if they said to set ‘bit x’ when they should have (pedantically speaking) said ‘bit xyz’. It gives an overview of what happens when an OS starts up. That’s interesting, and I’m glad I read it.
Great to hear all the experts putting down an article they couldn’t be bothered to write
http://osdev.berlios.de/ (partly mine)
http://www.mega-tokyo.com/os/os-faq.html (Stewy’s)