OS: Are User-level threads and software threads (and also kernel-level threads and hardware threads) the same?
Kernel threads and user threads are both software threads. This is only terminology, but I think that hardware threads in your book are the actual CPU cores including hyperthreading threads that the CPU can run at once. So a hardware thread is not instructions or an actual thread, it is simply the threads that the CPU supports. For example, if the CPU has 4 cores and each core uses hyperthreading to have 2 virtual threads each, then you would have 8 hardware threads available for software threads to run.
Kernel threads and user threads are separated by a permission bit in the page tables. Having a thread with a permission of 0 (kernel thread) doesn't make the thread a hardware thread. It is simply a software thread running in kernel mode.