OS?
Just from a quick look it doesn't seem to teach anything about operating systems, more like code that runs directly on the ARM without an operating system. No tasks, etc.
Cambridge University has joined the ranks of terribly prestigious universities giving computer science classes away online, releasing a 12-step course teaching how to create what it calls a "basic terminal Operating System" for the Raspberry Pi. To create the OS you’ll need YAGARTO Tools and YAGARTO GNU ARM, a Raspberry Pi ( …
Just from a quick look it doesn't seem to teach anything about operating systems, more like code that runs directly on the ARM without an operating system. No tasks, etc.
What did you expect ? A tutorial on how to write a complete O/S in just 12 steps ?
Tasks and task switching involve a lot of work for the kernel.
Well, when the title of the course has the words Operating System in it you might expect to have something about scheduling etc. in the course. At the very least I would have expected an introduction to OS by using something like FreeRTOS with all the hard work already done of porting it to the platform.
Whats wrong with not having task swapping and other rubbish? After all if you think about it the processor does one thing at a time. If you keep interrupting that, wasting a lot of processor cycles saving a load of 'state' and loading some new 'state' and restarting on another 'task' and then interrupt that...... what you end up with is a machine that achieves nothing the user actually wants because it spends all its life shuffling states around... er... yes, a lot like modern 'operating systems'.
I think taking some students 'back to basics' is actually a damned good idea.
More than this, the later comment about combining lots of stuff in one command might look pretty but it doesn't explain what is going on too well. I know explaining things is a little out of fashion (see the tons of unix kernel code that wastes no time on comments)
Yep tasks get in the way ... the joy of the first generation micros was being able to code (or at least copy) EVERYTHING to make your pride and joy work. And could we make those 8080 & Z80s sing? I remember the first atempt to address a disk on a TRS-80. Mind boggling. And when TRSDOS didn't do it very well people created NEWDOS to pass round and improve.
I've pretty poor understanding all the latest coding fads but I can still hold my ground against the younger lads 'cos I have a clue what's happening underneath their bloated (if better documented) code.
Wish I could say the same about cars. You used to be able to understand 'em. You could fix anything on a basic mini that had not fallen off. And even some of those. Hence my favourite chat-up line."The fan belt's gone again, take off your tights!"
Modern BMWs are pretty poor in that department.
Operating System is NOT equivalent to task scheduler. See any number of Real Time operating systems that very clearly do not do task switching on timeslices or IO demand, but instead yield control to a different task. These are not trivial. If they were, people like WindRiver would give away their code and not sell it to NASA JPL for a large fee.
This looks like a great course to get people interested in building something from scratch that runs on the raw processor.
This post has been deleted by its author
Sorry my typo, copied Tom 7's. It's "yagarto" and
http://www.yagarto.de/index.html
http://sourceforge.net/projects/yagarto/
It says that the initial intention was to be cheap. The actual toolchain code claims to be all OSI approved.
"YAGARTO is a cross development environment for the ARM architecture, running on a Windows host. It includes the GNU C/C++ toolchain and the Eclipse IDE."
Regarding typo's, it was those little devil's that actually got me thinking about the code I'd typed in from various magazines. Sometimes the typo's were mine, sometimes the magazines', but always the result was SYNTAX ERROR LINE 1020* followed by a close examination of the code and eventually a realisation of what it was the code wanted to do.
So good work Mr Chadwick and I'm sure your typo's will be equally important!
*OK, so it wasn't always line 1020
If this OS is really simple and interrupts can be turned off and on, it makes it easy to do accurate timing for digital signal processing. I achieved this with the old BBC micro but never since. We could record voice and play it back normally or backwards. Also the playback speed could be continuously altered with hilarious results. The kids loved it!
I don't know about everyone else, but what really inspires me about the early 8bits is the stories of how someone like Wozniak or Jay Miner would put together their hardware, and squeeze code into a very limited space to make that hardware into something infinately more fantastic than the sum of its parts.
The basic idea of taking a lump of hardware and writing code to make it usable should be enough to inspire any prospective computer engineer. Great stuff.
It's a long time since I've seen a tutorial like this that promotes getting right down to the metal. It brings back fond memories of the blue pages in the middle of 'Atomic Theory and Practice' :)
And anything with a section heading 'The Terminal: Rise of the Machine' has to be a good thing.