summaryrefslogtreecommitdiff
path: root/community
diff options
context:
space:
mode:
authorarnebab <arne_bab@web.de>2008-07-24 09:28:24 +0200
committerarnebab <arne_bab@web.de>2008-07-24 09:28:24 +0200
commitf3fe7440566203c6e4a2a4936d40ecce383ec45a (patch)
tree4a85ddc5efa0157e7bef0e8c228ceda463d9de5c /community
parent03e750f0857e8906bd69792f1ac5bc69531230ba (diff)
parent5a21fc07c33a883d5ad08cf4947279387e92893b (diff)
Merge branch 'master' of arnebab@flubber:~wiki/wiki
Diffstat (limited to 'community')
-rw-r--r--community/flavioc.mdwn38
-rw-r--r--community/procfs.mdwn204
-rw-r--r--community/scolobb.mdwn55
-rw-r--r--community/weblogs.mdwn1
4 files changed, 268 insertions, 30 deletions
diff --git a/community/flavioc.mdwn b/community/flavioc.mdwn
index d7aaa22c..a0c0d036 100644
--- a/community/flavioc.mdwn
+++ b/community/flavioc.mdwn
@@ -22,6 +22,44 @@ hg clone http://freehg.org/u/flavioc/cl-hurd/
Creating an extensible translator library in lisp using the mig generated stubs.
+### What's done
+
+- The library for writing translators is mostly written.
+- This library is intended to implement virtual filesystems. Examples are: translators were data is located in a local file (like zipfs, tarfs, rarfs, ...), single file translators (that do content filtering, output of a command, etc), network based filesystems (ftpfs, httpfs, ...)
+- Right now, what's missing is: support for symlinks, file execution, and setting other translators on our node tree.
+- It's possible to specialize the basic translator library and implement new translator classes. This is done using CLOS.
+- There is a tree-translator class that makes the managing of a node tree very easy, doing all the work for us, through a simple directory API and implementing the directory callbacks for us.
+- There is a simple example (something like zipfs) translator that can expose the directories and file contents of a ZIP file.
+- Translator options (manipulated through fsysopts) have a simple and easy to use API.
+- All the Mach port manipulation API is available.
+- It's possible to send and receive messages. Simple example:
+<pre>
+ (let* ((spec-mixed (make-message-spec :fields '(:string :integer :char :string :integer :real)))
+ (msg-mixed (make-message :spec spec-mixed))
+ (port (port-allocate :right-receive)))
+ (send-message msg-mixed :remote port :data (list "abc" 42 #\b "cba" 314 3.14))
+ (receive-message msg-mixed :source port) ; This returns T on success.
+ (get-message msg-mixed))) ; Returns '("abc" 42 #\b "cba" 314 3.14)
+</pre>
+- New message types (like :string, :integer) can be implemented, providing a powerful extension mechanism.
+- Creation of symlinks and symlink path resolution.
+- Creation of character/block devices, fifos and sockets.
+
+
+### What needs to be done
+
+- Using continuations for IO blocking operations. This can be done using cl-cont.
+- Callbacks:
+ - file_lock, file_lock_stat (still not sure if they are really needed)
+ - file_reparent
+- Bind the client RPC calls.
+- Use the socket stubs?
+
+
+### Notes
+
+- File execution is complicated to do, because there is no multithreading support on CLisp and continuations won't do it. Maybe forking the clisp process?.
+
## To do
### Documentation
diff --git a/community/procfs.mdwn b/community/procfs.mdwn
index 4f4da722..472c66c9 100644
--- a/community/procfs.mdwn
+++ b/community/procfs.mdwn
@@ -146,6 +146,210 @@ Clone URL: [git://github.com/madhusudancs/procfs.git](git://github.com/madhusuda
------
+ Post Mid-Term Road Map
+----
+
+
+####Already Implemented
+
+#####File - /proc/&lt;PID&gt;/stat
+
+* pid
+
+* comm
+
+* state
+
+* ppid
+
+* pgrp
+
+* session
+
+* tty_nr
+
+* tpgid
+
+* minflt
+> The number of minor faults the process has made which have not required loading a memory page
+> from disk.
+
+* majflt
+> The number of major faults the process has made which have required loading a memory page from
+> disk.
+
+* utime
+> The number of jiffies that this process has been scheduled in user mode.
+
+* stime
+> The number of jiffies that this process has been scheduled in kernel mode.
+
+* priority
+> The standard nice value, plus fifteen. The value is never negative in the kernel.
+
+* num_threads
+> Number of threads in this process.
+
+* starttime
+> The time in jiffies the process started after system boot.
+
+* vsize
+> Virtual memory size in bytes.
+
+* rss
+> Resident Set Size: number of pages the process has in real memory, minus 3 for administrative
+> purposes. This is just the pages which count towards text, data, or stack space. This does not
+> include pages which have not been demand-loaded in, or which are swapped out.
+
+* itrealvalue
+> The time in jiffies before the next SIGALRM is sent to the process due to an interval timer.
+
+* nswap
+> Number of pages swapped (not maintained).
+
+* cnswap
+> Cumulative nswap for child processes (not maintained).
+
+
+####I already know the where the information is exactly available.
+
+* cutime
+> The number of jiffies that this process’s waited-for children have been scheduled in user
+> mode.
+
+* cstime
+> The number of jiffies that this process’s waited-for children have been scheduled in kernel mode.
+
+#####File - /proc/&lt;PID&gt;/statm
+
+* resident
+> resident set size
+
+#####Other Per-PID Files
+
+#####* /proc/&lt;PID&gt;/cwd
+
+#####* /proc/&lt;PID&gt;/exe
+
+#####* /proc/&lt;PID&gt;/environ
+
+#####Non Per-PID Files
+
+#####* /proc/version
+
+
+####I know where the information is available roughly, but need to look in detail to extract the exact information.
+
+* cminflt
+> The number of minor faults that the process’s waited-for children have made.
+
+* cmajflt
+> The number of major faults that the process’s waited-for children have made.
+
+* nice
+> The nice value ranges from 19 to -19.
+
+* signal
+> The bitmap of pending signals.
+
+* blocked
+> The bitmap of blocked signals.
+
+* sigignore
+> The bitmap of ignored signals.
+
+* sigcatch
+> The bitmap of caught signals.
+
+* policy
+> Scheduling policy.
+
+#####File - /proc/&lt;PID&gt;/statm
+
+* size
+> total program size
+
+* text
+> text (code)
+
+####The information may be available, but needs to be searched to know where it will be.
+
+#####File - /proc/&lt;PID&gt;/stat
+
+* rlim
+> Current limit in bytes on the rss of the process (usually 4294967295 on i386).
+
+* startcode
+> The address above which program text can run.
+
+* endcode
+> The address below which program text can run.
+
+* startstack
+> The address of the start of the stack.
+
+* kstkesp
+> The current value of esp (stack pointer), as found in the kernel stack page for the process.
+
+* kstkeip
+> The current EIP (instruction pointer).
+
+* exit_signal
+> Signal to be sent to parent when we die.
+
+#####File - /proc/&lt;PID&gt;/statm
+
+* share
+> shared pages
+
+* data
+> data/stack
+
+#####Other Per-PID File
+
+#####* /proc/&lt;PID&gt;/root
+
+#####Non Per-PID Files
+
+#####* /proc/stat
+
+#####* /proc/meminfo
+
+####I fear information may not be available.
+
+#####File - /proc/&lt;PID&gt;/stat
+
+* wchan
+> This is the "channel" in which the process is waiting. It is the address of a system call, and
+> can be looked up in a namelist if you need a textual name. (If you have an up-to-date
+> /etc/psdatabase,
+
+* processor
+> CPU number last executed on.
+
+* rt_priority
+> Real-time scheduling priority
+
+* delayacct_blkio_ticks
+> Aggregated block I/O delays, measured in clock ticks (centiseconds).
+
+* flags
+> PF_* fields defined in
+
+
+#### Need not be implemented.
+
+#####File - /proc/&lt;PID&gt;/statm
+
+* lib
+> library (not required)
+
+* dt
+> dirty pages (not required)
+
+
+------
+
Code Updates
----
diff --git a/community/scolobb.mdwn b/community/scolobb.mdwn
index 8abc4646..b4aadde0 100644
--- a/community/scolobb.mdwn
+++ b/community/scolobb.mdwn
@@ -19,59 +19,56 @@ Project: Namespace-based translator selection
---
## Current Task
-Write a translator that should filter the contents of the directory it is set on according to some property. The property can be an arbitrary command.
-The code is at <http://github.com/scolobb/filterfs/tree/master>.
+Write the filesystem proxy for namespace-based translator selection (*nsmux*).
-Clone URL: git://github.com/scolobb/filterfs.git
+The code is at <http://github.com/scolobb/nsmux/tree/master>.
-####10: Sat Jun 28, ~14:00 UTC - Wed Jul 2, ~16:00 UTC ?:
-
-> Implemented the functions required for the lookup operation.
-
-####9: Fri Jun 27, ~14:00 UTC - Fri Jun 18, ~18:00 UTC:
+---
-> Added the code for filtering directory entries,
+###Current Status
-####8: Tue Jun 24, ~17:00 UTC - Fri Jun 27, ~14:00 UTC:
+####DONE:
-> Debugged the code for fetching directory entries.
+* The skeleton which mirrors the filesystem.
-####7: Mon Jun 23, ~15:00 UTC - Tue Jun 24, ~14:00 UTC:
+####TODO:
-> Created the code for logging debug messages.
+* Provide the looking up of files with special suffixes like 'file,,x'
-####6: Fri Jun 6, ~13:00 UTC - Mon Jun 23, ~15:00 UTC:
+* Provide RPC for accessing the untranslated node.
-> Created the code to fetch the directory entries and integrated it into *libnetfs* callbacks.
+* Create special translators for the main proxy so that its functionality
+ should be complete.
-####5: Mon Jun 2, ~14:00 UTC - Thu Jun 5, ~19:00 UTC:
+* Refine the skeleton in several places so that it should become faster
+ and more reliable.
-> Adapted the initialization actions from *unionfs*. Borrowed the netnode/lnode architecture from *unionfs*.
+---
-####4: Mon Jun 2, ~11:00 UTC - ~14:00 UTC:
+###Progress
-> Adapted the node cache from *unionfs* to the needs of *filterfs*.
+####2: Thu Jul 17, ~13:00 UTC - Fri Jul 18, ~21:00 UTC:
-####3: Mon May 26, ~18:00 UTC - Thu May 29, ~19:00 UTC:
+> Extended the lookup code in *nsmux* to allow for looking up nodes like 'file,,x' and added the possibility to escape the double-comma in the following way: ',,,'.
-> Prepared stubs of callbacks required by *libnetfs*.
+####1: Mon Jul 12, ~13:00 UTC - Tue Jul 13, ~15:00 UTC:
-####2: Mon May 5, ~18:00 UTC - ~20:00 UTC:
+> Implemented a simple *libtrivfs*-based translator to test the lookup code for *nsmux*.
-> Rewrote the *helloworld* translator from scratch.
+####0: Sat Jul 12, ~09:00 UTC - Sat Jul 12, ~18:00 UTC:
-####1: Sat May 3, ~8:00 UTC - ~21:00 UTC:
+> Made small changes to the code of *filterfs* to fit the needs of *nsmux*.
-> Read **The Hurd Hacking Guide** (<http://www.gnu.org/software/hurd/hacking-guide/hhg.html>).
+---
-####0: Sat May 3, ~16:00 UTC:
+## Completed Tasks
-> Task suggested by **antrik**.
+####2: Sat May 3 - Fri Jul 17:
----
+> Write a translator that should filter the contents of the directory it is set on according to some property. The property can be an arbitrary command.
-## Completed Tasks
+> The code is at <http://github.com/scolobb/filterfs/tree/master>.
####1: Mon Apr 28 - Wed Apr 30:
diff --git a/community/weblogs.mdwn b/community/weblogs.mdwn
index 0e721a5e..016c483f 100644
--- a/community/weblogs.mdwn
+++ b/community/weblogs.mdwn
@@ -15,4 +15,3 @@ pages="community/weblogs/*/* and !*/discussion"
show=0
actions=no
rootpage="community/weblogs" postformtext="Add a new user named:"]]
-