Let's share one of my ideas about a possible handled calculator, or at last a dedicated Linux distro for the next generation of low-cost micro-computers like the Raspberry Pi, to handle a nice math package for engineering and low-cost numerical power.
A say a Linux Distro, just because an engineer would use a full blown computer to numerical, symbolic e physics calculations, not a low-end calculator. Hardware modders would be glad to install a optimized software to turn our $25 ARM processor into a high-end calculator via HDMI port
(like the Raspberry Pi). If this Linux distro was really stable and easy to port between platforms, then create a more "official" calculator-like hardware project will be much easier to do.
To merge two possible trends, I will descrive the core fundation of a Linux distro for calculators (or "calculators"
) which I call:
Maxima OS
The Maxima OS is basically a modern implementation of one of best open-source CAS packages ever made: The Maxima.
Maxima is written with GNU LISP, and so far is most powerfull CAS library in FOSS, which the most recent version is 5.28 and have an official git and a GNU/GPL license (which means all changes of source code should be forward to Maxima Git).
The raw mode operation of Maxima is by a CLI interface, and normally don't load all additional packages unless it's added in config file.
Modern day approaches use an HTML shell to create a more easy acess to the Maxima runtime core, and requires additional programs to do some tasks (like graph plotting).
The Maxima OS project may use a browser like application to create a modern interface to Maxima core, and a more pleasent GUI to operate the software (many GUI Maxima use a very simple browser approach).
When I made some make-ups of the Maxima Shell GUI, the result was gradually become equall to the Google Chrome OS
.
The reason is because I wanted to set up a small browser with XML and Javascript capabilities to build the applications.
Add a tabbed interface with some buttons and it gets a Google Chrome clone!
(And find some capable to implement is own ideas
).
The browser-like shell model is because of my Android and Chrome experience (by user rating), and because GUI Maxima uses normally a browser to the interface. (And to create a more integrated environment, specially to normal tasks).
And the other reason to use this approach is because my curiosity with the new graphic engine called Wayland.
The underlaying operating system os Maxima OS is a Linux 3.6.x, 3.7.x, ... kernel with the Wayland and Weston compositor, which fits nicelly with low powered ARM devices. (Cuts the old legacy code from X Window Server).
In top of Linux, Wayland and other libraries like SDL, hardware drivers, and other stuff, the Maxima and the Browser Shell run on top of it. The Maxima OS is designed to run on low-end ARM SoC (requires a ARMv6 with OpenGL ES support), like the CPU/GPU used on Raspberry Pi, or simply on QEMU.
Now the drawbacks: The Google Chrome was sucefully ported to pure Weston composed with the lite Aura Toolkit, but is an overkill (and a potential sue problem) to use a full-blown browser to run on a "calculator"
.
It's possible to use a more lightheight browser (restricted to XML/HTML/Javascript), but the main problem of Weston composer (without X) is the lack of good general toolkits to program applications. (GTK+ in vanilla Wayland is a disaster, only QT 5.0 is 99% Weston compilant).
And so far, no one was created a full desktop environment to vanilla Wayland/Weston composer. (However, a full Desktop on a small ARM computer is a total overkill). With some imagination is possible to build a menu to launch the applications, but I prefer the community to solve the User Interface Problem.
In summary, the challange that I will propose is to create the Maxima OS with this simple requests (my lack of programing skills don't means that I can't help with this project, since I could test the builds or wrote the on-line documentation
):
To create a Alpha stage distro:
ARM Linux Kernel 3.6 (so far)
Add the minimum kernel modules, like USB, LCD, audio, video, NTFS support, as necessary.
Wayland/Weston 1.0 vanilla
Maxima 5.28 (or newer)
SDL and QT toolkits
Create a simple browser to make the new shell to Maxima (XML/JS), and also the on-line manual reference (like XMaxima), in tabbed interface style.
Implement some simple Weston programs (The Terminal emulator is, apart the browser, the only real usefull program in graphic mode).
The browser itself can be a model to JavaScripts widgets
(like a basic numeric calculator)
The "dreamed" calculator would use a SoC like the model used in Paspberry Pi (the RAM, CPU, GPU, DSP was integrated in the same chip), with analog audio out, standard USB port (1x or 2x), and a 16-bit 640*480 colour LCD screen.
But, since is a too wishfull thinking, the project should use or a Rapsberry Pi or any low-end ARM machine capable to boot any unsigned operating system. However, the best workable environment to a alpha stage Linux OS is to use a regular PC with QEMU. (I have some experience to build a QEMU virtual machine).
Just configure a ARM based machine on QEMU and boot the virtual disk with the Maxima OS.
The dice is rolled! There is someone on this calculator-friendly forum capable to archive this dream ?
(And by the way, it's best to open a git server or SourceForge project to host the source code and binaries to the Maxima OS project!)