Uppsats
The GNU Emacs Architecture : Unlocking the Core
Kandidat-uppsats
Uppsala universitet/Institutionen för informationsteknologi
Publicerad: 2026
Språk: Engelska
Nyckelord
klicka för att sökaSammanfattning
The GNU Emacs text editor is a part of the GNU Operating System and has been in development since the 1980s. Emacs is known for its user-extensible and self-documenting design that ties back to the free software philosophy that advocates for the users freedoms to run, study, change and distribute computer programs. While there is much documentation on the editors programming language Emacs Lisp, there is a lack of accessible documentation which covers the internal architecture. This significantly complicates effort of introducing new developers the Emacs core, restricting the users freedom to study Emacs. The recent introduction of Lisp threads brought a limited form of concurrency to Emacs, is forced to use a Global Interpreter Lock (GIL) to function with the single-threaded architecture of GNU Emacs. This thesis aims to aid future work in modernizing Emacs by providing a foundation of a comprehensive and accessible documentation covering the internal architecture of GNU Emacs, focusing on components related to concurrency and parallel processing. The documentation is paired with a summarizing analysis covering the architectural limitations of the GNU Emacs core related to concurrent and parallel processing. This work hopes to initiate discussion regarding the single-threaded nature of the core and to act as a foundation for future documentation to expand upon. The documentation covers the GNU Emacs source code and build process, including architectural components such as the Command Loop and Lisp Environment while highlighting features related to concurrency such as variable binding, processes and threads. The analysis addresses the constraints of the cooperative concurrency model, summarizing the workarounds used in contemporary Lisp libraries and possible improvements such as the addition of a preemptive thread scheduler, illustrating the complicated task of removing the GIL. The GNU Emacs core relies heavily on shared state, requiring large changes in its most fundamental systems such as the memory allocator and the Lisp environment.
Information
- Författare
- Karlsson, Erik
- Lärosäte / institution
- Uppsala universitet/Institutionen för informationsteknologi
- Publiceringsdatum
- 2026
- Uppsatstyp
- Kandidat-uppsats
- Språk
- Engelska
Utforska vidare
Liknande uppsatser
Uppsatser med liknande ämnen och nyckelord.
Kandidat-uppsats, Göteborgs universitet/Institutionen för kulturvård
Tohidi, Soraya
Publicerad: 2026-06-18
Kandidat-uppsats, Blekinge Tekniska Högskola/Institutionen för teknik och estetik
Kozak, Celine
Publicerad: 2026
Kandidat-uppsats, Linköpings universitet/Institutionen för datavetenskap
Stenberg, Viktor, Kudsy, Rojeh
Publicerad: 2026
Kandidat-uppsats, Uppsala universitet/Konstvetenskapliga institutionen
Aronsson Dahl, Maria
Publicerad: 2026
Kandidat-uppsats, Linköpings universitet/Institutionen för datavetenskap
Törner, Johan
Publicerad: 2026
Kandidat-uppsats, Malmö universitet/Institutionen för datavetenskap och medieteknik (DVMT)
Sajland, Nelly, Collins, Elliot
Publicerad: 2025