Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > kernal or kernel
2006-02-26 19:43
Oswald

Registered: Apr 2002
Posts: 5094
kernal or kernel

In computer science the kernel is the core of an operating system. It is a piece of software responsible for providing secure access to the machine's hardware and to various computer processes (computer programs in a state of execution). Since there can be many processes running at the same time, and hardware access is limited, the kernel also decides when and how long a program should be able to make use of a piece of hardware: this function is called scheduling. Accessing the hardware directly can be very complex, since there are many different hardware designs for the same type of component. Kernels usually implement some hardware abstraction (a set of instructions universal to all devices of a certain type) to hide the underlying complexity from the operating system and provide a clean and uniform interface to the hardware, which helps application programmers to develop programs that work with all devices of that type. The Hardware Abstraction Layer (HAL) then relies upon a software driver that provides the instructions specific to that device's manufacturing specifications.

...


a kernel is/does:

- a core of an operating system
- secure access to the machine's hardware
- secure access to various computer processes
- scheduling (when and how long a program should be able to make use of a piece of hardware)
- usually implements some hardware abstraction

which of the above is applicable to kernal ?

none.

kernal does basic IO stuff.
 
... 26 posts hidden. Click here to view all posts....
 
2006-02-26 23:04
Radiant

Registered: Sep 2004
Posts: 639
"Kernel" isn't a PC term, it predates PC's by more than 10 years. ;-)
2006-02-26 23:33
Merman

Registered: Dec 2002
Posts: 140
"kernel", strictly speaking means the middle bit of a nut.

Commodore's "kernal" was named after the fact, i.e. they came up with the system and then devised the silly acronym
2006-02-26 23:33
TDJ

Registered: Dec 2001
Posts: 1879
Plus, strictly speaking the c64 is a p.c. as well .. I even have some old magazines from the early 80's with ads that use that term.
2006-02-27 04:03
THE TEA DRINKER

Registered: Jul 2005
Posts: 39
Dunno if this is the correct, but I think it's:

Used these as references: http://en.wikipedia.org/wiki/Kernal (copy pasted into this threath)
and if not then try this:
http://whatis.techtarget.com/wsearchResults/1,290214,sid9,00.ht..

KERNAL:

This article is about Commodore's 8-bit OS software. For the general OS core concept, see kernel (computer science).
The KERNAL is Commodore's name for the ROM-resident operating system core in its 8-bit home computers; from the original PET of 1977, via the extended, but strongly related, versions used in its successors; the VIC-20, C64, Plus/4, C16, and C128. The Commodore 8-bit machines' KERNAL consisted of the low-level, close to the hardware, OS routines (in contrast to the BASIC interpreter routines, also located in ROM), and was user callable via a jump table whose central (oldest) part, for reasons of backwards compatibility, remained largely identical throughout the whole 8-bit series. The Kernal rom occupies the last 8K of the 8-bit CPUs 64K address space (X'F000'-X'FFFF').

Example of use
A simple, still characteristic, example of applying the KERNAL is given by the following 6502 assembly language subroutine (written in ca65 assembler format/syntax):

MSG: .ASCIIZ "Hello, world!"
LDX #$F3 ; store length of string as two's complement value in x register
@LP: LDA MSG-$F3,X ; load character
JSR $FFD2 ; call CHROUT in order to output char to current output device (e.g., screen)
INX ; next character
BNE @LP ; loop back to load new char until whole string done, and then ...
RTS ; ... return from the subroutine
This code stub employs the CHROUT routine, found at address $FFD2 (65490), to send a text string to the default output device (e.g., the display screen).

Acronym or misspelling?
According to early Commodore 'myth' and reported by writer/programmer Jim Butterfield among others, the word KERNAL is an acronym (or maybe more likely, a backronym) standing for Keyboard Entry Read, Network, And Link, which in fact makes good sense considering its role. There's also, however, a theory that the word originated as a misspelling of the word "kernel"[1] by some unknown Commodore employee. Misspelling or not, Berkeley Softworks later used it when naming the core routines of its GUI OS for 8-bit home computers: the GEOS KERNAL.

The (completely different) OS core in the 16/32-bit Commodore Amiga series was called the Amiga ROM Kernel, i.e. using the correct spelling of kernel.

Notes
^ The kernel is the most fundamental part of a program, typically an operating system, that resides in memory at all times and provides the basic services. It is the part of the operating system that is closest to the machine and may activate the hardware directly or interface to another software layer that drives the hardware.
2006-02-27 08:51
trident

