I have always wondered what really defines an OS. To me, anything that facilitates multithreading and manages processes, memory, and other multithreading type things is an OS. So most operating systems today would fit in that category such as Linux, Windows, Android, and iOS among others. However, many devices seem to have what they call an OS, but is in fact just a single program that is able to switch execution to another program but doesn't facilitate any multithreading or the operation of any programs, ie the programs all must fend for themselves when it comes to memory management and the like. For instance the Nintendo DS. You turn it on, and it shows you what appears to be an OS. As soon as you begin the game, any trace of the OS seems to disappear. Another example, the TI-83/TI-84's OS. That also just seems to be one of those things where you have a single program, and it just switches execution to another program and then that program can do the opposite to create the appearance of an OS. Also, many programs on that calculator are written in TI BASIC and are interpreted, so an interpreter as an OS makes lots of sense. However, from what I have heard, I get the impression that programs written for the calculator in Z80 ASM get full control over the calculator, but I have heard other things like they can only access 24KB of RAM or they use RAM pages or a few other things that would hint at the OS being a legitimate OS.
So I guess I'm basically asking three questions here: what is the true definition of an OS if there is one, do devices like the DS, calculator, cellphone, etc use an OS, and more specifically, what do the TI 83/84 calculators use as far as an OS goes?
Also, perhaps there are operating systems that don't do any multithreading yet still facilitate memory management and I just don't know about them.
Just some curiosities I have been having lately! Any insights on any of these would be pretty neat!
"MOVE R1,R2"~~Genesis 1:1, Bible