difference between hardware and software with examples each