Forum > Operating Systems

Toro Kernel

<< < (2/6) > >>

why to integrate. an interprerer when you can deploy native???? not only speeed degradation but also a security will have a nodejs server...why???


--- Quote from: Blestan on June 17, 2017, 10:51:45 pm ---why to integrate. an interprerer when you can deploy native???? not only speeed degradation but also a security will have a nodejs server...why???

--- End quote ---
as a programmable shell like bash but true programmable not a toy language.

Toro has very particular architecture in which certain applications are improved but other gets no too much benefices. Toro is good when an application can be split in pipelines. In that case, you can run every pipeline in a different core and then dedicate all the resources needed by core. This reduces a lot the overhead due to shared resources. In addition, switch context are very light.   


--- Quote from: z0rr0 on June 17, 2017, 05:13:53 pm ---Hi everyone, I would like to share my last work related with Toro. Toro is now able to run as KVM guest. This is still experimental but I think work is going well. To show this, I deployed ToroHello example in a VM which anyone can see by connecting a VNC client to This is still a very simple example however it shows how easily a freepascal application can be deployed in the cloud. This application is quite fast since there is no OS, only TORO.   

Regards, Matias.

--- End quote ---
If you like I Worked a little In ToroKernel I tried to put the KernelModuled in a Package, but I didn't without success (maybe you Could help)
But I managed to get My Writepascal-demo running.

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---// Toro Write Pascal Example.// Example using a minimal kernel to print "Pascal" in 3D // Changes : // 19/06/2017 First Version by Joe Care. // Copyright (c) 2017 Joe Care// All Rights Reserved        // This program is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version. // This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details. // You should have received a copy of the GNU General Public License// along with this program.  If not, see <>.  program WritePacal; {$IFDEF FPC} {$mode delphi}{$ENDIF} {$IMAGEBASE 4194304} // Configuring the RUN for Lazarus{$IFDEF WIN64}          {%RunCommand qemu-system-x86_64.exe -m 512 -smp 2 -drive format=raw,file=ToroHello.img}{$ELSE}{%RunCommand qemu-system-x86_64 -m 512 -smp 2 -drive format=raw,file=ToroHello.img}{$ENDIF}{%RunFlags BUILD-} // They are declared just the necessary units// The needed units depend on the hardware where you are running the applicationuses    Kernel in '..\rtl\Kernel.pas',    Process in '..\rtl\Process.pas',    Memory in '..\rtl\Memory.pas',    Debug in '..\rtl\Debug.pas',    Arch in '..\rtl\Arch.pas',    Filesystem in '..\rtl\Filesystem.pas',    Pci in '..\rtl\Drivers\Pci.pas',    Console in '..\rtl\Drivers\Console.pas'; const    i64: int64 = 1055120232691680095; (* This defines "Pascal" *)    cc: array[-3..3] of ShortString = (* Here are all string-constants *)        ('\ '#8' \  ',        #8'__    ',        #8'__/\  ',        '  '#8'    ',        #8'__/\  ',        '  '#8'    ',        #8'__/\  '); var    x, y, c: integer; begin    PrintStringLn(StringOfChar(cc[1][1], 78));    for y := 0 to 11 do      begin        PrintString(StringOfChar(cc[0][1], 13 - y));        for x := 0 to 16 do            for c := 1 to 5 + (x mod 3) and 2 do                if c <= length(cc[(x - 5) mod 4]) then                    PutC(cc[(((i64 shr ((x and 15) * 4 + y div 3)) and (3 -                        (y div 9) shl 1)) - 4 + (2 - y mod 3) shl 2) mod 4][c]);        PrintStringln();      end;    while True do        SysThreadSwitch;end. Put all together in the patch, even a defaultToro.xml (default-Project settings)
Patch attached .

Thanks jc99! I have to replace the methods used to access the console. In Toro the console is written by using WriteConsole() method. I will do it and deploy it soon. 


[0] Message Index

[#] Next page

[*] Previous page

Go to full version