Timeline for Why did extracodes fall out of favour?
Current License: CC BY-SA 4.0
12 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Feb 9, 2020 at 15:48 | comment | added | Kelvin Sherlock | ... and once you start writing portable software, it's easiest to target the lowest common denominator. | |
| Feb 9, 2020 at 14:44 | comment | added | Walter Mitty | I don't know the unix and c convention. I would expect that unix had to change its convention when unix was ported from PDP-7 to PDP-11. It was the difficulty of that port that led to the development of c. | |
| Feb 9, 2020 at 14:40 | comment | added | Walter Mitty | Hopefully, it illustrates what the OP asked about. Maybe my answer can be improved and salvaged. | |
| Feb 9, 2020 at 14:30 | comment | added | dave | I agree, overall, that the TOPS-10 and VMS approaches illustrate the difference I'm interested in. | |
| Feb 9, 2020 at 14:28 | comment | added | Walter Mitty | I'm saying that VMS had controlover its entry points. I might be wrong on this score. I only wrote a few practice exercises in VAX macro. I was proficient 10 macro. | |
| Feb 9, 2020 at 14:27 | comment | added | dave | Also, the VMS mechanism is the same as what happens in (say) a Unix program written in C. The programmer calls 'write'. That's a simple stub, in this case in the C RTL, which adjusts any calling convention and then executes some "trap to kernel" instruction. The difference for VMS was that this was the only documented and supported entry. | |
| Feb 9, 2020 at 14:25 | history | edited | Walter Mitty | CC BY-SA 4.0 | added 150 characters in body |
| Feb 9, 2020 at 14:24 | comment | added | dave | I'm not sure what you mean though. Hardware-wise, any (Macro-32) program could execute a CHMK. Are you saying that the CHMK handler in the kernel checked that the address of the CHMK instruction was in the S0 stub? I don't see how that helped. You still have to probe the arguments. | |
| Feb 9, 2020 at 14:17 | comment | added | Walter Mitty | Feel free to edit my answer in order to improve the description. It remains the case that the CHMK instruction allows VMS to limit system calls to starting at valid entry points. Without that, a rogue program could wreak havoc. | |
| Feb 9, 2020 at 13:21 | comment | added | dave | I'm going to differ on the VAX. The programmer wrote CALLS @#SYS$FOO, but SYS$FOO was just a stub in S0 space (later in P1 space to support per-process filtering) and would be entered in the mode of the caller. SYS$FOO would then issue a CHMK instruction which is "trap to kernel mode", transferring control to some address previously set up in system initialization, which would then dispatch to the real implementation of the FOO service. | |
| Feb 9, 2020 at 13:21 | comment | added | wizzwizz4♦ | How does this answer the question? | |
| Feb 9, 2020 at 4:21 | history | answered | Walter Mitty | CC BY-SA 4.0 |