EuroBSDcon 2017: "travel notes" after the conference
Let me tell you about my experience at EuroBSDcon 2017 in Paris, France. We will see what was presented during the NetBSD developer summit on Friday and then we will give a look to all of the NetBSD and pkgsrc presentations given during the conference session on Saturday and Sunday. Of course, a lot of fun also happened on the "hall track", the several breaks during the conference and the dinners we had together with other *BSD developers and community! This is difficult to describe and I will try to just share some part of that with photographs that we have taken. I can just say that it was a really beautiful experience, I had a great time with others and, after coming back home... ...I miss all of that! :) So, if you have never been in any BSD conferences I strongly suggest you to go to the next ones, so please stay tuned via NetBSD Events. Being there this is probably the only way to understand these feelings!
Thursday (21/09): NetBSD developers dinner
Arriving in Paris via a night train from Italy I
literally sleep-walked through Paris getting lost again and again.
After getting in touch with other developers we had a dinner together and went
sightseeing for a^Wseveral beers!
Friday (22/09): NetBSD developers summit
On Friday morning we met for the NetBSD developers summit kindly hosted by Arolla.
From left to right: alnsn
, sborrill
;
abhinav
; uwe
and leot
;
christos
, cherry
, ast
and
bsiegert
; martin
and khorben
.
The devsummit was moderated by Jörg (joerg
) and organized by
Jean-Yves (jym
).
NetBSD on Google Compute Engine -- Benny Siegert (bsiegert
)
After a self-presentation the devsummit presentations session started with the
talk presented by Benny (bsiegert
) about NetBSD on Google
Compute Engine.
Benny first introduced Google Compute Engine (GCE) and then started describing how to run NetBSD on it.
At the moment there are no official NetBSD images and so users need to create their own. However, netbsd-gce script completely automatize this process that:
- uses Anita to stage an installation in QEMU
- adjust several tweaks to ensure that networking and storage will work on GCE
- packs the image into a
.tar.gz
file
The .tar.gz
image then just need to be uploaded to a Cloud Storage
bucket, create a GCE image from it and then launch VMs based on that image.
He also discussed about GCE instance metadata, several problems founds and how they were fixed (it's better to use NetBSD 8_BETA or -current!) and some future works.
For more information slides (PDF) of the talk are also available.
Scripting DDB with Forth -- Valery Ushakov (uwe
)
Valery (uwe
) presented a talk about Scripting DDB
with Forth. It was based on a long story and actually the
first discussion about it appeared on
tech-kern@
mailing list in his
Scripting DDB in Forth?
thread (ddb(4)
is the NetBSD in-kernel debugger).
He showed how one can associate forth commands/conditions with ddb breakpoints. He used "pid divisible by 3" as an example of condition for a breakpoint set in getpid(2) system call:
db{0}> forth ok : field create , does> @ + ; ok #300 field lwp>l_proc ok #120 field proc>p_pid ok : getpid curlwp lwp>l_proc @ proc>p_pid @ ; ok : checkpid getpid dup ." > PID IS " . cr 3 mod 0= ; ok bye -- STACK: <empty> db{0}> break sys_getpid_with_ppid db{0}> command . = checkpid db{0}> c
...and then on a shell:
# (:) fatal breakpoint trap in supervisor mode trap type 1 code 0 eip 0xc090df89 cs 0x8 eflags 0x246 cr2 0xad8ef2c0 ilevel 0 esp 0xc0157fbd curlwp 0xc2b5c2c0 pid 798 lid 1 lowest kstack 0xdabb42c0 > PID IS 798 -- STACK: 0xffffffff -1 Breakpoint in pid 798.1 (ksh) at netbsd:sys_getpid_with_ppid: pushl %ebp db{0}> c # (:) fatal breakpoint trap in supervisor mode trap type 1 code 0 eip 0xc090df89 cs 0x8 eflags 0x246 cr2 0xad8ef2c0 ilevel 0 esp 0xc0157fbd curlwp 0xc2b5c2c0 pid 823 lid 1 lowest kstack 0xdabb42c0 > PID IS 823 -- STACK: 0x00000000 0 Command returned 0 #
If you are more interested in this presentation I strongly suggest to also give
a look to uwe
's
forth Mercurial repository.
News from the version control front -- Jörg Sonnenberger (joerg
)
The third presentation of the devsummit was a presentation about the recent work done by
Jörg (joerg
) in the VCS conversions.
Jörg started the presentation discussing about the infrastructure used for the CVS -> Fossil -> Git conversion and CVS -> Fossil -> Mercurial conversion.
It's worth also noticing that the Mercurial conversion is fully integrated and is regularly pushed to Bitbucket and src repository pushed some scalability limits to Bitbucket!
Mercurial performance were also compared to the Git ones in details for several operations.
A check list that compared the current status of the NetBSD VCS migration to the FreeBSD VCS wiki one was described and then Jörg discussed the pending work and answered several questions in the Q&A.
For more information please give a look to the
joerg
's presentation slides (HTML).
If you would like to help for the VCS migration please also get in touch with
him!
Afternoon discussions and dinner
After the lunch we had several non-scheduled discussions, some time for hacking, etc. We then had a nice dinner together (it was in a restaurant with a very nice waiter who always shouted after every order or after accidently dropping and crashing dishes!, yeah! That's probably a bit weird but I liked that attitude! :)) and then did some sightseeing and had a beer together.
From left to right: uwe
, bad
, ast
,
leot
, martin
, abhinav
,
sborrill
, alnsn
, spz
.
From left to right: uwe
, bad
, ast
,
christos
, leot
, martin
,
sborrill
, alnsn
, spz
.
Saturday (23/09): First day of conference session and Social Event
A Modern Replacement for BSD spell(1) -- Abhinav Upadhyay (abhinav
)
Abhinav (abhinav
) presented his work on the new
spell(1)
implementation he's working (that isn't just a spell
replacement
but also a library that can be used by other programs!).
He described the current limitations of old spell(1)
(to get an
idea please give a look to bin/48684),
described the project goals of the new spell(1)
, additions to
/usr/share/dict/words
, digged a bit in the implementation and
discussed several algorithms used and then provided a performance comparison
with other popular free software spell checkers
(aspell,
hunspell and ispell).
He also showed an interactive demo of the new spell(1)
in-action
integrated with a shell for auto-completion and spell check.
If you would like to try it please give a look to
nbspell Git repository
that contains the code and dicts for the new spell(1)
!
Video recording (YouTube) of the talk and slides (PDF) are also available!
Portable Hotplugging: NetBSD's uvm_hotplug(9) API development -- Cherry G. Mathew (cherry
)
Cherry (cherry
) presented recent work done with Santhosh N.
Raju (fox
) about
uvm_hotplug(9).
The talk covered most "behind the scenes" work: how TDD (test driven
development) was used, how uvm_hotplug(9)
was designed
and implemented (with comparisons to the old implementation),
interesting edge cases during the development and how
atf(7)
was used to do performance testing.
It was very interesting to learn how Cherry and Santhosh worked on that and on the conclusion Cherry pointed out the importance of using existing Software Engineering techniques in Systems Programming.
Video recording (YouTube) and slides (PDF) of the talk are also available!
Hardening pkgsrc -- Pierre Pronchery (khorben
)
Pierre (khorben
) presented a talk about recent pkgsrc security
features added in the recent months (and most of them also active on the just
released pkgsrc-2017Q3
!).
He first introduced how security management and releng is handled
in pkgsrc, how to use
pkg_admin(1)
fetch-pkg-vulnerabilities
and audit
commands, etc.
Then package signatures (generation, installation) and recent hardening features in pkgsrc were discussed in details, first introducing them and then how pkgsrc handles them:
- SSP: Stack Smashing Protection (enabled via
PKGSRC_USE_SSP
inmk.conf
) - Fortify (enabled via
PKGSRC_USE_FORTIFY
inmk.conf
) - Stack check (enabled via
PKGSRC_USE_STACK_CHECK
inmk.conf
) - Position-Independent Executables (PIE) (enabled via
PKGSRC_MKPIE
inmk.conf
) - RELRO and BIND_NOW (enabled via
PKGSRC_USE_RELRO
inmk.conf
)
Challenges for each hardening features and future works were discussed.
For more information video recording (YouTube) and slides (PDF) of the talk are available. A good introduction and reference for all pkgsrc hardening features is the Hardening packages wiki page.
Reproducible builds on NetBSD -- Christos Zoulas (christos
)
Christos (christos
) presented the work about reproducible builds on
NetBSD.
In his talk he first provided a rationale about reproducible builds (to learn
more please give a look to
reproducible-builds.org!), he
then discussed about the NetBSD (cross) build process, the
current status
and build variations that are done in the tests.reproducible-builds.org
build machines.
Then he provided and described several sources of difference that were present in non-reproducible builds, like file-system timestamps, parallel builds headaches due directory/build order, path normalization, etc. For each of them he also discussed in details how these problems were solved in NetBSD.
In the conclusion the status and possible TODOs were also discussed (please note
that both -current
and -8
are all built with
reproducible flags (-P
option of build.sh
)!)
Video recording (YouTube) of Christos' talk is available. Apart the resources discussed above a nice introduction to reproducible builds in NetBSD is also the NetBSD fully reproducible builds blog post written by Christos last February!
Social event
The social event on Saturday evening took place on a boat that cruised on the Seine river.
It was a very nice and different way to sightsee Paris, eat and enjoy some drinks and socialize and discuss with other developers and community.
Sunday (24/09): Second day of conference session
The school of hard knocks - PT1 -- [anonymous]
[anonymous] presented a talk about several notes and lessons learnt whilst running tutorials to introduce NetBSD at several events (OSHUG #46 and OSHUG #57 and #58) and experiences from past events (Chiphack 2013).
He described problems a user may experience and how NetBSD was introduced, in particular trying to avoid the steep learning curve involved when experimenting with operating systems as a first step, exploring documentation/source code, cross-building, scripting in high-level programming languages (Lua) and directly prototyping and getting pragmatic via rump.
The LLDB Debugger on NetBSD -- Kamil Rytarowski (kamil
)
Kamil (kamil
) presented a talk about the recent LLDB debugger and a
lot of other related debuggers (but also
non-strictly-related-to-debugging!) works he's doing in the last
months.
He first introduced debugging concepts in general, provided several examples and then he started discussing LLDB porting to NetBSD.
He then discussed about
ptrace(2)
and other introspection interfaces, the several improvements done and tests
added for ptrace(2)
in
atf(7).
He also discussed about tracking LLDB's trunk (if you are more curious please
give a look to wip/llvm-git
,
wip/clang-git
, wip/lldb-git
packages in pkgsrc-wip!) and about LLVM sanitizers
and their current status in NetBSD.
In the conclusion he also discussed various TODOs in these areas.
Video recording (YouTube) and slides (HTML) of Kamil's talk are available. Kamil also regularly write status update blog posts on blog.NetBSD.org and tech-toolchain@ mailing list, so please stay tuned! :)
What's in store for NetBSD 8.0? -- Alistair Crooks (agc
)
Alistair (agc
) presented a talk about what we will see in NetBSD
8.0.
He discussed about new hardware supported (really "new", not new "old" hardware!
Of course also support for VAXstation 4000 TURBOchannel USB and GPIO is actually
new hardware as well! :)), LLVM/Clang, virtualization, PGP signing, updated
utilities in NetBSD, new networking features (e.g. bouyer
's
sockcan
implementation), u-boot
,
dtrace(1),
improvements and new ports testing, reproducible builds,
FDT (Flattened Device Tree) and a lot of other news!
The entire presentation was done using the Socratic method (Q&A) and it was very interactive and nice!
Video recording (YouTube) and slides (PDF) of Alistair's talk are available.
Sunday dinner
After the conference we did some sightseeing in Paris, had a dinner together and then enjoyed some beers!
On the left side: abhinav
, ast
, seb
, christos
On the right side: leot
, Riastradh
, uwe
, [anonymous], agc
, sborrill
On the left side: martin
, ast
, seb
, christos
On the right side: leot
, Riastradh
, uwe
, [anonymous], agc
, sborrill
Conclusion
It was a very nice weekend and conference. It is worth to mention that EuroBSDcon 2017 was the biggest BSD conference (more than 300 people attended it!).
I would like to thank the entire EuroBSDcon organising committee (Baptiste Daroussin, Antoine Jacoutot, Jean-Sébastien Pédron and Jean-Yves Migeon), EuroBSDcon programme commitee (Antoine Jacoutot, Lars Engels, Ollivier Robert, [anonymous], Jörg Sonnenberger, Jasper Lievisse Adriaanse and Janne Johansson) and EuroBSDcon Foundation for organizing such a wonderful conference!
I also would like to thank the speakers for presenting very interesting talks, all developers and community that attended the NetBSD devsummit and conference, in particular Jean-Yves and Jörg, for organizing and moderating the devsummit and Arolla that kindly hosted us for the NetBSD devsummit!
A special thanks also to Abhinav (abhinav
) and Martin
(martin
) for photographs and locals Jean-Yves (jym
)
and Stoned (seb
) for helping us in not get lost in Paris'
rues! :)
Thank you!
[2 comments]
Posted by reed on October 11, 2017 at 06:23 PM UTC #
Posted by leot on October 12, 2017 at 09:25 AM UTC #