- Created src/ethernet.h: eth_iface_t interface struct, Ethernet header
type, htons/ntohs/htonl/ntohl byte-order helpers, EtherType constants,
send/recv with automatic header construction/stripping
- Created src/ethernet.c: interface table, char device ops routed
through ethernet layer, sysfs /sys/net namespace exposing per-iface
mac/ip/netmask/gateway/link files, IPv4 address parse/format
- NE2000 and 3C509B drivers now register through ethernet_register()
instead of directly via devicefs_register_char(); removed redundant
char device ops from both drivers
- Kernel calls ethernet_init() before init_drivers() so the subsystem
is ready when NIC drivers probe
- Tested: NE2000 detected with NIC, 'eth1' registered via ethernet
subsystem; clean boot without NIC