What is the difference between a process and a thread in Linux, and how does the kernel schedule them?