GNOME OS

In my last post I described how, during this year’s GUADEC, members of the GNOME community came together to plan where the project could go in the next 18 months or so. The slides from Xan and Juanjo’s talk give some of the background to those discussions. We took copious notes during the planning sessions that were held; these will all be available online soon, so you can get a more detailed picture if you want one. In what follows I’ll try to give a bit an overview.

But first, a clarification. The idea of GNOME OS has been around for a couple of years, and there has been a fair amount of confusion about what it means. Some people seem to have assumed that GNOME OS is an effort to replace distributions, so let me be clear: that is not the case. While the creation of a standalone GNOME OS install does feature as a part of our plans, this is primarily intended as a platform for testing and development. In actual fact, all of the improvements that we hope to make through the GNOME OS initiative will directly improve what the GNOME project is able to offer distributions.

Many of the things that we want to do as a part of GNOME OS are old ideas that have been around in the GNOME project for a really long time. The aspirations that are driving this process include things like providing a better experience for application developers, automated testing, sandboxed applications and broad hardware compatibility. While each of these goals could be pursued independently, there are enough interconnections between them to make a holistic plan worthwhile. Yes we could call the initiative something else, but GNOME OS has stuck, and it kinda fits (as I hope to explain a bit better below).

We’re setting out to drain swamps, fix the most glaring issues in our ecosystem, and establish a new model for the future. We don’t know whether we’ll succeed, but there are enough people in our community who care about these issues that we just might be able to do it. The best part is: you can help.

So what does GNOME OS mean? Here are the main areas that we addressed at GUADEC:

Application development and deployment

Right now, it is far too hard for developers to create and distribute applications for GNOME. Our APIs are a constantly shifting target, and application distribution is slow and fragmented. It is also very difficult for application authors to maintain their brands or to generate revenue streams from their work.

We want to change all of this. During the GNOME OS BoF we discussed how we can make it easier for application developers to create software for GNOME, and how we can make guarantees about API stability for application developers. We also talked about how we can safeguard users from rogue applications.

GNOME contributors will be creating a proposal for a new model for application development and installation in the coming months. During the GNOME OS BoF we spoke about how we want to make this framework available to existing GNOME distributions if they want to use it. The benefits for distributions: sandboxed applications that will be compatible for years instead of months, less packaging work, and maybe, just maybe, lots more apps.

How you can help: once we’ve worked out a proposal for the new application framework, we’ll be looking for your feedback, particularly if you are a distribution or an application author.

SDK

This area directly relates to the last (you can’t have an SDK until you know what your application framework will look like), and some parts of it will have to wait until we’ve worked out the details of our plan for applications. Nevertheless, an application development SDK remains firmly in our sights as a part of GNOME OS. We’ve set a target for a new version of the GNOME HIG, and we are developing plans for the other GNOME development tools.

How you can help: there are already plans to modernise GNOME’s development tools; if you work on these components, or would like to, get in touch with the design team to see what needs doing.

Testable

The way that GNOME is currently built and tested has major limitations. Our automatic build systems are rudimentary and they don’t allow us to do automated testing. It is extremely difficult for contributors to build and manually test the current GNOME development code, or to create a development environment. We constantly hear how they burn time and energy trying to simply get the latest code to run (this problem is especially acute for new contributors).

The existing GNOME build system also has major problems when it comes to lower levels of the stack. It often breaks down when new versions of dependencies are required to run the latest GNOME development code. It also gives us little – if any – opportunity to test our code against the stack with which it will be deployed.

We are setting out to correct this situation as a part of GNOME OS. Work is already underway to create a new build system for GNOME. This will enable us to have automated builds and testing. It will allow us to do continuous integration across the stack as we develop GNOME, ensuring that we spot bugs as they happen, not weeks or months after they were introduced. It will also enable us to generate downloadable development images that can be used for testing.

During the GNOME OS BoF we set some goals for Testable GNOME. In six months’ time, we want to have a build bot that is actively used. One year down the line, we want to have an installable image that contributors can use for testing and as a development environment. Members of the GNOME Release Team have agreed to push this process forward. We will also be making moves to acquire a new server that can be used for the automatic build service.

