Here, we'll collect terms about operating systems.
The kernel is a computer program that is the core of a computer's operating system, with complete control over everything in the system. - Kernel_(operating_system) (wikipedia link).
In computing, a process is an instance of a computer program that is being executed. Process (wikipedia)
Have you ever pressed
Ctrl-c? Ever wondered how your program stopped? When you press
Ctrl-c, in a normally configured terminal, your shell sends a so called signal (more specifically SIGTERM) to your program which causes your program to terminate. So you most likely already have used signals so need to be afraid of them. In short signals a re a simple means to communicate between processes (so called IPC - Inter Process Communication).
If you want to see how your terminal is configured, type:
$ stty -a speed 38400 baud; rows 66; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc
The important thing, when it comes to signals, to note here is:
intr = ^C. You've probably already have figured out that
ctrl-c is configured to send
Programming language specific pages:
In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system. The implementation of threads and processes differs between operating systems, but in most cases a thread is a component of a process. Multiple threads can exist within one process, executing concurrently and sharing resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its executable code and the values of its variables at any given time. Thread