Gnome SDK A better way to ship apps Alexander Larsson Red Hat, Inc

Slides:



Advertisements
Similar presentations
MMI nameProject nameAndroidPage No# Flow Description Android (OS )
Advertisements

Hp education services education.hp.com 85 System Crash Dump Version C.00 H4264S Module 9 Slides.
Linux can be generally divided into four major components: 1. KERNEL – OS, ultimate boss The kernel is the core program that runs programs and manages.
1 Unix Systems Administration Y. K. Chang Generic Unix Directory Structure /bin /dev /etc /sbin /home /lost+found / Root Dir /dsk /rdsk /term /pts /rmt.
Introduction to Unix (CA263) File System
GNU/Linux Filesystem 1 st AUT GNU/Linux Festival Computer Engineering & IT Department Bahador Bakhshi.
Zap Steven Osman Dinesh Subhraveti Gong Su Jason Nieh A System for Migrating Computing Environments.
Build Test Integrat e Deploy Develop Languages Frameworks Cloud and Infra Data platforms.
Guide To UNIX Using Linux Third Edition
Red Hat Installation. Installing Red Hat Linux is the process of copying operating system files from a CD, DVD, or USB flash drive to hard disk(s) on.
Michael Sobolewski SORCER Project Management Architecture.
Guide To UNIX Using Linux Fourth Edition
Linux Introduction What is Linux? How do you use it?
Filesystem Hierarchy Dr. Michael L. Collard 1.
USING YOUR INSTALLED LINUX SYSTEM.  Common Linux Tasks  Installing Custom Packages  Common GUI Applications  Command Line Shell  Directory Structure/Navigation.
Introduction to UNIX Road Map: 1. UNIX Structure 2. Components of UNIX 3. Process Structure 4. Shell & Utility Programs 5. Using Files & Directories 6.
Manage Directories and Files in Linux. 2 Objectives Understand the Filesystem Hierarchy Standard (FHS) Identify File Types in the Linux System Change.
UNIX/LINUX OPERATING SYSTEM. Introduction to Linux Introduction to Unix History of UNIX What is Linux Linux Distributions Linux Installation Unix File.
Linux Overview Why Linux ? Not-so-ancient history –Torvalds, Linus Torvalds, 002 the Helsinki University, as a student, low budget, work home –rapid and.
PTA Linux Series Copyright Professional Training Academy, CSIS, University of Limerick, 2006 © Workshop V Files and the File System Part B – File System.
The Unix File system (UFS) Presented by: Gurpreet Singh Assistant Professor Department of School of Computing and Engineering Galgotias University.
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Docker Overview Automating.
Linux Architecture Overview.
Linux Development Lecture 7. Schedule Linux Root Filesystem.
LINUX Zhengli Zhu, School of Life Sciences. Outline 1. ABC of Linux 2. Basic orers of Linux 3. Bash Programming.
Installing Linux: Partitioning and File System Considerations Kevin O'Brien Washtenaw Linux Users Group
Linux Administration – Finding You Way on the Command Line The Linux File Directory or Tree.
Application Sandboxing with systemd
BILKENT UNIVERSITY DEPARTMENT OF COMPUTER TECHNOLOGY AND INFORMATION SYSTEMS CTIS156 INFORMATION TECHNOLOGIES II FILES AND FILE SYSTEM STRUCTURE.
D-Bus and Friends: Making Linux “Just Work” on the Desktop John (J5) Palmieri Desktop Engineer
Getting Started as an EdgeX Developer
OpenShift & SELinux Dan Walsh Twitter: #rhatdan
Linux Containers and Docker
application into a Flatpak
Standardizing privileged
Linux 101 Training Module Linux Basics.
VAGRANT AND DOCKER AS LEARNING ENVIRONMENTS
Application Sandboxes
The next-gen. list archiver
Linux Containers Overview & Roadmap
Welcome to Linux Chap#1 Hanin Abdulrahman.
UBUNTU INSTALLATION
Linux file system "On a UNIX system, everything is a file;
Linux/Unix - Download Ubuntu Linux :
In-Depth Introduction to Docker
Getting Started as an EdgeX Developer
Basic knowledge about Linux
IM-pack: Software Installation Using Disk Images
Application images and atomic updates
Machine Learning Workshop
linux and related thing
Containers and Virtualisation

