Snakeware – Linux distro with Python userspace inspired by Commodore 64

栏目: IT技术 · 发布时间: 3年前

内容简介:snakeware is a free Linux distro with a Python userspace inspired by the Commodore 64. You are booted directly into a Python interpreter, which you can use to do whatever you want with your computer.

snakeware

snakeware is a free Linux distro with a Python userspace inspired by the Commodore 64. You are booted directly into a Python interpreter, which you can use to do whatever you want with your computer.

Check out our latest demo on YouTube!

Snakeware – Linux distro with Python userspace inspired by Commodore 64

Motivation

The idea is that a Python OS would be fun to use and very easy to contribute to. Even relative beginners might be able to find ways to meaningfully contribute apps and other code to this distro.

Our window manager, snakewm, is based on pygame/pygame_gui. We do not use X11; snakewm draws directly to /dev/fb0 .

We also are not going to be using any other huge and opaque software such as systemd, etc. The goal is to eventually have a usable set of userspace apps and utilities written entirely in Python, because Python is fun and it Just Werks™.

Running

Download the latest release image.

Then, burn the image file to a flash drive and boot it, or launch it in QEMU. Here is how I start it in QEMU, it works pretty well for me:

qemu-system-x86_64 -drive format=raw,file=snakeware.img -m 2048 -soundhw hda -audiodev id=pa,driver=pa

Once you are booted into the Python environment, launch snakewm with these commands:

>>> from snakewm.wm import SnakeWM
>>> SnakeWM().run()

Press the Left WinKey to open the App Menu!

Building

The snakeware build system is based on buildroot. See the snakeware/ directory in this repo for resources and documentation on how to build your own snakeware distro image.

NOTE:If you are only contributing apps or other code to snakewm, you don't need to build a whole snakeware distro image to test your changes. Simply make your changes to snakewm then run sudo python wm.py in the snakewm/ directory. snakewm will then start drawing itself directly to the framebuffer and you can test out your changes. Press ALT+ESC to return to your normal desktop. (It would still be good to test your changes in an actual snakeware environment though.)

Contributing

Developers of all experience levels are welcome and encouraged to contribute to snakeware. Python enthusiasts that are familiar with pygame and pygame_gui will be able to write their own snakeware apps very easily. See existing apps in snakewm/apps/ for examples of how to get started, and feel free to ask questions if you need help.

Those with experience building Linux systems are encouraged to contribute to the underlying aspects of the distro, such as the build/package scripts and configuration for the kernel, GRUB, etc. The build system is currently not very streamlined or robust, and I am sure that there are better ways to do a lot of it.

I would also like to eventually stop using Busybox for intialization and find a way to perform all necessary init from the Python environment, so ideas about that are welcome.

TODO

This is an abridged list of future plans:

  • Many more snakewm apps
  • App menu for choosing apps to run
  • Improved/streamlined build system
  • Improved kernel config
  • snake-games - full-screen user games separate from SnakeWM
  • Modify partition scheme for faster boot - /usr on its own partition?
  • Take advantage of pygame_gui's theme functionality
  • Dynamic/interactive desktop backgrounds
  • Sound support
  • Networking -> web browser
    • snakechat - chat with everyone else who's using snakeware
    • Gopher client?
  • Ditch busybox, init via Python somehow
  • ...

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序员修炼之道(影印版)

程序员修炼之道(影印版)

Andrew Hunt、David Thomas / 中国电力出版社 / 2003-8-1 / 39.00

本书直击编程陈地,穿过了软件开发中日益增长的规范和技术藩篱,对核心过程进行了审视——即根据需求,创建用户乐于接受的、可工作和易维护的代码。本书包含的内容从个人责任到职业发展,直至保持代码灵活和易于改编重用的架构技术。从本书中将学到防止软件变质、消除复制知识的陷阱、编写灵活、动态和易适应的代码、避免出现相同的设计、用契约、断言和异常对代码进行防护等内容。一起来看看 《程序员修炼之道(影印版)》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具