About | Buy | Forum | Industry Watch | Learning Curve | Products | Search | Twitter | Xnews
Home » Learning Curve

Apple and the Myth of Unix

OpenDarwin is no more; OS X has never been POSIX compliant - how much worse can it be?

Apple's file manager doesn't show you everything. And it's not supposed to. But what's not often mentioned is that it can't show you everything either.

And even sometimes when it could it botches things immeasurably.

One of the more noted snags has to do with Apple's file system HFS - and although Apple offer another file system used primarily on OS X Server, it still suffers and wobbles from the same inadequacies.

Both file systems succumb to antiquated 'beige box' ideas that, if not long dead, have at least had an unpalatable odour for over ten years.

And the wonder of it is that most other non-Unix and non-Apple file systems can adapt in a pinch to POSIX. Apple are alone in having a file system built 'back-asswards' that just can't make it.

And another wonder of it is that even if you were to grudgingly accept the pain of an incorrect and incomplete POSIX implementation, you'd still be stuck further behind the lines than you imagined. It's far worse than you thought.

The accompanying illustrations will serve to elucidate the matter. Let it be said that POSIX doesn't run a single file system - there can be several present - but POSIX will be able to deal with them all.

Apple on the other hand can't deal properly with a single one. The developer, the administrator, and the power user are left with Lego toys to take care of their machines. Nice life.

/.vol & /dev

/.vol and /dev are two directories under root. They're both very special. What Apple's Finder says about them can be seen below.

Apple's Finder says they're both 'aliases' - HFS shortcuts - but they're not. They're bona fide directories. [And Finder won't let you in, in case you didn't guess.]

Apple's Finder also says they take 'Zero bytes' [sic] on disk, which is another lie. /.vol takes 96 bytes (which becomes one cluster or 4,096 bytes) and /dev on the machine on which this was tested takes 512 bytes or the same one cluster of 4,096 bytes.

Apple's Finder also says they're both 'locked', which would seem to be yet another untruth. You can easily navigate into both with either Xfile or the command line.

As far as ownership and permissions go, Apple's Finder is again off sailing on a tangent. The group denotation is correct, but both directories are owned by root. There is no 'system' account.

And as far as 'no access' goes, this is again a lie: both are eminently accessible.

The following is what you see when you enter /.vol from the command line.

% ls -ailo
total 0
        2 drwxrwxr-t  31 root  admin  - 1054 Aug 28 22:32 ..
234881029 dr--r--r--   2 root  wheel  -   64 Aug 28 21:21 234881029

The following is what you can see when you enter /dev from the command line. That's a lot of files (and subdirectories) Apple's Finder can't find.

% ls -ailo
total 0
       2 dr-xr-xr-x   2 root     wheel     -     512 Aug 28 21:21 .
       2 drwxrwxr-t  31 root     admin     -    1054 Aug 28 22:32 ..
26664836 crw-------   1 root     wheel     - 23,   0 Aug 28 21:33 bpf0
26664708 crw-------   1 root     wheel     - 23,   1 Aug 28 21:21 bpf1
26664580 crw-------   1 root     wheel     - 23,   2 Aug 28 21:21 bpf2
26664452 crw-------   1 root     wheel     - 23,   3 Aug 28 21:21 bpf3
26547716 crw-------   1 console  501       -  0,   0 Aug 28 22:50 console
25502852 crw-rw-rw-   1 root     wheel     -  8,   3 Aug 28 21:21 cu.IrDA-IrCOMMch-b
25591300 crw-rw-rw-   1 root     wheel     -  8,   1 Aug 28 21:21 cu.modem
26664068 brw-r-----   1 root     operator  - 14,   0 Aug 28 21:21 disk0
26663812 br--r-----   1 root     operator  - 14,   1 Aug 28 21:21 disk0s1
26663556 brw-r-----   1 root     operator  - 14,   2 Aug 28 21:21 disk0s2
26663300 brw-r-----   1 root     operator  - 14,   3 Aug 28 21:21 disk0s3
26663044 br--r-----   1 root     operator  - 14,   4 Aug 28 21:21 disk0s4
26662788 brw-r-----   1 root     operator  - 14,   5 Aug 28 21:21 disk0s5
       3 dr-xr-xr-x   2 root     wheel     -     512 Aug 28 21:21 fd
