On Thu, 2004-10-07 at 14:24, David Mamanakis wrote: > Greetings! > I know most of you really might not care, but I thought I would introduce > myself, and ask a question or two... > I am David Mamanakis, I live in S. Ogden, UT and I worked for Microsoft for 6 > years, dealing mostly with the Operating Systems... > > Currently I have decided that I am sick of it...Longhorn, the next version of > Microsquat Bloatware, is just too much... I take it you would never recommend Longhorn to any enterprise client. > Because I have limited exposure to Unix/Linux I would like to ask a question > about the directory structure of Linux... > When I installed, I used the "auto setup" thing, and let it have at it... > Now I have all kinds of directories like "\" and "\root" and "\usr"... I assume you mean "/" where you typed "\". In Linux, "\" is an escape character only, never a folder delimiter. > What I would like to know, and feel free to mail me directly, or point me to a > web resource, but I would like to know the windows equivalent of the Linux > directories... OK, here's my best shot: > C:\ = ??? in linux system The best equivalent of C:\ is simply /, the root directory. Even that is an inexact equivalence. You see, in the Linux file system, everything is tied together in one massive tree. You do not have separate trees for separate devices as a general rule. In practice, many devices can have more than one name, depending on how you "mount" them to the tree. "Mounting" is another thing you'll have to get used to. In DOS/Windows, devices mount automatically. In Linux, devices mount when you tell them to mount, by and large--except that in Gnome, the usual desktop we use, CD-ROM disks mount automatically, because Gnome has a routine to do that. But: you cannot just eject a CD any time you please. You have to *unmount* the CD before you may eject it. (Last time I checked, FC2's version of Gnome automatically ejects a CD as soon as you unmount it.) CD's aside, all the letter designations for drives have disappeared. Therefore, the rough equivalents of various drives would be: DOS/Windows: Device Name: Typical Mount Point: A:\ /dev/fda /mnt/floppy B:\ /dev/fdb /mnt/floppy1 (or anything you please) C:\ /dev/hda / D:\ /dev/cda /mnt/cdrom And so on==assuming that you are running a system with two floppy drives, a single-partitioned hard drive, and a CD-ROM or DVD-ROM drive. In fact, it's more complex than that, because the proper device name for an IDE or ATA drive is always /dev/hda through /dev/hdz, and for a SCSI drive it is /dev/sda through /dev/sdz, and so on. And if you *partition* a drive, the partitions have device named like /dev/hda1 or /dev/hda2, which means "first and second partitions on the master HDD on the primary IDE controller." But you don't have to worry about device names. All you care about are mount points--because mount points are how you're going to find the files in those various drives and partitions. I'll say more about that down below. > C:\Windows = ??? in linux C:\Windows is replaced largely by /etc for configuration files, by /bin for system-wide applications, and /sbin for applications that various system accounts need to execute. > C:\Program Files = ??? in linux C:\Program Files = /usr in Linux. > etc... > or better yet, run it backwards... > \ = ??? in windows system / is the top-level or root directory. On most systems, that have only one HDD, its best equivalent is C:\. > \root = ??? in windows "Administrator" in Windows = "root" in Linux. This is the superuser. /root is probably C:\Documents and Settings\Administrator--the home area for the superuser. WARNING: NEVER, repeat NEVER, make it a habit of doing all your work as the superuser! Instead, create a NON-SUPER user to do all your work as. In contrast: /home = C:\Documents and Settings for all users *other than* the superuser. Thus, /home/auser = C:\Documents and Settings\auser\. Here it plays the role of "My Documents" and "Local Settings" and anything else that a user requires. Most of these "system directories" or "application preference directories" are *hidden*--and hiding is as easy as prefacing the name with a dot. > \usr = ??? in windows /usr = C:\Program Files in Windows. A word about partitioning: If you're running a "pure Linux" system, and if you ever want to set up a network server where you allow all your users to have accounts on it and maintain home directories on it, then you probably want to partition your hard drive. (And if you have more than one hard drive, you *definitely* want to assign mount points to those other drives even if you *don't* partition them.) You've already noticed a lot of other folders at the top level. Briefly, they are: /bin Binary executables for the operating system itself. /boot The kernel. /etc Configuration files. /home File spaces for individual users other than root /proc A special-purpose folder for some system processes /sbin Binaries that various system "users" execute. /tmp Temporary files. This is "C:\TEMP" in Windows. /usr Program files. /var Variable-content files and folders. This folder contains all spoolers and (in a Fedora system) database files. (I know that's true for PostgreSQL, which I use.) Every system needs at least three partitions: /boot Always the first partition on the disk. Size: 100 MB. swap Not mounted. This is "virtual memory." Size: twice as large as your actual RAM, or your projected RAM if you're planning to bump up your RAM. (That's always wise--use as much RAM as your motherboard can support.) / All the rest. If you have more than 50 GB on your system, you might want to consider a partitioning plan like this: /boot 100 MB (or more, if you're going to be updating kernels frequently) [swap] Twice the size of your RAM / 5 GB /usr 10 GB /tmp 1 GB /var 1 GB /home All the rest. What happens is that all the other top-level folders like /etc and /proc and /bin and /sbin (and /opt, if you ever get something like that when installing Sun's Java SDK or something like that) get put in the same partition as /. This also includes /root, or the superuser's "home." Every directory named above gets its own partition, "mounted" at the appropriate time. This saves you issuing orders like "changing to a drive." Instead, you just "change to a directory," and Linux will put you in the right spot, as the mount points dictate. If you're running a mail server, you might want to add: /var/spool or /var/spool/mail. Size: 10 GB. If you're running a database, add: /var/lib or /var/lib/pgsql. Size: as large as you ever want all your databases to get. The advantages of such a scheme are these: 1. If ever you need to do a clean (re)install of a new distro (like going from FC2 to 3 or 4), you can leave user files unmolested. (Make sure, however, that you recreate user accounts in the precise order in which you created them in the first place.) 2. If the spooler, the database, or whatever starts going crazy, you can limit the damage it can do, so that it can never take over the disk. You can even get fancier and use partitioning to restrict certain users to defined quotas of space--though I've never talked to any administrator who felt the need to do that. The best way I can sum up with is this: You are now a system administrator. That's an awesome responsibility. Manage your system wisely, and it will almost never be subject to the kind of compromise we hear *so much about* in the Windows world (and, to a lesser extent, in the Mac world). Temlakos