Spider-OS

login - registration

Back to the post list

Basic components
2019 Feb 2

Here is a list of components that I intend to develop for Spider-OS. Most of them are indispensable because they are basic components of the system.

Multitask preemptive and multiprocessor kernel

This kernel allows the execution of several tasks at the same time. The preemptive kernel gives a CPU time to run, after the time elapses, the process is suspended, and another process is executed. Which gives the illusion of simultaneous execution. The big advantage, too, is that if a process stops responding, the system still keeps the hand. I have already developed a kernel in this sense, but I must see it for the load distribution on several processors.

Memory allocation

This module is already created. It allows me to allocate memory space for any program that needs it. It also manages the release, or the reallocation in the event of a change in size.

File manager

Read and write a file on the SD card taking into account a hierarchy of directories. I would like to create a new file system, other than FAT32, because this one incorporates many fields not really useful and it is split up. The idea is to be able to write the data rather brutally, with a descriptive field succint. I think I am inspired by the memory allocation module for changing the location of files, in case of change in size.

Command interpreter

When the Pi starts, a console appears and allows you to directly type commands in text mode. This module must interpret the commands entered and execute the programs accordingly.
At this level, you can also type the instructions of a new programming language, for example to create variables and initialize them with a value.

Graphical user interface

I created a module that allows you to view and overlay windows. This module works thanks to Neon, which allows a fast copy of the data in memory. The typed text appears in a text box, and you can move the cursor or erase the text.
Good news, I no longer exclude the Videocore for the realization of the window manager. I managed to take into account the Z depth. So I will continue the development with the Videocore.

Compiler

The purpose of this system is to be able to create programs in a structured, easy and powerful language. I think I am inspired by the syntax of a new language that is emerging: Julia. So you have to create a system that analyzes the typed code, to make the transcription in machine language : this is called compilation. Any program will be composed of the code in user language with the associated machine code.

Process Management

In correlation with the multitask kernel, each program can be executed x times (for example a text editor). For this, a resource reservation module will assign a process number and a memory area for the program instance. A small program should allow to visualize the processes in progress.

and then

Once all these basic modules are in place, we can move to additional modules for home automation:

  • wireless communication : wifi, bluetooth, zigbee ...
  • wired communication : i2c, gpio, ethernet ...
  • Comments :

    Add a comment

    Page : 1