7

As software for micros developed, you could use the BASIC interpreter just to CLOAD and RUN assembly language programs. Those might call BASIC ROM routines (say, for converting ASCII input to binary or vice versa). So could BASIC interpreters on such systems be considered an operating system? What are the criteria they would have to meet to do so?

Interpreters of course varied widely. On the first TRS-80, the computer would immediately start up in BASIC. On the initial Apple II, however, the computer would start up in a monitor, and you’d type in a keystroke to launch BASIC.

8
  • 4
    What would you consider the characteristics of an "operating system" to be? Commented Aug 2, 2020 at 13:58
  • Personally? 1) The ability to load and launch applications, regardless of the language they were developed in, 2) The primary UI for doing so (I realize it is often considered a separate program) Commented Aug 2, 2020 at 16:33
  • A modern "operating system" fulfills several different roles, but IMO the most general thing one could say about operating systems over the entire history of computing is that is they are software components of computer systems that facilitate the use of the computer in more than one application. On the other hand, there is one class of operating system—namely, embedded, real-time operating systems—to which that definition does not apply at all. Commented Aug 2, 2020 at 16:33
  • Related: retrocomputing.stackexchange.com/questions/14374/…
    – Jim Nelson
    Commented Aug 3, 2020 at 17:01
  • en.wikipedia.org/wiki/… Commented Aug 3, 2020 at 20:54

6 Answers 6

10

The definition of an OS is quite fuzzy, though it generally includes resource allocation and handling, a way to indicate actions to be performed ('commands', not necessarily interactive), and a way to run user programs.

Your BASIC-only microprocessor systems seem to fulfil that definition, though the "OS" aspects were pretty limited. We can at least conceptually distinguish the BASIC language from the command structure (RUN, LIST, etc.)

For a non-micro example, RSTS-11 on the PDP-11/20 had a fairly conventional OS kernel which supported a single runtime system, BASIC-PLUS, which provided language compiler and command interface in one. This was very definitely an operating system, and the capabilities do not seem so very different to the micro systems you refer to, though the structures are dissimilar.

7

So could BASIC interpreters on such systems be considered an operating system?

Well, the resident (*1) software initializes the machine and all I/O, prepares operation, offer services for I/O (disk, tape, ports, clock, etc.) and dumps the user at a command shell. So what would you call that.

For all practical purpose BASIC can be seen as the shell of that system, able to run scripts written in shell commands as well as binary applications.

What are the criteria they would have to meet to do so?

Now, that's something you need to ask yourself, as the term OS in itself does not contain any criteria. There is no clear border.

The main issue here might be that many services we expect today from an OS - or were expected in the 80s from a 'real' OS (*2) - were not required in BASIC systems of the 70s or typical 8 bit machines (*3) of the 80s.

These integrated systems, no matter im BASIC, Forth, or whatever else, were one step in an evolutionary process. Diversification does happen over time if there is a need to separate functions - like boot system from runtime from application. That need wasn't there in the times of 8-bit.


*1 - Or loaded in case of machines with just boot loader, loading a stand alone BASIC system.

*2 - Multiprocessing? Multiprogramming? Memory Management? Inter Process Communication?

*3 - At that time it's important to remember that early 8 bit systems were simply mimicking the previous generation of desktop systems like Wang 2200 (1973), Olivetti 6060 (1975) and many others. Here as well BASIC was used for shell/environment.

3
  • 2
    Basic Four/MAI systems were multi-user minicomputers for vertical markets (e.g., car dealership parts departments, dentist offices, etc.) (sold via VARs). To the end-user they were BASIC only. That BASIC allowed assess to all features of the machine, including low-level serial/parallel comms and a view of the file system on disk that included sector ranges, and launching programs. Internally, there was a compiler-compiler language (TREE META) for the BASIC compiler itself and everything else - device drivers, file system, and multiprogramming was horizontal microcode! (No assembly!)
    – davidbak
    Commented Aug 2, 2020 at 19:01
  • @davidbak true. I really like my BasicFour.
    – Raffzahn
    Commented Aug 2, 2020 at 19:43
  • 3
    Don't forget the PICK Operating System. The JCL was a variant of BASIC.
    – cup
    Commented Aug 3, 2020 at 16:26
4

I would say "no".

If anything, the BASIC might be considered the "command line" for the system, but not the OS itself.

