Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!njin!princeton!notecnirp!nfs From: nfs@notecnirp.Princeton.EDU (Norbert Schlenker) Newsgroups: comp.os.minix Subject: Re: Large Disks Keywords: POSIX stat inode Message-ID: <19846@princeton.Princeton.EDU> Date: 4 Oct 89 11:02:50 GMT References: <233@vsserv.scri.fsu.edu> <3463@ast.cs.vu.nl> <275@nikhefh.nikhef.nl> Sender: news@princeton.Princeton.EDU Reply-To: nfs@notecnirp.UUCP (Norbert Schlenker) Organization: Dept. of Computer Science, Princeton University Lines: 46 In article <275@nikhefh.nikhef.nl> Schutte@nikhefh.nikhef.nl (Klamer Schutte) writes: ]In article <3463@ast.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: ]#>The MINIX i-node is 32 bytes. This was designed to be frugal on a floppy ]#>based system. The 32 bytes contain 9 16-bit disk addresses and a few other ]#>goodies. Going to 9 24-bit addresses (like UNIX) takes up 27 bytes. ] 24 bit addresses are not to efficient on a 68000: needs a lot of ] shift operations to come a decent integer type (long/short). ]#>Since we also need the mode, at least one time (a long), a gid, uid, etc, ]#>it is not going to fit. Furthermore, POSIX really requires three distinct ]#>times in the i-node, not 1 like MINIX has. The implication of all this is ] Where is that in the standard? In my version (1986) paragraph ] 5.6.1.2 says: ] Only st_mode, st_ino, st_dev, st_uid, st_gid, st_size and st_mtime ] are requiered data elements in the stat structure. All other ] elements are optional, ... (etc.) ] So reading this whole section i think we are POSIX-compatible if ] we delete the fields st_atime & st_ctime from stat.h! The 1988 standard says, in 5.6.1, that all of the following are required and must have meaningful values: st_mode, st_ino, st_dev, st_uid, st_gid, st_atime, st_ctime, st_mtime I count that to use at least 20 bytes. Adding other useful information (like disk addresses!), 32 bytes is not going to be enough. ]#>that we have to go to a 64-byte i-node. Not that this is so awful, and ]#>technically it is not a problem, but it does mean that the V2.0 file ]#>system will not be compatible with the 1.x file system (choke!). I have ]#>been aware of this since I read the POSIX standard and saw that one must ]#>have three times in the i-node, since the standard tells exactly when each ]#>time is updated, and test suites can easily verify this. ] where can i find this? In the 1988 standard, there is additional discussion in 2.4 under "file times update". There is no getting away from this. ]#> ]#>Andy Tanenbaum (ast@cs.vu.nl) ] ]Klamer. ]-- ]____________________Yes, mail address changed again :-(_________________________ ]Klamer Schutte mcvax!nikhefh!{n62,Schutte} {Schutte,n62}@nikhef.nl Norbert