Whats the relation between a kernel, assembler and firmare?

Shlouski

VIP Member
Sorry im new to this so i dont have a clue. I understand that a kernel is a program which is the bridge between the software and the hardware. Is an assembler a low level language program used to make the kernel? Also where is the kernel located physically? I also know that firmware is a program written onto a device like a graphics card or router (like changing settings in the router) and does this program tell the kernel how the device is to be used?
 
"Assembler" usually refers to a program tha compiles assembly to machine code, assembly being the lowest-level language there is before plunging into raw ones and zeroes (nobody programs in those any more). Assembler is often used to code parts of the kernel since, you know, it's the bit of the operating system that deals directly with the hardware. However, assembly isn't used for just kernels and kernels aren't written entirely in assembly (except for some really special hardware of experiments).

Kernel, you're right, is a piece of software that gives all applications access to the hardware... it's the core of the operating system. Though I don't quite understand what you mean by "where it's located physically"... being software itself, it doesn't "physically" exist. When the computer is running, it's in the RAM... there's no rule as to where in the RAM it has to be, it's often dependent on the OS/kernel itself.

Firmware it's sort of like a small kernel itself on a device (in simplified terms, of course), it doesn't have anything to do with a computer's kernel directly. It simply controls the functions of the machine and likely also the interaction between the device and the driver on the host computer.
 
thanks, but where does the kernel load into the ram from? is it written to the HDD when windows is installed and if so how does windows know how to install a kernel without a kernel already being there?
 
It begins in the bios. It invokes a chain reaction called the boot process.

You can find a more detailed explanation of it at microsoft.com
 
In the old days there was no hard disk for the operating system, it was stored in ROM and programmes that you loaded from some media was loaded into the RAM. I know this is out of date by many years, but If you had your data stored on cassette (a game) then the whole cassette used to have to be loaded into RAM before play and that would take 5 minutes depending on game size.


As said, the OS used to be stored on ROM and as ROM is a non-volatile type of RAM, and therefore the OS was difficult to make a virus for as you cannot write to ROM, and because ROM/RAM is like a million times quicker than any media such as Floppy, CD, Hard Disk, the OS loads in seconds.


I know this is of no importance, but it is food for thought :)
 
it all helps, i intend to know every last detail about computers one day. Component curcuits, software writing and all that happens in between.
 
thanks, but where does the kernel load into the ram from? is it written to the HDD when windows is installed and if so how does windows know how to install a kernel without a kernel already being there?
Kernel is just a piece of software. In case of Windows, on the HD it consists of a buch of files under the Windows and System* folders that are loaded up doing the boot process. Or, in case of Linux, it's all contained in a file called the "kernel image". There's no special "place" in the HD for it, it's just... file(s) on the drive. Windows doesn't care if there's already a kernel there or not, when you install Windows it installs whatever version of the Windows kernel it comes with. And just like you can have multiple operating systems on one machine, you can have multiple kernels as well.
 
right i see, how about the bios? I understand that the bios contains a program which holds all the information about the hardware in the computer and that it allows you to alter hardware settings, so does the kernel read this information, so it knows how to distribute information given to it by the OS?
 
Back
Top