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.
2006-02-26 20:51
Compyx

Registered: Jan 2005
Posts: 631
How about the Kernal routines such as OPEN, CLOSE, CHROUT, et cetera?

They provide some sort of abstraction: you don't have to know if your (serial) device is a printer or some disk-drive, you just provide data to be sent and the Kernal figures out where and how to send it..

Also: when sending PETSCII through CHROUT, the Kernal provides 'abstraction' once more: you don't need to worry about where the screen-RAM is located and how to set colors in the color-RAM, the Kernal provides these facilities.

Just my 2 cents ;)

2006-02-26 20:51
Radiant

Registered: Sep 2004
Posts: 639
That is a junk definition, IIRC Tanenbaum simply defines an operating system (the kernel being the core part) as the abstraction layer closest to the real hardware, in C64's case the KERNAL.
2006-02-26 20:56
Compyx

Registered: Jan 2005
Posts: 631
Read more one this: http://en.wikipedia.org/wiki/Kernel_(computer_science)
2006-02-26 21:03
Radiant

Registered: Sep 2004
Posts: 639
Compyx: Though that article applies mostly to modern (1990-) kernels. Multiprogramming is for example not a requisite for a kernel, not even the concept of multiple processes is. See also http://en.wikipedia.org/wiki/Operating_system
2006-02-26 21:21
Compyx

Registered: Jan 2005
Posts: 631
I know, I was just providing some insight as to where Oswald came up with the first paragraph in his post.

I agree that comparing the Kernal of the C64 (approx. 1981/1982) against specifications/requirements written years afterwards isn't exactly fair.

But do we really need a kernal, being demo-coders? Demo coding (at least to me) is all about direct-I/O programming: remember the old "wet your finger and rub it against your joystick-port"? That's about as close as you can get to 'direct-I/O' :)
2006-02-26 23:00
Oswald

Registered: Apr 2002
Posts: 5094
another definition:

The 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.

at least kernal is not in any way the CORE of the c64 OS.

kernel also means the "essence" of sg.

kernal is kernal, and it can be only called kernel IMHO if we are as sloppy when calling a wolfenstein clone a doom clone. (where even wolfenstein is inaccurate)

I dont like the habit of calling it kernel. dont let lame pc terms enter our cosy c64 world, where we had the definitons for everything before pcs.
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.
 
... 26 posts hidden. Click here to view all posts....
 
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
CreaMD/React
crayon/Hokuto Force
apprentix
E$G/HF ⭐ 7
XmikeX
Guests online: 99
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 NTSC-Fixers
1 Pudwerx  (10)
2 Booze  (9.7)
3 Stormbringer  (9.7)
4 Fungus  (9.6)
5 Grim Reaper  (9.3)

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