The Linux Console Project

Powered by:
SourceForge

Charter and Objectives:

Our charter is to clean up and properly maintain the Linux console/TTY sub system. There has been scattered work on the console and TTY layer going on for some time. This project will try to pull it all together into a coherent architecture from which we can generate clean patches for Linus and the core kernel team.

Right now the console subsystem and the subsystems that depend on it have a couple of problems as well as some design issues which need to be addressed for today's needs:

  1. Terminal emulation is much too intertwined with the lower levels of the console implementation. Eventually terminal emulations should be loadable modules and/or easily replacable.

  2. The various subsystems are intertwined with the console system. Things like the serial, framebuffer, and input layer should be able to exist independent of the console/TTY layer. Especially on embedded devices this is important.

  3. The console system is too vga-centeric in design. We designed it to be more platform independent.

  4. The built-in ANSI X3.64/ECMA-48 terminal emulation is incomplete and in some respects incorrect.

New Features:

Project Status and News:

Development is moving fast. Since we cover a lot of areas of the linux kernel we have separate links to pages that have developments in each different sub system

Input API

Getting Involved

So you like to try out this new system or even better yet contribute. If you'd like to give it a try click here for instructions. Once you try it out we know you will have questions or just want to tell your experiences we have a public development mailing list. Also our list is archived. If you like to join follow this link. Now if you like to get your hands dirty and get invloved I recommend joining our CVS commit mailing list. Here you will see all the changes going on. A must for developers and a great way to learn how the new TTY/console layer works. Plus each page for subscribing has a link to the mailing list archives.

Last but not least is our SourceForge page.

Documentation:

How to write a framebuffer driver using the new api.

How to start multiple locale XFree86 servers XFree-Local-multi-user-HOWTO.

ruby-2.4 backport with documentation.

People:

James Simmons
Project admin on SourceForge. The release master. Developing the new fbdev API, multihead support, and the core console code.

Vojtech Pavlik
Co-Maintainer of this project. Developing the input API and writing most of the core input drivers.

Dominik Kubla
Wrote the ANSI/ECMA-48 terminal emulation code and designed the terminal emulation modular design.

Eric S. Raymond
Worked with Dominik to develop better terminal emulation. Interested in terminfo and ANSI conformance. (Eric maintains the master terminfo file.)

And many others who have put time in and helped develop various parts of the code. Thank you.

Related Resources:


James Simmons <jsimmons@transvirtual.com>