Linus:Shared text helps a lot with recursive commands. I'm surprised linux doesn't already have it. Fork is most naturally done by sharing text and making it copy-on-write or no-write. The cache i/o that you don't see hurts (there should be a LED for it :). Building the library under Minix-386-cached-text takes 25% longer when the shell is bash. The overhead is actually for something else - copying 40K data from the cache and zeroing 200K bss. Under another version of Minix with copy-on-access forks, building the library takes another 10% longer. There is only slightly less copying because a lot of text gets copied, and more overhead from page faults. The other thing that hurts without cached text is that heavily-used programs will be duplicated in the disk cache and as text. Perhaps mapping the disk cache to text instead of copying it would be almost as good as managing text separately. [big program sizes] You would need a printf-emulator in the kernel :-(. The floating point emulation itself shouldn't be that big. The djgpp emulator (in 32-bit C) is 14+ times slower than my library routines (in 32-bit asm) (the emulator in Turbo C++ is only 7 times slower :-). It takes a large amount of code to the emulation compared with doing the guts of the library. This doesn't explain why the slow mode worked to boot. Perhaps the fast mode is done in software ;-). I guess the bug is really in the BIOS+linux with a hot interrupt. The error seems normal. You are lucky to get it instead of a crash. My 1987 Award BIOS and 1990 AMI BIOS can be relied on to set up the %CR0 bits _incorrectly_ (Award always clears them, on a machine without an x87). After booting, AMI on my 486 has set %CR0 to 0x10. The relevant bits are 0x01: MP (Math Present): should be set (WRONG) 0x02: EM (Emulation): should be clear to use x87/486 this is what gives the device not available trap - linux must be setting it 0x04: ET (Extension Type): should be set (always set by 486 h/w so BIOS gets this one right :) 0x08: NE (Numeric Error): 486 s/w should use this to get error reporting via exception 16 instead of the crufty IRQ 13 necessary for 286-386/287-387 systems Perhaps Linus meant the coprocessor bits in the parameter RAM. These had a reuputation for being unreliable for distinguishing between 287's and no-coprocessor but I think they are OK for 387's. Bruce
| Linus Torvalds | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Vladislav Bolkhovitin | Re: Integration of SCST in the mainstream Linux kernel |
| Chuck Ebbert | Why do so many machines need "noapic"? |
| Tvrtko A. Ursulin | Western Digital GreenPower drives and Linux |
git: | |
| Shawn O. Pearce | [BULLS**T PATCH] Allow Git to work at Insane Bank Corp |
| Michael Hendricks | removing content from git history |
| Eivind LM | Split a subversion repo into several git repos |
| Nicolas Pitre | Re: [PATCH] gc: call "prune --expire 2.weeks.ago" |
| Joachim Schipper | Re: OpenBSD/alpha Status |
| Cabillot Julien | Re: OpenBSD isakmpd and pf vs Cisco PIX or ASA |
| Marco Peereboom | Re: DELL PERC 5iR slow performance |
| Travers Buda | Re: Important OpenBSD errata |
| Rik Faith | ATI VGA WONDER driver for x386 |
| Mark Tarrabain | Some thoughts on device drivers |
| Karl J. Vesterling | Re: BYTE asks, is UNIX dead? |
| Linus Torvalds | Re: Copyright |
| SMDK2410 LCD Framebuffer driver | 3 hours ago | Linux kernel |
| Resetting the bios password for Toshiba Laptop | 4 hours ago | Hardware |
| Problem booting a barebone kernel in VMWare | 7 hours ago | Linux kernel |
| IP layer send packet | 11 hours ago | Linux kernel |
| PID to ELF image full path | 13 hours ago | Linux kernel |
| types of kernel | 1 day ago | Linux kernel |
| magical mounts | 2 days ago | Linux kernel |
| Problem in scim in Fedora 9 | 2 days ago | Linux general |
| The new Western Digital power saving drives | 2 days ago | Hardware |
| Battery Maximizer Software | 3 days ago | Linux kernel |
