1989 · 71 citations · 21 references
ComputingComputer ScienceComputer SystemsOperating SystemsProgramming LanguagesSystems ProgrammingApplication Programming InterfacesRuntime EnvironmentsRuntime SystemsDynamic LinkingLinkingOperating System ArchitectureOperating System PortingRuntime Environment PortabilityRuntime InteroperabilityRuntime SemanticsSockets
Operating system abstractions do not always reach high enough for direct use by a language or applications designer. The gap is filled by language-specific runtime environments, which become more complex for richer languages (CommonLisp needs more than C+ +, which needs more than C). But language-specific environments inhibit integrated multi-lingual programming, and also make porting hard (for instance, because of operating system dependencies). To help solve these problems, we have built the Portable Common Runtime (PCR), a language-independent and operating-system-independent base for modern languages. PCR offers four interrelated facilities: storage management (including universal garbage collection), symbol binding (including static and dynamic linking and loading), threads (lightweight processes), and low-level I/O (including network sockets). PCR is “common” because these facilities simultaneously support programs in several languages. PCR supports C. Cedar, Scheme, and CommonLisp intercalling and runs pre-existing C and CommonLisp (Kyoto) binaries. PCR is “portable” because it uses only a small set of operating system features. The PCR source code is available for use by other researchers and developers.
21
C. A. R. Hoare · Communications of the ACM · 1974 · 1.5K citations · Full text
Mach: A New Kernel Foundation for UNIX Development.
Michael J. Accetta, R. Baron, William J. Bolosky et al. · USENIX Summer · 1986 · 919 citations
The structuring of systems using upcalls
David D. Clark · ACM SIGOPS Operating Systems Review · 1985 · 286 citations