* Add a linux commands config file, rename the old and create a wrapper
  that loads either of these depending on system.
  + Export the env variable LINUX=1 if it's a Linux system.
* Move TEST_BASE_DIR to /var/tmp to not clutter the root directory.
* Special considerations for linux/bsd (tar options, /dev/zvol location etc).
* Set MNTTAB=/etc/mtab on Linux and /etc/mnttab on BSD
* Use getent instead of groupmod (which don't exist in Linux) in libtest.shlib:add_group().
* For missing commands in Linux, run 'scripts/missing_cmd'
  + include the command name missing
  + exit with errorcode to make sure test fails.
  + write to STDERR.
* Add basic makefiles for linux to compile the binaries required by test..
  + Make the binaries we need compile and run on Linux.
* Ignore the binary commands, *.o and *~ files.
* A script using truncate or dd that will emulate 'mkfile' for the tests.
  + Support creating sparse files (add -s as valid option to script)
* Script to generate logs for the FAIL only on stdout.
* Replace hardcoded /dev/zvol/{dsk,rdsk} with ZVOL_[R]DEVDIR.
* Some commands behave differently (tar, cpio, cp, ls, pax etc) on Linux.
* Don't put stuff in /. Use TESTDIR as base.
* NEWFS (defined to be ext2fs on Linux) creates a ext2 filesystem by default.
  So use $NEWFS_DEFAULT_FS instead of hardcoded 'ufs'
* Use /dev/urandom (which is faster) instead of /dev/random.
In ismounted(), support finding ext2 mounts
In ismounted(), try to find zvols mounted.
* Replace hardcoded path to /etc/mnttab to MNTTAB from commands.cfg.
* Fix is_physical_device() to recognize devs on Linux.
* In add_group(), groupadd return 9 if group already exists - re-set it to 4
  to avoid to much clutter in the case.
* Use getent instead of groupmod to find if a group exists or not.
* Use LINUX instead of 'uname -a | grep' - faster.
* Add support for Linux
  + by using 'parted' in set_partition() and get_endslice().
  + by using 'exportfs' in setup_nfs_server().
  + by renaming find_disks() to find_disks_bsd() and write find_disks_linux(),
    using a 'wrapper function' to call one of the two.
* Since we're using exportfs to get shares, the share point is $1, not $2 as with the cmd 'share'.
Don't use hardcoded paths and command, use the variables defined in commands.cfg.
* Remove exact path to kill, true and sudo.
* Add .{ksh,sh} to the command to allow to run without installing.
  + Ditto for verifying file name.
* Include default.cfg at the top instead of the bottom (to get command variable defines etc).
* Remove Don't use hardcoded paths and command, use the variables defined in commands.cfg.
* Some stuff isn't relevant on Linux.
* Don't force set STF_{SUITE,TOOLS}. Use value from env if availible.
* Rename find_disks() to find_disks_zfstest() to not clash with one from lib.
* Since we moved the basic test dir (from / to /var/tmp), make sure they exist.
Unpack the 'upgrade pool' images in /var/tmp/test_results instead of the
previously created pool. If that is using loop files, a kernel crash
will happen on Linux.
* If linux, we need to create the loop partition files with kpartx.
* In Linux we create a ext2 filesystem by default, not ufs.
* If linux, we need to create the loop partition files with kpartx.
* Partition identifier on a device in Linux is 'p[nr]', on BSD it's 's[nr]'.
* In Linux we create a ext2 filesystem by default, not ufs.
* If linux, we need to create the loop partition files with kpartx.
Some tests works on Linux but fail on BSD. Use log_{must,mustnot} appropriately.
Since Linux don't have 'coreadm', we use the procedure used on Linux instead.
+ This means using the /proc filesystem and ulimit.
* In setup_snap_env(), support 'newfs' on Linux (really mke2fs) which behave a little different
* In cleanup_env(), look for any mounted zvols - !!!NEEDS BSD VERIFICATION!!!
The Linux equivalence of 'mount -F zfs' is 'mount -t zfs'.
+ The 'dev' ('devices') option never show up in a mount list
  Test this by trying to create a 'zero' device.
unshare doesn't exist on Linux, instead exportfs is used. But it have
quite different usage. And can't run as normal user...
Remove leading slash to disk images in TESTDIR (ended up with double
which made the test fail).
The expected return value from 'mmap_exec' on Linux is 22, not 13.
On Linux, we must use 'kpartx' after partitioning the raw disk file
to create a loop device with partitions (partitioning a raw disk file
does not create the parition files/devices).
+ In Linux, the 'disk part' is called a 'partition' and is labeled
  with a '<device>p<nr>' instead of '<device>s<nr>' (slice).
+ Overwrite the 'META_{DISK,SIDE}[0-2]' variables
  + Rename the 'ZFS_DISK2' to 'META_DISK2' to make this easier.
+  Cleanup (reorder/'prettify') the definition of the META_* variables.