| PLEX86 | ||
Moving buttembler programs above the line 512Eric Software for IBM 36030 was DOS360: Forty years 513 Eric Smith Why couldn't it be more than 64k? Was that all the30 could hold? I...
Most OSes have taken the notion that the old small-address-space world and the new big-address-space world are pretty separate. In Solaris or Linux a process is either 32-bit or 64-bit. You can't use a 32-bit shared library from a 64-bit main program, or vice versa. Old 32-bit apps and new 64-bit apps can communicate through standard OS facilities, but they can't share memory. Nice and clean. When migrating from 24-bit addressing to 31-bit addressing the mainframe guys got this one wrong. So they allowed a 24-bit process to call a 31-bit function, or vice versa. You could have a 24-bit "main" program that then called some 31-bit code, which then called into older 24-bit code. The "32nd" bit, then, indicated whether the address that a called routine was given was a 24-bit address or a 31-bit address. When a function returned to its caller, the mode of the system was put back automatically. Each function had an AMODE attribute (whether it ran with 24-bit or 31-bit addressing) and an RMODE attribute (whether it could live above or below the 16MByte line). These could be different, since if a 31-bit function is going to call a 24-bit subroutine it could only pbutt the 24-bit subroutine pointers to data that was below the line. The linker would try to sort all of this out. This was an unbelievable mess that no other OS has copied since - for very good reason. ...Sam
|
||||
Software for IBM 36030 was DOS360: Forty years 513 Alt Folklore Computers from Newsgroups The #1 Usenet Provider on the Internet
|
||||