sobaf


title: sobaf
date: 2022-02-16 12:33:26


SOBAF, my tentative for make an OS

Motivation

We have few OS choice, actually :

  • Windows (who try keep the base of code since 1995, who sell fix to their bug, each 3 year ! )
  • MacOSX : I don’t see new concept in it since long time, based on UNIX
  • Linux : In my opinion the best, but still based on amazing old concepts

Before, we hqd lot of choice,as GEM , BEOS, Workbench… And some have concept who are interesting.
Let’s detail it.

Concept I want :

reboot without need permission of my computer !

As with my Atari, i want stop my computer WHEN I WANT. Sorry, but each time “my” computer tell me “heho, wait for i wake, wait for turn me off…”
I feel like I am his slave, should be opposite.

For do it is bit easy : we have amazing cheap static memory now !
So with two buffer, we copy the state actual of the computer (two because if you stop suddendly,one was in writing, the other is OK!).

change the old FAT32 system (omg, we still have it ??? )

BeOS file system was interesting too :
If you think as a computer, directory and path is a strange stuff, make for human.
And even as human…We all have a Video directory, document for work (word, excel)…and that’s near all ?

The name of file is also an “alias” for human, that’s all…

So what I propose is:

A list of GUID => these file
In a SCHEMATIC way : GUID list Of Path (so,same file can be used at many place, that’s transparent for you) size, type ((MIME type)
With this way, we can have many benefits:

  1. no double files (who never have it ? or DLL installed by programs etc)
  2. if we lost a file who is “famous”, we can use git or torrent or take it from the cloud (as google drive,one drive etc…are free or near)
  3. with a GIT way of do save , we keep all history at each writing : if a program don’t do UNDO/REDO,no problem, we have it on all file !
  4. the size of a directory is show in direct, no need wait 15 minutes like now
  5. move/copy file is also instantany : just need change one line in a text file.
  6. if we are many user on same computer, no need copy comon

For security reason, computer memory (yes, memory and harddisk is another silly old concept, we don’t need anymore ! )are in two part: Public and Private : if a user “torrent” you a file, we just search in public, of course.

more easy programming API

Actually we have a lot of good library, tested and used by near all programming langage.

Let’s use them.
As they are high level, well optimised, we choose them, and stop have 10 levels of API.
By ten levels API, i want say : APi, who call API of API OF API…..as now !

Computer are actually enough fast for don’t care of 10 CPU cycles…

The basic API must include :

  • easy read and save file (without care if it is in the cloud, in memory,in static memory…the user choose it, not the coder)
  • easy display/ extraction of data (read all comon file as CSV, Video, Sound, 3d standard, JSON)
  • lot of meta information easily, lot of possibility to transform easily from type to type, to manipulate it.
  • for the user, the most reader/editor possible, have a default choice, but other choice if he want.
  • for the programmer : easy way to use all thread and gpu thread.
    (to be continued…)

For test the concept

My choice is actually a raspery PI, as it is cheap for everobdy and fast.
It will boot on a NW.JS (it is like Electron, but for me, it is lot more easy and productive) pages : it will be the GUI of the SOBAF.
basic look

This page is about one weeks of work, so it is 0.0.1 of the look.

This page actually load lot of predefines library, and propose it to the “windows” (that’s local page in windows OR Iframe, perhaps only IFrame at end as NW.JS is very cool on the subject !)
I include for libraries : ()

  • tool_ihm.js (a little toolkit I make, perhaps not the best one,and perhaps will be removed or improve)

  • jsframe.js, make the frame/iframe OS Like

  • fontawesome, many icon, draw etc

  • bootstratp4, CSS only for now

  • Ace, a code editor with many langages+ plug in

  • esprima, who make Javascript to AST

  • markdown-it, transform md file to html (and many other format)

    Soon I will put many other AST I think.
    Why so lot of AST ? why of concept of SOBAF is to make the power of your computer serve you !
    And about it AST is usefull, from natural processing langage (watch unified on this point) to programming.

    When you program, as fast as you can type, that’s evident : your computer is bored !
    So with the AST, I want make it work on what you program, for example :
    Test a part of the tree with random value (before we call it monkey test)
    Try to extract part who can be on another worker or gpuworker
    Test the difference between stay on mainthread or not, usefull or not ?
    If it is usefull and possible to be on GPU, compile it without ask you !!!
    Compute metric
    Refactoring, and opposite, inlining
    If you give good information (for example human age, so between 0..160): try test 0,160, random, try all if possible.
    With as AST you can also generate easily an GUI for a part of program :
    imagine you have a function who take two string, and you want test it fastly …. Why you need to write yourself two input box
    To put them “type=string” , to do a submit button ? computer can do it so easily, without anywork.

    I try to, based on schema JSON to do viewer,editor,validator easy and smart :
    if we have a GPS position, that’s means of course,no number >360.
    We can display a map for visualize it or enter it…it can be by tag it as GPS (metainformation).
    Or just watch the {lat,lg} and infer it should be a GPS position.