Changes

Jump to: navigation, search

Comparison to other CR projects

18,396 bytes removed, 13:58, 11 July 2013
Table style fix
{| styleclass="border-spacing:0;wikitable sortable"| 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;"| ! CRIU| 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;"| ! DMTCP| 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;"| ! BLCR
|-
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| archArch| 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> |-Linux| 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 kernelsLinux
|-
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| special libs   Need in modified kernel| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0Yes, but only for some extra features.176cm;"| noAll 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;"| yesNo| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0No, just need to load module.176cm;"| yesMay be problems with installation on new kernels
|-
| style="borderApp need to pre-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| root privilegesload special libraries| 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 codeNo| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| noYes| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| noYes
|-
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"Requires root privileges| need Yes, due 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 restrictions from some difficulties with statically linked applications, and with LinuxThreads (cuz kernel APIs it does not support them at all)    |-uses| 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 tasksNo| 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.  No
|-
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0Need to modify programs to C/R| No| No| Yes.176cm;"| Does There are some difficulties with statically linked applications, and with LinuxThreads (it change behavior of the c/r-ed programs?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;"| 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;"| Need to prepare tasks| 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;"| No| style="background-color:#008000;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0Yes.176cm;"| | style="background-color:#008000;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0It preloadsthe DMTCP library.176cm;"|  |-| style="border:1pt solid #000000;padding:0That library runs before the routinemain().176cm;"| migration| style="border:1pt solid #000000;padding:0It creates a second thread.176cm;"| yes even if kernel ,libs, etc are newer  Can use Memory Changes Tracking Thecheckpoint thread then creates a socket to decrease time for dumping| style="border:1pt solid #000000;padding:0the DMTCP coordinator andregisters itself. The checkpoint thread also creates a signal handler.176cm;"| yes if both kernels are recent| style="border:1pt solid #000000;padding:0Yes.176cm;"| yes but if all CR shall notify processes when a checkpoint is to occur (before the kernel takes a checkpoint) to allow the same!processes to prepare itself accordingly.
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;borderDoes it change behavior of the c/r-right:1pt solid #000000;padding:0.176cm;"| Containersed programs?| 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 containersNo| 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 namespacesYes, so it probably can’t dump containers   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;"| looks like noYes, because of wrappers on system calls
|-
| style="border:1pt solid #000000;padding:0.176cm;"| parallel/distributed computationsLive migration| style="border:1pt solid #000000;padding:0.176cm;"| no | style="border:1pt solid #000000;padding:0.176cm;"| yes OpenMPIYes, MPICH2even if kernel, OpenMPlibs, Cilk etc are alredy supported and Infiniband is in progressnewer.Can use Memory Changes Tracking to decrease freeze time| style="border:1pt solid #000000;padding:0.176cm;"Yes, if both kernels are recent| yes Cray MPIYes, Intel MPIbut if all components are the same. Even if prelinked addresses are different, LAM/MPIit will not restore, MPICH-V, MPICH2, MVAPICH, Open MPI, SGI MPTbut 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;"| c\r gdb with debugging appContainers| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| noYes, because they are using the same interfaceLXC and OpenVZ containers| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0No.176cm;"| yesIt 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-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"Parallel/distributed computations libraries| X-Windows graphics programs No (KDE, GNOME, etcin plans)| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0Yes.176cm;"| yesOpenMPI, MPICH2, OpenMP, by using vncCilk are alredy supported and Infiniband is in progress| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0Yes.176cm;"| yesCray MPI, Intel MPI, LAM/MPI, by using vnc| style="borderMPICH-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| seems like no  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| Solutions for invocation in No, because they are using 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 yetsame interface| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yesYes 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 yetNo
|-
| colspan="4" style="backgroundX-color:#800080;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"Windows apps (KDE, GNOME, etc)| Yes, by using vnc| Yes, by using vnc| 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;"| 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 socketsSolutions 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;"| yesNo, both ipv4 and ipv6only fork + daemonize + exec| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0Yes.176cm;"| not yet developers of dmtcp had no request for thisPlugins 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 Not yet
|-
| stylecolspan="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;4"| 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 connectionUnix sockets| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yesYes| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| not yetYesbut 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;"| noNo
|-
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"UDP sockets| InfinibandYes, both ipv4 and ipv6| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0Not yet.176cm;"| Developers of dmtcp had norequest 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 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;"| TCP sockets| 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;"| Yes| 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;"| Yes| 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;"| Not yet
|-
| style="border:1pt solid #000000;padding:0.176cm;"| multithread supportEstablished tcp connection| style="border:1pt solid #000000;padding:0.176cm;"| yesYes| style="border:1pt solid #000000;padding:0.176cm;"| yesNo, but you can write a simple DMTCP plugin that tells DMTCP how you want to reconnect on restart| style="border:1pt solid #000000;padding:0.176cm;"| yesNo
|-
| style="border:1pt solid #000000;padding:0.176cm;"| multiprocessInfiniband| style="border:1pt solid #000000;padding:0.176cm;"| yesNo| style="border:1pt solid #000000;padding:0.176cm;"| yesNot yet, developing is on the half-way| style="border:1pt solid #000000;padding:0.176cm;"| yesNo
|-
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| process groupsMultithread support| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yesYes| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yesYes| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| not yetYes
|-
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| zombiesMultiprocess| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yesYes| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| noYes| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| noYes
|-
| style="border:1pt solid #000000;padding:0.176cm;"| namespacesProcess groups and sessions| style="border:1pt solid #000000;padding:0.176cm;"| yesYes| style="border:1pt solid #000000;padding:0.176cm;"| noYes| style="border:1pt solid #000000;padding:0.176cm;"| noNot yet
|-
| style="border:1pt solid #000000;padding:0.176cm;"| sessionsZombies| style="border:1pt solid #000000;padding:0.176cm;"| yesYes| style="border:1pt solid #000000;padding:0.176cm;"| yesNo| style="border:1pt solid #000000;padding:0.176cm;"| not yetNo
|-
| style="border:1pt solid #000000;padding:0.176cm;"| Ptraced programsNamespaces| style="border:1pt solid #000000;padding:0.176cm;"| noYes| style="border:1pt solid #000000;padding:0.176cm;"| yesNo| style="border:1pt solid #000000;padding:0.176cm;"| noNo
|-
| style="border:1pt solid #000000;padding:0.176cm;"| System V IPCPtraced programs| style="border:1pt solid #000000;padding:0.176cm;"| yesNo| style="border:1pt solid #000000;padding:0.176cm;"| yesYes| style="border:1pt solid #000000;padding:0.176cm;"| noNo
|-
| style="border:1pt solid #000000;padding:0.176cm;"| memory mappingsSystem V IPC| style="border:1pt solid #000000;padding:0.176cm;"| yes, all kindsYes| style="border:1pt solid #000000;padding:0.176cm;"| yesYes| style="border:1pt solid #000000;padding:0.176cm;"| yes, partially No
|-
| style="border:1pt solid #000000;padding:0.176cm;"| protected memoryMemory mappings| style="border:1pt solid #000000;padding:0.176cm;"| yesYes, all kinds| style="border:1pt solid #000000;padding:0.176cm;"| yesYes| style="border:1pt solid #000000;padding:0.176cm;"| yesYes, partially
|-
| style="border:1pt solid #000000;padding:0.176cm;"| pipesPipes| style="border:1pt solid #000000;padding:0.176cm;"| yesYes| style="border:1pt solid #000000;padding:0.176cm;"| yesYes| style="border:1pt solid #000000;padding:0.176cm;"| not Not yet
|-
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| terminalsTerminals| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yes Yes, but 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;"| yesYes   | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yesYes
|-
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| nonNon-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 Yes, inotify, fanotify, epoll, etc.signalfd, eventfd| 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 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;"| timersTimers| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| yesYes| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0No.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;"| yesYes
|-
| 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:0Yes.176cm;"| yes SysVIPC, files, fd table and memory, etc.| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0Yes.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 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 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 yesNo| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| looks 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 No
|-
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| character 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 Yes, only /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 Yes, 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 Yes, /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 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;"| yesYes, if file is unlinked| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| looks 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 Not yet
|}

Navigation menu