If you step back to other system, such as the DEC PDP's. These, to, would essentially present itself as BASIC. You login, and you get the BASIC prompt.

But it's clear that in these scenarios, that BASIC is not the OS. The underlying RSTS or RSX were the actual OS, as those aspects managed the jobs, multiple users, etc.

Micros didn't need all that, they just needed routines to abstract the hardware.

The early systems were not very sophisticated, the line between the BASIC runtime and the "OS" (if any) was fuzzy indeed. Witness modern hobby BASICs that simply need the console driver routines for fundamental operation. I don't consider a serial port console driver an "OS".

But, consider something like the Atari systems. which has a built in extensible device manager that BASIC leveraged. BASIC was an add on for Ataris, coming in cartridge form. Now is a device manager an OS? Meh, "sorta".

BASIC on CP/M, clearly, DID run on top of an "OS" -- they ran on top of CP/M and it's BDOS services.

Finally, as we get in to MS-DOS, which was more and more like an OS (it did things like memory management, device abstraction, "TSRs", etc.) Offering more services than simple devices. Then the boundaries between OS and application program (including development and runtime environments like BASIC) were getting more clear.

4
  • The 709 Fortran Monitor System is generally considered to be an operating system, and it doesn't seem like it's a greater level of complexity or modularity that your average micro BASIC. As I understand it (I'm not as old as that), the compiler essentially was a bare-metal compiler, and FMS just wrapped some basic job sequencing around that.
    – dave
    Commented Aug 2, 2020 at 20:44
  • The first computer program I ever ran was a homework assignment for my first programming course. It was run under some kind of job control system, possibly IBSYS, for the 7090. Commented Aug 3, 2020 at 10:45
  • That was the second system I used. PUFFT (Perdue University Fast Fortran Translator) running under IBSYS on the 7094 at Imperial College -- hand-punched card decks sent by Post Office mail from my high school.
    – dave
    Commented Aug 3, 2020 at 16:38
  • While BASIC came on cartridge form on the original Atari 400/800, the later XL modules had it built-in.
    – dan04
    Commented Oct 17, 2023 at 0:24
3

If you agree that ‘OS’ is only a loosely-defined term then self-labelling is probably worth inspecting.

The Acorn machines from the BBC onwards ship with at least two resident pieces of ROM software, one being the MOS (i.e. the Machine Operating System, thing Acorn labelled as an OS) and the other being BASIC, which runs atop the OS. So Acorn would have said: no, BASIC is not an OS.

Amstrads all ship with a BASIC ROM and those with built-in disk drives also separately include a ROM for AMSDOS, the disk operating system. But it’s not part of BASIC. So Amstrad would probably also have thought of what they supply as an ‘operating system’ as distinct from BASIC.

CP/M is at least as much an OS as MS-DOS but those machines provide BASIC separately on disk so the two are disjoint.

Commodore probably comes closest to passable nomenclature in having something called a KERNAL (i.e. a kernel, spelling errors aside) that is heavily coupled to BASIC but nothing is formally an ‘OS’.

MSX machines with disk drives built-in also keep BASIC as a distinct thing from the built-in MSX-DOS, which is more or less an 8-bit port of MS-DOS. So the relationship is much like the IBM PC except that the presumption is reversed in that every MSX has BASIC but only some have MSX-DOS built in.

So my feeling is that an ‘OS’ is loosely defined but that since so many manufacturers had something discrete which they called the disk operating system, probably ‘no’ is the correct answer by standards of the time.

2

Although you ask specifically about microcomputers and interpreted BASIC, note that the category of machines with BASIC as the basic command interface included minicomputers such as the Pick systems.

The Pick systems were "a demand-paged, multi-user, virtual memory, time-sharing computer operating system based around a MultiValue database".

In Pick systems, the OS System Programming Library is the BASIC library. I don't think that means that Pick systems were written in BASIC (?): rather, Pick Basic just exposed the SPL as the API.

1

It's worth recalling that when the IBM-PC was first launched, the minimal system had only ROM-Basic in addition to the BIOS. (DOS and floppy disks were optional extras.) At start-up, the user was presented with the Basic prompt, and there was a tape i/o interface accessible from Basic for storing and retrieving programs and data.

I don't take a position on how to define 'operating system' generally. But for this early configuration of the IBM-PC, it looks as if whatever one chooses to call an operating system has to be identified from within the ROM-Basic and/or the system BIOS.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .