What is KERNAL?
KERNAL (not kernel and all upper case) is the OS that
has ran on Commodore home computers (micros) since the
introduction of the Personal Electronic Transactor (PET) in 1977
although most of us only knew about
CBM BASIC 2.0 running on ROM. At the time, most of us neither
understood nor cared what an OS was. In general I wish I could
say that I know more about KERNAL.
As with most programmers who liked Commodore machines, I
started writing code on a C64 and this was my only exposure to
its built-in language interpreter (
CBM BASIC 2.0) and its OS (KERNAL).
Commodore 64:
Although I enjoyed many hours of programming in
CBM BASIC 2.0 including some machine language (lots of
POKE calls) on my C64 (1982-94) not any other language,
I now wish I knew then more about the OS underneath
CBM BASIC 2.0. Hence the only time I truly interacted with
the OS was while programming
CBM BASIC 2.0 — in other words, merely basic code poking into
the OS. At least, those hours of programming had me in front of
my C64 connected to a cassette recorder and a B/W 13" Zenith TV
set with a broken channel potentiometer (pot or knob)
via an RF modulator on channel 3 (still no over-the-air channel 3
where I live), a container of dry-roasted peanuts and a
three-litter bottle of soda. At times, given the fact that my
memory has flushed out almost everything I learned in
CBM BASIC 2.0 more than three (3) decades ago, I wonder if I
should once again learn how to program in
CBM BASIC 2.0 accessing KERNAL with machine language as I
used to do or perhaps this time writing directly to KERNAL in
assembly.
Although the original C64 has not been in production for
almost three (3) decades, this has not stopped developers from
working on new technologies retrofitted printed circuit boards
(PCBs) to emulate hardware like FDDs, HDDs, modems and even NICs
to access local networks or the internet. The same is true for
new OSs as replacements for KERNAL — not to mention releasing new
games for that matter.
-
Advanced Computing Environment 128/64
(ACE-128/64) by Craig Bruce comes with Unix-like shell. It needs a
RAM Expansion Unit (REU) up to 16 MB, a RAMLink storage
device up to 16 MB, a Creative Micro Designs (CMD — not to be
confused with CMD.EXE as in command prompt) disk
drive and other hardware needed for specific jobs. From what
I see, this replacement OS might be the best in this short
list.
-
Asterix by Chris "Pollar" Baird was "An
experimental UNIX-ish
operating system for the STANDARD Commodore 64" released
in 1991.
-
CP/M Cartridge was released in 1983 by
CBM with Z80 running at 3 MHz CPU — almost twice faster than
the 1.023 MHz MOS Technology 6510 in the C64 with a second
Z80 CPU and CP/M
2.2.
-
DOS/65 by Richard Leary offers file system
compatibility to CP/M-80
for the C64 "in order to make any 6502 system a truly
workable disk based system [with] a degree of compatibility
now possible not only between 6502 systems but with large
parts of the world of CP/M
systems" (09/2009). Note that the developer has posted
lots of documentation how the DOS/65 works in
detail. Aside from being able to learn about the 6202
architecture, you can learn how an primitive OS can
be developed or how it works.
-
JiffyDOS KERNAL ROM
Overlay IC (simply referred to as JiffyDOS) provided a
DOS-like
environment for the C64 and C128. Aside from offering better
access to floppies, it also added extensions to
CBM BASIC 2.0 — DOS
Wedge (LOAD "C-64 WEDGE",8).
-
GeckOS/A65 is a "full-featured
Multitasking/Multithreading operating system for the 6502...
preemptive and implements some for Unix-like features, like
signals, semaphores, relocatable fileformat, standard
library, internet support via a kind of simplified sockets
and last but not least virtual consoles" (Jun.
2020).
-
Other Operating Systems (GEOS)
by Berkeley Softworks was released in 1986 as a replacement
for KERNAL and offered a GUI — a
ground-breaking feature at the time. Refer to more detailed
information in the
Other Operating Systems page.
-
LUnix (now LUnix Next Generation or simply LNG)
by Daniel Dallman and others is an "operating system for
the Commodore64... [that] supports TCP/IP networking (SLIP or
PPP using a RS232 interface)... [with] look and feel like
UNIX" (08/2013). Note
that the RS232 (Recommended Standard 232) standard is for
data transfer using serial ports commonly used in modems — in
other words, network access.
-
WiNGs by Jolse Maginnis is a 16-bit and
multi-tasking OS for the C64 and C128 with optional packages
for the GUI, shell consoles and internet access. WiNGs needs
a CMD SuperCPU (W65C816S 8/16-bit processor), CMD SuperRAM
card with at least 1 MB, a CMD HD (if not a CBM 1351 floppy
drive), IDE64 (SD external drive instead of a CMD HD), a CBM
Mouse 1351 mouse for GUI, a CMD Turbo232 DUART cartridge and
a Swiftlink or IDE64 DUART full duplex asynchronous
communication (modem) for internet access (02/2020). WiNGs
seems to be the most interesting OS in this short list, but
all this hardware seems a bit too expensive for my taste. If
you start buying all the extra hardware to operate a C64 as
modern machine, you might as well get a new computer.
Aside from OSs, there is also the OpenCBM
project, which is a "Win NT/2K/XP, and Linux/i386 kernel
driver and development library to control serial CBM devices,
such as the Commodore 1541 disk drive, connected to the PCs
parallel port via a XM1541 or XA1541 cable. Fast disk copier
included. Successor of cbm4li" (06/2006).