Children's Operating System (original) (raw)
| | | OSdata.com | | ------------------------------------------------------------------------------------- | | ---------- |
Children’s Operating Systems
This is an ambitious project. I am asking those who are interested in operating systems and willing to donate some programming, artwork, or other support to assist in building an operating system for children.
While there are many excellent (and not so excellent) programs for children, currently, there are no operating systems designed for children. Children can and do adapt to use adult operating systems, but they would far better be served by an operating system designed to meet their unique needs and abilities.
I have watched several nieces and nephews struggle with adult operating systems, often becoming very frustrated. And a friend had the particularly unfortunate experience of his child accidently erasing the hard drive. The child had become accustomed to simply clicking on the “OK” button (identified by position, as the child couldn’t read yet) and clicked “OK” to “Are you certain you want to erase the hard drive?”
There are obvious advantages to creating a protected environment particularly designed to meet the needs of the child (especially pre-literate and partially literate children), where the child is unaffected by and unable to affect the adult operating system.
Now, if you think about it, all of the challenges of an adult operating system still exist, with the added challenges of meeting the needs and abilities of children. This is actually the most difficult programming challenge around (how’s that for encouraging you to believe we can do this?).
key criteria
I’ve given the problem a lot of thought, and identified some of the key criteria:
- Dependability. Adults expect things to break. Children expect things to work. Children, especially young children, don’t have the patience for systems (or even programs) that crash. And they don’t have the patience for a reboot cycle.
- Responsiveness. Children expect immediate responses and immediate feedback. Children expect an immediate reaction — which is different than a speedy answer. The sad fact is that children will often be using antiquated “hand-me-down” computers when their parents switch to a newer computer, so speed is not guaranteed. The important point is not how fast the computer runs, but how responsive it seems to the child.
- Non-Text. Children need a operating system that doesn’t require literacy. That means developing an interface that doesn’t require text.
- Fun. Children want to have fun. While they can briefly be forced to do something they don’t like for their own good, they aren’t likely to put up with something boring or tedious for years. The operating system has to be fun.
- Sense of Control. Children want the feeling that they are in control of their world. This means that the operating system needs to act in a predictable manner and that the child should be able to easily figure out how to do the things that the child wants to do. One of the revolutions in computing was the switch from having humans adapt to the machine to having the machine adapt to the humans. With a children’s operating system the bar gets raised on the requirement that the machine adapt to the human.
- Honor Culture. The operating system needs to honor the culture of each child using it. Some of this can be attained by keeping the operating system as langauge and culture indepdent as possible. But there will be places where culture and language must appear. In each case, the operating system should adopt the culture and langauge of the child using the operating system.
- Long Lasting. If properly designed, the operating system should remain usable for centuries, millenia, or longer. This means designing the operating system so that it is independent of any specific hardware. This also means designing the operating system so that it is extensible and can easily grow and adapt to evolving technology and culture.
- Adults. The operating system also needs to meet the requirements of the parents, teachers, and other adults who interact with children, at widely varying degrees of interaction. While it would be desireable that every parent be directly involved in their children’s computer use, there will obviously be some parents who don’t have the desire or time to participate at all. So the operating system must support every level of parental involvement from none to a lot.
When we look closely at the problem, we see that most of what is unique to children is in the interface. This means that we don’t have to reinvent the wheel. We can use any highly reliable operating system for the majority of the services and concentrate our efforts on providing a quality interface that buffers the child from the underlying adult operating system.
As mentioned above, one of the problems is that there will be a variety of hardware, mostly outdated hardware. So, we need to build an operating system that is fast and platform independent.
threaded interpretative engine
An obvious solution is to create the environment with a threaded interpretative language. Because a threaded interpretative language is interpretted, it is platform independent, meaning that any software written for the TIL will run on any future or past hardware that has a working TIL engine.
If you are accustomed to such things as BASIC interpretters or software emulations, your impression is that these are very slow.
When properly designed, an threaded interpretative language can run faster than most compiled code and almost as fast as hand optimized assembly code. A classic example is the many specialty embedded systems built using Forth.
If we take the ideas from Forth and LISP and SmallTalk, we can create a large set of primatives designed to meet the general purpose computing needs of children, and have a reasonably fast system even on very old hardware.
A well designed inner interpretter can run almost as fast as assembly code, and is comparable in speed to a very efficient object oriented run time environment. The outer interpretter is not time critical and rarely is a bottleneck producing a noticeable impact on computing speed. Usually the number of primatives is kept small so as to cut development time for a new system, but in this case we want to have a large number of primatives. Primatives run several orders of magnitude faster than secondaries because they run directly on the underlying hardware rather than on the software interpretter. Additionally, a large set of primatives will provide a uniformity of interface for application programs.
basic system
This leads to three levels of work needed:
- CHOS: Children’s Operating System. This is a completely self-contained operating system.
- CHOSE: Children’s Operating System Environment. This is the interpretter and the environment it creates for children. I am suggesting that the CHOSE initially be built to run on top of LINUX, FreeBSD, Macintosh, and Amiga. I have access to the development software and test hardware to build an example version of the CHOSE in 68000 assembly language for the Macintosh (recent PowerPC machines will run 68000 software on a software emulator that is actually significantly faster than any real 680x0 hardware ever manufactured). Because of the shared hardware, it should be relatively easy for AmigaOS fans to make the modifications to run the CHOSE on the Amiga. It will be more difficult to port the 68000 example to 80x86/Pentium or PowerPC systems running LINUX or FreeBSD, but because of the nature of TILs, it shouldn’t be particularly difficult, and there are a lot of LINUX hobbyists out there. If someone can provide me with the programmer’s reference manuals for the PowerPC and Pentium processors, I will also write assembly language code for those processors.
- CHOSEL: Children’s Operating System Environment Language. This is the programming language that runs on the interpretter. This is the real “meat” of the project and the part that I personally find most interesting.
So, now you have a general idea of what I have in mind.
Donate now
or the mouse dies!!!
OSdata.com is a visitor supported educational web site
For more details, click here.
A web site on dozens of operating systems simply can’t be maintained by one person. This is a cooperative effort. If you spot an error in fact, grammar, syntax, or spelling, or a broken link, or have additional information, commentary, or constructive criticism, please e-mail Milo. If you have any extra copies of docs, manuals, or other materials that can assist in accuracy and completeness, please send them to Milo, PO Box 1361, Tustin, CA, USA, 92781.
http://www.operatingsystems.net/children.htm is moving to http://www.osdata.com/children.htm. Please update your bookmarks and links accordingly.
Click here for our privacy policy.
home page
This web site handcrafted on Macintosh computers using Tom Bender’s Tex-Edit Plus and served using FreeBSD .
Names and logos of various OSs are trademarks of their respective owners.
Copyright © 2000 Milo
Last Updated: Sept 26, 2000
Created: Sept 24, 2000