The big deal (imho) with Linux is that you get Linux...and that allows you to run Busybox, GCC, (some kind of) trace and/or debug, memory profiling, etc, etc.
Now, you may not/do not want things like ls/cat/less/top/networking stack (or not)/drivers for serial/parallel ports for your final product, but without easy availability of this kind of stuff for development, your development team is working with one hand tied behind its back.
With one hand tied behind its back, you'll be continuously coming up against unanticipated problems and be saying '...now, if only we had a tool like X (where X is a command line util like top, iotop or whatever) and/or some kind of debug utility, we could probably see what is going on and, having seen what is going on, we could probably fix it reasonably quickly, but now, I don't know whether we should stop trying to fix the actual problem and write some tools, which may or may not be the right ones, which may or may not be buggy and which may or may not help, or try somehow to make progress without the tools, and so effectively by a series of stabs in the dark, which may or may not be effective (and which probably won't help us, in the way that the tools would, next time we have a similar problem)...'
So, for me, the biggest deal is that you can get a wide selection of tools that cover all sorts of problems, without a great deal of effort.
OTOH, you raise the issue of multi-tasking. It is true that if you've got Linux, you'll have some kind of task scheduling, but then, if you've got any OS, you'll have some kind of task scheduling. And, if you want simple task scheduling, that's probably not hard to write for yourself (...but simple may not be good enough for you).
|