DFUI is a user interface abstraction in the form of a protocol by which application logic (such as a system installer) in the backend can talk to a concrete user interface (such as curses or GTK) in the frontend.