Re: Some very thought-provoking ideas about OS architecture. Alan Cox (alan@lxorguk.ukuu.org.uk)
Mon, 21 Jun 1999 19:16:05 +0100 (BST)

> read(fd,buf,sz)
> and
> fd->CALL(OP_READ,buf,sz)
>
> 1. By changing the order of demultiplexing, it offers the option of remoting at
> a later time.

You can happily consider the unix syscall to be fd->read(buf, size) if you prefer, or fd->call(OP_READ, buf, siz). Its entirely semantics however you write it. it doesn't matter if its compiled into push and lcall (or int 0x80 in our case) or into a function call that does the int 0x80. The only time it becomes interesting is when you have hardware doors between nodes. And then read is just a libc wrapper anyway so you won't have to hit local kernel space

You are arguing ultimately about

	struct foo *x
	x->op_read(buf, size)
v
	foo[fd]->op_read(buf, size)

and if you look at Mosix that becomes extremely obvious for almost every unix API.

Alan