📄 readme
字号:
# @(#)README 8.1 (Berkeley) 6/11/934.4BSD-alpha 80386/80486 StatusJune 20, 1992Pace Willisson <pace@blitz.com> +1 508 533 6430I believe that the sources in the 4.4BSD-alpha release can be compiledinto a fairly usable system on IBM-AT class machines, although it isstill pretty hard to bootstrap from the sources. In this file, I'lldescribe the kinds of testing I've done with this kernel, and I'llgive some hints about how to compiled it.I've been testing on a no-name motherboard with a 33 MHz 80486DX, 16Megabytes of RAM, an 80 Megabyte ST-506 MFM disk, a 500 Megabyte SCSIWren 5 and a Western Digital 8003 Ethernet controller. I've also runa predecessor to this kernel on a very old 16 MHz 80386/80387.My main test is to run a loop of kernel compiles: cd /sys/compile/PACE while true do rm -f *.o make doneThis takes about 35 minutes per loop, and I haven't seen it fail withrecent kernels. The longest I've let it run is about 2 days.I don't do any real development on the machine (I keep the activekernel sources on another machine and usually cross compile it), but Ihaven't seen any problems with running a random collection ofutilities including gnuemacs, gcc, gdb, ftp, rlogin, trn and xterm.If you want to try to compile and run this kernel, here are some hints:First, if you received the "lite" distribution, then you will need tofill in the missing files. The changes needed are almost exactly thesame as those needed to fill out the NET/2 distribution, so areasonable start would be to use the 386BSD diffs.Next, you have to run a Berkeley version of gcc. Although itidentifies itself as "gcc version 1.39", it has some changes from thereal 1.39 that are important. The main thing is that bit fields maycross 32 bit boundaries. Therefore, the first step in cross compilingthe kernel must be to compile the gcc from this tape (or the one fromthe NET/2 tape). The compiler supplied with either the Jolitz or BSDIdistributions should also be acceptable. If you want to double check,make a test file that includes i386/include/segments.h, and make surethat sizeof (struct segment_descriptor) == 8.If your host is not a very modern BSD system, you will also need tomake cross versions of "make" and perhaps other binary utilities.You will certainly need a cross version of src/usr.sbin/config.Hopefully, you will be able to use your own system's include fileswhile compiling the cross-compilation system, since many of theinclude files on the 4.4BSD tape are incompatible even with NET/2systems. You may need to make a few changes to the programs in thecompilation system, since they assume they will run under 4.4BSD, evenif they don't explicitly take advantage of the new features.If you host is not a NET/2 based system, be sure to configure thecross compilation system to ignore the host's include files andlibraries, and instead use the 4.4BSD versions. Also, if your hostis not little endian, then you have major work to do to most of thebinary utilities.Now you need to configure the kernel - start with i386/conf/BLITZ.You can probably use it as it stands, but look it over to make sure.Then do: $ cd i386/conf $ config BLITZ $ cd ../../compile/BLITZ $ makeYou may need to compile genassym.c by hand, since it is executed on thehost machine to create assym.s.Once you have a kernel, you need to get a disk ready to run it. Sincethis is an experimental system, you should make sure you don't haveany important files on the disk. I have been successful in switchingback and forth between a NET/2 kernel and a 4.4BSD kernel, but I neverkeep important files on that disk. Also, 4.4BSD does not make anyattempt to co-exist with MSDOS.Now you have to create a file system. The easiest approach would beto load either the Jolitz or BSDI binaries, then install your newkernel. If you do this, you should check the device numbers first,and perhaps adjust the drivers or conf.c file. 4.4BSD is supposed tobe binary compatible with these systems, so you should be able to usethe existing programs in bin, usr/bin, etc. Binaries from 4.3BSD 386systems may be compatible as well.When you are ready to install the new libraries, you must install thenew include files at the same time. Programs compiled with the newlibraries will not be compatible with the old kernel.If you don't have either the Jolitz or BSDI system, you can bootstrapusing some other system that has a little endian the Berkeley filesystem. If you do this, you can mount a floppy on your host and copyover the kernel, the boot programs, and cross compiled versions ofcritical utilities. Then you can boot the floppy, make a hard diskfile system, and copy the files over. Now you can boot from the harddisk and load more files from floppy tar's or over the network. (Notethat although ESIX System 5.3.2 has a version of the Berkeley filesystem, it has a slightly different inode format, so it is not a goodchoice as a host.)If you compile the boot programs from this tape, you may need tochange the RELOC value from 70000 to 90000. Unfortunately, I cannottest this before the 4.4BSD-alpha sources are frozen, but if you thinkyour kernel is clobbering the boot program, then change 7 to 9 inthese places: cd /sys/i386/stand/ grep -n 70 * Makefile:13:RELOC= 70000 Makefile:14:RELOC2= 70200 fdbootblk.c:47:#define start 0x70400 fdbootblk.c:128: movl $0x70200,%edi wdbootblk.c:56:#define start 0x70400This distribution assumes that the main floppy is a 3.5 inch drive.If you have a 5.25, you will have to do something creative. The easyhack I've chosen is to reverse the first two lines of the arrayfd_types in i386/stand/fd.c and i386/isa/fd.c.The Adaptech scsi driver will not be part of 4.4BSD-alpha (it has towait until the grand scsi plan is implemented), but you should be ableto add the driver that I posted to alt.sources without any trouble.Finally, I've done all of my testing of this kernel on my old NET/2file system. This means that I have not checked out the configurationfiles (things like /etc/rc and /etc/ttys) that are on this tape.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -