Common middleboxes perform tasks, such as firewalling, intrusion detection, network address
translation, and load balancing. Due to the complexity of their tasks, middleboxes can
benefit from the programming and runtime convenience provided by an OS through its
abstractions for safety and resource management.