/pythonix

Python/Minix based operating system

Primary LanguagePythonMIT LicenseMIT

PYTHONIX

Python/Minix based operating system

The goal is to build an OS with the following characteristics :

  • Availability and reliability
  • Low resource consumption
  • Portability and embedded computing
  • Open-source ( MIT )
  • Easy learning and maintenance

Documentation and Resources

FAQ

Q: How is possible to boot a Python O.S ?

A: Actually, isn't possible. All the kernel, user-space, and applications will be made in Python, but the bootloader and the lowest level will run over another future project in Clang with a implementation of PyPy with a JIT compiler, which makes the system viable.

=====

Q: Why develop based on Minix and not on Linux or BSD for example?

A: Linux already has a highly developed kernel and code base very large, and yet can not be a system with fully modular architecture due to its monolithic nature, because Minix microkernel nature it's allows ease functions to modularize the system , thereby improving the portability and kernel security , besides being a project with reduced code base .

=====

Q: Why Python is a good choice to write an OS ?

A: Because it is a specification that is implemented in several languages, has high portability (eg: IronPython , Jython ). In addition to being interpreted this eliminates situations like the kernel compile, moreover, PyPy implementation with JIT compilation proved be a reliable choice.

=====

Q: A kernel will be slow in a interpreted language ?

A: Not necessarily , it depends on the implementation and internal optimizations made targeting performance , the Python implementation done in Python ( PyPy ) , proved achieve a superior performance over the original implementation written in C, and in some cases, even faster than C! As seen in: PyPy Or PyPy > C Or PyPy > C (yes,again)

=====

Q: Why Python 3.x ?

A: Python 2.7 is only justifiable when a project has some lib legacy or some resource that will be lost if the project is porteda to a more recent version. In the case of developing an operating system from scratch , literally speaking , it is good practice to always try to use the newest version of Python, and where necessary implement own extensions

=====

Q: Why not use ctypes to write functions more accurately to original?

A: The purpose of writing the OS in Python, and enables the ease of maintenance is to avoid as much use any kind of dependencies and libraries to non-essential to Python, allowing a clean and easy to understand code.

=====

Q: Why not just quit?

A: Because great guys already show some support, so the idea worth it