h=0.7 w=8.0 .gcolor white box ht h wid w .gcolor move w=1.7 FS: arrow at last box .w + (0.4, 0) DRI: arrow at last arrow .e + (w, 0) DEV: arrow at last arrow .e + (w, 0) .ps +4 TXTFS: "filesystem" at 1/2 between FS.e and DRI.w TXTDRI: "driver" at 1/2 between DRI.e and DEV.w TXTDEV: "device" at DEV.e + (w/2,0) .ps # subtexts subtexth = 0.2 "(user interface," at TXTFS + (0, -subtexth) "permissions," at Here + (0, -0.15) "file to logical block addresses," at Here + (0, -0.15) "some optimizations)" at Here + (0, -0.15) "(logical to physical" at TXTDRI + (0, -subtexth) "block addresses," at Here + (0, -0.15) "some optimizations)" at Here + (0, -0.15) "(actually stores data)" at TXTDEV + (0, -subtexth) "files and" "directories" at 1/2 between FS.e and FS.w + (0, h) "logical blocks" "ex: 0x10" at 1/2 between DRI.e and DRI.w + (0, h) "physical blocks, AHCI commands" "ex: READ 0x2058 (LBA)" at 1/2 between DEV.e and DEV.w + (0, h)