.. BSD from scratch - from source to OS with ease on NetBSD slides file, created by hieroglyph-quickstart on Fri Feb 2 05:55:13 2018. ======================================================== BSD from scratch - from source to OS with ease on NetBSD ======================================================== Sevan Janiyan - sevan @ {pkgsrc,NetBSD,FreeBSD}.org https://www.geeklan.co.uk/files/fosdem2018-bsd Intro / History =============== - http://oshug.org/event/46 - http://oshug.org/event/57 - http://oshug.org/event/58 .. image:: /_static/oshug.png :align: center Chiphack 2013 ============= - http://chiphack.org/ - No shout out to Altera .. image:: /_static/chiphack.png :align: center myStorm ======= - Shout out to myStorm https://mystorm.uk - http://www.clifford.at/icestorm/ .. image:: /_static/mystorm.jpg :align: center Situation doesn't get better ============================ .. image:: /_static/xilinx.png :align: center Why === .. rst-class:: build - To raise expectations - To demontstrate respect by saving time Steep learning curve ==================== .. image:: /_static/fullstack.png :align: center https://twitter.com/kevinbowling1/status/889003434967355393 Resources are available ======================= - Stevens series (APUE, TCP/IP Illustrated...) - K&R - The C Programming Language - Design and Implementation of BSD / FreeBSD - CS631 - Advanced Programming in the UNIX Environment - Teaching Operating Systems with Tracing - teachbsd.org Brittle tools ============= .. rst-class:: build - Brendan Gregg - Shouting in the Datacentre - Bret Victor - Inventing on Principle. - Bryan Cantrill - Visualizing DTrace: Sun Storage 7000 Analytics, LISA '09 :) == .. figure:: /_static/nested.png :class: centre https://twitter.com/colinstrickland/status/866697367009071104 Poor tools harbor bad habbits ============================= - Fear of restarting? - Fear of change / feature creep - Fear to explore ideas - No room to manoeuvre (redundancy a licensed feature?) Manifest drastic measures ========================= .. rst-class:: build - serverless - eunuch kernel - no-ops - antikernel - Popping Kernels, Choosing between programming in the kernel or in user space https://queue.acm.org/detail.cfm?id=3180444 - A Generation Lost in the Bazaar https://queue.acm.org/detail.cfm?id=2349257 What ==== .. rst-class:: build - Constraint is how do you make someone's life easier who is not interested in software - Ignore the software internal features and present ideas which benefit a user without detailed context How === .. rst-class:: build - Explore documentation - Explore source repo - Cross compilation with ease - Highlevel language interface to system, in this case Lua - Rapid prototyping on desktop with rump - Working locally using simulation - Tamper resistance Clumsiness ========== .. rst-class:: build - Ditch serial access On Linux, install UUCP package for cu(1) chown uucp:uucp /dev/ttyUSB0 - Can be worse on OS X (install unsigned kexts) - Building GCC with Clang HOST_CXXFLAGS="-fbracket-depth=512 -O2" - Switch to network access with mDNS discovery Bugs ==== .. rst-class:: build - Autoconf hell - Unbootable images - Driver bug fixes - Variations in kernel configuration - Broken u-boot scripts New changes since started ========================== .. rst-class:: build - Lua subsystem improvements - Marc Balmer (mbalmer) - u-boot packages in pkgsrc/sysutils/u-boot-* - Jared McNeill (jmcneill) - Veriexec improvements Todo ==== .. rst-class:: build - Improve documentation - Extend lua & rump examples - Implement a mechanism to add a user for network access - luaunix - A Lua binding for various Unix functions and system calls https://github.com/arcapos/luaunix - Add a testing exercise? (ATF / Anita) Thanks to ========= - Andrew Back (@9600) - Open Source Hardware User Group (OSHUG) - BCS Open Soure Special Interest Group (BCS OSSG) - London Hack Space NetBSD developers: - Marc Balmer (mbalmer) - Paul Goyette (pgoyette) - Nick Hudson (skrll) - Jared McNeill (jmcneill) Questions ========= "Do Microsoft users get to go where they want today?" - Bruce Sterling