26546692 crw-------   1 root     wheel     -  6,   0 Aug 28 21:21 klog
26547076 crw-r-----   1 root     kmem      -  3,   1 Aug 28 21:21 kmem
26547204 crw-r-----   1 root     kmem      -  3,   0 Aug 28 21:21 mem
26546948 crw-rw-rw-   1 root     wheel     -  3,   2 Aug 28 21:36 null
26546436 crw-rw-rw-   1 root     wheel     -  5,   0 Aug 28 21:21 ptyp0
26546180 crw-rw-rw-   1 root     wheel     -  5,   1 Aug 28 22:53 ptyp1
26615556 crw-rw-rw-   1 root     wheel     -  5,   2 Aug 28 21:21 ptyp2
26615300 crw-rw-rw-   1 root     wheel     -  5,   3 Aug 28 21:21 ptyp3
26615044 crw-rw-rw-   1 root     wheel     -  5,   4 Aug 28 21:21 ptyp4
26614788 crw-rw-rw-   1 root     wheel     -  5,   5 Aug 28 21:21 ptyp5
26614532 crw-rw-rw-   1 root     wheel     -  5,   6 Aug 28 21:21 ptyp6
26614276 crw-rw-rw-   1 root     wheel     -  5,   7 Aug 28 21:21 ptyp7
26614020 crw-rw-rw-   1 root     wheel     -  5,   8 Aug 28 21:21 ptyp8
26613764 crw-rw-rw-   1 root     wheel     -  5,   9 Aug 28 21:21 ptyp9
26613508 crw-rw-rw-   1 root     wheel     -  5,  10 Aug 28 21:21 ptypa
26613252 crw-rw-rw-   1 root     wheel     -  5,  11 Aug 28 21:21 ptypb
26612996 crw-rw-rw-   1 root     wheel     -  5,  12 Aug 28 21:21 ptypc
26612740 crw-rw-rw-   1 root     wheel     -  5,  13 Aug 28 21:21 ptypd
26612484 crw-rw-rw-   1 root     wheel     -  5,  14 Aug 28 21:21 ptype
26612228 crw-rw-rw-   1 root     wheel     -  5,  15 Aug 28 21:21 ptypf
26611972 crw-rw-rw-   1 root     wheel     -  5,  16 Aug 28 21:21 ptyq0
26611716 crw-rw-rw-   1 root     wheel     -  5,  17 Aug 28 21:21 ptyq1
26619652 crw-rw-rw-   1 root     wheel     -  5,  18 Aug 28 21:21 ptyq2
26619396 crw-rw-rw-   1 root     wheel     -  5,  19 Aug 28 21:21 ptyq3
26619140 crw-rw-rw-   1 root     wheel     -  5,  20 Aug 28 21:21 ptyq4
26618884 crw-rw-rw-   1 root     wheel     -  5,  21 Aug 28 21:21 ptyq5
26618628 crw-rw-rw-   1 root     wheel     -  5,  22 Aug 28 21:21 ptyq6
26618372 crw-rw-rw-   1 root     wheel     -  5,  23 Aug 28 21:21 ptyq7
26618116 crw-rw-rw-   1 root     wheel     -  5,  24 Aug 28 21:21 ptyq8
26617860 crw-rw-rw-   1 root     wheel     -  5,  25 Aug 28 21:21 ptyq9
26617604 crw-rw-rw-   1 root     wheel     -  5,  26 Aug 28 21:21 ptyqa
26617348 crw-rw-rw-   1 root     wheel     -  5,  27 Aug 28 21:21 ptyqb
26617092 crw-rw-rw-   1 root     wheel     -  5,  28 Aug 28 21:21 ptyqc
26616836 crw-rw-rw-   1 root     wheel     -  5,  29 Aug 28 21:21 ptyqd
26616580 crw-rw-rw-   1 root     wheel     -  5,  30 Aug 28 21:21 ptyqe
26616324 crw-rw-rw-   1 root     wheel     -  5,  31 Aug 28 21:21 ptyqf
26616068 crw-rw-rw-   1 root     wheel     -  5,  32 Aug 28 21:21 ptyr0
26615812 crw-rw-rw-   1 root     wheel     -  5,  33 Aug 28 21:21 ptyr1
26627844 crw-rw-rw-   1 root     wheel     -  5,  34 Aug 28 21:21 ptyr2
26627588 crw-rw-rw-   1 root     wheel     -  5,  35 Aug 28 21:21 ptyr3
26627332 crw-rw-rw-   1 root     wheel     -  5,  36 Aug 28 21:21 ptyr4
26627076 crw-rw-rw-   1 root     wheel     -  5,  37 Aug 28 21:21 ptyr5
26626820 crw-rw-rw-   1 root     wheel     -  5,  38 Aug 28 21:21 ptyr6
26626564 crw-rw-rw-   1 root     wheel     -  5,  39 Aug 28 21:21 ptyr7
26626308 crw-rw-rw-   1 root     wheel     -  5,  40 Aug 28 21:21 ptyr8
26626052 crw-rw-rw-   1 root     wheel     -  5,  41 Aug 28 21:21 ptyr9
26625796 crw-rw-rw-   1 root     wheel     -  5,  42 Aug 28 21:21 ptyra
26625540 crw-rw-rw-   1 root     wheel     -  5,  43 Aug 28 21:21 ptyrb
26625284 crw-rw-rw-   1 root     wheel     -  5,  44 Aug 28 21:21 ptyrc
26625028 crw-rw-rw-   1 root     wheel     -  5,  45 Aug 28 21:21 ptyrd
26624772 crw-rw-rw-   1 root     wheel     -  5,  46 Aug 28 21:21 ptyre
26624516 crw-rw-rw-   1 root     wheel     -  5,  47 Aug 28 21:21 ptyrf
26624260 crw-rw-rw-   1 root     wheel     -  5,  48 Aug 28 21:21 ptys0
26624004 crw-rw-rw-   1 root     wheel     -  5,  49 Aug 28 21:21 ptys1
26631940 crw-rw-rw-   1 root     wheel     -  5,  50 Aug 28 21:21 ptys2
26631684 crw-rw-rw-   1 root     wheel     -  5,  51 Aug 28 21:21 ptys3
26631428 crw-rw-rw-   1 root     wheel     -  5,  52 Aug 28 21:21 ptys4
26631172 crw-rw-rw-   1 root     wheel     -  5,  53 Aug 28 21:21 ptys5
26630916 crw-rw-rw-   1 root     wheel     -  5,  54 Aug 28 21:21 ptys6
26630660 crw-rw-rw-   1 root     wheel     -  5,  55 Aug 28 21:21 ptys7
26630404 crw-rw-rw-   1 root     wheel     -  5,  56 Aug 28 21:21 ptys8
26630148 crw-rw-rw-   1 root     wheel     -  5,  57 Aug 28 21:21 ptys9
26629892 crw-rw-rw-   1 root     wheel     -  5,  58 Aug 28 21:21 ptysa
26629636 crw-rw-rw-   1 root     wheel     -  5,  59 Aug 28 21:21 ptysb
26629380 crw-rw-rw-   1 root     wheel     -  5,  60 Aug 28 21:21 ptysc
26629124 crw-rw-rw-   1 root     wheel     -  5,  61 Aug 28 21:21 ptysd
26628868 crw-rw-rw-   1 root     wheel     -  5,  62 Aug 28 21:21 ptyse
26628612 crw-rw-rw-   1 root     wheel     -  5,  63 Aug 28 21:21 ptysf
26628356 crw-rw-rw-   1 root     wheel     -  5,  64 Aug 28 21:21 ptyt0
26628100 crw-rw-rw-   1 root     wheel     -  5,  65 Aug 28 21:21 ptyt1
26640132 crw-rw-rw-   1 root     wheel     -  5,  66 Aug 28 21:21 ptyt2
26639876 crw-rw-rw-   1 root     wheel     -  5,  67 Aug 28 21:21 ptyt3
26639620 crw-rw-rw-   1 root     wheel     -  5,  68 Aug 28 21:21 ptyt4
26639364 crw-rw-rw-   1 root     wheel     -  5,  69 Aug 28 21:21 ptyt5
26639108 crw-rw-rw-   1 root     wheel     -  5,  70 Aug 28 21:21 ptyt6
26638852 crw-rw-rw-   1 root     wheel     -  5,  71 Aug 28 21:21 ptyt7
26638596 crw-rw-rw-   1 root     wheel     -  5,  72 Aug 28 21:21 ptyt8
26638340 crw-rw-rw-   1 root     wheel     -  5,  73 Aug 28 21:21 ptyt9
26638084 crw-rw-rw-   1 root     wheel     -  5,  74 Aug 28 21:21 ptyta
26637828 crw-rw-rw-   1 root     wheel     -  5,  75 Aug 28 21:21 ptytb
26637572 crw-rw-rw-   1 root     wheel     -  5,  76 Aug 28 21:21 ptytc
26637316 crw-rw-rw-   1 root     wheel     -  5,  77 Aug 28 21:21 ptytd
26637060 crw-rw-rw-   1 root     wheel     -  5,  78 Aug 28 21:21 ptyte
26636804 crw-rw-rw-   1 root     wheel     -  5,  79 Aug 28 21:21 ptytf
26636548 crw-rw-rw-   1 root     wheel     -  5,  80 Aug 28 21:21 ptyu0
26636292 crw-rw-rw-   1 root     wheel     -  5,  81 Aug 28 21:21 ptyu1
26644228 crw-rw-rw-   1 root     wheel     -  5,  82 Aug 28 21:21 ptyu2
26643972 crw-rw-rw-   1 root     wheel     -  5,  83 Aug 28 21:21 ptyu3
26643716 crw-rw-rw-   1 root     wheel     -  5,  84 Aug 28 21:21 ptyu4
26643460 crw-rw-rw-   1 root     wheel     -  5,  85 Aug 28 21:21 ptyu5
26643204 crw-rw-rw-   1 root     wheel     -  5,  86 Aug 28 21:21 ptyu6
26642948 crw-rw-rw-   1 root     wheel     -  5,  87 Aug 28 21:21 ptyu7
26642692 crw-rw-rw-   1 root     wheel     -  5,  88 Aug 28 21:21 ptyu8
26642436 crw-rw-rw-   1 root     wheel     -  5,  89 Aug 28 21:21 ptyu9
26642180 crw-rw-rw-   1 root     wheel     -  5,  90 Aug 28 21:21 ptyua
26641924 crw-rw-rw-   1 root     wheel     -  5,  91 Aug 28 21:21 ptyub
26641668 crw-rw-rw-   1 root     wheel     -  5,  92 Aug 28 21:21 ptyuc
26641412 crw-rw-rw-   1 root     wheel     -  5,  93 Aug 28 21:21 ptyud
26641156 crw-rw-rw-   1 root     wheel     -  5,  94 Aug 28 21:21 ptyue
26640900 crw-rw-rw-   1 root     wheel     -  5,  95 Aug 28 21:21 ptyuf
26640644 crw-rw-rw-   1 root     wheel     -  5,  96 Aug 28 21:21 ptyv0
26640388 crw-rw-rw-   1 root     wheel     -  5,  97 Aug 28 21:21 ptyv1
26652420 crw-rw-rw-   1 root     wheel     -  5,  98 Aug 28 21:21 ptyv2
26652164 crw-rw-rw-   1 root     wheel     -  5,  99 Aug 28 21:21 ptyv3
26651908 crw-rw-rw-   1 root     wheel     -  5, 100 Aug 28 21:21 ptyv4
26651652 crw-rw-rw-   1 root     wheel     -  5, 101 Aug 28 21:21 ptyv5
26651396 crw-rw-rw-   1 root     wheel     -  5, 102 Aug 28 21:21 ptyv6
26651140 crw-rw-rw-   1 root     wheel     -  5, 103 Aug 28 21:21 ptyv7
26650884 crw-rw-rw-   1 root     wheel     -  5, 104 Aug 28 21:21 ptyv8
26650628 crw-rw-rw-   1 root     wheel     -  5, 105 Aug 28 21:21 ptyv9
26650372 crw-rw-rw-   1 root     wheel     -  5, 106 Aug 28 21:21 ptyva
26650116 crw-rw-rw-   1 root     wheel     -  5, 107 Aug 28 21:21 ptyvb
26649860 crw-rw-rw-   1 root     wheel     -  5, 108 Aug 28 21:21 ptyvc
26649604 crw-rw-rw-   1 root     wheel     -  5, 109 Aug 28 21:21 ptyvd
26649348 crw-rw-rw-   1 root     wheel     -  5, 110 Aug 28 21:21 ptyve
26649092 crw-rw-rw-   1 root     wheel     -  5, 111 Aug 28 21:21 ptyvf
26648836 crw-rw-rw-   1 root     wheel     -  5, 112 Aug 28 21:21 ptyw0
26648580 crw-rw-rw-   1 root     wheel     -  5, 113 Aug 28 21:21 ptyw1
26656516 crw-rw-rw-   1 root     wheel     -  5, 114 Aug 28 21:21 ptyw2
26656260 crw-rw-rw-   1 root     wheel     -  5, 115 Aug 28 21:21 ptyw3
26656004 crw-rw-rw-   1 root     wheel     -  5, 116 Aug 28 21:21 ptyw4
26655748 crw-rw-rw-   1 root     wheel     -  5, 117 Aug 28 21:21 ptyw5
26655492 crw-rw-rw-   1 root     wheel     -  5, 118 Aug 28 21:21 ptyw6
26655236 crw-rw-rw-   1 root     wheel     -  5, 119 Aug 28 21:21 ptyw7
26654980 crw-rw-rw-   1 root     wheel     -  5, 120 Aug 28 21:21 ptyw8
26654724 crw-rw-rw-   1 root     wheel     -  5, 121 Aug 28 21:21 ptyw9
26654468 crw-rw-rw-   1 root     wheel     -  5, 122 Aug 28 21:21 ptywa
26654212 crw-rw-rw-   1 root     wheel     -  5, 123 Aug 28 21:21 ptywb
26653956 crw-rw-rw-   1 root     wheel     -  5, 124 Aug 28 21:21 ptywc
26653700 crw-rw-rw-   1 root     wheel     -  5, 125 Aug 28 21:21 ptywd
26653444 crw-rw-rw-   1 root     wheel     -  5, 126 Aug 28 21:21 ptywe
26653188 crw-rw-rw-   1 root     wheel     -  5, 127 Aug 28 21:21 ptywf
26664324 crw-r--r--   1 root     wheel     -  7,   0 Aug 28 22:53 random
26663940 crw-r-----   1 root     operator  - 14,   0 Aug 28 21:21 rdisk0
26663684 cr--r-----   1 root     operator  - 14,   1 Aug 28 21:21 rdisk0s1
26663428 crw-r-----   1 root     operator  - 14,   2 Aug 28 21:21 rdisk0s2
26663172 crw-r-----   1 root     operator  - 14,   3 Aug 28 21:21 rdisk0s3
26662916 cr--r-----   1 root     operator  - 14,   4 Aug 28 21:21 rdisk0s4
26662660 crw-r-----   1 root     operator  - 14,   5 Aug 28 21:21 rdisk0s5
       6 lr-xr-xr-x   1 root     wheel     -       4 Aug 28 21:21 stderr -> fd/2
       4 lr-xr-xr-x   1 root     wheel     -       4 Aug 28 21:21 stdin -> fd/0
       5 lr-xr-xr-x   1 root     wheel     -       4 Aug 28 21:21 stdout -> fd/1
