Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| sysconsunicodeproject [2009/01/14 21:16] – s/treads/threads/ ThierryThomas | sysconsunicodeproject [2022/09/19 01:34] (current) – Remove ACL: not devs only for a long time, all:read is already default KubilayKocak | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== SysconsUnicodeProject ====== | ====== SysconsUnicodeProject ====== | ||
| - | For any reader not familiar with unicode, reading [[SysconsUnicodeProject/ | + | For any reader not familiar with Unicode, reading [[SysconsUnicodeProject/ |
| - | This project aims to enhance | + | This project aims to enhance |
| - | The project started on August 23, 2008 and is not finished yet. | + | ===== News ===== |
| - | Many project decisions originate from [[http:// | + | * 23/08/2008: Project initiated by Alexander Churanov. See [[http:// |
| + | * 01/01/2009: Syscons terminal emulator replaced | ||
| + | * 29/01/2009: The implementation of unicode maps, that allow using existing fonts in UTF-8 mode was created by Alexander Churanov. | ||
| + | * 04/08/2009: Unicode support | ||
| - | \\ | + | ===== TODO ===== |
| - | ===== Goals ===== | + | |
| - | * Provide | + | ^ Description ^ Assigned to ^ Status ^ |
| + | | Make terminal emulator | ||
| + | | Implement unicode-to-8-bit mapper | ||
| + | | UTF-8 aware input layer, keymaps. | Ed | Semi-done | | ||
| + | | UTF-8 aware font renderer | Ed | TBD | | ||
| + | | Unicode fonts, not limited to 256 chars | Alexander | TBD, not scheduled | | ||
| - | \\ | + | ===== Terminal emulator |
| - | ===== Requirements | + | The old terminal renderer used by Syscons is not suitable to use with UTF-8. Right now we use a terminal type called '' |
| - | * UTF-8 i/o mode should be optional. | + | * At least on %%FreeBSD%%, |
| - | * Full range of unicode characters according | + | * '' |
| - | * Console driver should be correct. New code should be robust | + | * '' |
| - | Details: | + | This is why we should migrate to '' |
| - | Ability to turn UTF-8 i/o mode on and off is necessary, because at the time of this writing other components of operation system are not unicode-compliant in full. And it's not clear whether syscons | + | As of 01/01/2009, the old Syscons emulator has been replaced by libteken. libteken |
| - | Support for the full range of unicode code points is necessary, because Unicode 5.0 specification was published 3 years ago and not complying | + | If you want to try the new '' |
| - | \\ | + | ===== Input layer ===== |
| - | ===== Implementation Decisions | + | |
| - | * Copy UTF-8 encoder and decoder from IBM ICU libray. | + | Right now the input layer only has 8-bit keymaps. This should be changed |
| - | * Transcode application output to selected | + | |
| - | * Create unit-tests for new code. Create manual integration tests for cases where writing unit-tests is currently impossible. | + | |
| - | Rationale: | + | ===== Font rendering ===== |
| - | Using IBM ICU is permitted by license. The code is already tested for correctness. It's expected | + | Because Syscons (and the hardware!) |
| - | Transcoding to 8-bit will utilize most of current screenmaps, keymaps and fonts. Creating new maps and fonts would dramatically increase implementation cost. Modifying the renderer | + | We could consider writing only a very small amount of fonts and some kind of file format, describing which characters should be included in the 8-bit map. This means we can generate a lot of fontmaps. I guess it's a little more tricky |
| - | \\ | + | This is still very premature. WIP. TBD. |
| - | ===== Implementation Plan ===== | + | |
| - | === Completed items === | + | ===== Integration ===== |
| - | * Implement manual integration test application for detecting whether syscons supports UTF-8. | + | |
| - | * Implement UTF-8 decoder. | + | |
| - | * Implement UTF-8 encoder. | + | |
| - | * Enhance kernel data structures and code logic for turning UTF-8 mode on and off on demand. | + | |
| - | * Connect UTF-8 decoder with syscons (process application output to screen). | + | |
| - | * Implement unicode-to-8-bit conversion map support. | + | |
| - | === Items in-progress === | + | In order to make integration into the operating system as easy as possible, we should at least make UTF-8 support a compile-time switch. Users/ |
| - | * Provide interface enabling user-mode applications to turn UTF-8 on or off. | + | ===== Testing ===== |
| - | * Connect UTF-8 encoder with syscons (process application input - keystrokes). | + | |
| - | * Implement keyboard-to-unicode conversion map support. | + | |
| - | * Implement interface enabling user-mode applications to load and select keyboard-to-unicode conversion map. | + | |
| - | * Implement interface enabling user-mode applications to load and select unicode-to-8-bit conversion map. | + | |
| - | * Enhance user-mode applications to utilize provided APIs for turning UTF-8 on and off and loading/ | + | |
| - | \\ | + | To verify that the project has reached its goals and met all requirements performing the following is necessary: |
| - | ===== Project Contributors ===== | + | |
| - | [[AlexanderChuranov|Alexander Churanov]] | + | * performing all manual tests in / |
| + | * verifying font correctness (for each added/ | ||
| + | * verifying keyboard input map correctness (for each added/ | ||
| + | * verifying font catalog completness | ||
| + | * verifying keyboard input map catalog completness | ||
| + | |||
| + | ---- | ||
| + | |||
| + | {{tag> | ||