An Overview of Namespace and Its Application on Operating System
Keywords:
File system, Namespace, Operating system, Programming language, Resource management, Virtual machineAbstract
This proposed overview paper focuses on the concept of namespaces, which are abstract containers that provide a unique context for identifiers (or names). This fundamental idea is utilized across various computing domains to organize resources and prevent naming conflicts, a critical requirement in large, complex systems. A namespace creates an isolated environment for identifiers, ensuring that each name is unique. By doing so, it addresses the common issue of naming conflicts and facilitates the development of scalable, organized, and secure systems in diverse areas of computing. The term is frequently used in computer science and software engineering to structure code and avoid naming conflicts. In the context of business process management, namespaces can describe how systems organize resources. In programming, a namespace groups related identifiers—such as variable names, function names, and classes—keeping them separate from identifiers in other namespaces. Its primary function is to prevent naming conflicts, particularly in large codebases that incorporate multiple libraries or modules.
References
A. Rogers and K. Pingali, “Process decomposition through locality of reference,” ACM SIGPLAN Notices, vol. 24, no. 7, pp. 69–80, Jun. 1989, doi: https://doi.org/10.1145/74818.74824
ISO/IEC, “Programming languages — Fortran Part 1: Base language,” ISO, 2023. Available: https://www.iso.org/standard/82170.html
A. Afanasyev, P. Mahadevan, I. Moiseenko, E. Uzun and L. Zhang, “Interest flooding attack and countermeasures in named data networking,” 2013 IFIP Networking Conference, Brooklyn, NY, USA, 2013, pp. 1–9, Available: https://ieeexplore.ieee.org/document/6663516
ISO/IEC TR 100001, Ed., “Information technology framework and taxonomy of international standardized profiles Part 1: General principles and documentation framework,” ISO/IEC, Aug. 1997. Available: https://www.open-std.org/jtc1/sgfs/docs/n1426.pdf
ISO/IEC, “Information technology — Framework and taxonomy of international standardized profiles — Part 3: Principles and Taxonomy for open system environment profiles,” ISO/IEC, Nov. 1998. Available: https://cdn.standards.iteh.ai/samples/30727/b969dbb5c27944eda37104
d4df6fbc09/ISO-IEC-TR-10000-3-1998.pdf
J. Gosling, B. Joy, G. Steele, G. Bracha, and A. Buckley, The Java language specification, 8th ed. California, USA: Oracle America, Inc., 2015.
S. Butler, “Mining Java class identifier naming conventions,” in ICSE ’12: Proceedings of the 34th International Conference on Software Engineering, Jun. 2012, pp. 1641–1643. Available: https://dl.acm.org/doi/10.5555/2337223.2337509
P. Mehrotra and J. Van Rosendale, “Programming distributed memory architectures using Kali,” Oct. 1990, Available: https://apps.dtic.mil/sti/tr/pdf/ADA229019.pdf
W. Felter, A. Ferreira, R. Rajamony, and J. Rubio, “An updated performance comparison of virtual machines and Linux containers,” 2015 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), Philadelphia, PA, USA, 2015, pp. 171–172, doi: https://doi.org/10.1109/ispass.2015.7095802
B. Liblit, A. Begel, and E. Sweetser, “Cognitive perspectives on the role of naming in computer programs,” in 18th Workshop of the Psychology of Programming Interest Group, Sep. 2006, pp. 53–67. Available: https://ppig.org/files/2006-PPIG-18th-liblit.pdf
A. Afanasyev et al., “NDNS: A DNS-like name service for NDN,” 2017 26th International Conference on Computer Communication and Networks (ICCCN), Vancouver, BC, Canada, 2017, pp. 1–9, doi: https://doi.org/10.1109/ICCCN.2017.8038461
A. Vermeulen, S. W. Ambler, G. Bumgardner, E. Metz, T. Misfeldt, and J. Shur, The elements of Java. Cambridge University Press, 2000.