diff options
author | Greg Buchholz <hurd@sleepingsquirrel.org> | 2003-09-08 21:27:00 +0000 |
---|---|---|
committer | Greg Buchholz <hurd@sleepingsquirrel.org> | 2003-09-08 21:27:00 +0000 |
commit | 3b9f2339aacb305847aa08c95a36b6aae8c92079 (patch) | |
tree | 62465561ad4bbc40b12401cba19fd8d642b9cf17 | |
parent | 1d752169d4b81933fa27a1112f6b0a83b2acf478 (diff) |
none
-rw-r--r-- | Hurd/TranslatorWishList.mdwn | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Hurd/TranslatorWishList.mdwn b/Hurd/TranslatorWishList.mdwn index a23f10c2..3ba74bba 100644 --- a/Hurd/TranslatorWishList.mdwn +++ b/Hurd/TranslatorWishList.mdwn @@ -56,7 +56,15 @@ Perl is a wonderful language for hacking together something useful in a short am Here's a crazy thought. How about a translator for source code. You have a C source file like `hello.c` which is your normal everyday file. But there's a translator sitting underneath, so when you `cd hello.c` you get a directory with files like `main()` which represent the subroutines in `hello.c`. And of course you should be able to edit/remove those and have it modify the original source. --- Greg Buchholz - 25 Jul 2003 +## <a name="Libraries"> Libraries </a> + +Here's an [idea](http://www.circlemud.org/~jelson/software/fusd/docs/node13.html) from the people making [userspace drivers in Linux](http://www.circlemud.org/~jelson/software/fusd/): + +* "One particularly interesting application of FUSD that we've found very useful is as a way to let regular user-space libraries export device file APIs. For example, imagine you had a library which factored large composite numbers. Typically, it might have a C interface--say, a function called `int *factorize(int bignum)`. With FUSD, it's possible to create a device file interface--say, a device called `/dev/factorize` to which clients can `write(2)` a big number, then `read(2)` back its factors. + +* This may sound strange, but device file APIs have at least three advantages over a typical library API. First, it becomes much more language independent--any language that can make system calls can access the factorization library. Second, the factorization code is running in a different address space; if it crashes, it won't crash or corrupt the caller. Third, and most interestingly, it is possible to use `select(2)` to wait for the factorization to complete. `select(2)` would make it easy for a client to factor a large number while remaining responsive to other events that might happen in the meantime. In other words, FUSD allows normal user-space libraries to integrate seamlessly with UNIX's existing, POSIX-standard event notification interface: `select(2)`." + +-- [[Main/GregBuchholz]] - updated 08 Sep 2003 Minor formatting updates. |