A Basis for Secure Systems Implementation Languages

  • Klaus-Peter Löhr
Conference paper
Part of the Informatik-Fachberichte book series (INFORMATIK, volume 25)

Abstract

Contemporary high-level languages for systems implementation suffer from language insecurities which arise from their ability to deal directly with the hardware. It is certainly indispensible, at least for operating systems programming, to have access to the processor status, device registers, memory management hardware, etc. There is no need, however, for revealing their implementational details to the programmer, thus compromising reliability. Data abstraction on the machine level allows for the design of safe systems programming languages which hide the declaration of “hardware objects” in a standard prelude. Some characteristics of such languages are investigated. As device handling can be managed in a straightforward way, emphasis is placed on the more critical issues, viz. processor and memory management.

Zusammenfassung

Die Sicherheit der heute gebräuchlichen Implementierungssprachen ist begrenzt, da der Programmierer bei Bedarf auf die Hardware-Ebene heruntergehen und dort beliebig viel Unheil anrichten kann. Nun ist zwar die Zugriffsmöglichkeit auf Prozessorstatus, Geräteregister, Speicherabbildungs-Hardware etc. unverzichtbar — jedenfalls für die Betriebssystem-Programmierung. Das bedeutet aber nicht, daß der Programmierer in der Lage sein muß, beliebig auf die Feinstruktur dieser „Hardware-Objekte“ zuzugreifen (wodurch die Programmzuverlässigkeit gefährdet wird). Wenn man auf der Hardware-Ebene das Prinzip der Datenabstraktion anwendet, kann man mit Sprachen arbeiten, die die Implementierungsdetails von Hardware-Objekten in einem Standard Prelude verbergen. In der vorliegenden Arbeit werden einige Eigenschaften solcher Sprachen untersucht. Der Zugriff auf Peripheriegeräte läßt sich relativ einfach abhandeln; deshalb wird vor allem auf die schwierigeren Probleme der Prozessor- und Speicherverwaltung eingegangen.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. /Brinch Hansen 77/.
    P. Brinch Hansen: The architecture of concurrent programs. Prentice-Hall 1977MATHGoogle Scholar
  2. /Campbell,Kolstad 79/.
    R.H. Campbell, R.B. Kolstad: Practical applications of Path Pascal in systems programming. Proc. ACM Ann. Conf., 1979Google Scholar
  3. /Ichbiah et al. 79/
    J.D. Ichbiah, J.G.P. Barnes, J.C. Heliard, B. Krieg-Brückner, O. Roubine, B.A. Wichmann: Preliminary ADA Reference Manual. ACM Sigplan Notices 14.6, 1979Google Scholar
  4. /Joseph et al. 78/
    M. Joseph, V.R. Prasad, K.T. Narayana, I.V. Ramakrishnan, S. Desai: Language and structure in an operating system. Proc. 2. Int. Symp. Operating Systems, IRIA Rocquencourt, 1978 (Operating Systems — Theory and Practice, D. Lanciaux(Ed.), North-Holland 1979)Google Scholar
  5. /Lampson et al. 77/
    B.W. Lampson, J.J. Horning, R.L. London, J.G. Mitchell, G.L. Popek: Report on the programming language EUCLID. ACM Sigplan Notices 12.2, 1977Google Scholar
  6. /LDRS 77/.
    Proc. Conf. Language Design for Reliable Software. ACM Sigplan Notices 12.3, 1977Google Scholar
  7. /Löhr 77/.
    K.-P. Löhr: Beyond Concurrent Pascal. ACM Sigops Operating Systems Review 11.5, 1977Google Scholar
  8. /Massar et al. 77/
    R. Massar, K. Nagel, H. Ortheil, H.D. Schmidtlein: COLA — an object-oriented language and its application in the design of well-structured operating systems. Diplomarbeit, Fachbereich Informatik, TU Berlin 1977Google Scholar
  9. /Narayana et al. 79/
    K.T. Narayana, V.R. Prasad, M. Joseph: Some aspects of concurrent programming in CCNPASCAL. Software — Practice and Experience 9, 1979Google Scholar
  10. /Parnas,Würges 76/.
    D.L. Parnas, H. Vürges: Response to undesired events in software systems. Proc. 2. Int. Conf. Software Engineering, San Francisco 1976Google Scholar
  11. /Prasad 78/.
    V.R. Prasad: Report on the concurrent programming language CCNPASCAL. TR 28, NCSDCT Tata Institute of Fundamental Research, Bombay 1978Google Scholar
  12. /Ritchie 75/.
    D.M. Ritchie; C Reference Manual. Bell Telephone Laboratories, Murray Hill 1975Google Scholar
  13. /Silberschatz 79/.
    A. Silberschatz: On the safety of the IO primitive in Concurrent Pascal. Comp. J. 22.2, 1979Google Scholar
  14. /Wirth 77/.
    N. Wirth: MODULA: A language for modular multiprogramming. Software — Practice and Experience 7. 1977Google Scholar
  15. /Wulf et al. 71/
    W.S. Wulf, D.B. Russell, A.N. Habermann: BLISS: A language for systems programming. Comm. ACM 14.12, 1971Google Scholar

Copyright information

© Springer-Verlag Berlin · Heidelberg 1980

Authors and Affiliations

  • Klaus-Peter Löhr
    • 1
  1. 1.Fachbereich Mathematik/InformatikUniversität BremenBremen 33Germany

Personalised recommendations