how kernel interact with hardware.???they says kernelsr mainly written in assembly language n then it is converted to machine language. bt even i cant feel how machine language accomplish our work wot we wish for can ane one explain concept fully or some refrences

Votes + Comments
Question not asked in a very readable manner.
7 Years
Discussion Span
Last Post by Auraomega

Ok, first it'd help if I could understand your question (typing in proper English helps there).

Assembly simply gets turned into machine code, which then controls the CPU, which in turn can control other hardware (not quite that simple, but we'll pretend it is). All machine code is is a bunch of switches, 0s and 1s, off and on. When you turn a switch on, this allows to machine to do something, turning it off makes it do something different.

It'd take a lot of reading to get comfortable with the concepts; I recommend reading up on how micro processors function, it's not a simple topic that can be covered in the space of a single post unfortunately.

Also, common misconception that kernels are mainly coded in assembly. Most modern kernels are coded in C and use assembly to interact directly with the CPU when needed; high level for logic and low level for the 'glue' between the logic and hardware.


I know this thread is solved, and I know that proper English is really needed here. :)

The kernel can be very complicated but it's basics are very simple. The kernel acts as a "bridge" between the software and the hardware. "The kernel does all of the dirty work of an operating system". {Check out: http://en.wikipedia.org/wiki/Kernel_%28computing%29}

Kernels can be written in many languages, just like Auraomega said but I would personally keep to assembly when I can but C *can* speed up the process of making a kernel. The only problem with using high level languages is that they usually do many things that are not needed and slow the computer down.

If you want to make your own kernel (and subsequently your own Operating System) then you should look at some Open Source operating systems developed for students or people trying to understand the concept. I would try MikeOS. It is a basic text-based operating system written completely in ASM.

Kieran :)

Edited by Kieran Y5: Improved Grammar


I somewhat agree with you, however working on an OS myself and having gone down the route of assembly only I've concluded it's foolhardy. Don't get me wrong it is possible to do entirely in assembly however it's a really long task. The speed and size of assembly is negligible as a kernel these days which is probably why the major players (Windows, UNIX and Linux) are all done primarily in C. Obviously there are parts where using assembly to speed things up will pay off significantly (such as something that's called upon hundreds of times a second) but otherwise your optimising for the sake of it, not for any real need. C also has the bonus of being platform independent leaving you to (usually) change only the assembly parts to get it working on a new platform.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.