Existing distributions will directly benefit from these enhanced testing activities. It will mean that the GNOME software they distribute will be higher quality, better tested and more efficiently produced.

How you can help: join #testable on irc.gnome.org, try out OSTree, check the build logs and help to fix build errors.

Core UX

GNOME 3 is an ongoing project. In addition to constantly refining the core UX, we are also in the process of creating a new suite of GNOME applications, which we plan to grow into a new model for accessing content, whether it is stored locally or online. We have already made good progress along this road, but there are still some missing pieces. We need a target for when those missing pieces will be in place.

During the discussions that took place at GUADEC, we talked about which parts of the core UX need to be prioritised in order to deliver a complete GNOME 3 user experience. We set the goal of having all of these components incorporated into GNOME within the next 18 months.

How you can help: get involved in the development of Documents or Photos, or work on one of the other applications that we have planned, like Music or Transfers. People are already stepping up to help in this area, but we will need more contributors if we are to make it happen.

New types of devices

The increasing popularity of mobile and touch devices represents a challenge to existing desktop solutions. This situation is complicated by the emergence of new hybrid devices that combine keyboards, touchpads and touchscreens. During our discussions last week we talked about how existing types of devices – primarily laptops and desktops – have to remain the primary focus for GNOME. These are what the members of our community use every day, and they are the primary market for existing GNOME-based distributions.

At the same time, we also want to ensure that GNOME remains compatible with new hardware. Some work has already been done in this area, but we set out to make it a bigger focus for GNOME. We are already working on a new effort to track and address issues related to GNOME on touch devices, and we are going to try to obtain hardware that can be used for development and testing purposes.

We have set the goal of having a touch-compatible GNOME 3 within a maximum of 18 months.

How you can help: help to fix the bugs on the touchscreen wiki page. Test GNOME on a touchscreen device in order to help us identify compatibility issues.

Wrap up

What is an OS? To some people it is simply a kernel. But I agree with Jon: it is something else. In fact, an OS is two things: it is a user experience, and it is an application developer experience. Neither of these can be thought about in isolation: you cannot define APIs without first knowing the user experience that they are supposed to provide. The user experience and the application developer experience are two halves of a whole.

That is why we are calling this effort GNOME OS. We are in the process of defining a new user experience. We need to set targets for that experience, and we need new systems to ensure that it is high quality. At the same time, we can use that UX as the basis for a new application developer experience.

Each of the areas that we are focusing on for GNOME OS – a new framework for applications, an SDK, better testing, a well-defined core UX and enhanced hardware compatibility – tie together. You can’t define applications without first defining a core UX. You can’t talk about an SDK until you’ve defined your application framework. We have to target a range of areas if we want a coherent plan.

Sure, these goals are ambitious, and maybe they won’t happen. The targets that we have set for GNOME OS aren’t as unrealistic as you might think though. People within our community are already working in these areas. OSTree is already happening. The technologies that can be used for a new application framework already exist. There is already a draft version of the new HIG. People are already stepping up to help us complete our plans for the GNOME 3 user experience.

The GNOME community contains a huge amount of talent and expertise. Many of us have been around for a while; we know the history and have learnt from it, and there are many of us who think that we can improve on the current status quo. If we keep our focus, and if we receive your help, we can do it.

