diff options
author | Alex Auvolat <alex@adnab.me> | 2015-03-14 20:12:30 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2015-03-14 20:12:30 +0100 |
commit | 27a6934ea3073c3eaf782cc7615ce4ed0dbf4a18 (patch) | |
tree | 6eadb22d60c3efc300a43793236f725fb8279312 /doc | |
parent | 36d1583b8958b79723ea2785dc320b5233183b14 (diff) | |
download | kogata-27a6934ea3073c3eaf782cc7615ce4ed0dbf4a18.tar.gz kogata-27a6934ea3073c3eaf782cc7615ce4ed0dbf4a18.zip |
Talk about the GUI in english.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/gui-stack-design.md | 32 | ||||
-rw-r--r-- | doc/roadmap.md | 32 |
2 files changed, 49 insertions, 15 deletions
diff --git a/doc/gui-stack-design.md b/doc/gui-stack-design.md index b545520..5da0eeb 100644 --- a/doc/gui-stack-design.md +++ b/doc/gui-stack-design.md @@ -1,6 +1,36 @@ (sorry, in french for the moment) -# Design de la pile GUI +GUI stack design +================ + +Two protocols : + +- GIP (Graphics Initiation Protocol) : one GIP session handles one graphical + framebuffer, a keyboard, a mouse. The buffer is created by the server and + shared to the client with a token (a kernel IPC mechanism for file + descriptors). Reset operation. Possible extention for audio input/output to be + done at this level. +- WMP (Window Management Protocol) : creation of windows and of a GIP channel + for interacting with each window. Usual window managing messages. Hierarchy of + WMP channels : in a WMP channel you can ask for the creation of a sub-channel + ; when a channel is closed all the sub-channels are closed too. + +Software components of the GUI stack : + +- `giosrv` handles the i/o with the hardware and makes that available as a GIP + channel +- login manager : talks to `giosrv`, displays the login manager, and once a + user is logged in, simply proxies the GIP between `giosrv` and the user + desktop manager. Intercepts Ctrl+Alt+Del to lock the current session and go + back to login screen. +- sessin manager : instantiated by login manager, runs with the privileges of + the user. Window managing. +- graphical toolkit library + + +---- + +Version française. Deux protocoles : diff --git a/doc/roadmap.md b/doc/roadmap.md index fb5b8b2..a8871ae 100644 --- a/doc/roadmap.md +++ b/doc/roadmap.md @@ -1,12 +1,15 @@ -# Roadmap +Roadmap +======= -## Plans for soon +Plans for soon +-------------- * Write device drivers : keyboard, FAT (or EXT2 ?) * Work on userland : init, terminal emulator, shell -* GUI server with help from kernel for framebuffer management +* GUI server (with help from kernel for framebuffer management ?) -## Things to design +Things to design +---------------- * Reclaiming physical memory : - Freeing some cached stuff, ie swapping pages from mmap regions @@ -16,23 +19,24 @@ * How does a process transmit information (such as environment, arguments, file descriptors) to its children ? * How do we do stream-like IO on files ? (ie how do we implement the append -* access mode - and non-position-dependant read/write calls & seek call) + access mode and non-position-dependant read/write calls & seek call) * Better error reporting for system calls that fail -## Things not sure +Things not sure +--------------- * VFS thread safety : is the design correct ? (probably) * Cache architecture (called *pager*, after 4.4BSD terminology) * Not enough tests! -## Plans for the later future +Plans for the later future +-------------------------- * Define a format for "packages", i.e. read-only filesystem images used for -* adding system - components or apps to the OS ; make sure to implement it in a way that does - not waste memory -* Module system for extending the kernel In userspace, simple Scheme-like -* scripting language POSIX compatibility layer, self-hosting OS The obvious -* stuff ;-) + adding system components or apps to the OS ; make sure to implement it in a way + that does not waste memory +* Module system for extending the kernel In userspace +* simple Scheme-like scripting language +* POSIX compatibility layer, self-hosting OS +* The obvious stuff ;-) |