在Mono上异步等待实现

Und*_*ore 5 c# mono asynchronous

在他有关C#async / await中的线程使用的博客文章(http://blog.stephencleary.com/2013/11/there-is-no-thread.html)中,Stephen Cleary详细介绍了如何不使用线程来处理真正的线程。异步操作,例如文件I / O,Web请求等(从现有线程(例如I / O线程)借来的时间除外)

从该帖子看来,当操作系统为Windows时,BCL似乎将使用重叠的I / O或I / O完成端口将操作传递给操作系统。

我的问题是,是否将相同的“无线程”且非阻塞的异步操作模型应用于其他操作系统(主要是Linux的Mono)的C#实现?

如果是这样,那么BCL与OS进行通信的通道是什么,因为IOCP(和重叠的I / O)似乎是Win32 API所特有的?

另外,据推测,一旦到达驱动程序,无论OS是什么,操作都是异步的?