248.1.1
by Alan Griffiths
Add doxygen skeleton |
1 |
Welcome to MirAL {#mainpage}
|
2 |
================
|
|
3 |
||
4 |
MirAL is an ABI stable abstraction layer over Mir (and some working examples). |
|
5 |
||
250.1.1
by Alan Griffiths
Why MirAL? |
6 |
Why MirAL?
|
7 |
----------
|
|
8 |
||
9 |
Mir is a library for writing Linux display servers and shells that are |
|
10 |
independent of the underlying graphics stack. It fits into a similar role as an |
|
11 |
X server or Weston (a Wayland server) but was initially motivated by Canonical’s |
|
12 |
vision of "convergent" computing. |
|
13 |
||
14 |
The Mir project has had some success in meeting Canonical’s immediate needs – |
|
15 |
it is running in the Ubuntu Touch phones and tablets, and as an experimental |
|
16 |
option for running the Unity8 shell on the desktop. But because of the |
|
17 |
concentration of effort on delivering the features needed for this internal use |
|
18 |
it hasn’t really addressed the needs of potential users outside of Canonical. |
|
19 |
||
20 |
Mir provides two APIs for users: the "client" API is for applications that run |
|
21 |
on Mir and that is largely used by toolkits. There is support for Mir in the GTK |
|
22 |
and Qt toolkits, and in SDL. This works pretty well and the Mir client API has |
|
23 |
remained backwards compatible for a couple of years and can do so for the |
|
24 |
foreseeable future. |
|
25 |
||
26 |
The problem is that the server-side ABI compatibility is broken by almost every |
|
27 |
release of Mir. This isn’t a big problem for Canonical, as the API is fairly |
|
28 |
stable and both Mir and Unity8 are in rapid development: rebuilding Unity8 |
|
29 |
every time Mir is released is a small overhead. But for independent developers |
|
30 |
the lack of a stable ABI is problematic as they cannot easily synchronize their |
|
31 |
releases to updates of Mir. |
|
32 |
||
250.1.4
by Alan Griffiths
Reword for clarity |
33 |
MirAL is the answer to this: It offers an "abstraction layer" written over the |
34 |
top of the current Mir server API that will provide a stable ABI. There are a |
|
35 |
number of other goals that can be addressed at the same time: |
|
250.1.1
by Alan Griffiths
Why MirAL? |
36 |
|
37 |
- The API can be considerably narrowed as a lot of things can be customized
|
|
38 |
that are of no interest to shell development; |
|
39 |
- A more declarative design style can be followed than the implementation
|
|
40 |
focused approach that the Mir server API follows; and, |
|
41 |
- Common facilities can be provided that don’t belong in the Mir libraries.
|
|
42 |
||
43 |
Mir is supported on a range of platforms including phones, tablets and desktops. |
|
44 |
There is also work to provide it as a "snap" in the "internet of things". The |
|
45 |
miral-shell already works in all these environments (for a suitably forgiving |
|
46 |
value of "works") and is an early opportunity to learn about this alternative |
|
47 |
to X11. |
|
248.1.2
by Alan Griffiths
Add the existing docs to the doxygen output |
48 |
|
49 |
Notes for Developers
|
|
50 |
--------------------
|
|
51 |
||
330.160.4
by Alan Griffiths
Another pass |
52 |
- \ref getting_and_using_miral
|
250.1.2
by Alan Griffiths
Introducing the Miral API |
53 |
- \ref introducing_the_miral_api
|
248.1.2
by Alan Griffiths
Add the existing docs to the doxygen output |
54 |
- \ref tasks_for_the_interested_reader
|