diff options
author | arnebab <arne_bab@web.de> | 2008-07-24 09:28:24 +0200 |
---|---|---|
committer | arnebab <arne_bab@web.de> | 2008-07-24 09:28:24 +0200 |
commit | f3fe7440566203c6e4a2a4936d40ecce383ec45a (patch) | |
tree | 4a85ddc5efa0157e7bef0e8c228ceda463d9de5c /community | |
parent | 03e750f0857e8906bd69792f1ac5bc69531230ba (diff) | |
parent | 5a21fc07c33a883d5ad08cf4947279387e92893b (diff) |
Merge branch 'master' of arnebab@flubber:~wiki/wiki
Diffstat (limited to 'community')
-rw-r--r-- | community/flavioc.mdwn | 38 | ||||
-rw-r--r-- | community/procfs.mdwn | 204 | ||||
-rw-r--r-- | community/scolobb.mdwn | 55 | ||||
-rw-r--r-- | community/weblogs.mdwn | 1 |
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/<PID>/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/<PID>/statm + +* resident +> resident set size + +#####Other Per-PID Files + +#####* /proc/<PID>/cwd + +#####* /proc/<PID>/exe + +#####* /proc/<PID>/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/<PID>/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/<PID>/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/<PID>/statm + +* share +> shared pages + +* data +> data/stack + +#####Other Per-PID File + +#####* /proc/<PID>/root + +#####Non Per-PID Files + +#####* /proc/stat + +#####* /proc/meminfo + +####I fear information may not be available. + +#####File - /proc/<PID>/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/<PID>/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:"]] - |