Hmm..
That makes one wonder what path will first full-blown implementations of
COLA take ?
It seems that choosing a minimal set of libraries to base the first version
of the operating environment might be one possible path ?
Although it might be at cross-purpose to vpri's vision of unified bare-metal
to user-level system model ?

Artur K.

On Mon, Jun 9, 2008 at 4:13 PM, Ivan Krstić <
[EMAIL PROTECTED]> wrote:

> On Jun 9, 2008, at 10:32 AM, Karl Robillard wrote:
>
>> I don't see any real difference.  In fact, OS portability is probably the
>> easier part to achieve due to existing standards (TCP/IP, OpenGL, etc)
>>
>
>
> TCP/IP? Great, let's write a web server! It'll fork() to accept every
> connection. No, wait, fork() is almost unusably slow on Solaris for this
> purpose. I guess we'll do threads. Except hmm, creating a thread on Solaris
> can be slower than forking a process in Linux on the same hardware. I guess
> we'll deal with it. We can accept our timeouts with SIGALRM. No, wait,
> that's expensive, we should just do select(). But wait, select() has a limit
> on the number of fds. 1024 on Linux and maybe less on other platforms. We
> should use poll() instead. No, wait, Mac OS X doesn't support that. I guess
> we could use the proprietary /dev/poll on Solaris and epoll via syscalls on
> Linux 2.6, and support SIGIO if we want to compile on Linux 2.4. That should
> work. Except BSD doesn't have any of this, so we'll support kqueue on
> FreeBSD and OpenBSD, but not NetBSD which doesn't have it. We'll select()
> there, I suppose. Okay, so now we have a webserver. It'll do zero-copy file
> sends back to clients via sendfile(). Wait, but that syscall is different on
> FreeBSD and Linux. And doesn't exist on NetBSD and OpenBSD. And we better
> not try mmaping the file, because mmap() latency increases significantly
> with the number of pages mapped in NetBSD, FreeBSD and old Linux kernels.
> Maybe we'll do AIO on Linux to avoid a blocking sendfile() and just send
> chunks straight out of /dev/shm. But the AIO semantics are different on
> FreeBSD, and we better not try it on Solaris whose POSIX AIO implementation
> is stubbed out and returns ENOSYS for every call. I guess we'll use
> AIO+splice on Linux even though splice() doesn't exist elsewhere...
>
> Citing a cruel, cruel world, web server writer performs ritual
> self-disembowelment by sharpened keyboard, news at 11.
>
> --
> Ivan Krstić <[EMAIL PROTECTED]> | http://radian.org
>
>
>
> _______________________________________________
> fonc mailing list
> [email protected]
> http://vpri.org/mailman/listinfo/fonc
>
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc

Reply via email to