Escolar Documentos
Profissional Documentos
Cultura Documentos
A typical student must demand hard work and follow many computer classes enough to
acquire specific knowledge programming in C that would give her/him the chance to
code for the Xorg.
Lately the Xorg grew in maturity and has gained significant popularity. One
important advancement is the method of keeping the source code in more than one
repository, so that different people can develop on particular branches in
parallel, that may then be merged and updated in turn by others.
The input layer in Xorg offers driver support for various input devices, such as
mice, tablets, pens, touchscreens... Even there are good programmers and great
companies producing such hardware, still, new ideas will emerge and new drivers
will so need be written faster and better.
The task for the diploma would be to transfer all Xorg input layer maintenance --
from the initial driver projection, through implementation hardened by
verification and correction, to automated derivation and further synchronization
with software changes in Xorg and modifications of the hardware -- to an automated
co-integrated development framework for specifying, reasoning, correlating and
generating Xorg driver code.
The main feature of this newer approach to Xorg development is the maximum
expected from computer and the minimum from the human, and this is understood in
the sense that the large amount of currently existing Xorg code is just enough to
be relied upon for a systematic manner of updating and adding input drivers to it,
and it is quite fitted at this point to lent itself neatly to a formal software
specification, generation and maintenance tool.
The focus of the thesis work should be centered around advancing development via
co-integration of specifications together with reasoning under uncertainty.
The scenario of this approach has several aspects (1-4), parameters (5-6) and
coordinates (7-8).
1. The driver exists but it is incomplete; the minimal behavior is there, but it
lacks important optimizations and/or enhancements; the human efforts to complete
its functionality must be relayed to the computers.
3.1. Existing input drivers need have specifications, that combined with
specifications of the input subsystem and of further other parts of Xorg make into
a robust and useful unit of reference for other drivers to have them co-integrated
in their own development tree.
3.2. However, not few existing input drivers exhibit bugs, mistakes or flaws,
either at one stage or along stepping between stages; if they are to be referenced
as "trusted" drivers, these shortcomings must be found means to be coped with, so
that errors do not get injected further on.
5.1. A lot of work that must be done is writing specifications for various Xorg
modules, the input subsystem and the input drivers: they must only conceptually
make a whole, but must not be entirely complete, and more important, not mutually
consistent.
5.2. Once we get our hands on the specifications, they form the input to an
automated reasoner such as Isar: with a proper training, not only programs can be
derived from correctness proofs, but also specifications themselves can be
adjusted or synthesized; for the first, we extract the computational content of
proofs structured in a constructive logic; for the second, we detect the
contradictory models of programs in a Paraconsistent Logic (see also a book).
6.2. The actual C code would be the last step; at this lowest level, human
assistance should be at its highest intensity.