/joh'liks/ n.,adj. 386BSD
PORTING UNIX TO THE 386: A PRACTICAL APPROACH
William & Lynne Jolitz
Having made the initial filesystem on another kind of system, we need to move it into place on the system we are running the kernel on.
With our filesystem image in a file, we can download it using either Kermit, NCSA Telnet, or some other file transfer utility that can copy a binary image from our cross-host to the PC under MS-DOS. In the early stages, before the kernel successfully ran processes, small filesystems of a few hundred Kbytes (principly /dev/console, /sbin/init, /bin/ sh, and /bin/ls) could be downloaded as needed over the serial ports using Kermit. As success with the kernel increased, so did the size of the root filesystem, because the focus of the project moved from minimal operation to proving the kernel by means of increasingly larger utilities. This affected us in three ways: Serial link downloading took too long; our MS-DOS partition limited the size of the filesystem across which we could copy; and even a single byte change in a single file required a complete filesystem download to affect modification.|
Having downloaded the filesystem, we used the copyfs program (see "Initial Utilities: Three PC Utilities" in DDJ, February 1991) to install it in a partition on the hard disk, separate from MS-DOS. The BSD kernel disk driver was also modified to relocate what it considered the beginning of the disk to this point so we could share the disk with two systems. Copyfs would place the image of the filesystem onto the absolute disk storage blocks without any translation, making the image real.