Logo for NOUS a small operating system (c) 2007 Ian James

NOUS
Nice Operating/User System

Ian James
© 2003-2007



|| Brief & Goals | General Comments | Origins & Motivations | Possible & Imagined Shortcomings | NOUS in more detail ||

The Brief

To create a minimal operating system which is a nice alternative to existing mainstream systems.

The Goals

These are the intended features of NOUS. It is required that the system:

  • is simple enough to be understood, maintained and modified (to a reasonable extent) by the user.
  • is fast, small, efficient, elegant, clear, well-integrated, exposed.
  • has a quick startup: ideally just a few seconds of booting-up, with a return to one’s previous session.
  • is configurable via text tables, though has no textual redundancy (eg. a menu list has only one form, in one location).
  • has its documentation integrated and hyperlinked (not via a separate “help” system).
  • is pleasing and aesthetic in its interface & presentation.
  • has programming & scripting via a highly efficient PostScript/Forth-based language.
  • uses the current minimum standard of 32-bit processing and flat memory (which have been available since 1985). This version is Intel-based.
  • is suitable even for 80386 computers, eg. only 2 megabytes of RAM and a 40 MHz chip; it should take advantage of newer systems for their speed & extended machine-level functionality, and not burden them with trivial/cosmetic “enhancements” which bring overall performance back to mediocrity. This also addresses hardware redundancy and waste, symptoms of the modern computer industry’s pace.
  • is linear tasking, or multi-scheduled only simply (for known background operations, and when this does not jeopardize user’s realtime needs).
  • runs connected batches of small programs, rather than single giant ones.
  • has a single (primary) user and no outside connections except to peripheral devices; though distinct multiple users of the same computer are catered for. A multi-user networked or periodically synchronized version might lie in the future.
  • is secure with regard to intellectual property.
  • is not for “entertainment” (eg. it can control a good DVD player, rather than be a mediocre one); it is rather a tool for the mind. Thus it would seem that NOUS is not for everybody.
  • has an easy interface for control of external devices, and good realtime capabilities.
  • does not take control of the user, but the user is in command of a sophisticated tool.
  • does not require fussing with tiny moves and multi-clicks of a mouse; nor fussing with resizing & shifting of “windows” to see behind them.
  • shouldn’t always need “context-sensitive” menus and options: functions and behaviour should be obvious, logical, natural.
  • does not clutter the screen with instructions aimed only at first-time users.
  • executables live side-by-side with their description & documentation.
  • uses fresh and meaningful metaphors of interface: document not desktop; glyphs not icons; fancy text not labeled pictures.
  • can handle all basic aspects of document text production (a native PostScript helps with this).
  • can create, use and convert between various graphical formats intuitively; eg. a font can be designed, typed with and used as part of an image, without needing a series of partial and lossy conversion utilities.
  • uses basic HTML as a key model for the document concept.

General Comments

Operating systems are traditionally viewed as being difficult to design, create and fully administer, mainly because of the following issues:

  • multi-tasking.
  • multi-user & networking (shared resources).
  • discontiguous files.
  • programs larger than available memory.
  • putting external “black box” modules into memory (eg. object libraries and DLLs).
  • being compatible with both new and existing technology.
  • fulfilling trivial or imagined user “demands”.
  • higher & higher levels of programming and design (OOP, components, UML, etc)
  • desire for over-fanciness & complexity for their own sakes.

The production of systems with high functionality is also complicated by less abstract issues:

  • deadlines & other external restrictions can create unready or compromised results, so complex management practices are required.
  • it makes commercial sense to keep users (buyers) wanting to need upgrades: a simple, final solution does not help in this regard.

By doing away with these things, or finding simple work-arounds, an OS becomes a programming task accessible to people of medium expertise, both in the creation and in the understanding. This reduces the distance between the machine/programmer and the user, and enables the latter to become a more central factor in the system, rather than a peripheral one (or an after-thought, or a sales target). And keeping users as directors of their own future with regards to their computer implementation - an increasingly important life accessory - creates a better result for users, in the long run. This is the basic philosophy of NOUS.

Origins & Motivations

The author had a number of things in mind while designing NOUS.

  1. The pleasure provided by tinkering with Microsoft DOS. While it was limited in many ways, it was bare and simple enough to allow users (and especially amateur programmers) endless hours of creative exploration. By providing just the essentials of file management, disk access, and screen addressing, it was enough to give life to our thoughts.
  2. The disillusionment with more modern systems offering more and more “features”. These turned out to be part of someone else’s very detailed but largely irrelevant concept of what users must do with their computers; and they also slowed down and over-filled the machine. Related to this is the enforcement of metaphors like WIMP (windows, icons, menus & pop-ups) to represent available user tasks, and the imagined “superiority” of mouse clicks and buttons over text. The often quite inane representation of human knowledge and thinking upon the computer screen seemed to go unnoticed or unchallenged by most owners of these operating systems.
  3. The realization that, at the core of most large computer software systems lie standards and design ideals cobbled together by commitees more interested in promoting their industry than in expanding users’ creativity; their visions were more market-based than knowledge-based, and full of compromises. Shouldn’t the vision come from (or at least inspire) the user?
  4. The increasing complexity and obstruseness associated with programming under modern operating systems, which can hamper creativity, especially when the results must adhere to, and remain limited by, the rules of an unfriendly or mediocre computer environment.
  5. It is important to be able to understand the tool of work (our computer) like a craftsperon, and not just use it like a slave. For that matter, if we are bound to a desktop, doesn’t that make us a kind of civil servant?
  6. A design paradigm should have aesthetics and respect for the user’s intelligence at the top of its charter, not as optional or user-configurable extras. Hence the word Nice.
  7. Many interesting alternative OSs have appeared (such as NeXT, BeOS, QNX, MenuetOS) which showed there was a felt need for more attractive, more tailored and/or less fancy systems than the major players provided.
  8. A careful, do-it-yourself, gordian-knot-cutting approach by one amateur programmer could produce something of as much value as that produced by teams of “experts”.

Possible & Imagined Shortcomings

It may appear that NOUS lacks resources or features deemed essential to modern users, such as:

  • full independent multi-tasking.
  • fancy 3D graphics, imaging & multimedia applications.
  • networking & the Internet.
  • other sophisticated or “professional” or “industrial-strength” functions.
  • native compilers for assembly language and/or a widely known language like C.

These are beyond the author at this stage, and are outside of the stated Goals. The last item would be nice for development purposes, but hopefully the assembly kernel is solid enough, and the programming resources powerful enough, in the meantime.

Then it may seem to lack:

  • many familiar methods & metaphors.
  • a pervasive visual “theme”.
  • free abandon for the user (eg. impressive arrays of user “preferences”, being able to resize a window, being able to dump files anywhere).
  • games.

A careful, objective look at current mainstream systems will reveal that these are trivial, distracting issues, and applicable to a different paradigm.

  • compatibility with existing systems?

This item is also fairly trivial if one accepts that a user’s creativity is more important than a software’s required format; NOUS keeps everything open and/or text-based, so if a translation is needed, a translator can be created.

  • ease of use for first-time users?

First-time use is a temporary state. Like any sophisticated and powerful tool, a computer should require a period of familiarity. But unlike many systems, whose daunting complexity (or cocoon of over-simple metaphors) keeps most users at the novice level, NOUS provides full accessibility to the computer’s potential for users of moderate curiousity.

NOUS in more detail

  • About general use
  • About more advanced use
  • About the structure & design
  • Expanded contents
  • Appendix
The SOUL programming language
 

home

This page © Ian James - last modified Nov.13,2008