Dan Walsh Red Hat, Inc. Sandbox Dan Walsh Red Hat, Inc.
Structure of Unix OS.
Atomic Gerard Braad FUDCon Phnom Penh 2016
ASP.NET in Linux and Windows containers
Bibisect on Demand Bjoern Michaelsen
Andrew Pruski SQL Server & Containers
Containers in HPC By Raja.
Agenda Intro Why use containers at all? Linux Kernel: a pop of history
Container technology. Let’s dive into the world of docker and kubernetes Bjarte Brandt, DevOps Architect TV2.
מערכות קבצים מבוזרות Distributed File Systems
Intro about Contanier and Docker Technology
Lecture 43 Syed Mansoor Sarwar
Linux Architecture Overview.
Welcome to Linux Chap#1 Hanin Abdulrahman.
Welcome to Linux Chap#1.
Application lifecycle and metadata management
Building, Debugging & Deploying Containerized
Presentation transcript:

Gnome SDK A better way to ship apps Alexander Larsson Red Hat, Inc February 7, 2015

Interest in application deployment/distribution Glick Glick2 Bundler Updatinator Docker Atomic OSTree “Linux Apps”

What is an application?

What is an OS?

Is a distribution an OS?

Importance of the App/OS split

Solution: Bundling?

Idea: Runtimes

Idea: Sandboxing

Introducing: xdg-app

Introducing: Gnome SDK

Demo time!

Fucking Apps, how do they work?

Application structure ├── metadata ├── files │   ├── bin │   │    └── gedit │   ├── lib │   │   ├── libgtksourceview-3.0.so.1.3.0 │   │   └── ... │   └── share │   └── ... └── export    └── share    ├── applications    ├── icons    └── dbus-1

Metadata: [Application] runtime=org.gnome.Platform/x86_64/3.16 sdk=org.gnome.Sdk/x86_64/3.16 command=gedit [Environment] x11=true wayland=true ipc=true pulseaudio=true system-dbus=true session-dbus=true network=true host-fs=true homedir=true

Runtime structure ├── metadata └── files    ├── bin    │   └── bash    ├── lib    │   ├── libgtk3.so.0    │   └── ...    ├── share    │ └── ...    └── etc    └── ...

sandbox structure / – private tmpfs instance ├── usr – bindmount to runtime files ├── self – bindmount to app files ├── var – bindmount to per-app/user data ├── home/user -> /var/home ├── etc -> usr/etc ├── bin -> usr/bin ├── lib -> usr/lib ├── tmp ├── proc – procfs mount └── dev – minimal device set

/var/xdg-app, ~/.local/share/xdg-app ├── repo – ostree repo ├── runtime/org.gnome.Platform/x86_64/3.16 │ ├── 84ea50980... - hardlinked ostree checkout │ └── active -> 84ea50980... ├── app/org.gnome.Gedit │   ├── x86_64/master │   │ ├── 175f30f22... - hardlinked ostree checkout │   │ └── active -> 175f30f22... │   └── data – per app/user writable data └── exports/share    ├── applications    │    └── org.gnome.gedit.desktop -> ...    ├── dbus-1/services    │   └── org.gnome.gedit.service -> ...    └── icons/hicolor       └── ...

New complexities Runtime prerequisites Kernel Services IPC compatibility

Creating an app bundle Choose a base runtime It comes with a corresponding devel runtime Build using xdg-app: xdg-app build-init build-dir org.gnome.Sdk org.gnome.Platform 3.16 cd src/my-app xdg-app build build-dir ./configure --prefix=/self xdg-app build build-dir make xdg-app build build-dir make install xdg-app build-finish --command=myapp –allow=x11 \ --allow=host-fs --allow=session-bus build-dir xdg-app build-export /repos/my-app build-dir org.foo.MyApp Alternatively, Gnome SDK contains rpm/rpmbuild Configured to build rpms into /self

The future: Sandboxing Wayland Kdbus Selinux Cgroups Use more namespaces Portal DBus APIs for sandboxed apps

References Project page: https://wiki.gnome.org/Projects/SandboxedApps Mailing list: https://mail.gnome.org/mailman/listinfo/gnome-os-list Xdg-app: https://github.com/alexlarsson/xdg-app Gnome SDK: https://github.com/alexlarsson/gnome-sdk-images Feedback http://devconf.cz/f/4

Questions?