43 thoughts on “GNOME OS”

  1. Regarding touch hardware, touch application always require custom user interfaces. One way might be to give the possibility for developers to create 2 user interfaces, one for traditionnal desktop users and one for touch devices. This capability should be directly integrated into the SDK.

    1. I think GNOME designers don’t agree with you on that, Julien. AFAIK they’re going for apps with a single UI that can be used with or without mouse and keyboard. At least that’s what they’re doing with all the new/redesigned core apps, such as Documents, Contacts or Boxes (the introduction of buttons that active a selection mode are a clear example of this approach).

      1. “single UI that can be used with or without mouse and keyboard”
        I don’t think this is always achievable and that’s why we have “touch OS” and “Desktop OS” (sort of) nowadays. But maybe you’re right, Time will tell.

      2. i think soon most pc will have toucscreen, or at least touch mouse.
        And i think, with good desig ,you can desig and ux that works well with touch and mouse.

        Anyone has a kid? My 3 years old always touch my laptop screen all the times. For him, is unnatural not to have toucscreen. See what they will become in the future.

      3. Contrary to popular belief, watching what young kids do isn’t a great indicator of what’s a good technology idea and what isn’t. Kids touch everything all the time. They also naturally stick things up their nose and into their ears, eat things that aren’t meant to be eaten, and post messy items into the DVD player. That doesn’t mean that any of things are a good idea.

    2. The core applications works perfectly with mouse+keyboard and touchscreen, so at least I don’t think having two separate UIs would be worth of effort.

      1. Nah. That thing with windows switching is a total bizarre for desktop system. It does fine when you work with one application but when you have to work with five, for example, all animation and whole “activities” thing gets in a way.

        It’s a shame to drop right mouse button actions on windows and applets too. Yes, tablets does not have right button, but it’s very useful on desktop.

        Remember that “editable shortcuts” feature of Gnome 2? When you could change shortcuts for any gtk2 application on-the-fly? It was very nifty. Gone. Right, you don’t have keyboard shortcuts on tablets, do you? Why bother then.

        It’s very sad that Gnome 3 with all of that cool things under the hood like javascript and css and all that introspection goodness breaking things here and there to get unified interface for tablets and desktops both.

        We already have very many people using Gnome 3 on desktops, new followers and old gnome 2 users, why making their life harder? Just look how many extensions there designed for one simple purpose: switching windows.

        I don’t know if race for tablets would do any good for Gnome. Really. I hope so.

        P.S. “Transfers” looks like awesome idea.

  2. Great post!

    Seems that the plan was already set in our minds but not written anywhere :)

    We should also try to improve communication in that regard, more official posts on gnome.org or just normal posts on planet.gnome.org would make more and more developers talk about it and magazines/slashdot/… and so on talk about :)

    Cheers,

    1. That’d be definitely great. Knowing what’s ahead, knowing there’s a plan and the details of it, the roadmap in a broad meaning, the final goals… that always encourages people to participate. I’d be great also for GNOME enthusiasts to know what to expect in the future. I’m always eagerly waiting for Allan’s post here or Jon McCann’s in his blog!

  3. I think this is a a great initiative and just what GNOME needs. I like the fact that with GNOME OS it feels like project now have a real vision of where it want to be and admit the shortcomings with the current state of GNOME. I also like that fact GNOME OS is communicated in an precise and transparent way. With GNOME OS as a vision hopefully it will be possible to heal wounds and attract new contributors.

  4. Please please please make use of the existing leading CI server software, Jenkins! NIH would really not be wise with this.

    I’m looking forward to the continuous integration infrastructure in any case! It’s kind of surprising that this is an area where open source (e.g. GNOME) is actually behind proprietary software.

    1. I’d like to +1 this, though it doesn’t have to be jenkins.
      There are tons of these services out there and some, like jenkins, can handle extremely large and complex projects.
      Given Gnome’s resources, it doesn’t make sense to build your own.
      IMHO you should scrap jhbuild. Move to something like jenkins, and make use of its testing capabilities ( i.e. unit tests) so you can modernise your development process.

      1. Well, jhbuild is for local building, so it can’t directly be replaced by something like Jenkins.

        What I meant was the server infrastructure, the coordination, scheduling, triggering and analyzing of builds.

        1. Hmm, I was a bit unclear…
          I was referring to the jhbuild/buildbot effort by the Build Brigade ( http://live.gnome.org/BuildBrigade ). Although this hasn’t been my experience, jhbuild seems to have a reputation for being very delicate (fails to build and provides rather obscure error messages). Alot of these problems seem to be of a few types (unbuildable or altered functionality upstream, or problems with jhbuild itself).
          I don’t have an answer for what should be done. Perhaps simply making sure where you are pulling from is always buildable, as it should be with CI, will be enough?

  5. Looking forward the new model for application!
    Looks very interesting ;)

  6. I see potential in GNOME if, and only if, the project starts to listen to its user base. Seriously, removing features and hiding configuration options addresses a clientele that doesn’t even know what a bug report is. Downward spiral for the project, since no reports and no patches means lower quality.

    Will we end up with a GNOME AppStore? It sounds like that :/

    1. I think open source software will get a benefit if they have a unified app store. The one that can be accessed from ubuntu, fedora etc.
      You guys need to build (or copy) the ecosyatem model.

  7. > “Seriously, removing features and hiding configuration options addresses a clientele that doesn’t even know what a bug report is.”

    Thanks for the condescending tone. I’m part of that clientele, and I think I know what a bug report is. In many cases, I even know how to fix them. ;)

    So please, enough with the generalizations.

    > “Will we end up with a GNOME AppStore? It sounds like that :/”

    I’m having trouble understanding how that could be a bad thing.

  8. Agreed about the “GNOME AppStore.” Our software offerings are way behind everyone else’s, and are all being concentrated into Ubuntu now since that particular distribution has the biggest audience. If we want anyone else to have a decent selection, we need to unify our efforts and make it a part of core GNOME. (Also get rid of “packaging” nightmares.)

    About the SDK: We also really, desperately, need developer documentation. I’m trying to work on that; sorry it’s taking so long.

    1. Thanks for all your work, jewelfox. I think it’s fantastic that people are working on developer documentation, and this is something I’d like to concentrated on in the future (by finishing that HIG!) It would be great if we could coordinate these documentation efforts as a part of GNOME OS.

      1. Agreed, and I’m open to suggestions for how to do so. Right now we seem to be faking it and learning as we go.

  9. “What is an OS? To some people it is simply a kernel. But I agree with Jon: it is something else. In fact, an OS is two things: it is a user experience, and it is an application developer experience. Neither of these can be thought about in isolation: you cannot define APIs without first knowing the user experience that they are supposed to provide. The user experience and the application developer experience are two halves of a whole.”

    I strongly disagree.

    Operating System is about science, computer science to be exact. It is a term for definition how computer (another technical term about electricity, magnetism, software etc) works.
    That is the todays problem that high level application developers or young developers (who has started to use computers in daily use long after PC was invented at IBM, more like since 90’s) don’t know about technology or doesn’t care about facts and truth but they want to build something new, dramatic and “innovate” by using technical terms and definitions in their own ways, with irrelevant way of the truth.

    Operating System has never meant anything else than monolithic kernel (like LInux, FreeBSD, SunOS etc) or microkernel + its servers (Like HURD, Minix, NT, XNU etc).

    For average user experience, operating system is meaningless because they just expect hardware to work and that they get their wanted applications to do their job. And for that software platforms and system libraries and system programs are more important than OS. And most important are ported to most used operating systems.
    The key factor for user experience is the GUI and settings. That GUI is not ugly or it isn’t futuristic. It is about style and theme. The other is about settings, that there are lots of settings for the user so every user can set their wanted working environment what they need and want and no one is there to stop them. But that demands that _default settings_ are very sane and easy to learn. The GUI needs to be simplified, but settings should never be removed so user could’t change them easily if needed. Like if user starts first time their computer, creates user account and then logs in, then they can easily start learning their working environment and work their ways to basic stuff (get browser open, get files copied etc). But soon when first experience problems strikes (and they come sooner than later), user needs to have easy access to every possible configuration to change things as they want and need. And then all those hundreds of settings needs to be categorized and to be searchable so user can in few seconds to find out the correct settings and select its working manner how they want (More choice is good, it just needs to be kept simple to do so there doesn’t come paradox of choice).

    The operating system knowledge is very important for every computer user when they plan to install new software or hardware or when they discuss with each other about their favorite computer software/hardware. As then they need to know exactly what their _operating system_ is, so they can check product requirements list is their OS listed and supported or not.

    Lying to user that “GNOME OS” is the operating system name is wrong, everyone should know that lies takes away receivers freedom and rights to do correct judgments for them.
    Lying, even it is small thing as “We like to call it this, even we are wrong but because we want to make richer user experience” is same as ripping away other freedom, even worst, because you give them wrong information and every correct information after that doesn’t make any sense to them.

    GNU suppose to be to protect freedom. But you never can protect freedom with lies!
    No matter how good (very short term) meaning it is, it just makes whole life more difficult and rise too much meaningless flame wars and discussions based to totally wrong information.

    If GNOME developers are willing to lie their customers and users, they are ripping away their freedom.

    1. > “Operating System has never meant anything else than monolithic kernel (like LInux, FreeBSD, SunOS etc) or microkernel + its servers (Like HURD, Minix, NT, XNU etc).”

      That doesn’t really make a lot of sense to me. What is the use of a Unix kernel without Unix userland? It’s almost completely worthless.

      Hell; you can’t even format a disk, read a file, or start a telnet session with your definition of ‘OS’.

      A operating system really is nothing more then a series of services and libraries that make writing and running applications easier then if there wasn’t any operating system at all. That is all it ever will be.. it’s a means to a end.

      What they are describing as ‘Gnome OS’ is really the same thing as what you get when people talk about Windows OS or OS X or Android.

    2. No one is lying. Your argument falls into the fallacy of four terms.

      The word “OS” as in GNOME OS is not the same as “OS” in the context of computer science. They are homonyms, not the same word.

      It is the same as “free” as in “free speech” VS “free” as in “free beer”. Let us, Free Software advocates, of all people, not get caught in this fallacy with homonyms.

      1. “Operating System” is also about the userland, also in Computer Science. See “The Unix Time Sharing System”, where the shell, filesystems, compilers and editors are part of the OS. http://pdos.csail.mit.edu/6.828/2004/readings/ritchie74unix.pdf
        This applies also to todays usage of the term “OS”, altough the userland got more complex and replaceable in parts… most have some GNU or some other POSIX between the kernel and the upper part of the OS. The upper part was called the Gnome Shell sometimes or Desktop Environment elsewhere.
        The features of Gnome OS as stated in this blog are going beyond the Shell, the Desktop Environment, the commonly visible User Interface. There are infrastructural features mentioned for developers, testers and integrators.
        I think it deserves the title OS, no problem. Sometimes I think it should be also be said in the same line that Gnome is best served as Gnome/GNU/Linux :P

    3. I agree…dont confious people, dont make different between end user and developer.make a clear communication.
      When you said gnomeOS, what i think is a complete set of software, i download and install..after that my pc is working.
      What happend if somehow apple release aqua os.when people buy it, they have to install darwin first to make it work.

  10. Over the time various features have been deleted from Gnome 3 to make it easier to run on tablets and similar devices. Very often it affects desktop efficiency and operability.

    Did you guys at Gnome ever thought about implementation of several UX mods? Like desktop and tablet. You could notify applications what kind of device they run on and they could choose to behave accordingly.

  11. Hi,
    I really like the IDEA of Gnome OS, but currently this is too complicated. Somebody asks me what is this, it is Ubuntu+Gnome or Fedora and Gnome makes no sense to somebody new.

    I believe there should be GnomeOS, downloadable from gnome.org. Any distribution might be able to provide GnomeOS flavour. Maybe something like chose you explorer we see in Windows.

    That brings me to distributions. How many of them ship Gnome3 by default? I think the number of popular distributions is shrinking (Ubuntu, Debian, Fedora, Arch, Gentoo, Foresight will occupy 95% of traditional users desktops) and which one of those is Gnome3?

    So, now about Fedora. Fedora is great (except for funny names which brings even more confusion) and there is huge progress in core infrastructure. But on the user level it really not on par with Ubuntu ( in terms of number of ppa/repos for new sw, community help, forums, support for hw, easieness of installation of packages, app store, firewall security and other RHEL compliance issues).

    So how about an idea of trying to build polished spin of Fedora under name Gnome OS (Fedora flavour) and put it on the Gnome.org website? Would this be achiable before 2014?

    Let me put few cents also about developers. Unless you give them some cool technologies like REST, JSON, Javascript binding to the heart of the OS, you won’t gain too much. That is where the development goes, so unless you are 100% free culture only, people are switching to Mac and do it there.

    Btw, I love Gnome3, I just think our userbase is shrinking and it is a pitty.

    1. Agreed on better language support. But my top pick would be Vala, because it is better integrated with GTK+ while offering a high-level C#-like syntax.

  12. The horrible reviews that Windows 8 is getting should be a warning to Gnome developers. Don’t break the desktop in a misguided attempt to unify the tablet and the desktop; don’t remove functionality from the desktop that isn’t available on tablets.

    1. What horrible reviews of Windows 8? Most of the reviews I’ve read are pretty positive.

      1. Unless I live in another planet than yours, most Win 8 reviews argue against the new Metro Interface.

        Strange, unintuitive for most current Windows Users, a PC transformed into a ¿touchscreen kiosk?… And the most important question … Why this new interfac? The “new” touchscreen PCs wouldn’t be mainstream until 3-5 years, and tablets are a matter of two: Google and Apple.

        It’s a totally new model, but today most people can’t say it’s better.

        Finally, some important questions… If the KDE guys could make different environments for Desktops and mobile/touch devices with a common codebase and minor differences between them, why GNOME dev’s can’t do the same?

        Lack of developers? Pride? Stupid hate to KDE ideas because the NIH syndrome? Lack of proper and good enough codebase ?

        Keep it simple, but not simpler… We, GNOME users, aren’t morons or silly people who get lost with more than 2 buttons…

      2. “Most of the reviews I’ve read are pretty positive”.

        because you see only what you want! :)

        http://phys.org/news/2012-03-windows-big-misstep-microsoft.html

        http://betanews.com/2012/06/17/windows-8-is-like-a-bad-blind-date/

        http://blogs.gartner.com/gunnar-berger/windows-8-part-1-a-business-decision/

        http://www.pcmag.com/article2/0,2817,2408142,00.asp

        http://www.extremetech.com/computing/96249-5-deal-breaking-flaws-in-windows-8

        and in other languages you can find the same opinion: a big no for win 8!
        i don’t care about win 8 and i don’t need it even for free!!! now i’m using win 7 but i do also linux xfce, kde and cinnamon.

        the same with this new gnome. i don’t need it!
        developers are thinking to do it only for themselves i understand and another 10-20 friends. so good luck! :) but think about why linux is here for 1% because this is important!
        i don’t belive that fragmentation, egoism and this excessive pride have brought too much for linux!!!

  13. For GNOME OS to be a real success, it needs core applications like “Documents” and “Music” for users to handle different type of files. Like KDE has all these applications for different needs and combine to form a Core OS.

    1. I also wonder why KDE’s Dolphin interface is/was not considered under ‘Relevant Art’ for Documents etc.?

  14. If the thought process is to produce a great SDK, may I suggest you start by looking at Qt Creator, now opensource, originally by Trolltech, but now by Nokia. Use it as a model for user designing and interfaces.
    Please try to implement Gnome with a compiled language. It may initially take more effort, but software re-usability will come into effect. I use Qt because I can use in for Windows, Linux, Unix and MAC. write-once compile anywhere and run anywhere.

  15. I love gnome i have been using it for about 5 years now the transition from gnome2 to gnome3 was really sweet and love my gnome3 desktop I don’t really understand why so many people are upset over it. I hope gnome is around for a real long time. fedora and arch have integrated gnome3 really really well. I Love This Desktop!!!!

  16. Thanks for your post and the clarifications. All that sounds reasonable and very interesting.

    But let me say that I do love GNOME 3, as well as I love Qt and KDE — I use both GNOME and KDE regularly. And therefore, I actually miss an important point in your post: The emphasis on the importance of free and open cross-desktop standards (e.g. http://www.freedesktop.org) and an intensive cooperation between the GNOME Project and KDE (and maybe Unity and Cinnamon…) for a prospering FOSS GNU+Linux (desktop) ecosystem. Only when a GNOME application integrates nicely into KDE and vice versa, the projects can benefit from each other’s work and do not work against each other. The GNU+Linux desktop as a whole has only got a chance if this is the most important common goal of all the important projects: a prospering free software desktop ecosystem. → http://blog.martin-graesslin.com/blog/2011/09/fighting-the-schism-of-free-software/

    In light of this, I have to say I regret the GNOME foundations decision against another desktop summit in 2013.

  17. New development model sounds like nodejs development model. (http://howtonode.org/introduction-to-npm). Install/publish apps under the gnome-os environment, gospm? At the end, gnome app store is the UI for gospm, using gnome account to install/publish. If gnome account could provide more services, for example, gnome-disk, it will make gnome a totally online platform. Even gdm login using gnome account!

    I think it is a good approach for the gnome app developers, but the risk is, GNOME will get less support from distribution companys, I am afraid.

Comments are closed.