General usage

Where is ldd?

The command ldd does not exist on Darwin, but the same functionality can be found by using otool -L. This will tell you which libraries a binary is linked against.

How do I see what devices are on my system?

The ioreg command is very nifty indeed. It will traverse the IORegistry, showing you the devices connected to your system and the heirarchy of the IOKit handlers for each device. Even if the device is not recognized, it will show you that a device is there and some information about it.

This is very useful when trying to write an IOKit module and figuring out what the IONameMatch tag should be for the device you want to associate with.

What is synthfs?

synthfs is a simple in-memory filesystem. It can't hold data files, but will allow creation of directory trees. Handy if you're, oh, say, trying to manufacture transient mountpoints to provide a home for your disks, or even NFS mounts.

How are drive numbers determined?

Drive numbers like disk2 are numbered in order as the drive becomes available. For machines with a mixture of ATA and SCSI disks and ATAPI CD-ROMs, the number can be non-deterministic based on how fast various devices spin up and come online. Disk numbering is not necessarily influenced by topology, so the Master/Slave relationships on an IDE bus may not always cause deterministic numbering.

Can I mount my Darwin filesystems under Linux?

Yes! Unfortunately, the support is just read-only right now. When in Linux you can mount your Darwin partition with the following command:

mount -t ufs -o ufstype=openstep -o ro /dev/darwindev /path/to/mount

There are also some tools for manipulating HFS+ filesystems from Linux.