Michael Murphy (S76)

I’m a System76 engineer / Pop!_OS maintainer. I’ve been a Linux user since 2007; and Rust since 2015. I’m currently working on COSMIC-related projects.

  • 9 Posts
  • 37 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle
  • In practice, because Rust libraries are always statically-linked, the MPL-2.0 is equivalent to the LGPL in spirit. Meanwhile, because of the static linking restrictions in the LGPL, the LGPL is effectively no different from the GPL. Hence, you’re going to find a lot of open source copyleft projects from the Rust ecosystem preferring either GPL or MPL-2.0, where MPL-2.0 is used in libraries where LGPL would have used previously in C projects. Dynamic linking is essentially going the way of the Dodo.




  • I’d recommend spending some time reading about it. It’s not as hard as he thinks. Applications developed for Linux are quite easy to port to Redox. It supports many of the same system calls and has a compatible libc implementation. The kernel does have abstractions to ease the porting process. And if you’re going to make a new kernel today, you should do it right and make a microkernel like Redox. One of the benefits of having a microkernel is that it doesn’t matter what language you write drivers in. They’re isolated to their own processes. Rust, C, C++, whatever.













  • Ubuntu is Debian with more up-to-date packages and a lot of additional third party packages. There’s a lot of companies who produce development toolkits, frameworks, and applications that are explicitly built for the Ubuntu base. Some governmental agencies and organizations also require access to packages and repositories that have been audited by security agencies, which Ubuntu has gone through the process of getting certification for certain kernels and their Ubuntu Pro repositories. All of which are useful for real world customers.

    Regardless of shortcomings in Snap, Pop does not rely on Snaps, and offers its own packaging for things that would otherwise require Snap on Ubuntu.


  • GNOME Shell extensions are JavaScript monkey patch injections to gnome-shell’s JavaScript process. They’re only compatible with the exact version of gnome-shell that they target because most of them require to override private internals of gnome-shell that are sensitive to order of injection and names of private variables and methods.

    COSMIC uses a modern Wayland-based approach to shell interface design with layer-shell applets. Each applet is its own process, using the layer-shell Wayland protocol to render their windows as shell components, and communicating with the compositor securely with the security context Wayland protocol. The protocols they use are standardized, so they will be stable across COSMIC releases. Other Wayland compositors could integrate with them if they desire to.



  • If COSMIC is pathetic, then GNOME must be abysmally unusable. COSMIC was already planned long before there was any beef with GNOME. We listen to user feedback and prioritize development of features that our developers and users want. Good luck trying to replicate COSMIC’s theming and tiling capabilities in GNOME. Let alone the overall stability and performance of COSMIC. COSMIC Store is the fastest app store on Linux now. I’d recommend everyone to try it out. sudo apt install cosmic-store







  • It wouldn’t be possible for us to build a platform toolkit, or the COSMIC platform itself, without a text editor or terminal. It would also be deeply embarrassing if we release our desktop without them. Imagine telling people they need to switch to a TTY or use a software center to install a plain text editor or terminal. It is thanks to the text editor project that we have first class text rendering across the Rust GUI ecosystem now. Without it, we wouldn’t have been achieve proper bidrectional text rendering or ligatures. The text editor project also made the terminal possible, and now any application that we develop in the future can have proper text editing widgets and embedded terminals.