The merge which removed the 80386 support (https://git.kernel.org/torvalds/c/743aa456c1834f76982af44e8b...) stated as the reason "[...] complexity has plagued us with extra work whenever we wanted to change SMP primitives, for years."
That is, it was not easy to keep it self-contained. Every new SMP primitive has to be implemented and maintained for all the architectures supported by the kernel, and the original 80386 ISA was too limited. Not to mention that the 80386 didn't honor the write-protect bit in the page tables while in the kernel (https://git.kernel.org/torvalds/c/a5c2a893dbd4956a72fb261e87...), with consequences all over the kernel (https://git.kernel.org/torvalds/c/96d4f267e40f9509e8a66e2b39...).
To the best of my knowledge, nobody is making new 386-only chips (that have no 486 or 586 support). As long as that remains the case, hopefully that support stays removed.
> There are also a few kernel-tinification approaches floating around that could make the kernel smaller and easy to fit in a floppy-using scenario.
We could always use more people looking at the size regressions, and working on making more kernel components optional. If anyone is interested in working on this, send me email and I'd be happy to get you connected with it.
I'm also curious what use it would have. I imagine in cases where you're tied to such old hardware, you would also be tied to old software.
If we are talking about the computer that runs MCAS, my understanding is that it isn't a 286, it is a Rockwell Collins FCC-730 (aka EDFCS-730). The FCC-730 is a proprietary custom CPU architecture, there is limited public info available on it, although I did read somewhere that it uses a stack machine architecture (like Burroughs mainframes, classic HP 3000, Tandem T-16, various "Forth on a chip" processors, etc)
According to the diagrams in US patent 7,852,235 [1], the FCC-730 CPU is an FCP-2002. I would caution against the possibly mistaken inference that this patent describes the actual architecture of the 737-MAX or any other actual flight computer, as opposed to simply a design that Rockwell-Collins may have developed and not (yet) actually deployed. In particular, while the 737-MAX does have an FCC-730, I don't think it has an IPS-5000.
A NASA Langley presentation [2] mentions formal verification of the FCP-2002. I think that if it is formally verified, it is probably not a 286. A 286 would be a poor choice for a formally verified microprocessor for embedded applications since it has a huge number of extraneous features that would complicate the verification process while yielding no benefit for the embedded application. The presentation also mentions a new "FCS 5000" product line, and its formal verification, and I wonder if that has any connection with the IPS-5000 CPU card mentioned in the patent diagram? Probably, the patent describes a new flight control computer design, meant as a successor to the design used in the 737-MAX (and other Boeing aircraft such as the 777).
The Boeing 777 autopilot uses FCP 2002 CPUs as well [3]
I swear I read somewhere that the FCP 2002 had a stack machine architecture, but now I can't find where I read that. (Did I imagine reading it?)
I'm not sure where this "286" stuff comes from. I think maybe, FCP-2002 is a 16-bit CPU, and then people say a 16-bit CPU is "like a 286", and then maybe that gets corrupted in the retelling, and "like a 286" turns into "a 286"?
[1] https://patents.google.com/patent/US7852235B1
[2] https://shemesh.larc.nasa.gov/NFM2018/talks/Butler.pdf
[3] https://web.archive.org/web/20100822151603/http://www.rockwe...
That's an interesting observation. The presentation specifically mentions verification of the microcode, which I think would be feasible to do for a 286?
> I'm not sure where this "286" stuff comes from. I think maybe, FCP-2002 is a 16-bit CPU, and then people say a 16-bit CPU is "like a 286", and then maybe that gets corrupted in the retelling, and "like a 286" turns into "a 286"?
Yeah, I'm not sure where the rumour came from either. But I do think it's plausible. According to "Computers take flight" [1], the 777 uses (among others) a 486 for its control system:
> Boeing finally built an airliner with fly-by-wire controls, the 777. The control system is more straightforward than that used by Airbus. It contains three “lanes” of three different computers each: an AMD 29050, a Motorola 68043, and an Intel 80486.
The source given is "Primary flight computers for the Boeing 777" [2], which doesn't seem publicly available.
Given the closeness in time for the 777 and the 737 NG, it seems somewhat unlikely (to me) that the 777 would go for the most popular options, while the 737 would use a bespoke CPU design. The A320 used 80186 and 68K processors [3], so the 737 would really be the odd one out in that case.
1: https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/200501...
2: https://www.sciencedirect.com/science/article/abs/pii/S01419...
3: https://books.google.se/books?id=KDX0BwAAQBAJ&pg=PA214&lpg=P...
Rockwell Collins didn't build the primary flight computer of the 777, but they did build the 777 autopilot (which is a separate computer system). The 777 autopilot and the 737 flight computer appear to have some shared technical heritage, including both using the FCP-2002 CPU (whatever it actually is).
(Why Boeing chooses different vendors for different aircraft models, I don't know, but I presume it is part of a corporate strategy of ensuring some diversity in vendors to avoid "putting all its eggs in one basket".)
Exactly. If you have to support some old esoteric hardware, you probably wouldn't be able to run a recent kernel anyways, since all your software would probably also be tied/constrained to whaterver it was developed and tested for.