Abstract
Extensible operating system is a design based on the idea that operating systems can be adapted to meet user requirements by allowing user extensions. In a different scenario, that of application development, there is a paradigm that supports that complex systems should allow users to write scripts to tailor an application to their needs. In this paper we propose the concept of scriptable operating system, which applies scripting development paradigm to the concept of extensible operating systems. Scriptable operating systems support that operating systems can adequately provide extensibility by allowing users to script their kernel. We also present an implementation of a kernel-scripting environment that allows users to dynamically extend Linux and NetBSD operating systems using the scripting language Lua. To evaluate this environment, we extended both OS kernels to allow users to script CPU frequency scaling and network packet filtering using Lua.
- ISO C standard 1999. Technical report, 1999. URL http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf. ISO/IEC 9899:1999 draft.Google Scholar
- IEEE Standard for Local and Metropolitan Area Networks-Station and Media Access Control Connectivity Discovery. IEEE Standard 802.1AB, 2009.Google Scholar
- G. Banga, P. Druschel, and J. C. Mogul. Resource containers: A new facility for resource management in server systems. In OSDI, volume 99, pages 45--58, 1999. Google Scholar
Digital Library
- L. P. Barreto, R. Douence, G. Muller, and M. Sudholt. Programming os schedulers with domain-specific languages and aspects: New approaches for os kernel engineering. In Proceedings of the 1st AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software, pages 1--6. Citeseer, 2002.Google Scholar
- M. Belshe and R. Peon. SPDY protocol-Draft 3.1. URL http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3-1.Google Scholar
- B. Bershad, C. Chambers, S. Eggers, C. Maeda, D. McNamee, P. Pardyak, S. Savage, and E. Sirer. SPIN-an extensible mi- crokernel for application-specific operating system services. ACM SIGOPS Operating Systems Review, 29(1):74--77, 1995. ISSN 0163-5980. Google Scholar
Digital Library
- R. H. Campbell and S.-M. Tan. Choices: an object-oriented multimedia operating system. In Proceedings of the Fifth Workshop on Hot Topics in Operating Systems, 1995 (HotOS-V), pages 90--94. IEEE, 1995. Google Scholar
Digital Library
- D. Engler. The Exokernel operating system architecture. PhD thesis, MIT, 1998. Google Scholar
Digital Library
- R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, and T. Berners-Lee. Hypertext Transfer Protocol-HTTP/1.1, 1999.Google Scholar
- M. Gates, A. Warshavsky, A. Tirumala, J. Ferguson, Jim Dugan, F. Qin, K. Gibbs, J. Estabrook, A. Gallatin, S. Hemminger, J. Nathan, and G. Renker. Iperf, 2008. URL http://iperf.sourceforge.net.Google Scholar
- A. Graf. PacketScript-a Lua Scripting Engine for in-Kernel Packet Processing. Master's thesis, Computer Science Department, University of Basel, July 2010.Google Scholar
- M. Grawinkel, T. Suss, G. Best, I. Popov, and A. Brinkmann. Towards Dynamic Scripted pNFS Layouts. In High Performance Computing, Networking, Storage and Analysis (SCC), 2012 SC Companion:, pages 13--17. IEEE, 2012. Google Scholar
Digital Library
- G. Hunt and J. Larus. Singularity: rethinking the software stack. ACM SIGOPS Operating Systems Review, 41(2):37--49, 2007. ISSN 0163-5980. Google Scholar
Digital Library
- R. Ierusalimschy. Programming in Lua. Lua.org, third edition, 2013. Google Scholar
Digital Library
- R. Ierusalimschy, L. de Figueiredo, and W. Celes Filho. Lua-an extensible extension language. Software: Practice and Experience, 26(6):635--652, 1996. Google Scholar
Digital Library
- R. Ierusalimschy, L. de Figueiredo, and W. Celes. Lua 5.1 Reference Manual. Lua.org, first edition, 2006. Google Scholar
Digital Library
- R. Ierusalimschy, L. de Figueiredo, and W. Celes. The evolution of Lua. In Proceedings of the third ACM SIGPLAN Conference on History of Programming Languages, pages 2--26. ACM, 2007. Google Scholar
Digital Library
- R. Ierusalimschy, L. H. de Figueiredo, and W. Celes. Passing a language through the eye of a needle. Communications of the ACM, 54(7):38--43, 2011. Google Scholar
Digital Library
- M. F. Kaashoek, D. R. Engler, G. R. Ganger, and D. A. Wallach. Server operating systems. In Proceedings of the 7th Workshop on Systems Support for Worldwide Applications (ACM SIGOPS European workshop), pages 141--148. ACM, 1996. Google Scholar
Digital Library
- B. Lampson. On reliable and extendable operating systems. In Proceedings of the Second NATO Conference on Techiniques in Software Engineering, 1969.Google Scholar
- G. Lefkowitz. Extending vs. embedding-there is only one correct decision, 2003. URL http://twistedmatrix.com/users/glyph/rant/extendit.html.Google Scholar
- Y. Li, S.-m. Tan, M. L. Sefika, R. H. Campbell, and W. S. Liao. Dynamic Customization in the Choices Operating System. In Proceedings of Reflection'96, 1996.Google Scholar
- M. K. McKusick, K. Bostic, M. J. Karels, and J. S. Quarterman. The design and implementation of the 4.4 BSD operating system. Pearson Education, 1996. Google Scholar
Digital Library
- P. Mochel and M. Murphy. sysfs-The filesystem for exporting kernel objects, 2009. URL http://kernel.org/doc/Documentation/filesystems/sysfs.txt.Google Scholar
- H. Muhammad and R. Ierusalimschy. C APIs in extension and extensible languages. Journal of Universal Computer Science, 13(6):839--853, 2007.Google Scholar
- J. Ousterhout. Scripting: Higher-level programming for the 21st century. IEEE Computer, 31(3):23--30, 1998. Google Scholar
Digital Library
- V. Pallipadi and A. Starikovskiy. The ondemand governor. In Proceedings of the Linux Symposium, volume 2, pages 215--230, 2006.Google Scholar
- L. Prechelt. An empirical comparison of seven programming languages. Computer, 33(10):23--29, 2000. Google Scholar
Digital Library
- M. Rasiukevicius. NPF-Progress and Perspective. AsiaBS-DCon 2014, page 21, 2014.Google Scholar
- S. Savage and B. Bershad. Issues in the design of an extensible operating system. In Proceedings of the First USENIX Symposium on Operating Systems Design and Implementation (OSDI), 1994.Google Scholar
- H. Schulzrinne, S. Casner, R. Frederick, and V. Jacobson. RTP: A Transport Protocol for Real-Time Applications, 2003.Google Scholar
- M. I. Seltzer, Y. Endo, C. Small, and K. A. Smith. Dealing with disaster: Surviving misbehaved kernel extensions. In OSDI, volume 96, pages 213--227, 1996. Google Scholar
Digital Library
- M. I. Seltzer, Y. Endo, C. Small, and K. A. Smith. Issues in extensible operating systems. Computer Science Technical Report TR-18-97, Harvard University, 2(2.2):1, 1997.Google Scholar
- C. Small and M. Seltzer. VINO: An Integrated Platform for Operating System and Database Research. Technical report, 1994.Google Scholar
- T. Voigt, R. Tewari, D. Freimuth, and A. Mehra. Kernel mechanisms for service differentiation in overloaded web servers. In USENIX Annual Technical Conference, General Track, pages 189--202, 2001. Google Scholar
Digital Library
- T. Ylonen and C. Lonvick. The Secure Shell (SSH) Transport Layer Protocol, 2006. URL http://www.ietf.org/rfc/rfc4253.txt.Google Scholar
Index Terms
Scriptable operating systems with Lua
Recommendations
Scriptable operating systems with Lua
DLS '14: Proceedings of the 10th ACM Symposium on Dynamic languagesExtensible operating system is a design based on the idea that operating systems can be adapted to meet user requirements by allowing user extensions. In a different scenario, that of application development, there is a paradigm that supports that ...
Running application specific kernel code by a just-in-time compiler
PLOS '15: Proceedings of the 8th Workshop on Programming Languages and Operating SystemsKernel scripting is a technique to run an extension code in a script language in an operating system kernel. Conventional kernel scripting has two limitations. First, it affects an entire system and only privileged users are allowed to install a new ...







Comments