Hi Paul,

On [22-01-2020 01:48], Paul Boddie wrote:
> Hello and Happy New Year!
> 
> Having been otherwise occupied so far this year, I decided to take the 
> opportunity to revisit my L4 development environment that happens to use 
> Debian unstable. It turns out that GCC 9 is now the supported toolchain 
> version, and unfortunately, L4Re doesn't yet understand this new version.
> 
> So, first of all, I wondered whether support for that is imminent. I did take 
> a look at persuading the build system to work, but this seems to involve 
> hunting down version-specific resources and defining new ones for the new 
> version. I stopped when encountering some libstdc++ headers and wondering 
> whether this isn't documented somewhere.

The version on github supports GCC 9.

> = Repositories =
> 
> It did occur to me that I might also be expecting updates for such things 
> from 
> the wrong channel. Since I have been using L4Re for a while, I still use the 
> Subversion repositories made available from svn.l4re.org, referenced by the 
> documentation on l4re.org. It seems that these repositories are not updated 
> as 
> frequently as the GitHub repositories, but maybe they serve as a kind of 
> staging area for more stable releases.

The code on github is the development version of L4Re. As you rightly pointed
out the snapshots are considered more stable (API wise etc.). Usually you can
mix projects from github with projects from the snapshot.

> After giving up on using GCC 9, I decided to re-clone repositories in a 
> Debian 
> stable environment. This didn't go very well with the Subversion 
> repositories: 
> after a while of saturating my aging machine's I/O bandwidth, cloning (or 
> checking out) tended to fail. The repomgr script, if re-run, seems to just 
> delete everything and start again, so after a few tries I gave up.
> 
> Meanwhile, using the GitHub repositories failed for different reasons. 
> Previously, I have tended to get "index pack" and "missing object" errors 
> with 
> Git when cloning. There don't seem to be any decent remedies for this, with 
> people suggesting tweaking compression, network, memory and other settings, 
> manually fiddling with the "object database" and other such nonsense. The 
> consensus might be that I do not have a powerful enough machine (only 1GB 
> RAM) 
> to clone even modestly-sized Git repositories.
> 
> Nevertheless, it would be nice to be able to download some kind of release 
> distribution. I somehow doubt that the world really needs to accommodate all 
> the multi-gigabyte Linux kernel clones out there that differ by a few files, 
> either. If I really want to version my modifications against the released 
> code, I can always version control them myself (even using a more coherent 
> version control system if I want).

That usually is what the L4Re snapshots are for. Or you can download ZIP
archives of our projects from github.

> = Roadmaps =
> 
> Such considerations led me to also consider what I have been wanting to use 
> L4Re for and the notion of a roadmap, both my own and that of L4Re itself. It 
> seems to me that L4Re, or parts of it, can form the basis of a usable system 
> in its own right (as opposed to just hosting L4Linux). However, I don't see 
> much development directed towards such a goal. (Actually, I don't really see 
> much L4Re development at all.)
> 
> It seems to me, as I may have mentioned before, that one crucial area of 
> development that would be needed for my purposes is that of providing general-
> purpose filesystem support. To do that, it seems that a few separate issues 
> need attention, amongst them the component architecture required to export 
> file entries and contents to programs, and support in the C library so that 
> programs can access files transparently.
> 
> Since L4Re's filesystem support seems to require linking filesystem-specific 
> libraries against programs and having those programs access filesystem data 
> directly, as far as I can tell, a new component architecture is required. 
> Meanwhile, it seems to me that uClibc, at least in the version offered by 
> L4Re, does not offer a particularly coherent or convenient basis for 
> integrating with such a component architecture.
> 
> Consequently, I spent a fair amount of time last year investigating 
> filesystem 
> component architectures and alternative C library implementations. But I 
> wouldn't mind knowing whether there are plans to remedy these deficiencies in 
> L4Re or whether I should just plug away at such things by myself.
> 
> (I can live with people saying that they don't care about the things that I 
> happen to care about. No-one needs to make excuses here: even the Hurd people 
> seem pretty unmotivated about getting people on board, although it can be 
> said 
> that within certain parameters, they at least have a system that meets their 
> objectives to some degree.)

You are right that no public roadmap for L4Re exists today. But that doesn't
mean there isn't any ;). Currently L4Re is not targeted to become a general
purpose OS.

I would also disagree that there is no L4Re development at all. A fair amount
of development is about stability and robustness. For example we are still
dealing with the fallout of Meltdown and Spectre and the following hardware
vulnerabilities.

> = Some Thoughts =
> 
> It rather looks like the amount of time I have to spend on L4Re-related 
> development will be significantly reduced for the foreseeable future. In some 
> respects, I feel that I have learned quite a bit, but in other respects, I 
> feel that it has been a frustrating exercise to try and get up to speed with 
> L4Re development. (And I hardly want to get started on my Fiasco development 
> experience.)
> 
> Although literature obviously exists about various L4 implementations, I 
> don't 
> feel that the documentation experience is coherent at all. Many of the 
> pertinent details are also obscured by the focus on code-originating 
> reference 
> documentation. And where microkernel-based systems should be emphasising the 
> nature of the interfaces between components, there instead seems to be a 
> policy of hiding such details in the implementation details of various 
> abstractions (implemented multiple times in an almost archaelogical fashion).
> 
> Indeed, this latter policy is quite infuriating because it binds the 
> developer 
> to existing functionality and frameworks unnecessarily. So, when developing 
> my 
> components for low-end devices, I went along with L4Re framework classes due 
> to an incomplete understanding of the IPC mechanisms (which also brought 
> other 
> irritations because those classes assume a more complete understanding), but 
> also because interfacing with other components is not obvious when the 
> protocols are squirreled away across multiple header and implementation files.

Yes, documentation could always be better. In fact we (Kernkonzept) is
searching for a documentation engineer for months. In the end it is about
priorities and unfortunately documentation is currently not our top priority.

> I have even gone as far as to write my own interface description language 
> tool 
> to permit the generation of IPC code and to help emphasise component 
> interfaces and protocols. It seems to me that a lot of the point in having 
> systems that facilitate component-oriented architectures is to make such 
> details explicit, as was indeed emphasised by projects like Spring. 
> Otherwise, 
> everyone might as well be writing stuff for frameworks in the Linux kernel.
> 
> Anyway, I am sure that there are plenty of people developing for and 
> enhancing 
> L4Re who are content with their situation and what they are able to achieve. 
> But I personally feel that opportunities are being missed to apply these 
> technologies to areas where they would make a real (and, crucially, positive) 
> difference.

Would you mind sharing the use-cases you have in mind?

Regards,
Matthias.

> If anyone else (still reading by this point) is even vaguely interested in 
> general-purpose operating system development on L4Re, it would be nice to 
> hear 
> from you.
> 
> Paul
> 
> _______________________________________________
> l4-hackers mailing list
> l4-hackers@os.inf.tu-dresden.de
> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers

-- 
Matthias Lange, matthias.la...@kernkonzept.com, +49-351-41 888 614

Kernkonzept GmbH.  Sitz: Dresden.  Amtsgericht Dresden, HRB 31129.
Geschäftsführer: Dr.-Ing. Michael Hohmuth


_______________________________________________
l4-hackers mailing list
l4-hackers@os.inf.tu-dresden.de
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers

Reply via email to