A kernel is the main program or component of an operating system,(so you're sayin that the operating system is
made of many software/programs put together and the kernel is the main program)?
Yes. Any sufficiently-advanced operating system requires a number of programs to handle processes, memory management, disk usage, drivers, etc. And then it's usually not uncommon to include software that the user can use so they don't have to start from scratch.
i read that any os has 2 main functionalities: extended machine(abstraction) and resources management.
"it's the thing that does all the work" (by work you mean : its responsible for the 2 functionalities i mentioned
earlier?)
Abstraction is usually handled by higher-up processes (such as a GUI), although the kernel is mainly responsible for resources management (it also has processes that help it out). The kernel isn't concerned with the abstraction of an interface, in fact, it's more concerned with handling the actual commands that make up the program.
what are the "GNU software"? ( i googled and found that these are free software but i didnt understand much).
GNU is a recursive acronym for GNU's Not Unix. It's basically a project started about 24 years ago whose goal was to develop a Unix-like operating system. The kernel was never really finished, so when Linus Torvalds wrote the Linux kernel, they adopted it to complete their operating system.
"User mode is the normal mode of operating for programs.web browsers ".. (is "use mode" a place in memory ?
since the web browsers and calculators are in the user mode,it means they are installed in the portion of memory
that is specified to the user mode ?)
Yup. It's called 'user space' and 'kernel space', see
http://en.wikipedia.org/wiki/User_space
if i download any software from the internet, lets say "sticky notes software" , will it get installed in the "user mode?"
if i buy a printer and i put the driver cd in my laptop, will it get installed in the "kernel mode"?
You can't really control which 'mode' it runs in. The way the programmer wrote the software will determine whether the program must run in user mode or kernel mode.
so can we say that hard disk is partitioned into addresses for user mode and ones for kernel mode?
No, not really. If you're really interested, study the basics of how a kernel module is written and how this is different from a regular program. Based on the calls that the program makes, the kernel determines whether it must be run in kernel or user mode.