Author Topic: Calculator enhanced Linux Distro: Maxima OS (project white-paper)  (Read 4244 times)

0 Members and 1 Guest are viewing this topic.

Offline Nosferatu Arucard 1983

  • LV2 Member (Next: 40)
  • **
  • Posts: 28
  • Rating: +6/-0
    • View Profile
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  >:D.
 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  :P).

 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"  >:D.
 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  ;D):

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  O.O (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 ? :D
(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!)

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Calculator enhanced Linux Distro: Maxima OS (project white-paper)
« Reply #1 on: November 09, 2012, 03:26:13 pm »
I didn't understand the half of the words you used (I am French and not a Linux fan (didn't say "Linux hater", just that I am not into it at all)), but if you want Linux on a calculator, it is done ;)
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline Nosferatu Arucard 1983

  • LV2 Member (Next: 40)
  • **
  • Posts: 28
  • Rating: +6/-0
    • View Profile
Re: Calculator enhanced Linux Distro: Maxima OS (project white-paper)
« Reply #2 on: November 09, 2012, 03:32:32 pm »
Maxima OS is a Linux distribution to small ARM machines like the Raspberry Pi to make them work like a "calculator".
Or simply a virtual machine in QEMU to test emulated ARM hardware.
If the Maxima OS works, it can be used to implement in any indie calculator, and it can create an hardware independent operating system for that kind of devices.

Small Edit: Any first step to that kind of projects is to build a Linux from Stratch with OpenBuild package, then compile to use many command-line programs (including the maxima CLI) would be a kind of test.
 But without help, I don't want to create core builds for nothing.
« Last Edit: November 09, 2012, 03:44:06 pm by Nosferatu Arucard 1983 »

Offline Nosferatu Arucard 1983

  • LV2 Member (Next: 40)
  • **
  • Posts: 28
  • Rating: +6/-0
    • View Profile
Re: Calculator enhanced Linux Distro: Maxima OS (project white-paper)
« Reply #3 on: November 11, 2012, 11:48:19 am »
All right...  :)
A little warm up of this project.
This project will be hosted on Sourceforge with the codename project Maxima OS, and designed in a first phase to run on QEMU emulating an ARMv6 SoC with OpenGL ES GPU support  ;) (Since the minimum requirements to run Wayland and Weston is a KMS video driver based on OpenGL ES technology, and an hardware GPU is best that a software renderend one  :-\)
 Real hardware targets can be the Pandora Box console/subnotebook handled  ^-^, the Rapsberry Pi, any ARM board, or any system that have at last an ARMv6 CPU with at least 256 Mb of RAM. (Any low-cost ARMv6 SoC contains this ammount of memory inside the chip)

But since I cannot finish this project alone, all the development of the software will be open to everyone.  :D
The very first 0.1 alpha build will be the first one to be hosted on Sourceforge and probably my limited programming skills won't be build nothing more than a pure CLI version of Maxima OS.
 So far, my research tells me that a Linux Kernel 3.7 is the best base platform to go (Is the first Linux kernel version that unifies all old ARM specific Linux kernel in a single buildchain root). But one of my odds is the choose between a full edge libc library or the minimal uglibc to the compile toolchain. Wayland is more friendly to standard libc, and an ARM system with 256 Mb of RAM is far more enough to use the libc library (unless a patch will implement the possible few system calls that is absent in uglibc).

 Other quick research show that the busybox package is probably the best way to implement a basic version of all classic CLI Linux commands and save a lot of space. (If a real "calculator" is ever made, any low powered Flash EPROM disk with more than 512 Mb or even 1 Gb will be expensive) And also is full compilant with uglibc library.
 Since it's a embedded Linux system for making a indie graphic calculator, there's no need to install a full Linux distro, by simply porting all Workstation programs into a small device!  :P

 Finally the final test will be compiling the GNU LISP and the CLI version of Maxima in this emulated environment to test the first ever version of Maxima OS.  This will be the first source tarball to be publish in project website.
  The 0.1.1 version can be the build of Wayland and Weston servers without any legacy X support, plus some graphic command like the Weston Terminal, and (maybe) a small gizmo to put a icon Launcher on Desktop to Terminal and Shutsown Command and maybe a Wallpaper option via Terminal. (And Maxima can be launched on Terminal emulator).
  Apart this plans, the GUI Browser for Maxima is beyond my research, and this is the first program that the community should implement. (And this is a work plan for 0.2 version that need a more complex work).

 If anyone wants to build Maxima OS on Raspberry Pi or Pandora or any ARM device, the project will have an Hardware patch section which the programmer should be the mainteiner.  :P