Each program is separated into several segments like:

  • code segment
  • data segment
  • stack segment
  • heap segment

But who was responsible for that progression? The compiler and linker has to support that conversation to those segments.

  • was it first implemented by the compiler and linker developers and the early operating systems used it?


  • was it first implemented by the operating system developers and the compiler and linker developers needed an adjustment?
  • I think you're missing a possibility or two. The division between code (text) and data/heap could come about because of hardware. Some PDP-11s had a separate address spaces for code and data. Honeywell computers that ran Multics had memory mapping hardware, so programs could compose themselves from many "segments". I recall that IBM-360s didn't really have a stack, that the compiler, not hardware, did stack frames, via software. – Bruce Ediger Oct 9 '15 at 16:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.