I guess during the latest port of ZFS, a few things could have helped with the work, and would help with future merges.
Most platforms have exposed struct uio, but not OSX. Here we have API calls like uio_create, uio_resid, uio_setoffset. On most platforms these would just be simple macros
#define uio_resid(X) (X)->u_resid
So it would be of benefit to OSX, but not really to any other platform. This would probably be unpopular.
* struct buf
Similar situation with ``struct buf`` in vdev_disk, but since it is only used in one location it is of less interest
Most other differences can be handled with macros on OSX. ( (S_ISDIR(ZTOV(zp)) -> vnode_isdir(ZTOV(zp)) etc )
Lundman, can you add this as a project idea? I think that in general, creating a "porting layer" which abstracts out some of these details would help reduce the diffs between platforms. Mahrens (talk) 23:19, 15 August 2013 (UTC)
Virtual machine images
- Would help to choose a similar design/format/configuration, then produce images of illumos, FreeBSD, etc. all to the same specification.
- Format: (e.g. raw, vdi, qcow2) - qcow2 supports sparse and/or compressed images, seems well-supported (in later versions of VBox? what about KVM/Xen?), and is easily converted to other formats by qemu-img
- Size: would prefer a small, minimal download of maybe ~256MB, which could probably use ZFS compression; could be created as a 'sparse' volume able to expand to maybe 8+ GB, or enough to install dev tools later and unpack source code
- Partitioning/booting: some platforms can put a bootloader, ZFS root+boot partition all in one image; but perhaps better to have an all-ZFS disk image with separate BIOS-bootable disk (or kernel+initramfs)
- Raspberry Pi
- Is that really possible?? ZFS on 32-bit ARM? With only 512MB RAM? I've managed this on i386 with Debian GNU/kFreeBSD but it was understandably slow. It would be great to demo and share knowledge of extreme use-cases like this; some platforms/distros may possess an advantage where others simply wouldn't be able to do it. ~StevenC
- ZFSOnLinux already works on ARM, although no one seems to have used it as their rootfs yet. I am working on an image, but there are some issues with Linux's limited virtual kernel address space on ARM and how Linux handles being out of kernel virtual address space (it does not). I am in the process of writing a patch to ZFS that should reduce kernel virtual address space usage to an acceptable level. ~Richard Yao