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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Softw. Pract. Exper., 18(9):807–820, 1988. Google ScholarDigital Library
- P. Bothner. Compiling Java with GCJ. Linux Journal, 2003. Google ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- A. Krause. Foundations of GTK+ development. Springer, 2007. Google ScholarDigital Library
- 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 ScholarDigital Library
- H. M. Levy and P. H. Lipman. Virtual memory management in the VAX/VMS operating system. Computer, 15(3):35–41, Mar. 1982. Google ScholarDigital Library
- T. Lindholm and F. Yellin. Java Virtual Machine Specification. Addison-Wesley Longman, Boston, MA, USA, 1999. Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
Index Terms
- Towards a dynamic object model within Unix processes
Recommendations
Traveling forward in time to newer operating systems using ShadowReboot
VEE '13: Proceedings of the 9th ACM SIGPLAN/SIGOPS international conference on Virtual execution environmentsOperating system (OS) reboots are an essential part of updating kernels and applications on laptops and desktop PCs. Long downtime during OS reboots severely disrupts users' computational activities. This long disruption discourages the users from ...
Comments