26547460 crw-rw-rw-   1 root     wheel     -  2,   0 Aug 28 21:21 tty
25502980 crw-rw-rw-   1 root     wheel     -  8,   2 Aug 28 21:21 tty.IrDA-IrCOMMch-b
25591684 crw-rw-rw-   1 root     wheel     -  8,   0 Aug 28 21:21 tty.modem
26546564 crw--w----   1 root     tty       -  4,   0 Aug 28 21:21 ttyp0
26546308 crw--w----   1 console  tty       -  4,   1 Aug 28 22:53 ttyp1
26615684 crw-rw-rw-   1 root     wheel     -  4,   2 Aug 28 21:21 ttyp2
26615428 crw-rw-rw-   1 root     wheel     -  4,   3 Aug 28 21:21 ttyp3
26615172 crw-rw-rw-   1 root     wheel     -  4,   4 Aug 28 21:21 ttyp4
26614916 crw-rw-rw-   1 root     wheel     -  4,   5 Aug 28 21:21 ttyp5
26614660 crw-rw-rw-   1 root     wheel     -  4,   6 Aug 28 21:21 ttyp6
26614404 crw-rw-rw-   1 root     wheel     -  4,   7 Aug 28 21:21 ttyp7
26614148 crw-rw-rw-   1 root     wheel     -  4,   8 Aug 28 21:21 ttyp8
26613892 crw-rw-rw-   1 root     wheel     -  4,   9 Aug 28 21:21 ttyp9
26613636 crw-rw-rw-   1 root     wheel     -  4,  10 Aug 28 21:21 ttypa
26613380 crw-rw-rw-   1 root     wheel     -  4,  11 Aug 28 21:21 ttypb
26613124 crw-rw-rw-   1 root     wheel     -  4,  12 Aug 28 21:21 ttypc
26612868 crw-rw-rw-   1 root     wheel     -  4,  13 Aug 28 21:21 ttypd
26612612 crw-rw-rw-   1 root     wheel     -  4,  14 Aug 28 21:21 ttype
26612356 crw-rw-rw-   1 root     wheel     -  4,  15 Aug 28 21:21 ttypf
26612100 crw-rw-rw-   1 root     wheel     -  4,  16 Aug 28 21:21 ttyq0
26611844 crw-rw-rw-   1 root     wheel     -  4,  17 Aug 28 21:21 ttyq1
26619780 crw-rw-rw-   1 root     wheel     -  4,  18 Aug 28 21:21 ttyq2
26619524 crw-rw-rw-   1 root     wheel     -  4,  19 Aug 28 21:21 ttyq3
26619268 crw-rw-rw-   1 root     wheel     -  4,  20 Aug 28 21:21 ttyq4
26619012 crw-rw-rw-   1 root     wheel     -  4,  21 Aug 28 21:21 ttyq5
26618756 crw-rw-rw-   1 root     wheel     -  4,  22 Aug 28 21:21 ttyq6
26618500 crw-rw-rw-   1 root     wheel     -  4,  23 Aug 28 21:21 ttyq7
26618244 crw-rw-rw-   1 root     wheel     -  4,  24 Aug 28 21:21 ttyq8
26617988 crw-rw-rw-   1 root     wheel     -  4,  25 Aug 28 21:21 ttyq9
26617732 crw-rw-rw-   1 root     wheel     -  4,  26 Aug 28 21:21 ttyqa
26617476 crw-rw-rw-   1 root     wheel     -  4,  27 Aug 28 21:21 ttyqb
26617220 crw-rw-rw-   1 root     wheel     -  4,  28 Aug 28 21:21 ttyqc
26616964 crw-rw-rw-   1 root     wheel     -  4,  29 Aug 28 21:21 ttyqd
26616708 crw-rw-rw-   1 root     wheel     -  4,  30 Aug 28 21:21 ttyqe
26616452 crw-rw-rw-   1 root     wheel     -  4,  31 Aug 28 21:21 ttyqf
26616196 crw-rw-rw-   1 root     wheel     -  4,  32 Aug 28 21:21 ttyr0
26615940 crw-rw-rw-   1 root     wheel     -  4,  33 Aug 28 21:21 ttyr1
26627972 crw-rw-rw-   1 root     wheel     -  4,  34 Aug 28 21:21 ttyr2
26627716 crw-rw-rw-   1 root     wheel     -  4,  35 Aug 28 21:21 ttyr3
26627460 crw-rw-rw-   1 root     wheel     -  4,  36 Aug 28 21:21 ttyr4
26627204 crw-rw-rw-   1 root     wheel     -  4,  37 Aug 28 21:21 ttyr5
26626948 crw-rw-rw-   1 root     wheel     -  4,  38 Aug 28 21:21 ttyr6
26626692 crw-rw-rw-   1 root     wheel     -  4,  39 Aug 28 21:21 ttyr7
26626436 crw-rw-rw-   1 root     wheel     -  4,  40 Aug 28 21:21 ttyr8
26626180 crw-rw-rw-   1 root     wheel     -  4,  41 Aug 28 21:21 ttyr9
26625924 crw-rw-rw-   1 root     wheel     -  4,  42 Aug 28 21:21 ttyra
26625668 crw-rw-rw-   1 root     wheel     -  4,  43 Aug 28 21:21 ttyrb
26625412 crw-rw-rw-   1 root     wheel     -  4,  44 Aug 28 21:21 ttyrc
26625156 crw-rw-rw-   1 root     wheel     -  4,  45 Aug 28 21:21 ttyrd
26624900 crw-rw-rw-   1 root     wheel     -  4,  46 Aug 28 21:21 ttyre
26624644 crw-rw-rw-   1 root     wheel     -  4,  47 Aug 28 21:21 ttyrf
26624388 crw-rw-rw-   1 root     wheel     -  4,  48 Aug 28 21:21 ttys0
26624132 crw-rw-rw-   1 root     wheel     -  4,  49 Aug 28 21:21 ttys1
26632068 crw-rw-rw-   1 root     wheel     -  4,  50 Aug 28 21:21 ttys2
26631812 crw-rw-rw-   1 root     wheel     -  4,  51 Aug 28 21:21 ttys3
26631556 crw-rw-rw-   1 root     wheel     -  4,  52 Aug 28 21:21 ttys4
26631300 crw-rw-rw-   1 root     wheel     -  4,  53 Aug 28 21:21 ttys5
26631044 crw-rw-rw-   1 root     wheel     -  4,  54 Aug 28 21:21 ttys6
26630788 crw-rw-rw-   1 root     wheel     -  4,  55 Aug 28 21:21 ttys7
26630532 crw-rw-rw-   1 root     wheel     -  4,  56 Aug 28 21:21 ttys8
26630276 crw-rw-rw-   1 root     wheel     -  4,  57 Aug 28 21:21 ttys9
26630020 crw-rw-rw-   1 root     wheel     -  4,  58 Aug 28 21:21 ttysa
26629764 crw-rw-rw-   1 root     wheel     -  4,  59 Aug 28 21:21 ttysb
26629508 crw-rw-rw-   1 root     wheel     -  4,  60 Aug 28 21:21 ttysc
26629252 crw-rw-rw-   1 root     wheel     -  4,  61 Aug 28 21:21 ttysd
26628996 crw-rw-rw-   1 root     wheel     -  4,  62 Aug 28 21:21 ttyse
26628740 crw-rw-rw-   1 root     wheel     -  4,  63 Aug 28 21:21 ttysf
26628484 crw-rw-rw-   1 root     wheel     -  4,  64 Aug 28 21:21 ttyt0
26628228 crw-rw-rw-   1 root     wheel     -  4,  65 Aug 28 21:21 ttyt1
26640260 crw-rw-rw-   1 root     wheel     -  4,  66 Aug 28 21:21 ttyt2
26640004 crw-rw-rw-   1 root     wheel     -  4,  67 Aug 28 21:21 ttyt3
26639748 crw-rw-rw-   1 root     wheel     -  4,  68 Aug 28 21:21 ttyt4
26639492 crw-rw-rw-   1 root     wheel     -  4,  69 Aug 28 21:21 ttyt5
26639236 crw-rw-rw-   1 root     wheel     -  4,  70 Aug 28 21:21 ttyt6
26638980 crw-rw-rw-   1 root     wheel     -  4,  71 Aug 28 21:21 ttyt7
26638724 crw-rw-rw-   1 root     wheel     -  4,  72 Aug 28 21:21 ttyt8
26638468 crw-rw-rw-   1 root     wheel     -  4,  73 Aug 28 21:21 ttyt9
26638212 crw-rw-rw-   1 root     wheel     -  4,  74 Aug 28 21:21 ttyta
26637956 crw-rw-rw-   1 root     wheel     -  4,  75 Aug 28 21:21 ttytb
26637700 crw-rw-rw-   1 root     wheel     -  4,  76 Aug 28 21:21 ttytc
26637444 crw-rw-rw-   1 root     wheel     -  4,  77 Aug 28 21:21 ttytd
26637188 crw-rw-rw-   1 root     wheel     -  4,  78 Aug 28 21:21 ttyte
26636932 crw-rw-rw-   1 root     wheel     -  4,  79 Aug 28 21:21 ttytf
26636676 crw-rw-rw-   1 root     wheel     -  4,  80 Aug 28 21:21 ttyu0
26636420 crw-rw-rw-   1 root     wheel     -  4,  81 Aug 28 21:21 ttyu1
26644356 crw-rw-rw-   1 root     wheel     -  4,  82 Aug 28 21:21 ttyu2
26644100 crw-rw-rw-   1 root     wheel     -  4,  83 Aug 28 21:21 ttyu3
26643844 crw-rw-rw-   1 root     wheel     -  4,  84 Aug 28 21:21 ttyu4
26643588 crw-rw-rw-   1 root     wheel     -  4,  85 Aug 28 21:21 ttyu5
26643332 crw-rw-rw-   1 root     wheel     -  4,  86 Aug 28 21:21 ttyu6
26643076 crw-rw-rw-   1 root     wheel     -  4,  87 Aug 28 21:21 ttyu7
26642820 crw-rw-rw-   1 root     wheel     -  4,  88 Aug 28 21:21 ttyu8
26642564 crw-rw-rw-   1 root     wheel     -  4,  89 Aug 28 21:21 ttyu9
26642308 crw-rw-rw-   1 root     wheel     -  4,  90 Aug 28 21:21 ttyua
26642052 crw-rw-rw-   1 root     wheel     -  4,  91 Aug 28 21:21 ttyub
26641796 crw-rw-rw-   1 root     wheel     -  4,  92 Aug 28 21:21 ttyuc
26641540 crw-rw-rw-   1 root     wheel     -  4,  93 Aug 28 21:21 ttyud
26641284 crw-rw-rw-   1 root     wheel     -  4,  94 Aug 28 21:21 ttyue
26641028 crw-rw-rw-   1 root     wheel     -  4,  95 Aug 28 21:21 ttyuf
26640772 crw-rw-rw-   1 root     wheel     -  4,  96 Aug 28 21:21 ttyv0
26640516 crw-rw-rw-   1 root     wheel     -  4,  97 Aug 28 21:21 ttyv1
26652548 crw-rw-rw-   1 root     wheel     -  4,  98 Aug 28 21:21 ttyv2
26652292 crw-rw-rw-   1 root     wheel     -  4,  99 Aug 28 21:21 ttyv3
26652036 crw-rw-rw-   1 root     wheel     -  4, 100 Aug 28 21:21 ttyv4
26651780 crw-rw-rw-   1 root     wheel     -  4, 101 Aug 28 21:21 ttyv5
26651524 crw-rw-rw-   1 root     wheel     -  4, 102 Aug 28 21:21 ttyv6
26651268 crw-rw-rw-   1 root     wheel     -  4, 103 Aug 28 21:21 ttyv7
26651012 crw-rw-rw-   1 root     wheel     -  4, 104 Aug 28 21:21 ttyv8
26650756 crw-rw-rw-   1 root     wheel     -  4, 105 Aug 28 21:21 ttyv9
26650500 crw-rw-rw-   1 root     wheel     -  4, 106 Aug 28 21:21 ttyva
26650244 crw-rw-rw-   1 root     wheel     -  4, 107 Aug 28 21:21 ttyvb
26649988 crw-rw-rw-   1 root     wheel     -  4, 108 Aug 28 21:21 ttyvc
26649732 crw-rw-rw-   1 root     wheel     -  4, 109 Aug 28 21:21 ttyvd
26649476 crw-rw-rw-   1 root     wheel     -  4, 110 Aug 28 21:21 ttyve
26649220 crw-rw-rw-   1 root     wheel     -  4, 111 Aug 28 21:21 ttyvf
26648964 crw-rw-rw-   1 root     wheel     -  4, 112 Aug 28 21:21 ttyw0
26648708 crw-rw-rw-   1 root     wheel     -  4, 113 Aug 28 21:21 ttyw1
26656644 crw-rw-rw-   1 root     wheel     -  4, 114 Aug 28 21:21 ttyw2
26656388 crw-rw-rw-   1 root     wheel     -  4, 115 Aug 28 21:21 ttyw3
26656132 crw-rw-rw-   1 root     wheel     -  4, 116 Aug 28 21:21 ttyw4
26655876 crw-rw-rw-   1 root     wheel     -  4, 117 Aug 28 21:21 ttyw5
26655620 crw-rw-rw-   1 root     wheel     -  4, 118 Aug 28 21:21 ttyw6
26655364 crw-rw-rw-   1 root     wheel     -  4, 119 Aug 28 21:21 ttyw7
26655108 crw-rw-rw-   1 root     wheel     -  4, 120 Aug 28 21:21 ttyw8
26654852 crw-rw-rw-   1 root     wheel     -  4, 121 Aug 28 21:21 ttyw9
26654596 crw-rw-rw-   1 root     wheel     -  4, 122 Aug 28 21:21 ttywa
26654340 crw-rw-rw-   1 root     wheel     -  4, 123 Aug 28 21:21 ttywb
26654084 crw-rw-rw-   1 root     wheel     -  4, 124 Aug 28 21:21 ttywc
26653828 crw-rw-rw-   1 root     wheel     -  4, 125 Aug 28 21:21 ttywd
26653572 crw-rw-rw-   1 root     wheel     -  4, 126 Aug 28 21:21 ttywe
26653316 crw-rw-rw-   1 root     wheel     -  4, 127 Aug 28 21:21 ttywf
26664196 crw-r--r--   1 root     wheel     -  7,   1 Aug 28 21:21 urandom
26653060 brw-------   1 root     operator  -  1,   0 Aug 28 21:21 vn0
26652932 brw-------   1 root     operator  -  1,   1 Aug 28 21:21 vn1
26652804 brw-------   1 root     operator  -  1,   2 Aug 28 21:21 vn2
26652676 brw-------   1 root     operator  -  1,   3 Aug 28 21:21 vn3
26546820 crw-rw-rw-   1 root     wheel     -  3,   3 Aug 28 21:21 zero

What are all those files? It's easier to take /dev first.

What you see in /dev are device files. They're quite the clever invention. Device files are either block or character special files. Right before the modified date you see their major and minor numbers. These are used to classify them.

These are the files that are used to manage your terminal windows, Apple's own console operations, generation of random numbers, management of your hard drive, access to the computer's memory, and many other things.

/.vol is even more curious - even funnier. It's a 'beige box directory'. Legacy Apple 'beige box' applications can't deal in file system paths - they need those precious 'CNIDS' - catalog node IDs from HFS. Toss something like '/.vol' at a Carbon app and it will throw itself into a loop.

No, you need something better - or worse, whatever your preference. You need a CNID. And you need a fast way to get one for any given file path.

Try the following experiment.

  1. Create a text file with TextEdit. Name it 'CNID.txt' and save it in '~/Documents'.

  2. Drop to a command line in '~/Documents' and list your file.
    % ls -ailo CNID.txt
    1129597 -rw-r--r--  1 rixstep  wheel  - 0 Aug 28 23:09 CNID.txt

  3. Note the number all the way on the left ('1129597' - yours will be different).

  4. Navigate to /.vol with your Terminal window.
    cd /.vol

  5. List the contents of /.vol as before and note the new number all the way on the left.
    % ls -ailo
    total 0
            2 drwxrwxr-t  31 root  admin  - 1054 Aug 28 22:32 ..
    234881029 dr--r--r--   2 root  wheel  -   64 Aug 28 21:21 234881029

  6. Take that new number and change directory to it.
    cd 234881029

  7. Using the first number you memorised from above, issue the following command in Terminal.
    open 1129597

Like magic, innit!

You Can't Go There!

Developers, administrators, and power users on OS X are tired of hearing that Apple mantra 'we don't want you going there'. Someone has to go there - how can professional IT people be expected to administer OS X computers with nonsense like the following?



But in this case it's not just a question of 'you can't go there' but of Apple's Finder not being able to either.

See Also
volfs
HFS+
Mosh Pit
3662262
4350557
Fork-U-2
Is It Unix?
A Weird Bug
Saving Apple
2006-003 FAQ
Hyde Park Corner I
Yours Mine & Ours II
The OpenStep Standard
Windows Friendly Attachments
Peeking Inside the Chocolate Tunnel
Of Data Mining, Rootkits & Spotlight
They're Already on Your Disk

About | Buy | Forum | Industry Watch | Learning Curve | Products | Search | Twitter | Xnews
Copyright © Rixstep. All rights reserved.