skip to main content
10.1145/2814228.2814238acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Towards a dynamic object model within Unix processes

Published:21 October 2015Publication History

ABSTRACT

Programmers face much complexity from the co-existence of "native" (Unix-like) and virtual machine (VM) "managed" run-time environments. Rather than having VMs replace Unix processes, we investigate whether it makes sense for the latter to "become VMs", by evolving Unix's user-level services to subsume those of VMs. We survey the (little-understood) VM-like features in modern Unix, noting common shortcomings: a lack of semantic metadata ("type information") and the inability to bind from objects "back" to their metadata. We describe the design and implementation of a system, liballocs, which adds these capabilities in a highly compatible way, and explore its consequences.

References

  1. P. Akritidis, M. Costa, M. Castro, and S. Hand. Baggy bounds checking: An efficient and backwards-compatible defense against out-of-bounds errors. In Proceedings of the 18th Conference on USENIX Security Symposium, SSYM’09, pages 51–66, Berkeley, CA, USA, 2009. USENIX Association. J. Aldrich. The power of interoperability: Why objects are inevitable. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, Onward! 2013, pages 101––116, New York, NY, USA, 2013. ACM. AT&T. UNIX System V Release 4 Programmer’’s Guide: ANSI C and Programming Support Tools. AT&T, Upper Saddle River, NJ, USA, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. K. Avijit, P. Gupta, and D. Gupta. TIED, LibsafePlus: tools for runtime buffer overflow protection. In SSYM’04: Proceedings of the 13th USENIX Security Symposium, Berkeley, CA, USA, 2004. USENIX Association. G. Banavar, G. Lindstrom, and D. Orr. Type-safe composition of object modules. Technical Report UUCS-94-001, University of Utah, Salt Lake City, Utah, USA, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. N. Barnes, R. Brooksby, D. Jones, G. Matthews, P. P. Pirinen, N. Dalton, and P. T. Withington. A proposal for a standard memory management interface. Presentation slides, retrieved on 2015/3/28, 1997.Google ScholarGoogle Scholar
  4. ftp://ftp.cs.utexas.edu/ pub/garbage/GC97/withingt.ps. From the OOPSLA ’97 Workshop on Garbage Collection and Memory Management {Evans and Dickman 1997}. D. Beazley. Swig: An easy to use tool for integrating scripting languages with C and C++. In Proceedings of the 4th USENIX Tcl/Tk Workshop, pages 129–139, 1996.Google ScholarGoogle Scholar
  5. H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Softw. Pract. Exper., 18(9):807–820, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. P. Bothner. Compiling Java with GCJ. Linux Journal, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. R. A. Gingell, M. Lee, X. T. Dang, and M. S. Weeks. Shared libraries in SunOS. In Proceedings of the USENIX Summer Conference, pages 375–390, 1987.Google ScholarGoogle Scholar
  8. M. Grimmer, M. Rigger, R. Schatz, L. Stadler, and H. Mössenböck. TruffleC: Dynamic execution of C on a Java Virtual Machine. In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java Platform, PPPJ ’14, pages 17–26, New York, NY, USA, 2014. ACM. M. Hirzel, A. Diwan, and J. Henkel. On the usefulness of type and liveness accuracy for garbage collection and leak detection. ACM Trans. Program. Lang. Syst., 24(6):593–624, Nov. 2002. Google ScholarGoogle ScholarCross RefCross Ref
  9. S. Kell. Component adaptation and assembly using interface relations. In Proceedings of 25th ACM International Conference on Systems, Programming Languages, Applications: Software for Humanity, OOPSLA ’10. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Krause. Foundations of GTK+ development. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. Kumar, M. O. Myreen, M. Norrish, and S. Owens. CakeML: A verified implementation of ML. In Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’14, pages 179–191, New York, NY, USA, 2014. ACM. X. Leroy. Formal verification of a realistic compiler. Commun. ACM, 52(7):107–115, July 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. H. M. Levy and P. H. Lipman. Virtual memory management in the VAX/VMS operating system. Computer, 15(3):35–41, Mar. 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. T. Lindholm and F. Yellin. Java Virtual Machine Specification. Addison-Wesley Longman, Boston, MA, USA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. lowRISC Foundation. Tagged memory and minion cores on the lowRISC SoC. lowRISC Foundation memo, December 2014. http://www.lowrisc.org/downloads/memo-2014-001. pdf. Retrieved on 2015/3/29. B. P. Miller, M. D. Callaghan, J. M. Cargille, J. K. Hollingsworth, R. B. Irvin, K. L. Karavanic, K. Kunchithapadam, and T. Newhall. The Paradyn parallel performance measurement tool. Computer, 28(11):37–46, Nov. 1995.Google ScholarGoogle Scholar
  15. S. Nagarakatte, J. Zhao, M. M. Martin, and S. Zdancewic. Soft-Bound: highly compatible and complete spatial memory safety for C. In Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation, PLDI ’09, pages 245–258, New York, NY, USA, 2009. ACM. G. C. Necula, S. McPeak, S. P. Rahul, and W. Weimer. CIL: Intermediate language and tools for analysis and transformation of C programs. In R. N. Horspool, editor, Compiler Construction, volume 2304 of Lecture Notes in Computer Science, pages 213–228. Springer Berlin Heidelberg, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Towards a dynamic object model within Unix processes

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            Onward! 2015: 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!)
            October 2015
            307 pages
            ISBN:9781450336888
            DOI:10.1145/2814228

            Copyright © 2015 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 21 October 2015

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate40of105submissions,38%

            Upcoming Conference

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader