That isn't really how engineering works in the real world, it is more of an iterative process:
10 Concepts 20 Define Requirements 30 Can requirements be met? If no, goto 20 40 Design 50 Does design meet requirements? If no, goto 20 60 Can design be built? If no, goto 40 70 Development 80 Has development discovered any problems? 81 Are development problems based on design, if yes, goto 40 82 Are development problems based on requirements, if yes, goto 20 83 Are development problems based on concepts, if yes, goto 10 90 Delivery - alpha (QA) 100 Has alpha product hit any problems? 101 Are alpha problems based on development? If yes, goto 70 102 Are alpha problems based on design? If yes, goto 40 103 Are alpha problems based on requirements? If yes, goto 20 104 Are alpha problems based on concepts? If yes, goto 10 110 Delivery - beta (release candidate) 120 Has beta product hit any problems? 121 Are beta problems based on development? If yes, goto 70 122 Are beta problems based on design? If yes, goto 40 123 Are beta problems based on requirements? If yes, goto 20 124 Are beta problems based on concepts? If yes, goto 10 130 Delivery - version 1.0 .... ....You get the idea. Sure, much of this is done in parallel, but rarely is it ever done in such a linear fashion.
Not nessisarily. There are a non infinite number of operating systems available. Most are unacceptable for various reasons. The actual field from which to choose is rather small.
From a technical view point, I find it hard to justify Windows for any sort of control based application. So, that leaves one of a number of UNIX type operating systems. Linux, FreeBSD, and NetBSD are all free. QNX is not free, but free enough for personal stuff. If you have no "real time" requirements, you don't need QNX. That leaves Linux or a BSD. Linux is more popular with better device driver support, so Linux is an obvious choice without any up-front exclusionary requirements.
I would bet most of them are running a flavor of UNIX, and possibly Linux. Linux is huge in asia.
I'm curious, like what?
That is a good discussion, we should have it.
I remember all the crap we had to do at Denning Mobile Robotics with z80s and some of the first 68000s. These days the raw computer power available for $99 is amazing.
That's not true unless you want to develop the infrastructure all by yourself. Using an OS with a lot of supporting programs makes a lot of things a lot easier.
Like any tool, one should learn about their OS.
Interesting, what is?
It is hardly a copy.
Well, that isn't true at all. The new Windows, NT, 2K, and now XP were originally designed to be a portable version of OS/2 for IBM. When MS and IBM split ways, Microsoft put a Windows sub-system on it and called it Windows NT.
The original work on NT was by Dave Cutler, and it is widely acknowledged that Windows NT was based on Digital Equipments VAX VMS. This is one of the things that was settled in a law suit by DEC against Microsoft.
This is certainly not true either. The UNIX environment has created *every* advancement in computers in the last 30 years. Microsoft has not created one piece of original technology yet.
Name some things you think Microsoft created, you'll be surprised where they really came from.
It may not always be the "best" solution, but there is rarely a "better" solution without some exclusionary requirements.
Windows is a disaster, I programmed it for 15 years, published articles on it, and personally beta tested Windows 3x, Windows 9x, Windows NT 3.5,
3.51, and 4.0. I am done. I'll do it for money, but for my own work, I won't touch it.I disagree, the OS is a serious part of a project. Having opinions based on experience about the relavant merit of one OS over another is a valid discussion, and an important one. If you don't like the discussion, you need not participate.