Changes

no edit summary
Line 4: Line 4:     
{{:DMTCP}}
 
{{:DMTCP}}
 +
 +
== [http://criu.org CRIU], [http://dmtcp.sourceforge.net DMTCP], [https://ftg.lbl.gov/projects/CheckpointRestart BLCR] ==
 +
 +
“looks\seems like yes/no” - i found only unproved message(s) saying “yes”/“no”
 +
 +
“not yet” - it is officially planned or i found no reasons, why it can’t be done.
 +
 +
 +
{| style="border-spacing:0;"
 +
| style="border:1pt solid #000000;padding:0.176cm;"|
 +
| style="border:1pt solid #000000;padding:0.176cm;"| CRIU
 +
| style="border:1pt solid #000000;padding:0.176cm;"| DMTCP
 +
| style="border:1pt solid #000000;padding:0.176cm;"| BLCR
 +
 +
|-
 +
| style="background-color:#dc2300;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
| style="background-color:#dc2300;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
| style="background-color:#dc2300;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
| style="background-color:#dc2300;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| arch
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| x86_64, ARM
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| x86, x86_64, ARM
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| x86,x86_64,PPC/PPC64,ARM
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| OS
 +
| colspan="3"  style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| <center>Linux</center>
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| modified kernel
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes, but only for some extra features.
 +
 +
All unnecessary features are already in new kernel versions
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no, module can be simply modprobed
 +
 +
 +
problems with installation on new kernels
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| special libs
 +
 +
 +
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| root privileges
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes, otherwise it would be unsafe,because,for example, of parasite code
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| need to modify programs
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
there are some difficulties with statically linked applications, and with LinuxThreads (cuz it does not support them at all)
 +
 +
 +
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| need to prepare tasks
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
It preloadsthe DMTCP library. That library runs before the routinemain(). It creates a second thread. Thecheckpoint thread then creates a socket to the DMTCP coordinator andregisters itself. The checkpoint thread also creates a signal handler.
 +
 +
 +
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
CR shall notify processes when a checkpoint is to occur (before the kernel takes a checkpoint) to
 +
 +
allow the processes to prepare itself accordingly.
 +
 +
 +
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| Does it change behavior of the c/r-ed programs?
 +
 +
 +
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
because of wrappers on system calls
 +
 +
 +
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
because of wrappers on system calls
 +
 +
|-
 +
| style="background-color:#008000;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
| style="background-color:#008000;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
| style="background-color:#008000;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
| style="background-color:#008000;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
 +
|-
 +
| style="border:1pt solid #000000;padding:0.176cm;"| migration
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
even if kernel ,libs, etc are newer
 +
 +
 +
Can use Memory Changes Tracking to decrease time for dumping
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
if both kernels are recent
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
but if all is the same!
 +
 +
 +
if even prelinked addresses are different,it will not restore
 +
 +
 +
But it can save the whole used libs and localization files to restore program on the different machine
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| Containers
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
LXC and OpenVZ containers
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| looks like no
 +
 +
It doesn't support namespaces, so it probably can’t dump containers
 +
 +
 +
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| looks like no
 +
 +
|-
 +
| style="border:1pt solid #000000;padding:0.176cm;"| parallel/distributed computations
 +
| style="border:1pt solid #000000;padding:0.176cm;"| no
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
OpenMPI, MPICH2, OpenMP, Cilk are alredy supported and Infiniband is in progress.
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
Cray MPI, Intel MPI, LAM/MPI, MPICH-V, MPICH2, MVAPICH, Open MPI, SGI MPT
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| c\r gdb with debugging app
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no, because they are using the same interface
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| X-Windows graphics programs (KDE, GNOME, etc)
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes, by using vnc
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes, by using vnc
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| seems like no
 +
 +
 +
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| Solutions for invocation in the custom software
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| not yet
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
Plugins and API
 +
 +
 +
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| not yet
 +
 +
|-
 +
| colspan="4"  style="background-color:#800080;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| unix sockets
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes,all kinds
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| udp sockets
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes, both ipv4 and ipv6
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| not yet
 +
 +
developers of dmtcp had no request for this
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| not yet
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| tcp sockets
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| not yet
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| remote tcp connection
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| not yet
 +
 +
but you can write a simple DMTCP plugin that tells DMTCP how you want to reconnect on restart
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| Infiniband
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| not yet
 +
 +
developing is on the half-way
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
 +
|-
 +
| style="background-color:#008080;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
| style="background-color:#008080;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
| style="background-color:#008080;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
| style="background-color:#008080;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"|
 +
 +
|-
 +
| style="border:1pt solid #000000;padding:0.176cm;"| multithread support
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
|-
 +
| style="border:1pt solid #000000;padding:0.176cm;"| multiprocess
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| process groups
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| not yet
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| zombies
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
 +
|-
 +
| style="border:1pt solid #000000;padding:0.176cm;"| namespaces
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| no
 +
| style="border:1pt solid #000000;padding:0.176cm;"| no
 +
 +
|-
 +
| style="border:1pt solid #000000;padding:0.176cm;"| sessions
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| not yet
 +
 +
|-
 +
| style="border:1pt solid #000000;padding:0.176cm;"| Ptraced programs
 +
| style="border:1pt solid #000000;padding:0.176cm;"| no
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| no
 +
 +
|-
 +
| style="border:1pt solid #000000;padding:0.176cm;"| System V IPC
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| no
 +
 +
|-
 +
| style="border:1pt solid #000000;padding:0.176cm;"| memory mappings
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes, all kinds
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes, partially
 +
 +
|-
 +
| style="border:1pt solid #000000;padding:0.176cm;"| protected memory
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
|-
 +
| style="border:1pt solid #000000;padding:0.176cm;"| pipes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border:1pt solid #000000;padding:0.176cm;"| not yet
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| terminals
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
only Unix98 PTYs
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
 +
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| non-posix files (inotify, signalfd, eventfd, etc)
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
inotify, epoll, etc.
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| Yes
 +
 +
epoll, eventfd, signalfd are already supported and
 +
 +
inotify will be supported in future
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| looks like no
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| timers
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
 +
Any counter or timer active since the beginning of a process will consider the restarted process to be a new process.
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| Shared resources (files, mm, etc.)
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
files, memory, etc.
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
 +
System V shared memory(shmget, etc.), mmap-based shared memory, shared sockets, pipes, file descriptors.
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
 +
but it is planned to suppord shared mmap regions
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| block devices
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| looks like yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| looks like yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| no
 +
 +
 +
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| character devices
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| mostly no
 +
 +
but /dev/null, /dev/zero, etc. are supported
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| mostly no
 +
 +
looks like null and zero are supported
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| mostly no
 +
 +
but /dev/null and
 +
 +
/dev/zero are supported
 +
 +
|-
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| capture the contents of all open files
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| looks like no
 +
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| not yet
 +
 +
|}
 +
 +
    
== External links ==
 
== External links ==
85

edits