UP status is the administrative state of the interface, i.e. whether the interface has been enabled. You can enable any interface using e.g.
ip l s eth0 up
If the cable is plugged in and a link is established, the interface will also get the operational state of
Many cards will inhibit outgoing carrier generation if the administrative state is not
UP, and an interface that is not
UP cannot be
RUNNING either, so if I set
ip l s eth0 down
I'd expect my local interface to lose both
RUNNING, and the corresponding interface on the remote side would also no longer be
RUNNING (but still
UP, so if I enable my side again, I'd get a link).
That is just the Ethernet link though. On top of the link, various protocols can be bound, one of them being IPv4. By default, IPv4 is bound to all interfaces that support the protocol family.
When the protocol is bound, I can send and receive packets with any address assigned to the interface. If no address is assigned, this simply means that there is no valid address that can be used for outgoing packets (so sending a packet fails), nor any unicast address an incoming packet can be addressed to that the system would recognize as local (so only broadcast/multicast packets can be received).
This does not concern the link layer in the slightest, as it will only establish a link.
Certain programs, such as the DHCP client, have special permission to send arbitrarily formatted packets, filling in a fantasy source address or
0.0.0.0, and to receive arriving packets regardless of whether they are destined for the local machine. This is used during automatic IP address configuration, where the DHCP request is sent using a source address of
0.0.0.0, and the reply from the server is addressed to the broadcast address
Thus, there is a valid use case where IP packets are exchanged even without an address bound to the interface.
In addition to IPv4, there is also IPv6, IPX, AppleTalk, etc., which can all share the same physical layer. As soon as the link is established, any of these higher-level protocols can use its own activation sequence to get into an operational state.