The uIP library most likely implements just the TCP stack. It still needs a way to talk to the hardware. This is what OS is for. Setting up DMA, managing buffers, serving interrupts (and interacting mainline code with ISRs).
With no OS you'd have to implement everything manually.