A Programmer-Friendly I/O Abstraction Over io_uring and kqueue