is there only a dhcp server? or does linux also have dhcp client programs that utilize the dhcp server? Or does the dhcp server do it all?
No, the server won't FORCE dhcp leases on machines, it
offers them. Clients can choose to use them, or go with
static addresses. Things can get confusing though if the
server hands out IPs that it thinks are free and a client
uses it hard-coded.