____________ __\|ftp modules| / /|___________| _ ____________ / ________________ | update | / |mount/local file| |==========================>| module |/_____\| traversals | | |_____________| /|________________| | ^ ^ | | | ______________ ______|_______ _ _____ ______ | _____v________ \| | |Configuration | |configuration| | |Packages Files| ===|Status file | | module |<=>| data | | |______________| / /|____________| |______________| |_____________| | ^ / ^ | | / | | _______v_______|/_ | | | | ________________ | | | |/_\| Dependency | | | |backing store |\ /| Module | | | |______________| _|_______________| | \ ^ /| ^ | \ | / | | _\|____v_______|/__ ____v_______ |_____________________________\| User interaction| | dpkg | /|_________________|<==> Invoker | |___________|
dpkg also interacts with status and available files.
The backing store and the associated data structures are the core of APT. All modules essentially revolve around the backing store, feeding it data, adding and manipulating links and relationships between data in the backing store, allowing the user to interact with and modify the data in the backing store, and finally writing it out as the status file and possibly issuing directives to dpkg.
The other focal point for APT is the user interface.