Re: wikipedia article
On Wednesday 14 June 2006 00:50, Johnny Billquist wrote: Per Fogelstrvm wrote: On Tuesday 13 June 2006 14:23, Rick Kelly wrote: Johnny Billquist said: There's actually a cheesy way to do demand paging with microprocessors that don't support demand paging (such as the original 68000--another 16 bit machine). The way to do this is to run two processors in parallel but skewed by one instruction. If the first one does a bad memory fetch, then the second one will not have fetched the instruction causing the fault so contains restartable machine state. Masscomp sold a machine like this once. Didn't the first Apollos do this? And also the Sun 1. IIRC it was simpler than that. When the first cpu caused a 'miss' it was put in wait and cpu 2 handled the pagein and then released cpu 1. Keeping the two cpus synched, one instruction apart would have been too complicated if not impossible... Your idea will not work, as far as I can tell. Well it does. You are making assumptions which causes it to now work. As Marcus already explained, the CPU is not allowed to trap but kept waiting for the data. This of course had a terrible performance impact (if you were running many background jobs) but considering that the Apollo Domain stations were mostly used for CAD with huge data requirements it was not a bad thing though. At that time RAM was very expensive and top notch performance was not a very big issue at all times. And the MMU chip was a piece of crap and expensive so most companies built their own MMU, like we did. Actually we never used any of Motorolas MMU chips in any of our systems. If the first CPU instruction execution causes a miss, the end result in the CPU will be pretty undefined, and you cannot restart. That's the whole point in why you'd have a second CPU shadowing the first one. So that you'd be able to restore the state as it were before the illegal memory access. And that was the problem with the original 68000. On an illegal memory reference, you would not know what state the CPU was in before the instruction, so you could not back it up, and re-execute the instruction after a page fault. Johnny ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
RE: wikipedia article
-Original Message- From: Thor Lancelot Simon [mailto:[EMAIL PROTECTED] Sent: Monday, June 12, 2006 10:35 PM To: Ted Mittelstaedt Cc: misc@openbsd.org; freebsd-questions@freebsd.org; [EMAIL PROTECTED] Subject: Re: wikipedia article On Mon, Jun 12, 2006 at 10:27:33PM -0700, Ted Mittelstaedt wrote: What was the bit size of the CPU's originally used to write UNIX in Bell Labs? Rather large. You can get all the details at http://en.wikipedia.org/wiki/Magnetic_core. That's a good one! :-) Ted ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
That qualifies as the answer of the day. My hat goes off to you. :-D Johnny Thor Lancelot Simon wrote: On Mon, Jun 12, 2006 at 10:27:33PM -0700, Ted Mittelstaedt wrote: What was the bit size of the CPU's originally used to write UNIX in Bell Labs? Rather large. You can get all the details at http://en.wikipedia.org/wiki/Magnetic_core. -- Johnny Billquist || I'm on a bus || on a psychedelic trip email: [EMAIL PROTECTED] || Reading murder books pdp is alive! || tryin' to stay hip - B. Idol ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
RE: wikipedia article
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Mipam Sent: Monday, June 12, 2006 1:45 AM To: Nikolas Britton Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]; opensolaris-discuss@opensolaris.org; misc@openbsd.org; [EMAIL PROTECTED]; Hámorszky Balázs; freedos-user@lists.sourceforge.net; [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]; freebsd-questions@freebsd.org Subject: Re: wikipedia article On Sun, 11 Jun 2006, Nikolas Britton wrote: [SNIP] * IIRC NetBSD was a fork of FreeBSD, OpenBSD was a fork of NetBSD. Eeh? I believe NetBSD was there half a year before FreeBSD. Eh? http://www.netbsd.org/Misc/history.html ...Frustration at getting patches integrated and releases of 386BSD led to FreeBSD, which concentrated the i386 platform, while NetBSD formed to focus on multi-platform support... Now, for the references, see: http://wolfram.schneider.org/bsd/ftp/releases/ Let's start with the 386BSD stuff. Unfortunately he doesen't have the release note for 386BSD 0.1, I think I have it I'll have to send it to him. However: http://wolfram.schneider.org/bsd/ftp/releases/386BSD-0.0 ...From [EMAIL PROTECTED] Sat Mar 14 21:59:20 1992... http://wolfram.schneider.org/bsd/ftp/releases/386BSD-1.0 ... Date: 12 Nov 1994 22:50:49 -0800.. It shipped November 4... So you see there was a lot of overlap, here. Both NetBSD and FreeBSD's official first releases fell between the releases of 386BSD. But, that isn't the whole story, read on: http://wolfram.schneider.org/bsd/ftp/releases/NetBSD-0.8 ...The source for NetBSD is derived from 386BSD 0.1, patched with the 0.2.2 patch kit ...Thanks go to: All of the people involved in the patch kit, including but not limited to: Terry Lambert Nate Williams Jordan Hubbard Rod Grimes... http://wolfram.schneider.org/bsd/ftp/releases/FreeBSD-1.0-EPSILON ...much awaited SECOND public release of FreeBSD... ...From: [EMAIL PROTECTED] (Jordan K. Hubbard) Now, here's the kicker. Notice that NetBSD 0.8 thanks Jordan for his work, why? It is because Jordan is the release manager for FreeBSD during that time that NetBSD was released. Yet if NetBSD was 6 months BEFORE FreeBSD as your asserting, why would they be thanking the authors of the patchkit, of which Jordan was one - 386BSD 0.1 as we should all know became FreeBSD, read: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/history.html ...The FreeBSD project had its genesis in the early part of 1993, partially as an outgrowth of the “Unofficial 386BSD Patchkit” by the patchkit's last 3 coordinators: Nate Williams, Rod Grimes and myself You see, work on FreeBSD and NetBSD was going on in parallel at the same time, with the same people working on both operating systems. It is a mistake to think that NetBSD was a fork of FreeBSD or vis-versa. Both were forks of the 386BSD 0.1 release and as I explained, started out identically. NetBSD was carried on within CSRG initally, that is why you see all the blurbs like intended as a research tool and suchlike in the early NetBSD notes. FreeBSD was carried on within Walnut Creek, very much outside of Berkeley. You have to understand that in 1993 the Internet wasn't all over the place, a lot of people had no way of connection to it. Only a fortunate few could do an FTP transfer of anything from Berkeley. That is why Walnut Creek initially was so important. Ted ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
RE: wikipedia article
-Original Message- From: John Nemeth [mailto:[EMAIL PROTECTED] Sent: Monday, June 12, 2006 1:15 PM To: Ted Mittelstaedt; Nikolas Britton; Ted Unangst Cc: Hámorszky Balázs; misc@openbsd.org; freebsd-questions@freebsd.org; [EMAIL PROTECTED] Subject: RE: wikipedia article On Nov 1, 6:11pm, Ted Mittelstaedt wrote: } } Prior to the release of the 80386 the Intel processors didn't have } memory protection which was a requirement of any processor running } the BSD kernel. This is not entirely true. The 80286 had memory protection. However, its memory protection was completely based on segments (i.e. it could not do paging). Oh, yeah, your right about that. Me bad. Also, it was only a 16 bit processor. What was the bit size of the CPU's originally used to write UNIX in Bell Labs? Ted ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On Mon, 12 Jun 2006, Ted Mittelstaedt wrote: -Original Message- From: John Nemeth [mailto:[EMAIL PROTECTED] Sent: Monday, June 12, 2006 1:15 PM To: Ted Mittelstaedt; Nikolas Britton; Ted Unangst Cc: Hamorszky Balazs; misc@openbsd.org; freebsd-questions@freebsd.org; [EMAIL PROTECTED] Subject: RE: wikipedia article On Nov 1, 6:11pm, Ted Mittelstaedt wrote: } } Prior to the release of the 80386 the Intel processors didn't have } memory protection which was a requirement of any processor running } the BSD kernel. This is not entirely true. The 80286 had memory protection. However, its memory protection was completely based on segments (i.e. it could not do paging). Oh, yeah, your right about that. Me bad. Also, it was only a 16 bit processor. What was the bit size of the CPU's originally used to write UNIX in Bell Labs? What's more, iirc the MMU of the pdp11 isn't what we call a MMU today, it could not even do paging. -Otto ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
Various wrote: From: Otto Moerbeek [EMAIL PROTECTED] To: Ted Mittelstaedt [EMAIL PROTECTED] ... What was the bit size of the CPU's originally used to write UNIX in Bell Labs? What's more, iirc the MMU of the pdp11 isn't what we call a MMU today, it could not even do paging. The pdp-11 mmu could handle program relocation, segmentation (after a fashion) and memory protection. I'm not sure what more you could expect from an mmu. What you mean by paging is probably demand paging, which means the ability to run a program without requiring that it be entirely resident. The key feature you need for that is a guarantee that any instruction fault caused by missing memory can be either restarted or continued. In most architectures that's a question of cpu design not mmu. In the case of the pdp-11 that's mostly a moot point. The pdp-11 only provides for mapping the 64k of memory space into into 8 segments (addressable on 64-byte clicks) and there's just not much win to demand paging 8 pages. (actually 6 x 8 pages; there was kernel, user, and supervisor mode, each had separate instruction and data spaces, but supervisor mode was rarely used in Unix environments, and only a few large user mode programs ran using split I/D space.) For what it's worth, though, I *think* it was possible to restart most instructions on the /45 and /70, which were the big machines and the primary target of most later pdp-11 work. In fact, some use was made of this feature -- automatic stack growth. If you look through ancient Unix source, you'll find interesting bits of kernel code that manage this. There's actually a cheesy way to do demand paging with microprocessors that don't support demand paging (such as the original 68000--another 16 bit machine). The way to do this is to run two processors in parallel but skewed by one instruction. If the first one does a bad memory fetch, then the second one will not have fetched the instruction causing the fault so contains restartable machine state. Masscomp sold a machine like this once. -Marcus Watts ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On 11/06/06, Hámorszky Balázs [EMAIL PROTECTED] wrote: I'm looking for some help on an article on wikipedia. http://en.wikipedia.org/wiki/Comparison_of_open_source_operating_systems Whilst there, what about another important article that seems to have a Linux POV? http://en.wikipedia.org/wiki/Comparison_of_Open_Source_Wireless_Drivers ;) ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On Mon, Jun 12, 2006 at 01:14:57PM -0700, John Nemeth wrote: The 80386 was the first x86 processor with paging (which all modern virtual memory systems are based around) and 32 bits. -is ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
Otto Moerbeek wrote: On Mon, 12 Jun 2006, Ted Mittelstaedt wrote: -Original Message- From: John Nemeth [mailto:[EMAIL PROTECTED] Sent: Monday, June 12, 2006 1:15 PM To: Ted Mittelstaedt; Nikolas Britton; Ted Unangst Cc: Hamorszky Balazs; misc@openbsd.org; freebsd-questions@freebsd.org; [EMAIL PROTECTED] Subject: RE: wikipedia article On Nov 1, 6:11pm, Ted Mittelstaedt wrote: } } Prior to the release of the 80386 the Intel processors didn't have } memory protection which was a requirement of any processor running } the BSD kernel. This is not entirely true. The 80286 had memory protection. However, its memory protection was completely based on segments (i.e. it could not do paging). Oh, yeah, your right about that. Me bad. Also, it was only a 16 bit processor. What was the bit size of the CPU's originally used to write UNIX in Bell Labs? The PDP-7 was/is an 18-bit machine. What's more, iirc the MMU of the pdp11 isn't what we call a MMU today, it could not even do paging. You're wrong. You could easily do paging on a PDP-11, if you wanted to. The main reasons this wasn't done are two. 1) Each page is 8K. At the time, that was considered way too large pages for a demand page system. 2) The address space is only 64 per process, which means you only have 8 pages. Not only is that perhaps a little little for meaningful paging (most programs tend to refer to all 8 pages most of the time). The main memory on a PDP-11 is furthermore 4 meg, so having a lot of processes full memory space in physical memory at the same time is not a problem. The PDP-11 MMU is a beatiful MMU. Nothing like the crap Intel spits out. ;-) Johnny -- Johnny Billquist || I'm on a bus || on a psychedelic trip email: [EMAIL PROTECTED] || Reading murder books pdp is alive! || tryin' to stay hip - B. Idol ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
Marcus Watts wrote: Various wrote: From: Otto Moerbeek [EMAIL PROTECTED] To: Ted Mittelstaedt [EMAIL PROTECTED] ... What's more, iirc the MMU of the pdp11 isn't what we call a MMU today, it could not even do paging. The pdp-11 mmu could handle program relocation, segmentation (after a fashion) and memory protection. I'm not sure what more you could expect from an mmu. What you mean by paging is probably demand paging, which means the ability to run a program without requiring that it be entirely resident. The key feature you need for that is a guarantee that any instruction fault caused by missing memory can be either restarted or continued. In most architectures that's a question of cpu design not mmu. True. But it's mostly a combination of MMU and CPU. The MMU needs to either abort or trap the offending instruction, and the CPU needs to know how much side effects had been done so that they can be undone before a restart. The PDP-11 MMU can either abort the instruction, or do a trap after the instruction completes. The CPU have a register telling of register modifications done, as well as the pre-fetch PC. In additions to this, the MMU have both an expansion direction, a modified bit, and an accessed bit. And that is in addition to the protection field and size field of the page (and the address relocation). So I can't really imagine anything that you cannot do with the PDP-11 MMU. Heck, there is even the funny bypass cache bit. Useful for multiprocessor systems... Since the PDP-11 have a different page table for I- and D-space, you can even have execute-only pages. In the case of the pdp-11 that's mostly a moot point. The pdp-11 only provides for mapping the 64k of memory space into into 8 segments (addressable on 64-byte clicks) and there's just not much win to demand paging 8 pages. (actually 6 x 8 pages; there was kernel, user, and supervisor mode, each had separate instruction and data spaces, but supervisor mode was rarely used in Unix environments, and only a few large user mode programs ran using split I/D space.) 2.11BSD uses supervisor mode for the networking parts of the kernel. And the kernel is all I/D-space, and a bunch of programs are as well. The development is still contiuing. :-) For what it's worth, though, I *think* it was possible to restart most instructions on the /45 and /70, which were the big machines and the primary target of most later pdp-11 work. I don't think there is a single instruction that you can't restart. Some small, older machines missed a few registers needed for proper restarts however, and on those things were a bit more of a gamble if you wanted to go that path. In fact, some use was made of this feature -- automatic stack growth. If you look through ancient Unix source, you'll find interesting bits of kernel code that manage this. There's actually a cheesy way to do demand paging with microprocessors that don't support demand paging (such as the original 68000--another 16 bit machine). The way to do this is to run two processors in parallel but skewed by one instruction. If the first one does a bad memory fetch, then the second one will not have fetched the instruction causing the fault so contains restartable machine state. Masscomp sold a machine like this once. Didn't the first Apollos do this? Johnny -- Johnny Billquist || I'm on a bus || on a psychedelic trip email: [EMAIL PROTECTED] || Reading murder books pdp is alive! || tryin' to stay hip - B. Idol ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On Tue, 13 Jun 2006, Johnny Billquist wrote: Otto Moerbeek wrote: On Mon, 12 Jun 2006, Ted Mittelstaedt wrote: -Original Message- From: John Nemeth [mailto:[EMAIL PROTECTED] Sent: Monday, June 12, 2006 1:15 PM To: Ted Mittelstaedt; Nikolas Britton; Ted Unangst Cc: Hamorszky Balazs; misc@openbsd.org; freebsd-questions@freebsd.org; [EMAIL PROTECTED] Subject: RE: wikipedia article On Nov 1, 6:11pm, Ted Mittelstaedt wrote: } } Prior to the release of the 80386 the Intel processors didn't have } memory protection which was a requirement of any processor running } the BSD kernel. This is not entirely true. The 80286 had memory protection. However, its memory protection was completely based on segments (i.e. it could not do paging). Oh, yeah, your right about that. Me bad. Also, it was only a 16 bit processor. What was the bit size of the CPU's originally used to write UNIX in Bell Labs? The PDP-7 was/is an 18-bit machine. What's more, iirc the MMU of the pdp11 isn't what we call a MMU today, it could not even do paging. You're wrong. You could easily do paging on a PDP-11, if you wanted to. The main reasons this wasn't done are two. 1) Each page is 8K. At the time, that was considered way too large pages for a demand page system. 2) The address space is only 64 per process, which means you only have 8 pages. Not only is that perhaps a little little for meaningful paging (most programs tend to refer to all 8 pages most of the time). The main memory on a PDP-11 is furthermore 4 meg, so having a lot of processes full memory space in physical memory at the same time is not a problem. The PDP-11 MMU is a beatiful MMU. Nothing like the crap Intel spits out. ;-) I stand corrected. I always thought it coulnd't do paging, but I suppose it should be due to various restrictions, it couldn't do meaningful paging. -Otto ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
Johnny Billquist said: There's actually a cheesy way to do demand paging with microprocessors that don't support demand paging (such as the original 68000--another 16 bit machine). The way to do this is to run two processors in parallel but skewed by one instruction. If the first one does a bad memory fetch, then the second one will not have fetched the instruction causing the fault so contains restartable machine state. Masscomp sold a machine like this once. Didn't the first Apollos do this? And also the Sun 1. -- Rick Kelly [EMAIL PROTECTED] http://www.rmkhome.com/ http://rkba.rmkhome.com/ ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article [completely OT]
Marcus Watts wrote: Masscomp sold a machine like this once. Masscomp did a lot of things. They produced a machine which required an engineer to come out twice a month to shift everything around on the backplane until it worked again; they instituted such user friendly features as a restore command which couldn't restore directories with too many entries; and in the interests of their users made the root directory world writeable so that rm /* by a prankish luser would actually work (luckily they didn't think of rm -r). I once filed something like 30 bug and security reports in one day. I heard nothing until Masscomp were taken over several years later, at which point is was my pleasure to inform the caller that the machine was in the skip. Happy days :-) --Alex ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On Tuesday 13 June 2006 14:23, Rick Kelly wrote: Johnny Billquist said: There's actually a cheesy way to do demand paging with microprocessors that don't support demand paging (such as the original 68000--another 16 bit machine). The way to do this is to run two processors in parallel but skewed by one instruction. If the first one does a bad memory fetch, then the second one will not have fetched the instruction causing the fault so contains restartable machine state. Masscomp sold a machine like this once. Didn't the first Apollos do this? And also the Sun 1. IIRC it was simpler than that. When the first cpu caused a 'miss' it was put in wait and cpu 2 handled the pagein and then released cpu 1. Keeping the two cpus synched, one instruction apart would have been too complicated if not impossible... ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
Per Fogelström wrote: On Tuesday 13 June 2006 14:23, Rick Kelly wrote: Johnny Billquist said: There's actually a cheesy way to do demand paging with microprocessors that don't support demand paging (such as the original 68000--another 16 bit machine). The way to do this is to run two processors in parallel but skewed by one instruction. If the first one does a bad memory fetch, then the second one will not have fetched the instruction causing the fault so contains restartable machine state. Masscomp sold a machine like this once. Didn't the first Apollos do this? And also the Sun 1. IIRC it was simpler than that. When the first cpu caused a 'miss' it was put in wait and cpu 2 handled the pagein and then released cpu 1. Keeping the two cpus synched, one instruction apart would have been too complicated if not impossible... Your idea will not work, as far as I can tell. If the first CPU instruction execution causes a miss, the end result in the CPU will be pretty undefined, and you cannot restart. That's the whole point in why you'd have a second CPU shadowing the first one. So that you'd be able to restore the state as it were before the illegal memory access. And that was the problem with the original 68000. On an illegal memory reference, you would not know what state the CPU was in before the instruction, so you could not back it up, and re-execute the instruction after a page fault. Johnny -- Johnny Billquist || I'm on a bus || on a psychedelic trip email: [EMAIL PROTECTED] || Reading murder books pdp is alive! || tryin' to stay hip - B. Idol ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
Various wrote: Message-ID: [EMAIL PROTECTED] Date: Wed, 14 Jun 2006 00:50:53 +0200 From: Johnny Billquist [EMAIL PROTECTED] Organization: Update Computer Club User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923) X-Accept-Language: en-us, en MIME-Version: 1.0 To: =?ISO-8859-1?Q?Per_Fogelstr=F6m?= [EMAIL PROTECTED] CC: [EMAIL PROTECTED], Marcus Watts [EMAIL PROTECTED], Otto Moerbeek [EMAIL PROTECTED], Ted Mittelstaedt [EMAIL PROTECTED], John Nemeth [EMAIL PROTECTED], Nikolas Britton [EMAIL PROTECTED], Ted Unangst [EMAIL PROTECTED], =?ISO-8859-1?Q?H=E1morszky_Bal=E1zs?= [EMAIL PROTECTED], misc@openbsd.org, freebsd-questions@freebsd.org, [EMAIL PROTECTED] Subject: Re: wikipedia article Per Fogelstr=F6m wrote: On Tuesday 13 June 2006 14:23, Rick Kelly wrote: =20 Johnny Billquist said: There's actually a cheesy way to do demand paging with microprocessor= s that don't support demand paging (such as the original 68000--another 16 bit machine). The way to do this is to run two processors in parallel but skewed by one instruction. If the first one does a bad memory fetch, then the second one will not have fetched the instructi= on causing the fault so contains restartable machine state. Masscomp so= ld a machine like this once. Didn't the first Apollos do this? And also the Sun 1. =20 =20 IIRC it was simpler than that. When the first cpu caused a 'miss' it wa= s put in wait and cpu 2 handled the pagein and then released cpu 1. Keeping t= he two cpus synched, one instruction apart would have been too complicated if = not impossible... Your idea will not work, as far as I can tell. If the first CPU instruction execution causes a miss, the end result in=20 the CPU will be pretty undefined, and you cannot restart. That's the=20 whole point in why you'd have a second CPU shadowing the first one. So=20 that you'd be able to restore the state as it were before the illegal=20 memory access. And that was the problem with the original 68000. On an illegal memory=20 reference, you would not know what state the CPU was in before the=20 instruction, so you could not back it up, and re-execute the instruction=20 after a page fault. Johnny Several clarifications. The sun-1 did not have a dual CPU page fault arrangement. It used a slightly higher clock speed version of the same CPU board used previously used by codata 4 other vendors, originally designed by stanford university. Instead of using the motorola MMU which was late to market, expensive, slow, or industry standard MMU cache logic (TLB), they used a very clever generic chip implementation that used the CPU alternate space instructions to manage dedicated high speed RAM which provided all the mapping. This managed a page addressed space, but did NOT do demand paging. Another exciting low-cost feature of the sun-1 CPU was software dynamic ram refresh- every 2 ms, the CPU was interrupted by the refresh interrupt and would execute 127 nop instructions. The sun-2 was very similiar to the sun-1, but upgraded the 68000 to a 68010 (which could do instruction restarts and hence demand paging), deleted the onboard RAM, and instead added the ability to use DMA via an IOMMU to private bus RAM. The sun-1 ran unisoft version 7 unix, complete with swapping. The sun-2 ran 4.2bsd. I've got an actual physical codata processor manual (complete with schematics) but I believe I've seen a sun-1 processor manual in pdf somewhere on the web recently. I'm not 100% sure how masscomp or apollo handled page faults. The impression I had is that the first CPU got reset, and the second was interrupted on the instruction boundary and saved its CPU state first thing in the interrupt handler. While the user register state in the first is undefined, the CPU itself is still good - it can take an interrupt, transition into kernel mode and recover machine state from somewhere else (like the 2nd CPU) just fine. That seems to me to be the most sane way it could have been handled. I suppose it's possible the 2nd CPU could have been instead paused, while the first CPU processed the segmentation violation, trashed its non-recoverable machine state, handled the exception, and ?somehow? reloaded machine state from the 2nd paused CPU. Switching to a different process while the 2nd CPU was paused waiting for a page to come in off disk might have been a bit awkward. So while I think this might have been made to work, I doubt it could have performed as well. So far as the 2 cpu synchronization logic goes - either of these would have required such a beast. The 68000 used address spaces to distinguish between instruction and data references, so instruction synchronization was no problem. It might have been necessary to decode instructions to sort out operands other instruction stream references, including logic to sort out page faults in the middle
RE: wikipedia article
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Nikolas Britton Sent: Sunday, June 11, 2006 10:46 PM To: Ted Unangst Cc: Hámorszky Balázs; misc@openbsd.org; freebsd-questions@freebsd.org; [EMAIL PROTECTED] Subject: Re: wikipedia article On 6/12/06, Ted Unangst [EMAIL PROTECTED] wrote: On 6/11/06, Nikolas Britton [EMAIL PROTECTED] wrote: * IIRC NetBSD was a fork of FreeBSD that's an interesting theory when you consider that the first netbsd release came out 8 months before the first freebsd release. Yes as many others have noted, I cleary did not have my thinking cap on. Let me correct myself: NetBSD and FreeBSD both have deep roots in 4.3BSD NET/2, 386BSD, and 4.4BSD Lite. NetBSD is not a fork of FreeBSD but OpenBSD is a fork of NetBSD. DragonFly BSD is a fork of FreeBSD 4.x, etc. etc. With all the inbreeding it's hard to remember who's your daddy. :-) 386BSD 0.1 was what started it all off. That was the Jolitz port featured in Dr. Dobbs which was basically a Net/2 port. That split into 2 forks, 1 was 386BSD 0.1+unofficial patchkit the other was 386BSD 0.1 + The Jolitz's personal set of patches which they claimed were better but wouldn't let anyone see The second fork turned into something like 386BSD 0.2 which the Jolitzes released years later and nobody paid any attention to. The first fork became NetBSD and FreeBSD, the FreeBSD 0.X and NetBSD 0.X code were virtually identical. (I think by the 1.0 versions of both those OS's they had started diverging enough to be considered separate forks) BSDI from what I gather was partly a fork from 386BSD, partly a parallel port from Net/2, it is difficult even today to know the truth since the source has always been paid source, and is now owned by Wind River and is sitting in their vault somewhere. Prior to the release of the 80386 the Intel processors didn't have memory protection which was a requirement of any processor running the BSD kernel. 4.4BSD Lite came much later, after the USL lawsuit. When it came out all Net/2 descendents (ie: 386BSD/Jolitzes version, BSDI, FreeBSD, NetBSD, plus whatever anyone was still doing with Net/2 on the VAXes) were told that if they didn't switch to 4.4BSD Lite that they could be sued by USL directly, and could not use the excuse that they were just using the University's copyright and to go sue the University of California, Berkeley. The commercial licensees of Net/2 and BSD 4.3 and such were basically left to hang out and dry, since when 4.4BSD Lite was released the university closed the CSRG. I think that Sun and HP both had already signed source licenses with USL (since they were also selling the ATT UNIX source) and didn't give a rat's ass what CSRG did with 4.4BSD Lite. I think that BSDI rewrote the kernel files that were at the heart of the lawsuit themselves, perhaps with some inspiration from FreeBSD 2.0, perhaps not. Ted ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On Sun, 11 Jun 2006, Nikolas Britton wrote: [SNIP] * IIRC NetBSD was a fork of FreeBSD, OpenBSD was a fork of NetBSD. Eeh? I believe NetBSD was there half a year before FreeBSD. Bye, Mipam. ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On Sun, Jun 11, 2006 at 10:18:55PM -0700, Ted Unangst wrote: On 6/11/06, Nikolas Britton [EMAIL PROTECTED] wrote: * IIRC NetBSD was a fork of FreeBSD that's an interesting theory when you consider that the first netbsd release came out 8 months before the first freebsd release. However, NetBSD was a fork of 386BSD0.1+patchkit, where the group developing the patchkit became FreeBSD. Dale Rahn [EMAIL PROTECTED] ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On Mon, 12 Jun 2006, Mipam wrote: On Sun, 11 Jun 2006, Nikolas Britton wrote: [SNIP] * IIRC NetBSD was a fork of FreeBSD, OpenBSD was a fork of NetBSD. Eeh? I believe NetBSD was there half a year before FreeBSD. Bye, Mipam. From what I remember, I thought it was 386BSD split off into FreeBSD and NetBSD somewhere in the early 90's, then OpenBSD came from NetBSD in the early to mid 90's. -Garrett ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On Mon, Jun 12, 2006 at 10:23:06AM -0400, Dale Rahn wrote: On Sun, Jun 11, 2006 at 10:18:55PM -0700, Ted Unangst wrote: On 6/11/06, Nikolas Britton [EMAIL PROTECTED] wrote: * IIRC NetBSD was a fork of FreeBSD that's an interesting theory when you consider that the first netbsd release came out 8 months before the first freebsd release. However, NetBSD was a fork of 386BSD0.1+patchkit, where the group developing the patchkit became FreeBSD. ITYM some of the group; I don't know where things would end up by total lines of code contributed, but I'd say NetBSD, FreeBSD and OpenBSD might well end up about even. If you really want to pick nits, I could point out that the patchkit maintainers received a pre-release snapshot of NetBSD 0.8 well before the FreeBSD release, portions of which were incorporated into FreeBSD without proper credit; so it would be wholly reasonable to call FreeBSD a fork of NetBSD 0.8. Does it really matter? This whole discussion seems like a deliberate effort to dredge up old rivalries and create bad feeling. It is all ancient, ancient history now. Thor ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On Mon, Jun 12, 2006 at 02:48:07PM -0400, Thor Lancelot Simon wrote: Does it really matter? This whole discussion seems like a deliberate effort to dredge up old rivalries and create bad feeling. It is all ancient, ancient history now. I doubt this was the original intention, but it looks like it's headed that way... At this point in time it seems like there's a fair amount of porting, backpatching, and code sharing between the BSDs. Who came first has less to do with anything than the philosophy and focus of each project today, and how well it fits with a particular application. If the wikipedia article helps people determine suitability for a purpose then it's worthwhile. The history is already out there, and can be included or merely linked to. -- Darrin Chandler| Phoenix BSD Users Group [EMAIL PROTECTED] | http://bsd.phoenix.az.us/ http://www.stilyagin.com/ | ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
RE: wikipedia article
On Nov 1, 6:11pm, Ted Mittelstaedt wrote: } } Prior to the release of the 80386 the Intel processors didn't have } memory protection which was a requirement of any processor running } the BSD kernel. This is not entirely true. The 80286 had memory protection. However, its memory protection was completely based on segments (i.e. it could not do paging). Also, it was only a 16 bit processor. These two items combined to make it very difficult to run a modern Unix-like system. However, it did run Xenix as well as various other systems. The 80386 was the first processor with paging (which all modern virtual memory systems are based around) and 32 bits. }-- End of excerpt from Ted Mittelstaedt ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
* Constantine A. Murenin [EMAIL PROTECTED] [2006-06-12 15:07]: On 11/06/06, Hamorszky Balazs [EMAIL PROTECTED] wrote: I'm looking for some help on an article on wikipedia. http://en.wikipedia.org/wiki/Comparison_of_open_source_operating_systems Whilst there, what about another important article that seems to have a Linux POV? http://en.wikipedia.org/wiki/Comparison_of_Open_Source_Wireless_Drivers ;) No just expand http://en.wikipedia.org/wiki/Blob to add a proper definition for Binary Blob as that last entry on the page there. -Bob ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
Could this discussion please be moved to the Wikipedia discussion pages? ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
RE: wikipedia article
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Thor Lancelot Simon Sent: Monday, June 12, 2006 11:48 AM To: Dale Rahn Cc: misc@openbsd.org; freebsd-questions@freebsd.org; [EMAIL PROTECTED] Subject: Re: wikipedia article On Mon, Jun 12, 2006 at 10:23:06AM -0400, Dale Rahn wrote: On Sun, Jun 11, 2006 at 10:18:55PM -0700, Ted Unangst wrote: On 6/11/06, Nikolas Britton [EMAIL PROTECTED] wrote: * IIRC NetBSD was a fork of FreeBSD that's an interesting theory when you consider that the first netbsd release came out 8 months before the first freebsd release. However, NetBSD was a fork of 386BSD0.1+patchkit, where the group developing the patchkit became FreeBSD. ITYM some of the group; I don't know where things would end up by total lines of code contributed, but I'd say NetBSD, FreeBSD and OpenBSD might well end up about even. If you really want to pick nits, I could point out that the patchkit maintainers received a pre-release snapshot of NetBSD 0.8 well before the FreeBSD release, portions of which were incorporated into FreeBSD without proper credit; so it would be wholly reasonable to call FreeBSD a fork of NetBSD 0.8. Cool, which portions? Does it really matter? This whole discussion seems like a deliberate effort to dredge up old rivalries and create bad feeling. It is all ancient, ancient history now. That is absolutely rediculous and you are the one trying to cause bad feeling. Just because your bored with the discussion doesn't give you the right to start singing kumbiya and the GNU share the software song and wet all over the rest of us. History is interesting in of it's own right. There was a lot of emotion involved in creating the operating systems. Without that emotion driving people to do things, the OSes would not have got done. To try to minimize this is to cheat the newbies to the system today of the rich heritage, and replace it with bland tasteless cardboard. It's just like the stupid replacement of the FreeBSD Beastie logo with the sex-toy logo. Blah, bland tasteless. All of this happened over a decade ago and many of the players that were involved aren't involved in any of the OSs anymore in a significant way If your not mature enough to deal with reading about 10 year old controversy, I suggest you go back to your Bernstain Bears books and stop bothering the adults. Ted ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On Mon, Jun 12, 2006 at 10:27:33PM -0700, Ted Mittelstaedt wrote: What was the bit size of the CPU's originally used to write UNIX in Bell Labs? Rather large. You can get all the details at http://en.wikipedia.org/wiki/Magnetic_core. -- Thor Lancelot Simon[EMAIL PROTECTED] We cannot usually in social life pursue a single value or a single moral aim, untroubled by the need to compromise with others. - H.L.A. Hart ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On 6/11/06, Nikolas Britton [EMAIL PROTECTED] wrote: * IIRC NetBSD was a fork of FreeBSD that's an interesting theory when you consider that the first netbsd release came out 8 months before the first freebsd release. ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: wikipedia article
On 6/12/06, Ted Unangst [EMAIL PROTECTED] wrote: On 6/11/06, Nikolas Britton [EMAIL PROTECTED] wrote: * IIRC NetBSD was a fork of FreeBSD that's an interesting theory when you consider that the first netbsd release came out 8 months before the first freebsd release. Yes as many others have noted, I cleary did not have my thinking cap on. Let me correct myself: NetBSD and FreeBSD both have deep roots in 4.3BSD NET/2, 386BSD, and 4.4BSD Lite. NetBSD is not a fork of FreeBSD but OpenBSD is a fork of NetBSD. DragonFly BSD is a fork of FreeBSD 4.x, etc. etc. With all the inbreeding it's hard to remember who's your daddy. :-) http://www.levenez.com/unix/history.html#08 http://www.svbug.com/historybsd2.html http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk018.mp3 http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk029.mp3 http://www.netbsd.org/Misc/history.html http://www.freebsd.org/handbook/history.html ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]