pavement

Gotchas, Linux

From FreeBSDwiki
(Difference between revisions)
Jump to: navigation, search
(Things you should know if you're coming to FreeBSD from Linux)
(Things you should know if you're coming to FreeBSD from Linux)
Line 12: Line 12:
 
# [[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.
 
# [[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.
 
# 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.
 
# 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 it's interfaces by the driver they use; you'll see rl0, ed0, hme0, etc.  FreeBSD 6.x includes interface renaming, so you for those that like generic names, you can use them.
+
# Your NIC is no longer eth0 or eth1 or whatever. FreeBSD names it's 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.
 
# /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]].
 
# Your hard disks are no longer /dev/hda or /dev/sda. Now they are /dev/ad0s1a. See [[partitions]].

Revision as of 15:23, 24 November 2005

Things you should know if you're coming to FreeBSD from Linux

  1. The kernels are both modular, but the commands for loading/viewing/unloading kernel modules are different -- kldstat, kldload, kldunload instead of Linux' "lsmod", "insmod" and "rmmod".)
  2. You need to be a member of the wheel group in order to su to root.
  3. 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)
  4. Init scripts: you're going to be doing it BSD style, not SysV style as in Linux. Translation: runlevels mean different things in BSD and init scripts are handled differently. Everything is handled via a single config file (/etc/rc.conf) with the scripts stored under /etc/rc.d.
  5. 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
  6. 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.
  7. If in doubt, read the Handbook (or ask here).
  8. 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.
  9. 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.
  10. 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 /sbin/sysinstall.
  11. 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.
  12. 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.
  13. Your NIC is no longer eth0 or eth1 or whatever. FreeBSD names it's 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.
  14. /etc/mtab doesn't show you mounts. mount and df do.
  15. Your hard disks are no longer /dev/hda or /dev/sda. Now they are /dev/ad0s1a. See partitions.
  16. devinfo and swapinfo will do a lot of sysctl magic for you.
  17. Software RAID? See vinum and RAID1, Software, How to setup. (Note: vinum is dead in 5.x, use gvinum, gmirror, or graid)
  18. Disk encryption? [It's in the Handbook]
  19. Shell scripts do not use seq 1 10. They use jot 10 1 instead.
  20. /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.)
  21. wget is replaced by fetch. Feel free to install wget if you don't want to learn another program, but they're very similar.
  22. 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.
Personal tools