Gotchas, Linux
From FreeBSDwiki
Things you should know if you're coming to FreeBSD from Linux
- The kernels are both modular, but the commands for loading/viewing/unloading kernel modules are different -- kldstat, kldload, kldunload instead of Linux' "lsmod", "insmod/modprobe" and "rmmod/modprobe -r".)
- You need to be a member of the wheel group in order to su to root - and you NEED to be able to su to root, because by default you can't log in directly as root over ssh. (and this is a Good Thing, and should not be changed.)
- No iptables/netfilter: you have your choice of IPFW, PF, or IPFilter (not recommended for SMP systems). You can either recompile the kernel to include these, or load the kernel modules at runtime. QoS and bandwidth throttling are handled via either Dummynet (ipfw) or AltQ (pf)
- Init scripts: BSD style differs from the SysV style many/most Linux distros (Slackware and Arch being noteable exceptions) use. runlevels mean different things in BSD-style *nixes, and init scripts are handled differently - in BSD-style init, rc is configured via a single config file (/etc/rc.conf) with the system rc scripts stored under /etc/rc.d, and local daemon startup scripts in /usr/local/etc/rc.d.
- 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 due to Sun's licensing restrictions...unless you're not on the x86 FreeBSD platform, in which case it's uninstallable anyway.
- sysinstall can be used for system configuration after installation, but should be avoided as it makes a mess of the /etc/rc.conf file. On FreeBSD 4.x systems it's /stand/sysinstall. On FreeBSD 5+ systems, it's /usr/sbin/sysinstall.
- bash is not the default shell. csh (actually tcsh) is the default for root, sh is the default for normal users. Every other shell under the sun can be installed via the ports tree, and you can use chsh to change it for a specific user. Users seeking a decent shell (both sh-compatible and friendly for interactive use) should consider ksh or pdksh as well as bash.
- 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 eth1 or whatever. FreeBSD names its interfaces by the driver they use; you'll see rl0, ed0, hme0, etc. FreeBSD 6.x includes interface renaming, so those that like generic names can use them.
- /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 and RAID1, Software, How to setup. (Note: vinum is dead since 5.3; use gvinum, gmirror, or graid)
- 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.) (Note: don't edit the rc scripts directly unless you *REALLY* know what you are doing, and understand how mergemaster works.)
- wget is replaced by fetch. Feel free to install wget if you don't want to learn another program, but they're very similar.
- If you install X11, and switch to a shell, getting back to X is a matter of alt-F9 since FreeBSD sets you up with 8 virtual terminals instead of Linux's default of 6.