Registered: May 2002
Posts: 91
The KERNAL can definitely be called the kernel of the C64 OS as it provides the basic I/O hardware abstractions (disk, tape, serial lines, keyboard, screen). Since we have no multiprogramming on the C64 it is pointless to talk about scheduling or processes in this context.

A much more interesting discussion is why the Commodore people chose to call it the KERNAL instead of the kernel. As we've read on Wikipedia, the origins of the name is somewhat of a mystery even though plausible explanations exist. Did they see it as an inside joke? Did they smirk every time they typed the characters K E R N A L into the Programmers reference guide? Are there any old retired Commodore engineers reading this thread, chuckling wildly at us? ;-)
2006-02-27 13:23
Graham
Account closed

Registered: Dec 2002
Posts: 990
Quote: Plus, strictly speaking the c64 is a p.c. as well .. I even have some old magazines from the early 80's with ads that use that term.

Yup, any computer which can load programs from some external media is a "personal computer". The "personal" relates to the way a computer can be adapted to personal needs (loading software etc). A pocket calculator is usually no PC, and a games console is also too limited to be called a PC (although you can swap software, you are not quite free with that).

And the KERNAL vs kernel matter: I agree with Oswald that "the KERNAL" is the C64 OS and is not identical to a kernel similar to a Linux kernel. Parts of the KERNAL may be called kernel, but at some parts it seems a bit too high level while at other parts it lacks stuff to be a kernel.
2006-02-27 16:26
trident

Registered: May 2002
Posts: 91
Quote: Yup, any computer which can load programs from some external media is a "personal computer". The "personal" relates to the way a computer can be adapted to personal needs (loading software etc). A pocket calculator is usually no PC, and a games console is also too limited to be called a PC (although you can swap software, you are not quite free with that).

And the KERNAL vs kernel matter: I agree with Oswald that "the KERNAL" is the C64 OS and is not identical to a kernel similar to a Linux kernel. Parts of the KERNAL may be called kernel, but at some parts it seems a bit too high level while at other parts it lacks stuff to be a kernel.


I would argue that the C64 OS consists of the KERNAL and the BASIC, just like a Linux OS consists of the Linux kernel and a bunch of user space programs. The KERNAL is the kernel of the C64 OS - it is the only definition that makes sense, really.
2006-02-27 17:13
Oswald

Registered: Apr 2002
Posts: 5094
ok, so some of you think: kernal is the core of the c64 OS.

nice little core we have here, takes HALF of the ENTIRE OS. And what does the 2nd half of the OS do ? its a BASIC INTERPRETER.

Also if you have a core of an OS, where are the other layers using it ? nowhere ? hmm


kernal is not an OS CORE in any way, while kernel is.

but lets assume I agree that kernal in some sense is a kernel too.

calling it then based upon this all the way kernel, is like
calling Windows ALL the time "Operating system".

I think there's only one reason for everyone starting to use kernel. Its the linux hype. And its so much easyer to remember only one word, which is also connected to the "cool" system linux, and sounds so hackerish eh ?

IMHO ppl should show pay some respect, and not to call it kernel.


I *think* one of the possible explanation to this word is that C= engineers didnt think of it as a real kernel, but it did similar things, so they changed one letter, and we got kernal.


kernel=the essence of something, the inner part of a nut

kernel was always used as the innermost part of an OS with several abstraction layers and stuff. Kernal is not the innermost part of the c64 OS. its atleast the half of it.
2006-02-27 17:51
trident

Registered: May 2002
Posts: 91
The KERNAL is the lowest layer of the C64 OS (if we agree that the KERNAL + BASIC is the C64 OS). This has nothing to do with the size of the code of the KERNAL, nor with the size of the executable code of any other parts of the system. The KERNAL provides an abstract API that most definitely has been designed to be useful for applications other than the BASIC interpreter (the "user space" of the C64 OS), much like any other OS kernel.
2006-02-27 18:35
TNT
Account closed

Registered: Oct 2004
Posts: 189
Quoting Oswald
nice little core we have here, takes HALF of the ENTIRE OS.

Not really, as BASIC uses $e000-$e4b6 of kernal ROM :)
Previous - 1 | 2 | 3 | 4 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
stephan-a
Scrap/Genesis Project
Guests online: 114
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 X-Mas Demo 2024  (9.5)
7 Dawnfall V1.1  (9.5)
8 Rainbow Connection  (9.5)
9 Onscreen 5k  (9.5)
10 Morph  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Graphicians
1 Mirage  (9.8)
2 Archmage  (9.7)
3 Pal  (9.6)
4 Carrion  (9.6)
5 Sulevi  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.156 sec.