Jump to content

Flex machine: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
add shaky pointers
Rescuing 0 sources and tagging 1 as dead.) #IABot (v2.0.9.5
(24 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{Other uses|Flex (disambiguation)}}
{{Other uses|Flex (disambiguation)}}
{{distinguish|FLEX (operating system)|FlexOS}}
{{distinguish|FLEX (operating system)|FlexOS}}
{{Use dmy dates|date=September 2019}}
{{Use British English|date=September 2019}}


The '''Flex Computer System''' was developed by Michael Foster and Ian Currie of [[Royal Signals and Radar Establishment]] (RSRE)<ref>{{cite report|url=http://www.dtic.mil/dtic/tr/fulltext/u2/a201602.pdf|title=On The Design And Implementation Of A Secure Computer System|first1=Phil F.|last1=Terry|first2=Simon R.|last2=Wiseman|publisher=[[Royal Signals and Radar Establishment]]|date=June 1988 |id=RSRE Memorandum No. 4188}}</ref> in [[Malvern, Worcestershire|Malvern]], England, during the 1980s. It used a tagged storage scheme to implement a [[Capability-based security|capability]] architecture, and was designed for the safe and efficient implementation of strongly typed procedures.
The '''Flex Computer System''' was developed by Michael Foster and Ian Currie of [[Royal Signals and Radar Establishment]] (RSRE)<ref>{{cite report|url=http://apps.dtic.mil/dtic/tr/fulltext/u2/a201602.pdf|archive-url=https://web.archive.org/web/20140503020404/http://www.dtic.mil/dtic/tr/fulltext/u2/a201602.pdf|url-status=live|archive-date=3 May 2014|title=On The Design And Implementation Of A Secure Computer System|first1=Phil F.|last1=Terry|first2=Simon R.|last2=Wiseman|publisher=Royal Signals and Radar Establishment|date=June 1988 |id=RSRE Memorandum No. 4188}}</ref> in [[Malvern, Worcestershire|Malvern]], England, during the late 1970s and 1980s. It used a tagged storage scheme to implement a [[Capability-based addressing|capability]] architecture, and was designed for the safe and efficient implementation of strongly typed procedures.


The hardware was custom and microprogrammable, with an operating system, (modular) compiler, editor, garbage collector and filing system all written in [[ALGOL 68RS]]. <!-- c.f. http://foldoc.org/flex -->
The hardware was custom and microprogrammable, with an operating system, (modular) compiler, editor, garbage collector and filing system all written in [[ALGOL 68RS]]. <!-- c.f. http://foldoc.org/flex -->


There were (at least) two incarnations of Flex, implemented using hardware with writable [[microcode]]. The first was supplied by [[Logica]] to an RSRE design, and the second used an [[International Computers Limited|ICL]] [[PERQ]].<ref>{{cite web|first1=D. J.|last1=Tombs|first2=D. I.|last2=Bruce|title=The Evolution of Ten15|publisher=Royal Signals and Radar Establishment|date=Nov 1991|url=http://www.dtic.mil/dtic/tr/fulltext/u2/a247367.pdf}}</ref> The microcode alone was responsible for storage allocation, deallocation and garbage collection. This immediately precluded a whole class of errors arising from the misuse (deliberate or accidental) of pointers.
There were (at least) two incarnations of Flex, implemented using hardware with writable [[microcode]]. The first was supplied by [[Logica]] to an RSRE design,<ref name=rsre-intro>{{cite report |url=http://www.dtic.mil/docs/citations/ADA085010 |archive-url=https://web.archive.org/web/20180720193411/http://www.dtic.mil/docs/citations/ADA085010 |url-status=dead |archive-date=20 July 2018 |title=An Introduction to the FLEX Computer System |author=Foster J M, Moir C I, Currie I F, McDermid J A, Edwards P W |publisher=Royal Signals and Radar Establishment |id=Report No 79016 |date=October 1979 |access-date=12 February 2018}}</ref> and the second used an [[International Computers Limited|ICL]] [[PERQ]].<ref name=rsre-working>{{cite report |url=http://www.dtic.mil/docs/citations/ADA121375 |title=Flex: A Working Computer with an Architecture Based on Procedure Values |author=Foster J M, Currie I F, Edwards P W |publisher=Royal Signals and Radar Establishment |id=RSRE Memorandum No. 3500 |date=July 1982 |access-date=12 February 2018}}{{dead link|date=June 2022|bot=medic}}{{cbignore|bot=medic}}</ref><ref>{{cite report |first1=D. J.|last1=Tombs|first2=D. I.|last2=Bruce|title=The Evolution of Ten15|publisher=Royal Signals and Radar Establishment|date=Nov 1991|url=http://apps.dtic.mil/dtic/tr/fulltext/u2/a247367.pdf|archive-url=https://web.archive.org/web/20150924073146/http://www.dtic.mil/dtic/tr/fulltext/u2/a247367.pdf|url-status=live|archive-date=24 September 2015}}</ref> The microcode alone was responsible for storage allocation, deallocation and garbage collection. This immediately precluded a whole class of errors arising from the misuse (deliberate or accidental) of pointers.


A notable feature of Flex was the tagged, write-once filestore. This allowed arbitrary code and data structures to be written and retrieved transparently, without recourse to external encodings. Data could thus be passed safely from program to program.
A notable feature of Flex was the tagged, write-once filestore. This allowed arbitrary code and data structures to be written and retrieved transparently, without recourse to external encodings. Data could thus be passed safely from program to program.
Line 14: Line 16:
The whole scheme allowed [[abstract data types]] to be safely implemented, as data items and the procedures permitted to access them could be bound together, and the resulting capability passed freely around. The capability would grant access to the procedures, but could not be used in any way to obtain access to the data.
The whole scheme allowed [[abstract data types]] to be safely implemented, as data items and the procedures permitted to access them could be bound together, and the resulting capability passed freely around. The capability would grant access to the procedures, but could not be used in any way to obtain access to the data.


Another notable feature of Flex was the notion of shaky pointers, more recently often called [[weak reference]]s, which points to blocks of memory that could be freed at the next [[Garbage collection (computer science)|garbage collection]]. This is used for example for cachhed disc blocks or a list of spare procedure [[activation record|work-space]]s.<ref name=rsre-perqflex>{{cite report |url=http://oai.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=html&identifier=ADA166398 |title=PerqFlex Firmware |author=Currie I F, Foster J M, Edwards P W |publisher=Royal Signals and Radar Establishment |id=Report No 85015 |date=December 1985 |accessdate=6 February 2018}}</ref>
Another notable feature of Flex was the notion of shaky pointers, more recently often called [[weak reference]]s, which points to blocks of memory that could be freed at the next [[Garbage collection (computer science)|garbage collection]]. This is used for example for cached disc blocks or a list of spare procedure [[activation record|work-space]]s.<ref name=rsre-perqflex>{{cite report |url=http://oai.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=html&identifier=ADA166398 |title=PerqFlex Firmware |author=Currie I F, Foster J M, Edwards P W |publisher=Royal Signals and Radar Establishment |id=Report No 85015 |date=December 1985 |access-date=6 February 2018}}{{dead link|date=June 2022|bot=medic}}{{cbignore|bot=medic}}</ref>

COMFLEX, a packet switching network capable of transmitting data at magnetic-disc speed, was developed alongside Flex. It made feasible the use of remote file-stores, remote capabilities, and [[remote procedure call]]s.<ref name=iee-mcdermid>{{cite journal |url=https://ieeexplore.ieee.org/document/4647592 |title=Design and use of Comflex - a hardware-controlled packet switch |last=McDermid |first=J.A. |journal=[[IEE Proceedings E - Computers and Digital Techniques]] |volume=127 |issue=6 |date=November 1980 |page=233 |access-date=12 February 2018|doi=10.1049/ip-e.1980.0048 }}</ref>


== See also ==
== See also ==
* [[Royal Radar Establishment Automatic Computer]]
* [[Ten15]]
* [[Ten15]]
* [[PS-algol]]


== References ==
== References ==
Line 24: Line 30:
==Further reading==
==Further reading==
{{Refbegin}}
{{Refbegin}}
* Martin C. Atkins: [http://mca-ltd.com/martin/Ten15/introduction.html<cite> An Introduction to Ten15 - A personal retrospective.</cite>] (includes a section about RSRE's Flex)
* Martin C. Atkins: [http://mca-ltd.com/martin/Ten15/introduction.html<cite> An Introduction to Ten15 - A personal retrospective.</cite>]{{Dead link|date=April 2024 |bot=InternetArchiveBot |fix-attempted=yes }} (includes a section about RSRE's Flex)
{{Refend}}
{{Refend}}

{{Object-capability security}}


{{DEFAULTSORT:Flex Machine}}
{{DEFAULTSORT:Flex Machine}}
[[Category:Mainframe computers]]
[[Category:Computers designed in the United Kingdom]]
[[Category:Capability systems]]
[[Category:Capability systems]]
[[Category:Malvern, Worcestershire]]
[[Category:Mainframe computers]]
[[Category:Science and technology in Worcestershire]]

Revision as of 19:55, 15 April 2024

The Flex Computer System was developed by Michael Foster and Ian Currie of Royal Signals and Radar Establishment (RSRE)[1] in Malvern, England, during the late 1970s and 1980s. It used a tagged storage scheme to implement a capability architecture, and was designed for the safe and efficient implementation of strongly typed procedures.

The hardware was custom and microprogrammable, with an operating system, (modular) compiler, editor, garbage collector and filing system all written in ALGOL 68RS.

There were (at least) two incarnations of Flex, implemented using hardware with writable microcode. The first was supplied by Logica to an RSRE design,[2] and the second used an ICL PERQ.[3][4] The microcode alone was responsible for storage allocation, deallocation and garbage collection. This immediately precluded a whole class of errors arising from the misuse (deliberate or accidental) of pointers.

A notable feature of Flex was the tagged, write-once filestore. This allowed arbitrary code and data structures to be written and retrieved transparently, without recourse to external encodings. Data could thus be passed safely from program to program.

In a similar way, remote capabilities allowed data and procedures on other machines to be accessed over a network connection, again without the application program being involved in external encodings of data, parameters or result values.

The whole scheme allowed abstract data types to be safely implemented, as data items and the procedures permitted to access them could be bound together, and the resulting capability passed freely around. The capability would grant access to the procedures, but could not be used in any way to obtain access to the data.

Another notable feature of Flex was the notion of shaky pointers, more recently often called weak references, which points to blocks of memory that could be freed at the next garbage collection. This is used for example for cached disc blocks or a list of spare procedure work-spaces.[5]

COMFLEX, a packet switching network capable of transmitting data at magnetic-disc speed, was developed alongside Flex. It made feasible the use of remote file-stores, remote capabilities, and remote procedure calls.[6]

See also

References

  1. ^ Terry, Phil F.; Wiseman, Simon R. (June 1988). On The Design And Implementation Of A Secure Computer System (PDF) (Report). Royal Signals and Radar Establishment. RSRE Memorandum No. 4188. Archived (PDF) from the original on 3 May 2014.
  2. ^ Foster J M, Moir C I, Currie I F, McDermid J A, Edwards P W (October 1979). An Introduction to the FLEX Computer System (Report). Royal Signals and Radar Establishment. Report No 79016. Archived from the original on 20 July 2018. Retrieved 12 February 2018.{{cite report}}: CS1 maint: multiple names: authors list (link)
  3. ^ Foster J M, Currie I F, Edwards P W (July 1982). Flex: A Working Computer with an Architecture Based on Procedure Values (Report). Royal Signals and Radar Establishment. RSRE Memorandum No. 3500. Retrieved 12 February 2018.{{cite report}}: CS1 maint: multiple names: authors list (link)[dead link]
  4. ^ Tombs, D. J.; Bruce, D. I. (November 1991). The Evolution of Ten15 (PDF) (Report). Royal Signals and Radar Establishment. Archived (PDF) from the original on 24 September 2015.
  5. ^ Currie I F, Foster J M, Edwards P W (December 1985). PerqFlex Firmware (Report). Royal Signals and Radar Establishment. Report No 85015. Retrieved 6 February 2018.{{cite report}}: CS1 maint: multiple names: authors list (link)[dead link]
  6. ^ McDermid, J.A. (November 1980). "Design and use of Comflex - a hardware-controlled packet switch". IEE Proceedings E - Computers and Digital Techniques. 127 (6): 233. doi:10.1049/ip-e.1980.0048. Retrieved 12 February 2018.

Further reading