Gotchas, Linux
From FreeBSDwiki
Things you should know if you're coming to FreeBSD from Linux
- The kernels are different -- monolithic instead of microkernels, although FreeBSD does allow dynamic loading of modules (see kldstat, kldload, kldunload.)
- You need to be a member of the wheel group to allow you to su to root.
- No iptables/netfilter: ipfw packet filter takes it's place, but you have to recompile your kernel to include it
- No /proc tree. If you're used to banging around /proc to find system info, man sysctl. If you installed linux-compatibility, see /usr/compat/linux/proc
- You don't have to compile everything from ports, it's usually better for your particular system if you do. See pkg_add and the other pkg tools.
- If in doubt, read the Handbook (or ask here).
- Different filesystems: linux uses ext2/ext3/reiserfs by default (usually) and FreeBSD uses UFS. It does not do journaling, but instead uses a system called soft-updates. Have a look [here] if you would like to know what this means. It seems that [Google] might be helping to change this though.
- Java's a tough nut to install. Deal.
- /stand/sysinstall will be quite useful to you at first.
- bash is not the default shell, csh or tcsh is. If you want to change that, see chsh.
- Most linux distros use vim, FreeBSD uses nvi by default. You can change this if it matters to you. Use /usr/ports/editors/vim-lite if you do not want to install the X windowing system else use /usr/ports/editors/vim.
- Your NIC is no longer eth0 or eth0 or whatever. FreeBSD names it's interfaces by the driver they use; you'll see rl0, ed0, hme0, etc.
- /etc/mtab doesn't show you mounts. mount and df do.
- Your hard disks are no longer /dev/hda or /dev/sda. Now they are /dev/ad0s1a. See partitions.
- devinfo and swapinfo will do a lot of sysctl magic for you.
- Software RAID? See vinum.
- Bandwidth limiting/traffic shaping? See dummynet
- Disk encryption? [It's in the Handbook]
- Shell scripts do not use seq 1 10. They use jot 10 1 instead.
- /boot/loader.conf is where you set which kernel modules to load at boot time. /etc/rc.conf is where you set which system daemons to load at boot time. Or you can edit the startup scripts manually in /etc/rc.d (Some say this is the only way to do it, some say it doesn't matter. Your choice.)
- wget is replaced by fetch. Feel free to install wget if you don't want to learn another program, but they're very similar.