From: metcalf@CATFISH.LCS.MIT.EDU (Chris Metcalf) Crossposted-To: comp.os.386bsd.questions,comp.sys.ibm.pc.hardware, comp.windows.x.i386unix Subject: SUMMARY: 486DX2/66 for Unix conclusions (fairly long) Date: 9 Jul 1993 17:13:39 GMT I've made several posts over the last month or two asking for help in buying a 486 PC system. Here is a summary of the recommendations I received; it is crossposted to the four newsgroups I asked for help and information on. The criteria I wanted to meet were: 1 Workstation-class integer performance. 2 Runs a free Unix with source code 3 Reasonable X performance under a mainly text workload 4 Price as low as possible ($2500 or less) Point 1 (performance) obviously pushed me towards the 486DX2/66. I initially considered the 486DX/50, but a number of people pointed out that current boards and busses seem to be running better at 33 MHz, and that the faster cycle speed of the DX2/66 overwhelmed its potentially lower memory and bus bandwidth in most if not all things. I also made sure that the motherboard I bought was socketed for an OverDrive processor when it becomes available, so I can upgrade in a year or two. For point 2 (free Unix), the current choices are Linux and 386BSD/NetBSD. I chose Linux for a number of reasons, some of which may no longer be true in six months' time: o Linux uses the disk better: shared libraries for executables, and virtual memory is physical memory PLUS disk swap partitions; 386BSD currently uses unshared libraries (though apparently some people are working on this), and does the usual BSD virtual memory technique where all virtual memory must be backed by swap. o Possibly even more important, I liked the feel of the Linux community better. It's less fragmented; Linux kernel and X releases are packaged in a number of different ways (e.g. SLS), but which package you run generally doesn't matter that much. By contrast, 386BSD seems to be marked by infighting among the pure 386BSD Jolitz crowd, the patch release folks, and the NetBSD schism; while everyone involved seems very sincere and well-intentioned, the net result is to make things harder on the user community. Possibly as a result, the Linux user community also appears to be larger and faster-growing, which also points towards Linux as the OS of choice. o Linux (as a POSIX OS with BSD/SYSV extensions) seems to be an easier porting target than 386BSD et al (despite the fact that I have been a BSD user exclusively for eight years...). o Linux DOS emulation seems to be better developed and evolving. Linux has some failings (e.g. the networking code is not as robust as BSD's), but problems seem to be being dealt with rapidly. In fairness, I expect that I will probably try to bring up BSD on a partition of its own, and if it gets support for shared libraries and if one of the variants (e.g. NetBSD) comes out as a clear winner in the user community I might well switch to it later. Bottom line is you can't go wrong with either. To handle the demands of a Unix machine running X, people widely recommend 16 meg, with at least 128K of cache. People do claim to run Linux/X with 8 meg satisfactorily, but apparently if you do big gcc compilations on top of that it starts to bog down. So I opted for the 16 meg configuration; expandability beyond that is easy, as long as your board supports caching the higher memory. There's often a choice of 70 ns or 60 ns memory; you might be able to squeeze one fewer wait states out of 60 ns memory, but with most motherboards you'd be riding outside the specs for the memory. Disk space is simple: figure out how much you need, and double it. I decided to get a 340 meg disk, which seems ridiculously more than necessary for me today, so it will probably be stuffed full by the end of the year. Disk prices dropped this month anyway, which was a good excuse. Don't bother to get a caching controller if you're mainly running Unix, since Unix does caching in main memory anyway. You will need to decide if you want to get a SCSI adapter and a SCSI disk; however, it will definitely be more expensive, since you need a separate SCSI controller (about $200), and SCSI disks are often more expensive than IDE disks. Furthermore, it is said that for disks up to 500MB, SCSI probably won't give you any noticeable performance improvement unless you are running a heavily used disk server. Point 3 (X) was the hardest for me to figure out, since there is an incredible variety of graphics cards and monitors. I decided to go for a color 15" flat-screen noninterlaced monitor, which is about the smallest you can get and still run two 80-column pages side by side on the screen. This may be a false economy; lots of people suggested spending a little more for a really nice monitor. We shall see how it works after a week or so. Interestingly, I measured some display-diagonal lengths with a ruler, and found that a good 15" can be almost as big as a 16" or 17": 15" Mag Innovision 14.3" (what I'll be buying) 16" Sun Trinitron 14.7" (what I use at work) 17" Morse 15.7" (if you want to pay $300 or so more) Graphics cards are harder. I decided against the higher-priced graphics cards such as the ATI Ultra Pro or S3-based cards; if I had been looking for graphics performance, this is what I have bought. Instead, I bought a Cirrus 5426-based card for $95, which offers reasonable performance today with XFree86 1.3, and significantly better performance when XFree86 2.0 is released. One question I explored was whether I could use a DEC color monitor such as the VR290 with a VGA card, since we have some spare monitors at work. The answer was basically: "maybe", if you can cobble together a printed circuit-board (details on request, forwarded from Mattis Andersson); and "yes", if you want to shell out about $500 for a much more general-purpose box from vendors like EXTRA, In-Line Systems, or EISI. I decided to just buy a new monitor. Point 4 ($2500 price) managed to work out; here's the breakdown of the system: 486DX2/66 VESA LB with 256K cache $1375 (package includes 3-button mouse, Mitsumi keyboard, heatsink fan, 1M memory, 3.5" floppy, 42M HD, cheap 14" monitor and card) upgrade to 16M 70ns RAM $601 upgrade to 340 meg HD $225 upgrade to Mag Innovision 15" monitor $248 upgrade to Diamond SpeedStar Pro $86 TOTAL $2535 This price doesn't include full DOS 6.0 ($47) or Windows ($40), which are sometimes unbundlable; it does include 5% Mass. tax. There are some things you want to make sure to look for on your motherboard: you may want to check that it will cache >16M of memory, which can be a problem. If possible, you probably want to get a write-back cache instead of a write-through cache, as well. For the serial UART, you should also try to either get a 16550 (not a 16450), or get the chip socketed so you can upgrade it; it will help your Unix not to have to take an interrupt for each character transferred. Also look for a reputable BIOS supplier such as AMI or Phoenix. The retailer I worked with is PCs for Everyone, 24 Thorndike Street, Cambridge, MA 02141, (617) 866-0068. I got a slightly better price from KC Computers (contact kcc@pt.com), and Dee-One, both mailorder companies. Prices were around $200 higher from some of the larger mailorder outfits like Gateway, Insight, Ares, or Zenon. Zeos delivered the highest quote for a similarly-configured system. I would suggest Gateway as the mailorder company to beat in terms of price, support, stability and user confidence, based on what I've heard; Insight is good for the user who needs less hand-holding; I've heard good things about Ares; and Zenon has gotten some bad press on the net lately. (I'll mention Dell just to say that they're significantly more expensive, but you will get the best hardware, good support, and so forth.) An excellent source of further info for all this is Eric Raymond's two guides, archived as pc-unix/hardware and pc-unix/software (e.g., at rtfm.mit.edu:pub/usenet/news.answers); the most recent version, 16.0, was posted on 6 July 1993. Many thanks to Eric for making this document available and keeping it updated. And many thanks to the dozens of people who sent me email with various suggestions about different aspects of the PC buying game! -- Chris Metcalf, MIT Laboratory for Computer Science metcalf@cag.lcs.mit.edu // +1 (617) 253-7766
Crossposted-To: comp.os.386bsd.questions,comp.sys.ibm.pc.hardware, comp.windows.x.i386unix From: pcg@aber.ac.uk (Piercarlo Grandi) Subject: Re: SUMMARY: 486DX2/66 for Unix conclusions (fairly long) Reply-To: pcg@aber.ac.uk (Piercarlo Grandi) Date: Sun, 11 Jul 1993 23:32:33 GMT >>> On 9 Jul 1993 17:13:39 GMT, metcalf@CATFISH.LCS.MIT.EDU (Chris >>> Metcalf) said: Chris> o Linux uses the disk better: shared libraries for Chris> executables, and virtual memory is physical memory PLUS disk Chris> swap partitions; 386BSD currently uses unshared libraries Chris> (though apparently some people are working on this), and does Chris> the usual BSD virtual memory technique where all virtual memory Chris> must be backed by swap. On the other hand Linux does no swapping. However the BSD swapper sucks, but maybe it's better than nothing. However overall I think that the VM subsystem is better under BSD than Linux, even if I would love for it to use page fault frequency as policy. Chris> o Linux DOS emulation seems to be better developed and evolving. Chris> Linux has some failings (e.g. the networking code is not as Chris> robust as BSD's), but problems seem to be being dealt with Chris> rapidly. The main difference is that the BSd kernel is stable, and BSD 4.4 has been vastlu cleaned up and made more coherent and more general; the Linux kernel is not badly written, but its organization is far more haphazard. Chris> Disk space is simple: figure out how much you need, and double Chris> it. I decided to get a 340 meg disk, which seems ridiculously Chris> more than necessary for me today, so it will probably be stuffed Chris> full by the end of the year. Get at least 1GB. The cost per MB on disks >= 1GB is much lower than the cost per MB for disks with lower capacities. A 1GB costs around $1050 mail order... And it will fill up much sooner than you think. Also, get a CDROM. This will avoid you a lot of FTP hassle, if nothing else. Chris> You will need to decide if you want to get a SCSI adapter and a Chris> SCSI disk; however, it will definitely be more expensive, since Chris> you need a separate SCSI controller (about $200), and SCSI disks Chris> are often more expensive than IDE disks. Furthermore, it is said Chris> that for disks up to 500MB, SCSI probably won't give you any Chris> noticeable performance improvement unless you are running a Chris> heavily used disk server. Terrible mistake. The real benefits of SCSI are improved performance if you have more than one hard disk drive (much recommended), and that one controller will also handle tapes, CDROMs, and whatnot. Soon enough you will want to add a backup device (don't bother with QIC drives, it's a false economy, the tapes are too expensive, get a DAT for $1050), and a CDROM. Not having chosen SCSI you will need one or maybe two extra controllers, taking up another one or two precious ISA bus slots.
Crossposted-To: comp.os.386bsd.questions,comp.windows.x.i386unix From: ralph@unixhub.SLAC.Stanford.EDU (Ralph Becker-Szendy) Subject: Re: SUMMARY: 486DX2/66 for Unix conclusions (fairly long) Date: Mon, 12 Jul 1993 00:17:49 GMT In article <PCG.93Jul12003233@decb.aber.ac.uk> pcg@aber.ac.uk (Piercarlo Grandi) writes: >On the other hand Linux does no swapping. Nonsense. See man swapon, man swapoff, and man mkswap on any Linux system. I was trying to run X with 4MB for a while, so I can testify that Linux can swap a hell of a lot if needed :-) >Get at least 1GB. The cost per MB on disks >= 1GB is much lower than the >cost per MB for disks with lower capacities. A 1GB costs around $1050 >mail order... Not completely true. I have seen 200MB for <<$300 recently. So the figure of $1/MB is not GREATLY exceeded by smaller disks. And compared to the cost of the rest of a system, $1K for disk is quite high. One can live happily with 200 or 300 MB, if one is so inclined, and invest the money into a really good monitor (or a laser-printer), which may be much more useful. >And it will fill up much sooner than you think. That, sadly, is true. > Not having chosen SCSI you will need one or maybe two extra >controllers, taking up another one or two precious ISA bus slots. Why are ISA slots so precious? What do you intend to fill them with without first running out of IRQ lines? BTW, I am not disagreeing that SCSI is the better way to go. -- Ralph Becker-Szendy RALPH@SLAC.STANFORD.EDU Stanford Linear Accelerator Center RALPH@SLACVM.BITNET M.S. 95, P.O. Box 4349, Stanford, CA 94309 (415)926-2701 My opinion. This is not SLAC, Stanford U, or the US DoE speaking. Just me.
From: mdw@TC.Cornell.EDU (Matt Welsh) Crossposted-To: comp.os.386bsd.questions,comp.windows.x.i386unix Subject: Re: SUMMARY: 486DX2/66 for Unix conclusions (fairly long) Date: 11 Jul 1993 21:38:30 -0400 In article <CA0zHp.CqK@unixhub.slac.stanford.edu> ralph@unixhub.SLAC.Stanford.EDU (Ralph Becker-Szendy) writes: >In article <PCG.93Jul12003233@decb.aber.ac.uk> pcg@aber.ac.uk >(Piercarlo Grandi) writes: >>On the other hand Linux does no swapping. >> >Nonsense. See man swapon, man swapoff, and man mkswap on any Linux >system. I was trying to run X with 4MB for a while, so I can testify >that Linux can swap a hell of a lot if needed :-) Someone correct me if I'm wrong, but Linux "swapping" is really "paging" to the hard drive. As far as I know images are not "swapped" to disk or rendered inactive; the "swap space" is actually used as "paging space". Therefore, calling it "swap" is probably a misnomer. If something has changed, someone please bonk me on the head with a large mallot. Thank you. mdw -- Matt Welsh, mdw@tc.cornell.edu Radioactive decay ain't what it used to be.
Crossposted-To: comp.os.386bsd.questions,comp.sys.ibm.pc.hardware, comp.windows.x.i386unix From: pcg@aber.ac.uk (Piercarlo Grandi) Subject: Re: SUMMARY: 486DX2/66 for Unix conclusions (fairly long) Reply-To: pcg@aber.ac.uk (Piercarlo Grandi) Date: Sun, 11 Jul 1993 23:32:33 GMT >>> On 9 Jul 1993 17:13:39 GMT, metcalf@CATFISH.LCS.MIT.EDU (Chris >>> Metcalf) said: Chris> o Linux uses the disk better: shared libraries for Chris> executables, and virtual memory is physical memory PLUS disk Chris> swap partitions; 386BSD currently uses unshared libraries Chris> (though apparently some people are working on this), and does Chris> the usual BSD virtual memory technique where all virtual memory Chris> must be backed by swap. On the other hand Linux does no swapping. However the BSD swapper sucks, but maybe it's better than nothing. However overall I think that the VM subsystem is better under BSD than Linux, even if I would love for it to use page fault frequency as policy. Chris> o Linux DOS emulation seems to be better developed and evolving. Chris> Linux has some failings (e.g. the networking code is not as Chris> robust as BSD's), but problems seem to be being dealt with Chris> rapidly. The main difference is that the BSd kernel is stable, and BSD 4.4 has been vastlu cleaned up and made more coherent and more general; the Linux kernel is not badly written, but its organization is far more haphazard. Chris> Disk space is simple: figure out how much you need, and double Chris> it. I decided to get a 340 meg disk, which seems ridiculously Chris> more than necessary for me today, so it will probably be stuffed Chris> full by the end of the year. Get at least 1GB. The cost per MB on disks >= 1GB is much lower than the cost per MB for disks with lower capacities. A 1GB costs around $1050 mail order... And it will fill up much sooner than you think. Also, get a CDROM. This will avoid you a lot of FTP hassle, if nothing else. Chris> You will need to decide if you want to get a SCSI adapter and a Chris> SCSI disk; however, it will definitely be more expensive, since Chris> you need a separate SCSI controller (about $200), and SCSI disks Chris> are often more expensive than IDE disks. Furthermore, it is said Chris> that for disks up to 500MB, SCSI probably won't give you any Chris> noticeable performance improvement unless you are running a Chris> heavily used disk server. Terrible mistake. The real benefits of SCSI are improved performance if you have more than one hard disk drive (much recommended), and that one controller will also handle tapes, CDROMs, and whatnot. Soon enough you will want to add a backup device (don't bother with QIC drives, it's a false economy, the tapes are too expensive, get a DAT for $1050), and a CDROM. Not having chosen SCSI you will need one or maybe two extra controllers, taking up another one or two precious ISA bus slots.
From: metcalf@CATFISH.LCS.MIT.EDU (Chris Metcalf) Crossposted-To: comp.os.386bsd.questions,comp.sys.ibm.pc.hardware, comp.windows.x.i386unix Subject: Re: SUMMARY: 486DX2/66 for Unix conclusions (fairly long) Date: 12 Jul 1993 01:54:28 GMT I've set followups on this thread to the OS groups only. In article <PCG.93Jul12003233@decb.aber.ac.uk> pcg@aber.ac.uk (Piercarlo Grandi) writes: >The main difference is that the BSd kernel is stable, and BSD 4.4 has >been vastlu cleaned up and made more coherent and more general; the >Linux kernel is not badly written, but its organization is far more >haphazard. I'm not convinced there's much difference in stability; I've heard many people say their Linux systems stay up many months at a time. As for architectural elegance, my impression is that this is not something that Linus was initially shooting for---but perhaps something that will grow as, e.g., 680x0 ports start to work and architecture-independent code is separated out cleanly, or if the proposed post-1.0 C++ reorganization starts to get underway. By contrast, 386BSD seems to have gone the opposite direction, with lots of grim architecture-dependent hacks in it, and NetBSD trying to pull back the other way. You pays yer money, and you takes yer choice. Other people have addressed your remarks about Linux having no swap, and about the wonderfully cheap price of 340M disks these days; I am using this workstation as a sort of offline research instrument, so a small local disk for "caching" my at-work data is what I need. The last point to address is SCSI. I did consider this for a while, but today (this year, nor probably next year) I just don't need a CRROM or a backup device; if I did, I would have paid up for SCSI. Unsurprisingly, we only use SCSI peripherals at work, so that's what I am prone to use. But I can keep this IDE drive until I need a full-fledged home machine, and THEN put out the bucks for a VLB SCSI, a 1GB drive, and so forth. The old IDE (hanging off a $20 non-VLB controller) will work just fine for storing my source-code tree or some such at that point, I'm sure. -- Chris Metcalf, MIT Laboratory for Computer Science metcalf@cag.lcs.mit.edu // +1 (617) 253-7766
From: davidg@implode.rain.com (David Greenman) Crossposted-To: comp.os.386bsd.questions,comp.sys.ibm.pc.hardware, comp.windows.x.i386unix Subject: Re: SUMMARY: 486DX2/66 for Unix conclusions (fairly long) Date: 13 Jul 93 11:42:41 GMT Sorry that I missed the original post, but seeing part of the following quote, I have to make some corrections to what Chris Metcalf and Piercarlo Grandi have said: >Chris> o Linux uses the disk better: shared libraries for >Chris> executables, and virtual memory is physical memory PLUS disk >Chris> swap partitions; 386BSD currently uses unshared libraries >Chris> (though apparently some people are working on this), and does >Chris> the usual BSD virtual memory technique where all virtual memory >Chris> must be backed by swap. It is true that 386BSD as it is shipped does not support have libraries. It is *not* true that it's total VM must be backed by swap. In fact if you want you can have *no* swap. The total VM in 386BSD is memory + swap. 386BSD's VM system has nothing in common with original BSD; 386BSD's VM system is derived from Mach 2.5. >On the other hand Linux does no swapping. However the BSD swapper sucks, >but maybe it's better than nothing. However overall I think that the VM >subsystem is better under BSD than Linux, even if I would love for it to >use page fault frequency as policy. This is wrong, too. 386BSD does *not* swap. The swapping code has not yet been written. 386BSD only pages. This is probably also related to the fact that 386BSD doesn't use the 'BSD' VM system. As far as performance, yes, 386BSD does use the extremely simple paging algorithm that was in original BSD. It would be nice if this was changed to do page reclaimation based on a per-process working set and page fault frequency, but it currently doesn't. -DG --- David Greenman davidg@implode.rain.com
Crossposted-To: comp.os.386bsd.questions From: pcg@aber.ac.uk (Piercarlo Grandi) Subject: Re: SUMMARY: 486DX2/66 for Unix conclusions (fairly long) Reply-To: pcg@aber.ac.uk (Piercarlo Grandi) Date: Tue, 13 Jul 1993 20:19:59 GMT >>> On 12 Jul 1993 01:54:28 GMT, metcalf@CATFISH.LCS.MIT.EDU (Chris >>> Metcalf) said: Chris> I've set followups on this thread to the OS groups only. Chris> In article <PCG.93Jul12003233@decb.aber.ac.uk> pcg@aber.ac.uk Chris> (Piercarlo Grandi) writes: pcg> The main difference is that the BSd kernel is stable, and BSD 4.4 pcg> has been vastlu cleaned up and made more coherent and more general; pcg> the Linux kernel is not badly written, but its organization is far pcg> more haphazard. Chris> I'm not convinced there's much difference in stability; I've Chris> heard many people say their Linux systems stay up many months at Chris> a time. Well, I was not considering the stability in terms of kernel crashes, but in architectural terms. The distinction of BSD and Linux is that source is available, i.e. they are ideally suited to kernel work. The way the Linux kernel is structured is not as stable (and elegant) as that of the BSD kernel; some good people have given quite a bit of thought to that over the past half a dozen years. Major subsystems are still being tossed into the Linux kernel by the day... Linus writes nice code, but it is still moving rather rapidly. Most of the BSD kernel is rather stable, in this sense. For example the FFS, and the networking code, and the space allocators, and ... Linux is nice, but BSD4 has the benefits of a longer and maybe more distinguished history behind it. Chris> As for architectural elegance, my impression is that this is not Chris> something that Linus was initially shooting for---but perhaps Chris> something that will grow as, [ ... ] By contrast, 386BSD seems to Chris> have gone the opposite direction, with lots of grim Chris> architecture-dependent hacks in it, and NetBSD trying to pull Chris> back the other way. Well, Linux is a much newer technolopgy than BSD; I'd say that Linux is currently at about the BSD4.1c level, i.e. circa 1982 in the BSD evolution. I regard 386BSD as a temporary hack waiting for the much dreamt-of release of BSD4.4-Lite. As such the Jolitz team is doing a very nice work; most of it, I reckon, will be folded back into BSD4.4, especially drivers and the like. Chris> and about the wonderfully cheap price of 340M disks these days; The cheap small capacity drives are all IDE, and I don't like IDE drives, simply because it seems that in the long run a single SCSI host adapter is the better bet. ISA slots are not that abundant a resource in many baby AT motherboards; and as somebody reminded me by mail, in practice only SCSI boards do bus mastering, which can be a big win. Chris> The last point to address is SCSI. I did consider this for a Chris> while, but today (this year, nor probably next year) I just don't Chris> need a CRROM or a backup device; if I did, I would have paid up Chris> for SCSI. Ah, if you are lucky enough to be able to rely on some net connected system for both... But my machine is, for example, standalone, and so are many personal use machines...
Crossposted-To: comp.os.386bsd.questions,comp.sys.ibm.pc.hardware, comp.windows.x.i386unix From: michaelv@iastate.edu (Michael L. VanLoon) Subject: Re: SUMMARY: 486DX2/66 for Unix conclusions (fairly long) Date: Wed, 14 Jul 1993 04:53:54 GMT In < PCG.93Jul13210635@decb.aber.ac.uk> pcg@aber.ac.uk (Piercarlo Grandi) writes: >>>> On 13 Jul 93 11:42:41 GMT, davidg@implode.rain.com (David Greenman) >>>> said: >David> It is true that 386BSD as it is shipped does not support have >David> libraries. It is *not* true that it's total VM must be backed by >David> swap. In fact if you want you can have *no* swap. The total VM in >David> 386BSD is memory + swap. 386BSD's VM system has nothing in >David> common with original BSD; 386BSD's VM system is derived from Mach >David> 2.5. >pcg> On the other hand Linux does no swapping. However the BSD swapper >David> This is wrong, too. 386BSD does *not* swap. The swapping code has >David> not yet been written. 386BSD only pages. 4.3BSD *pages* when system load is light. This means it takes from a process a small page that hasn't been used very recently (it's not in the processes working set) and puts that page out to disk in the swap area--it doesn't take the entire process. It then pages in the new process page, either from the swap area if it was paged out previously, or from the filesystem if it's an executable that is being demand-paged in and this is a new page. This is a quick operation. If system load is very heavy, however, paging would take more time than actually running processes, so the system *swaps*. Swapping involves finding the largest process that has gotten the most cpu time recently and writing its entire user state to the swap partition. This memory is then used to either swap in a previously swapped process, or page in a new process from the filesystem. Swapping requires more time than paging since it's more disk intensive, but it also frees up a lot more memory by swapping out an entire large process, allowing the remaining processes to run a little more easily for a short time. That is the model for 4.3BSD (in simple terms). I don't know how completely or carefully 386BSD or NetBSD follow this model. -- ============================================================================== Michael L. VanLoon Project Vincent Systems Staff michaelv@iastate.edu Iowa State University Computation Center ==============================================================================
Crossposted-To: comp.os.386bsd.questions From: deraadt@fsa.ca (Theo de Raadt) Subject: Re: SUMMARY: 486DX2/66 for Unix conclusions (fairly long) Date: Wed, 14 Jul 1993 14:16:51 GMT In article <PCG.93Jul13212000@decb.aber.ac.uk> pcg@aber.ac.uk (Piercarlo Grandi) writes: > Chris> As for architectural elegance, my impression is that this is not > Chris> something that Linus was initially shooting for---but perhaps > Chris> something that will grow as, [ ... ] By contrast, 386BSD seems to > Chris> have gone the opposite direction, with lots of grim > Chris> architecture-dependent hacks in it, and NetBSD trying to pull > Chris> back the other way. I can't resist. 386BSD had lots of krufty architecture-dependent hacks in it. To those who hold portability very highly, it was an ugly mess. Yetch. This is exactly what NetBSD has already done in the current source tree. It's fairly clear that the architecture-dependent hacks have been pulled out now, and, I might even say we're cleaner in that respect than 4.3reno was. I will side step the issue of giving evidence for this, because I might spoil someone's release announcement :-) :-) > Well, Linux is a much newer technolopgy than BSD; I'd say that Linux is > currently at about the BSD4.1c level, i.e. circa 1982 in the BSD > evolution. I regard 386BSD as a temporary hack waiting for the much > dreamt-of release of BSD4.4-Lite. As such the Jolitz team is doing a Hmm. You might be alone with that viewpoint.. > very nice work; most of it, I reckon, will be folded back into BSD4.4, > especially drivers and the like. I think you might be even MORE alone with that viewpoint . . . -- This space not left unintentionally unblank. deraadt@fsa.ca
From: eric@tantalus.nrl.navy.mil (Eric Youngdale) Crossposted-To: comp.os.386bsd.questions,comp.sys.ibm.pc.hardware, comp.windows.x.i386unix Subject: Re: SUMMARY: 486DX2/66 for Unix conclusions (fairly long) Date: 14 Jul 93 18:11:31 GMT In article <michaelv.742625634@ponderous.cc.iastate.edu> michaelv@iastate.edu (Michael L. VanLoon) writes: >4.3BSD *pages* when system load is light. This means it takes from a >[...] >If system load is very heavy, however, paging would take more time >than actually running processes, so the system *swaps*. Swapping >[...] Thanks for the explanation. As has been pointed out before, linux does not swap in the traditional sense - since the linux memory manager is not written to be a clone of some other memory manager, things are different in a number of ways from a classical memory manager. One major difference is that there is no minimum number of pages that the memory manager wants to keep in memory for each process. This means that a sleeping daemon can in fact have all of it's pages removed from memory (the kernel stack page and the upage are not removed from memory as apparently some other schemes allow). When the linux kernel needs memory, it goes through and looks for pages that have not been accessed recently. If the page is dirty, this means that instead of writing it to the swap file, it can simply be reused immediately. Linux demand loads binaries and shared libraries, and the idea is that any clean page can simply be reloaded by demand loading instead of pulling it from a swap file. Thus it tends to be only dirty pages that make their way into the swap files, but it also means that the kernel can free up some memory by reusing some code pages without ever having to write them out to disk. Linux tends to share pages whenever possible. For example, all processes running emacs will share clean pages for both the emacs binary and sharable libraries (these pages are also shared with the buffer cache). This means that swapping out a process that is running the same binary as some other process gains very little since much of the actual memory cannot be freed. Paging still works well in this scheme, because it is still easy to find out which pages not not been used recently by a particular process, and we can easily remove unused pages from the page tables for processes on the system. Once the usage count for a particular page goes to 0 (i.e. not in anyone's page tables, and not in the buffer cache), we can reclaim the page entirely to be used for something else. I guess the way I see it, the only advantage of swapping is that you are effectively keeping particular processes out of memory longer than would otherwise be the case, which tends to reduce thrashing. The only time when the linux approach breaks down is when you have too many computable processes fighting for access to memory, and in principle the linux scheduler could be modified to temporarily lower the priority of some of these processes and ultimately achieve the same result with paging. With the current kernel, any idle processes will always be "swapped" via paging as it is, so it is not that clear that this needs to be done. -Eric -- "When Gregor Samsa woke up one morning from unsettling dreams, he found himself changed in his bed into a lawyer."