summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Buchholz <hurd@sleepingsquirrel.org>2003-09-08 21:27:00 +0000
committerGreg Buchholz <hurd@sleepingsquirrel.org>2003-09-08 21:27:00 +0000
commit3b9f2339aacb305847aa08c95a36b6aae8c92079 (patch)
tree62465561ad4bbc40b12401cba19fd8d642b9cf17
parent1d752169d4b81933fa27a1112f6b0a83b2acf478 (diff)
none
-rw-r--r--Hurd/TranslatorWishList.mdwn10
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.