Modernizing Desktop Linux Development

Total Page:16

File Type:pdf, Size:1020Kb

Modernizing Desktop Linux Development Modernizing Desktop Linux Development Christian Hergert Principle Software Engineer [email protected] @hergertme TM Desktop Linux Development • Mostly in C/C++ • Build systems from last millennium that are a mess • Every desktop deployment is bespoke and developers throw their hands up and close -EW!"#$%!RME • &pps are shipped on O$ release cycle' lucky if we get security updates at all after initial release • Debugging in the wild is nearly impossible • We value independence which can cause fragmentation TM Why Modernize? • )otential contributors skip past us after it*s too difficult to setup workstation for development • We need new lifeblood to keep desktop Linu- going and new contributors have more e-pectations • !ur current level of fragmentation makes it hard to write polished software and results in more bugs • .raining contributors is comple- and time consuming • Be more e+cient with our time so each of us can do more TM Can we… • Maintain independence while reducing fragmentation? • $eparate applications from the O$ without losing long- term stability? • Empower software vendors to ship better software to more users in less time/ • Be a playground for ambitious ideas without sacrificing stability of the platform/ TM Why is it hard to contribute? • ,acking or missing documentation • Dependency incompatibility for application vs platform or even between two separate applications • Wide-scale app distribution is hard and costly' so most don’t and certainly not across every distro • Workstation setup is a really high bar for newcomers • %ragmentation leaves contributors confused about which and what platforms to support and to what degree TM Why is it hard to contribute? • $hifting and different priorities between pro2ects • $ystems comple-ity and overlapping concerns between unrelated pro2ects • ,ack of training materials • .oo many technologies to learn at once TM What makes setup difficult? • New contributors often ask what Linu- distribution to use so that they match others setup, out of frustration • Dependencies for development outpace stable O$ • Bespoke O$ deployments result in many WFM bugs • 4etting working stack traces often puts people at odds with distribution compiler 5ags TM !as the ecosystem changed? • Continuous integration • Valgrind/&$an/.$an/7B$an more ubi8uitous • 4it' Gitlab' Github have by-and-large won • Containers are everywhere • )rogramming language diversity • Device and interface diversity (laptop, desktop' mobile' Io.; • Cross-toolchains generally work now • 4,/EGL/Vulkan can now be relied on TM What changes can we expect? • Immutable base !$ with reliable O$ updates (Chrome!$ and Silverblue already here' albeit different designs; • Containers for applications becomes almost necessary • $tricter sandbo-es for user privacy and security • Even more kinds of computing devices (possibly at the e-pense of generali<ed computing devices; • New models of privileged access 9less sudo' more implied access via work5ow) • More language diversity as O$ vendors are less involved TM So what is this Builder thing? • 4reat app with a terrible name (my fault' sorry) • ,ikely the 0rst container-native IDE • Memory conscientious (written in C' read-only mmap(; search inde-es' fancy data-structures when appropriate; • Every &)I of consequence is asynchronous by design • %ast b-tree and rope-based te-t editor with overview maps and buttery smooth scrolling' even on Hi()I systems • Integrated UI designer based on Glade TM So what is this Builder thing? • Integration points can be e-tended with plugins written in C/C++' Python, or Vala= Rust support is not far away= • 7nit test integration for build systems • Debugger integration (currently 2ust gdb' but language specific debugger plugins are welcomed; • )ro0ler based on the perf-based Sysprof pro0ler • Completion, diagnostics' fi--its • .erminal access to host' build environment' or runtime TM So what is this Builder thing? • >? build systems supported and counting • Easy installation of Builder via Flatpak in two clicks • Manage developer $(#s to simplify system setup – which can now be done in minutes rather than evenings • Code-inde-ers with lightening fast fu<<y-search • Non-opinionated on developer*s language choice • Multi-monitor support • $emantic indentation, code-formatting, highlighting TM So what is this Builder thing? • Code e-ecution abstractions to allow for cross-architecture e-ecution (qemu-user-static with flatpak supported natively; • Device abstractions to quickly setup cross-compilation • Deployment A):s for plugins to support e-ecution on non- local systems TM Improving Builder $mproves the Platform TM Is contributing easier? • )reserves independenceA bring your own distribution, thanks to %latpak • Easy install from gnome-software' 5athub=org, or an app market near you • 4etting a shared toolchain is automatically handled for you and your newcomers • !ne-click to clone common 43!ME apps= One more to build, run or debug • Reducing time to 0rst patch boosts contributor funnel TM What challenges come with a container native $DE? TM Challenges - P)* • $haring pseudo-terminals across pid namespaces is tricky • %( passing P.B outside of direct fork9;/e-ec9; requires e-tra setup for controlling P.B (.:!CSC..B ioctl) • $ome shells like C$H want to coordinate between instances and that breaks with multiple pty-namespaces • 4uessing the users preferred shell requires checking passwd/getent on the host • 7sers e-pect a shell for their host system' but also for the build container' runtime container' etc TM Challenges – FD Passing • %( passing is a convenient way to share information between processes' particularly when shared memory is not an option • If you cross pid/mount/network namespaces' you can e-ec(; processes and still have access to stdin/out/err • :)C with container for high-bandwidth communication • )odman recently added FD passing support for us TM Challenges – Path Translation • Di1erent tooling may need to access files outside of container (symbols' debugger sources' etc; • )aths inside the container and outside the container may differ (or even clash with host system; • $ome additional work could be re8uired to translate based on path such as /usr vs /app in Flatpak • .ooling that runs in the IDE may use di1erent paths than tooling that runs inside build container TM Challenges – Debugging • Currently we use gdb' but more backends will be supported in the future= That re8uires some abstraction from the start= • )assing F( for ).B to be used by inferior • Control gdb using primary ).B (using gdbwire+MI2; • But where does gdb binary come from • Where do application symbols come from' and does the ( &"% data (including absolute/relative paths match/; • How about __FILE__ and other paths to sources/ TM Challenges – Profiling • Currently we use Sysprof' another pro2ect of mine based on ,inu--kernel perf • $ymbol access has similar problems to gdb' we have to resolve that based on pro2ect information • Resolving functions based on instruction-pointer+EL% still requires further resolution when symbols in e-ternal file • Containers usually have P."&CE/perf disabled' so we need coordiantion from the host (sysprofd in our case; • $omeday' we want to provide sysprofd from Builder flatpak TM Challenges – Execution • 7ser namespaces should be usable' but lots of CVE means that it*s often disabled by default on major distributions • $uid helpers can help work around this (bubblewrap) but not after userns capability is dropped • %latpak session helper allows Builder to e-ecute programs available on the host (bash' getent' 5atpak' etc; • Can chain features to also get podman-e-ec' jhbuild-run, and whatever is ne-t TM Language Servers TM Language Servers – The Good • Convenient way to share code between IDEs and Editors • &llows tooling to run in container matching the build environment which can simplify server greatly at cost of complicating build environment • When combined with Flatpak S(# e-tensions' we can get automated setup of comple- languages out-of-the-bo-= Relying on user-setup would basically guarantee nobody will use them= • .he protocol itself is reasonably good TM Language Servers – The Bad • F$!3 is laughably ine+cient when dealing with large data sets like clang completion results' especially when client- side 0ltering is required • F$!3 parsers can result in memory fragmentation unless you are very careful, resulting in lots of small strings on the heap or more fragmentation w/ unpredictable lifetimes • Builder*s internal language servers optionally use GVariant for zero-parse structures and good memory slice reuse= &lso can reference strings inline from the message • Many of the language servers out there are brittle at best TM SDKs TM SDK Management • %latpak and !$.ree based • $(# e-tensions allow for e-tra build components that are useful' but specialized' thereby keeping base $(# smaller • Containerized 9using flatpak/bubblewrap) • .oolchains' libraries' debuggers' build systems' all shared by your development team' completely eliminating comple- system setup • Incremental S(# updates using O$.ree diffs/static-deltas • 43!ME Software can keep S(#s up-to-date too TM 0")ree • ,ike git for binaries • Incremental updates by diff of 2 versions • Gstatic deltasH provide optimized, pre-compiled diff between two versions for very fast downloads= Typically generated for N->' N-D releases • Content addressed for automatic deduplication • Hard-link farm design means low-overhead and works on any P!$:I compliant file-system (but better
Recommended publications
  • Fira Code: Monospaced Font with Programming Ligatures
    Personal Open source Business Explore Pricing Blog Support This repository Sign in Sign up tonsky / FiraCode Watch 282 Star 9,014 Fork 255 Code Issues 74 Pull requests 1 Projects 0 Wiki Pulse Graphs Monospaced font with programming ligatures 145 commits 1 branch 15 releases 32 contributors OFL-1.1 master New pull request Find file Clone or download lf- committed with tonsky Add mintty to the ligatures-unsupported list (#284) Latest commit d7dbc2d 16 days ago distr Version 1.203 (added `__`, closes #120) a month ago showcases Version 1.203 (added `__`, closes #120) a month ago .gitignore - Removed `!!!` `???` `;;;` `&&&` `|||` `=~` (closes #167) `~~~` `%%%` 3 months ago FiraCode.glyphs Version 1.203 (added `__`, closes #120) a month ago LICENSE version 0.6 a year ago README.md Add mintty to the ligatures-unsupported list (#284) 16 days ago gen_calt.clj Removed `/**` `**/` and disabled ligatures for `/*/` `*/*` sequences … 2 months ago release.sh removed Retina weight from webfonts 3 months ago README.md Fira Code: monospaced font with programming ligatures Problem Programmers use a lot of symbols, often encoded with several characters. For the human brain, sequences like -> , <= or := are single logical tokens, even if they take two or three characters on the screen. Your eye spends a non-zero amount of energy to scan, parse and join multiple characters into a single logical one. Ideally, all programming languages should be designed with full-fledged Unicode symbols for operators, but that’s not the case yet. Solution Download v1.203 · How to install · News & updates Fira Code is an extension of the Fira Mono font containing a set of ligatures for common programming multi-character combinations.
    [Show full text]
  • The Next-Gen Apertis Application Framework 1 Contents
    The next-gen Apertis application framework 1 Contents 2 Creating a vibrant ecosystem ....................... 2 3 The next-generation Apertis application framework ........... 3 4 Application runtime: Flatpak ....................... 4 5 Compositor: libweston ........................... 6 6 Audio management: PipeWire and WirePlumber ............ 7 7 Session management: systemd ....................... 7 8 Software distribution: hawkBit ...................... 8 9 Evaluation .................................. 8 10 Focus on the development user experience ................ 12 11 Legacy Apertis application framework 13 12 High level implementation plan for the next-generation Apertis 13 application framework 14 14 Flatpak on the Apertis images ...................... 15 15 The Apertis Flatpak application runtime ................. 15 16 Implement a new reference graphical shell/compositor ......... 16 17 Switch to PipeWire for audio management ................ 16 18 AppArmor support ............................. 17 19 The app-store ................................ 17 20 As a platform, Apertis needs a vibrant ecosystem to thrive, and one of the 21 foundations of such ecosystem is being friendly to application developers and 22 product teams. Product teams and application developers are more likely to 23 choose Apertis if it offers flows for building, shipping, and updating applications 24 that are convenient, cheap, and that require low maintenance. 25 To reach that goal, a key guideline is to closely align to upstream solutions 26 that address those needs and integrate them into Apertis, to provide to appli- 27 cation authors a framework that is made of proven, stable, complete, and well 28 documented components. 29 The cornerstone of this new approach is the adoption of Flatpak, the modern 30 application system already officially supported on more than 20 Linux distribu- 1 31 tions , including Ubuntu, Fedora, Red Hat Enterprise, Alpine, Arch, Debian, 32 ChromeOS, and Raspian.
    [Show full text]
  • Builder Documentation Release 3.26.0
    Builder Documentation Release 3.26.0 Christian Hergert, et al. Sep 13, 2017 Contents 1 Contents 3 1.1 Installation................................................3 1.1.1 via Flatpak...........................................3 1.1.1.1 Command Line....................................3 1.1.2 Local Flatpak Builds......................................4 1.1.3 via JHBuild...........................................4 1.1.3.1 Command Line....................................4 1.1.4 via Release Tarball.......................................5 1.1.5 Troubleshooting.........................................5 1.2 Exploring the Interface..........................................5 1.2.1 Project Greeter.........................................6 1.2.2 Workbench Window......................................6 1.2.3 Header Bar...........................................7 1.2.4 Switching Perspectives.....................................7 1.2.5 Showing and Hiding Panels...................................7 1.2.6 Build your Project........................................7 1.2.7 Editor..............................................9 1.2.8 Autocompletion......................................... 11 1.2.9 Documentation......................................... 11 1.2.10 Splitting Windows....................................... 12 1.2.11 Searching............................................ 14 1.2.12 Preferences........................................... 15 1.2.13 Command Bar.......................................... 16 1.2.14 Transfers...........................................
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]
  • Projet À Long Terme Plateforme Liberapay
    Campagne de financement pour GtkSourceView Posté par Sébastien Wilmet (page perso) le 18/09/17 à 14:37. Modéré par Xavier Claude. Licence CC by-sa Tags : gtksourceview, gtk+, gnome, financement, liberapay GtkSourceView est une bibliothèque GNOME qui étend GtkTextView, le widget GTK+ standard pour l'édition de texte sur plusieurs lignes. La fonctionnalité principale de GtkSourceView est la coloration syntaxique, mais il y a de nombreuses autres fonctionnalités : le chargement et la sauvegarde de fichiers, la recherche et remplacement, l'auto-complétion, le undo/redo, afficher les numéros de ligne, etc. C'est une bibliothèque largement utilisée. Par exemple dans Debian, GtkSourceView est utilisée par plus de 50 applications, dont notamment gedit et GNOME Builder. Si vous voulez donner un coup de pouce au projet, il y a maintenant une campagne de financement ! Page web de GtkSourceView (157 clics) Campagne de financement sur Liberapay (135 clics) Le mainteneur de GtkSourceView — celui qui a lancé la campagne de financement — est cette même personne qui est en train d'écrire ces lignes de cette dépêche ; oui, je suis francophone :-) Pour donner un peu plus de contexte, je travaille à mi-temps en tant que programmeur dans une université (j'ai terminé mes études il n'y a pas longtemps). Ce qui me permet de continuer mes projets dans GNOME en tant qu'indépendant. Je suis le seul mainteneur restant de GtkSourceView, les autres mainteneurs n'ayant plus assez de temps libre pour contribuer. Donc l'avenir de cette bibliothèque repose en quelque sorte entre mes mains. Projet à long terme Outre la maintenance de code, le projet que j'ai à long terme pour GtkSourceView est de faciliter le développement d'éditeurs de texte, en créant des APIs de plus haut niveau et en fournissant davantage de fonctionnalités.
    [Show full text]
  • GNOME Foundation Fiscal Year 2015 Annual Report in This Report
    GNOME Foundation Fiscal Year 2015 Annual Report In This Report Letter from the GNOME Foundation ............................ 1 Shaun McCance GNOME Never Stops ...................................................... 2 Jean-François Fortin Tam Releases ........................................................................... 4 Allan Day Events Hackfests ..................................................................... 5 Cosimo Cecchi Conferences ................................................................ 8 Rosanna Yuen Financial Report ............................................................ 10 Rosanna Yuen Flatpak: the evolution of packaging software and apps ...... 12 Editor in chief: Adelia Rahim Christian Hergert Coordination & proofreading: Adelia Rahim, Nuritzi Sanchez, Rosanna Yuen Outreach ........................................................................ 14 Marina Zhurakhinskaya Photos: Alexandre Franke, Bin Li, Cassidy James Blaede, Garrett Lesage, Accessibility ................................................................... 15 Juanjo Marin, Matthias Clasen, Patricia Paola Di Negro, Juanjo Marin Rashi Aswani, Tobias Mueller, Victor Jáquez Photo hunting: Cassandra Sanchez Friends of GNOME ........................................................ 16 and Jean-François Fortin Tam Advisory Board ............................................................. 17 Design & Prepress: Jean-François Fortin Tam Letter from the GNOME Foundation 2015 has been an exciting year for GNOME development, bringing an increased
    [Show full text]
  • THE YEAR of LINUX 2015 the YEAR of LINUX This Year Is Set to Be the Best Ever for Linux – and That’S Not Just Our Opinion
    2015: THE YEAR OF LINUX 2015 THE YEAR OF LINUX This year is set to be the best ever for Linux – and that’s not just our opinion. Some of the biggest players in Free Software think so too… here’s a long-running joke in the Linux world, market where Linux dominates thanks to Android – that the next year will be the year of “Linux on and the server space became even bigger thanks to Tthe desktop”. At first it was a serious “cloud” computing, software/platform/infrastructure proposition: back in the early 2000s, it looked like the as a service, and the growth of web apps. operating system was poised to take a significant So Linux is, today, by far the most prevalent and chunk of desktop marketshare. Microsoft was important operating system in the world. It’s a long struggling with major security problems in Windows, way from being on every home desktop PC, but the Apple’s Mac OS X had barely gotten off the ground, next 12 months have plenty in store, and so for our and there was clearly room for something better. first issue of the year we want to look ahead at the So why didn’t Linux dive in and win millions of goodies to come. But we don’t just want to wax users? Well, it did, just in another way. Microsoft lyrical about our favourite projects here; we also want started to take security more seriously, and OS to hear from some of the biggest names in Linux X emerged as a shiny Unix-like OS that appealed and Free Software about what they’re most looking to many geeks.
    [Show full text]
  • 1 Arch GNU/Linux 2 Fedora 3 Debian and Ubuntu 4 OS X
    Handout 1: Installation 1 We first need to install the tools necessary for program development. These are among others: • A compiler for the C programming language such as gcc or clang, • a proper text editor like gedit or gnome-builder, • the GTK+ library and its dependencies as well as • a few other useful tools (debugger, Autotools, …). 1 Arch GNU/Linux The following terminal command installs the tools: # pacman -Syu --needed base-devel gtk3 gnome-builder git gdb valgrind 2 Fedora The following terminal commands install the tools: $ sudo dnf upgrade $ sudo dnf groups install "Development␣Tools" $ sudo dnf groups install "C␣Development␣Tools␣and␣Libraries" $ sudo dnf install gtk3-devel gnome-builder 3 Debian and Ubuntu The following terminal commands install the tools: $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install build-essential autoconf git valgrind libgtk-3-dev gtk-3-examples gnome-builder 4 OS X You need to install XCode from the Mac App Store and launch it. Then enter the following commands in Terminal.app: Handout 1: Installation 2 $ curl https :// git .gnome.org/browse/gtk−osx / p l a i n / gtk−osx−build −setup.sh > gtk−osx−build −setup . sh $ chmod +x gtk−osx−build −setup . sh $ . / gtk−osx−build −setup.sh # maybe execute twice $ echo ’export PATH=”$PATH:~/. local/bin” ’ >> ~/.bash_profile $ . ~/.bash_profile $ sudo mkdir /usr/local/bin $ sudo ln −s /usr/bin/python2.7 /usr/local/bin/python2 $ jhbuild bootstrap $ jhbuild build meta−gtk−osx−bootstrap meta−gtk−osx−gtk3 $ jhbuild shell Details see: https://wiki.gnome.org/Projects/GTK+/OSX 5 Windows For many free Unix programs there are Windows versions as well.
    [Show full text]
  • Linuxforbiologists.Pdf
    Linux for Biologists A Cookbook Vimalkumar Velayudhan First edition June 9, 2021 This work is licensed under Attribution‑NonCommercial‑ShareAlike 4.0 International. To view a copy of this license, visit http://creativecommons.org/licenses/by‑nc‑sa/4.0/ For Shanthi Thanks I would like to express my gratitude to my mentors, colleagues, students, friends and family. Without their support and encouragement, this book wouldn’t have been possible. Thanks also to the wonderful world of Linux and open source software and the community around it. i ii Contents 1 About this book 1 1.1 Who is it for? .................... 2 1.2 What you will learn ................. 3 1.3 What you will need ................. 4 1.3.1 Linux desktop ............... 5 1.3.2 Administrator privileges ......... 7 1.4 About the author .................. 8 2 Getting started with Linux 9 2.1 Linux — an overview ................ 10 2.1.1 Linux distribution ............. 11 2.1.2 Desktop environment ........... 12 2.1.3 Ways to run a Linux desktop ....... 17 2.2 Running a Linux virtual machine ......... 18 2.2.1 Requirements ............... 19 2.2.2 Importing the virtual machine image .. 22 2.2.3 Starting the virtual machine ....... 28 2.2.4 Stopping the virtual machine ....... 30 iii 2.3 The desktop ..................... 31 2.3.1 The Cinnamon desktop .......... 32 2.3.2 Changing system settings ......... 33 2.4 Available software ................. 36 2.4.1 Files — manage files and directories ... 38 2.4.2 Firefox — browse the web ......... 41 2.4.3 Text Editor — create and edit text files .. 42 2.4.4 LibreOffice — edit documents and spread‑ sheets ..................
    [Show full text]
  • Announcement
    Announcement 17 articles, 2016-08-29 12:00 1 GNOME Builder 3.22 Enters Beta with Many Vim Improvements, New Search & Replace GNOME Builder 3.21.90 is now available for public testing (1.00/1) 2016-08-28 23:45 2KB news.softpedia.com 2 Website of Sri Lanka's President Defaced by Local Hacktivists Hackers seem to be teenagers based on the defacement message 2016-08-29 02:30 1KB news.softpedia.com 3 It looks like Microsoft won't be making its summer deadline for the new Outlook.com Some users are reporting that they are seeing an error message when attempting to share their calendar which says that the upgrade to the new Outlook.com should be finished by early 2017. 2016-08-29 01:40 2KB feedproxy.google.com 4 Hacker Pleads Guilty For "Sextortion" of over a Dozen of Female Victims Hacker under arrest since mid-March 2016 2016-08-29 01:15 2KB news.softpedia.com 5 'Subway Reads' gives NYC straphangers free e-book shorts and excerpts Have you ever been on an NYC subway? If not, let me tell you -- it is often horrible. Air conditioning can be broken, leading to high temperatures. Even worse, some people bring their food below ground, resulting in a stinky train car... 2016-08-28 23:53 3KB feeds.betanews.com 6 Shad0wS3C Leaks Data from Paraguay's Government Hackers breach Paraguay's Secretary of National Emergency 2016-08-28 23:45 2KB news.softpedia.com 7 Flatpak Universal Linux Package Supports Local Path References for Git Sources Flatpak 0.6.9 better handles recursive Git submodules 2016-08-28 23:20 2KB news.softpedia.com 8 Debian-Based Q4OS
    [Show full text]
  • Using GNOME OS on Real Hardware
    Using GNOME OS on real hardware Valentin David GUADEC 2020 July 22nd Valentin David ( ) GNOME OS on hardware GUADEC 2020 1 / 27 Table of Contents 1 What is GNOME OS? 2 ARM 64 3 x86 64 4 Experience using GNOME OS 5 How to get it Valentin David ( ) GNOME OS on hardware GUADEC 2020 2 / 27 What is GNOME OS? Bootable image deliverable of GNOME releases and continous builds Application developers: test their applications before release Release process itself UX testing Hardware testing Valentin David ( ) GNOME OS on hardware GUADEC 2020 3 / 27 With some ideas going further Preinstalled on hardware. A bright future for GNOME Juan Jos´eS´anchezand Xan L´opez (GUADEC 2012) GNOME is not a platform until it is not also an OS. See There is No \Linux" Platform Tobias Bernard and Jordan Petridis (LAS 2019) Valentin David ( ) GNOME OS on hardware GUADEC 2020 4 / 27 First implementation: GNOME Continuous Initiated by Colin Walters Both a tool to build, and the manifest describing the modules Based on top of an image built with Yocto Updates with OSTree (atomic updates). Nice! Valentin David ( ) GNOME OS on hardware GUADEC 2020 5 / 27 Many manifests, many builds Release using JHBuild Flatpak's GNOME SDK built with Flatpak Builder GNOME Continuous Replaced by BuildStream and GNOME Build Metadata GNOME Build Strategies and BuildStream Tristan Van Berkom (GUADEC 2017) Migrating from JHBuild to BuildStream Michael Catanzaro (GUADEC 2018) GNOME and Buildstream, two (three?) years later Abderrahim Kitouni (2020), see him on Friday 24th, 15:30 UTC Valentin David ( ) GNOME OS on hardware GUADEC 2020 6 / 27 What is in GNOME OS? Boots on UEFI using systemd-boot Initramfs is generated with dracut Plymouth (graphical boot) with bgrt theme.
    [Show full text]
  • How to Do Everything Ubuntu Linux/Orloff/4936-6/Front Matter
    How to Do Everything Ubuntu® About the Author Jeffrey Orloff is the director of technology and one of the founding members of Safewave, LLC, where he oversees the IT department and security for the iLAND5.com network for kids. Through his work with Safewave and the iLAND5.com project, he is actively involved with the Safewave Foundation, a not-for-profit organization that helps promote online safety for kids. Jeffrey also has spent over 13 years working with educational technology as a classroom teacher, a technology coordinator with the School District of Palm Beach County, a network administrator for Survivors Charter School, a post-secondary IT instructor for courses including IT security, Windows Server, and GNU/Linux, and as part of an educational software development team. About the Technical Editor Since 1995, and under the cover of darkness, Bill Bruns has been a technical editor, working on more than 125 books relating to operating systems, the Internet, web servers, HTML, and Office applications. In his day job, he is the webmaster for the Student Center at Southern Illinois University Carbondale (www.siucstudentcenter.org). He is also involved with several other not-for-profit organizations as a stalwart volunteer, always being asked to undertake the challenge of webmaster. Over the years, he’s managed all sorts of servers and workstations, and been pleased with the performance of Linux and Ubuntu. Bill holds bachelor’s degrees in Telecommunications and English Literature from Indiana University and a Masters of Public Administration from New York University. Copyright © 2009 by The McGraw-Hill Companies. Click here for terms of use.
    [Show full text]