pavement

Gotchas, Linux

From FreeBSDwiki
(Difference between revisions)
Jump to: navigation, search
(info on how Slackware in particular works not really relevant to new FreeBSD users - the Slack users already know, the rest don't need to)
m (placement was ugh, but it was relevant to the section it was added to...edited for clarity.)
Line 3: Line 3:
 
# You need to be a member of the wheel group in order to su to root.
 
# You need to be a member of the wheel group in order to su to root.
 
# 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)
 
# 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: you're going to be doing it [[BSD]] style, not [[SysV]] style as in most Linux distros. 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.
+
# Init scripts: you're going to be doing it [[BSD]] style, not [[SysV]] style as in most Linux distros (Slackware being an exception, although some other linuxes can be set up to do BSD-style init, it's usually defaulted to SysV. 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.
 
# 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
 
# 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.
 
# 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.

Revision as of 10:26, 24 January 2006

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 most Linux distros (Slackware being an exception, although some other linuxes can be set up to do BSD-style init, it's usually defaulted to SysV. 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 /usr/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. Users seeking a decent shell (both sh-compatible and friendly for interactive use) should consider ksh or pdksh as well as bash.
  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