I am not a fan of the title party. Cerl/async is an operating system. This is what we know together with our partners who develop cerl.
The most important thing for an operating system suitable for server development is three:
- Process Management
- Io Management
- Memory Management
We have done these three things on our own.
First, process management. Although Windows provides fiber, Linux also has the libucontext library. But they are not the "main character" in the operating system ". In the current operating system environment, a fiber is only an isolated fiber. It has nothing to do with other subsystems of the Windows/Linux operating system. That is to say, there is no fiber schedule at all. We have to do this by ourselves.
Then let's look at Io management. In fact, this is the same as process management. The key to process management is process scheduling. The most important thing about process scheduling is to coordinate IO requests. In other words, the core content of cerl/async is to provide a set of I/O operation Interfaces Based on Fiber. This allows Io coordination between different fiber processes to improve system performance.
Memory Management. This is quite natural. Most server programmers will develop their own memory manager as a necessary tool for home travel.
As a result, cerl/async is indeed doing what the operating system needs to do. One day it will become a natural part of the operating system. I know that win7 already has this trend, because she introduced "User Thread Scheduling", that is, thread scheduling in the user State, rather than in the core state. This actually acknowledges the significance of the fiber (fiber, or user-state thread. I am personally optimistic, and I think that fiber learning is not far from mainstream developers.