Return to BSD News archive
Newsgroups: comp.unix.bsd Path: sserve!manuel!munnari.oz.au!spool.mu.edu!caen!hellgate.utah.edu!fcom.cc.utah.edu!cs.weber.edu!terry From: terry@cs.weber.edu (A Wizard of Earth C) Subject: Re: How can I print on my parallel printer? Message-ID: <1992Sep18.191648.3920@fcom.cc.utah.edu> Sender: news@fcom.cc.utah.edu Organization: Weber State University (Ogden, UT) References: <BuB0yD.An3@ibmpcug.co.uk> <BuI1qF.H0r@obiwan.uucp> <527G02a722mv01@JUTS.ccc.amdahl.com> Date: Fri, 18 Sep 92 19:16:48 GMT Lines: 102 In article <527G02a722mv01@JUTS.ccc.amdahl.com> gpw10@phoenixcd.amdahl.com (Gary Ward) writes: >In article <BuI1qF.H0r@obiwan.uucp>, bob@obiwan.uucp (Bob Willcox) writes: >> In article <BuB0yD.An3@ibmpcug.co.uk> adrian@ibmpcug.co.uk (Adrian >> Hall) writes: >> >You need to make the /dev/lp and /dev/lpt1 nodes. >> > >> > mknod /dev/lpt1 c 15 64 >> > ln -s /dev/lpt1 /dev/lp >> >> Coming from a mostly System V world (prior to Vr4) I feel like I must >> be >> missing something here (i.e., I have little experience with symbolic >> links). My question is why would one want to use a symbolic link (as >> indicated) in the above situation rather than simply a hard link? Is >> there some problem with hard links in this situation? Seems to me >> that >> a symbolic link here simply requires an extra inode, some additional >> disk space, and slows down access to the /dev/lpt1 device. What am I >> missing??? >> >I myself did use a hard link here. I believe that many "BSD-ers" just >get into the habit of always typing "ln -s" since that always works, and >hard links only work on the same file system. The symbolic link will >use a little bit of disk space and be slower than a hard link, but if it >uses any more inodes than the hard link does, then *I* am missing >something... You are missing something. The way a symbolic link is defined is as sufficient data blocks hung off the link associated with the inode to describe the path to the linked-to object. This is eiter 1 or two blocks, since blocks are 512 bytes and the path can be from 1 to 1024 characters. A hard link: Directory 1 Directory 2 (on same device) ,--------------------. ,-------------------. | ... |1035| ... | | ... |1035| ... | `--------------------' `-------------------' | | | | +----------------------+ +-----------------+ | | v v ,------------. | inode 1035 | `------------' | v ,------------. | File data | `------------' A symbolic link: Directory 1 Directory 2 (on any device) ,--------------------. ,-------------------. | ... |1075| ... | | ... |1035| ... | `--------------------' `-------------------' | | | | +------------+ +----+ | | v v ,------------. ,------------. | inode 1075 | | inode 1035 | `------------' `------------' | | v v ,------------. ,------------. | File data | | File data | `------------' `------------' Contains path (relative or absolute) to directory entry in directory 2. When the look up in directory 1 decides that the file is a symbolic link (based on a flag in the inode), the data block(s) pointed to by the inodee contain the information to look up the inode that contains the actual data. Thus a sybolic link takes an additional inode (to point to the link data) and one or two data blocks (containing the link data itself). A hard link consists of an additional directory entry pointing to the same inode, and an increment of the "reference count" for a particular inode. If you "ls -li" two files that are linked symbolically and two files that are linked phisically, the actual inode number and reference count become apparent. Terry Lambert terry_lambert@gateway.novell.com terry@icarus.weber.edu --- Any opinions in this posting are my own and not those of my present or previous employers. -- ------------------------------------------------------------------------------- "I have an 8 user poetic license" - me Get the 386bsd FAQ from agate.berkeley.edu:/pub/386BSD/386bsd-0.1/unofficial -------------------------------------------------------------------------------