Difference between revisions of "ELF operating system"
(ELF source code.) |
m (→External links: +Structure of the ELF Operating System) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
'''ELF''' was a [[real-time]] [[multi-tasking|multi-programming]] [[operating system]] for the [[PDP-11]] (hence the name - 'elf' is German for 'eleven); generally, those with [[PDP-11 Memory Management]] (both kinds). It allowed [[process]]es to be created and terminated, and allowed them access to inter-process communication and timers; allocation and freeing of [[main memory]] was also provided. It was written in [[assembly language]]; applications could also be written in [[BCPL]] and [[BLISS-11]]. | '''ELF''' was a [[real-time]] [[multi-tasking|multi-programming]] [[operating system]] for the [[PDP-11]] (hence the name - 'elf' is German for 'eleven); generally, those with [[PDP-11 Memory Management]] (both kinds). It allowed [[process]]es to be created and terminated, and allowed them access to inter-process communication and timers; allocation and freeing of [[main memory]] was also provided. It was written in [[assembly language]]; applications could also be written in [[BCPL]] and [[BLISS-11]]. | ||
− | It was originally intended to allow [[user]]s at [[terminal]]s to simultaneously utilize [[time-sharing]] systems on the [[ARPANET]], using [[Network Control | + | It was originally intended to allow [[user]]s at [[terminal]]s to simultaneously utilize [[time-sharing]] systems on the [[ARPANET]], using [[Network Control Protocol|NCP]] (use of which was a standard capability under ELF). It was a successor to [[ANTS]] in this role. It also allowed users to save [[file]]s on local [[mass storage]]; supported mass storage [[device controller]]s were [[TC11 DECtape controller|TC11 DECtape]], [[RF11 disk controller|RF11]] [[fixed-head disk]], [[RK11 disk controller|RK11]] and [[RP11 disk controller|RP11]]. |
− | Work on it started in early 1973; | + | Work on it started in early 1973; it went into experimental service in early 1974, and by 1976 about 30 sites on the ARPANET were using it. It was later used by researchers at [[Bolt, Beranek, and Newman|BBN]] to support the first [[router]]s on the experimental [[Internet]]. |
ELF went through major changes during development. ELF-I had an emphasis on high throughput at the expense of modularity. ELF-II improved modularity but reduced throughput. VM ELF moved applications out of kernel space to separate user spaces. | ELF went through major changes during development. ELF-I had an emphasis on high throughput at the expense of modularity. ELF-II improved modularity but reduced throughput. VM ELF moved applications out of kernel space to separate user spaces. | ||
Line 13: | Line 13: | ||
==See also== | ==See also== | ||
+ | * [[ANTS terminal system]] | ||
* [[Fuzzball]] | * [[Fuzzball]] | ||
* [[MINITS]] | * [[MINITS]] | ||
Line 28: | Line 29: | ||
* [https://dl.acm.org/doi/10.1145/1499949.1499980 D. L. Retz, ''Operating system design considerations for the packet-switching environment''] | * [https://dl.acm.org/doi/10.1145/1499949.1499980 D. L. Retz, ''Operating system design considerations for the packet-switching environment''] | ||
* [https://github.com/larsbrinkhoff/elf-operating-system ELF source code] | * [https://github.com/larsbrinkhoff/elf-operating-system ELF source code] | ||
+ | ** [https://github.com/pdp11/elf-operating-system/blob/master/papers/Structure_of_the_ELF_Operating_System.pdf Structure of the ELF Operating System] | ||
+ | ** [https://github.com/larsbrinkhoff/elf-operating-system/blob/master/files/kernel.doc%5Bm%2Ctvr%5D200 ELF Kernel Programmer's Guide] - January 1, 1976 version | ||
[[Category: PDP-11 Operating Systems]] | [[Category: PDP-11 Operating Systems]] | ||
[[Category: Non-DEC Operating Systems]] | [[Category: Non-DEC Operating Systems]] | ||
+ | [[Category: ARPANET]] |
Latest revision as of 15:23, 14 October 2022
ELF was a real-time multi-programming operating system for the PDP-11 (hence the name - 'elf' is German for 'eleven); generally, those with PDP-11 Memory Management (both kinds). It allowed processes to be created and terminated, and allowed them access to inter-process communication and timers; allocation and freeing of main memory was also provided. It was written in assembly language; applications could also be written in BCPL and BLISS-11.
It was originally intended to allow users at terminals to simultaneously utilize time-sharing systems on the ARPANET, using NCP (use of which was a standard capability under ELF). It was a successor to ANTS in this role. It also allowed users to save files on local mass storage; supported mass storage device controllers were TC11 DECtape, RF11 fixed-head disk, RK11 and RP11.
Work on it started in early 1973; it went into experimental service in early 1974, and by 1976 about 30 sites on the ARPANET were using it. It was later used by researchers at BBN to support the first routers on the experimental Internet.
ELF went through major changes during development. ELF-I had an emphasis on high throughput at the expense of modularity. ELF-II improved modularity but reduced throughput. VM ELF moved applications out of kernel space to separate user spaces.
Some ELF source code was found on backup tapes from the SAIL PDP-10. There is a possibly complete set of files from November 1974, and a smaller set of NCP code from August 1975.
See also
Further reading
- D. L. Retz, ELF System Development - this apparently online at Stanford, but access to it seems to currently be restricted
External links
- Structure of the ELF operating system
- ELF System Programmer's Guide
- An ARPANET Front-End for Large Computers, in Papers Presented at a Berkeley Workshop on Distributed Data Management and Computer Networks - pp. 57-70
- D. L. Retz, Operating system design considerations for the packet-switching environment
- ELF source code
- Structure of the ELF Operating System
- ELF Kernel Programmer's Guide - January 1, 1976 version