BareNumbersOS
-
- Posts: 9
- Joined: Tue Feb 21, 2012 11:33 am
- Contact:
BareNumbersOS
BARENUMBERSOS
-Introduction.
BareNumbersOS is a 64-bit operating system, monotasking
with multicore support.
It is a hobbystic project for educational purpose
and personal use.
It is written entirely in assembly language, so it is
small, fast and simple.
The compiler used is FASM (http://www.flatassembler.net/).
The interaction with the OS is realized by the command line interface
both in text mode and graph mode.
As from version 0.3 there is full support for VESA graphic modes.
The OS can use up to 256 cores and 256 GiB of RAM (64 GiB
ready).
-Minimum hardware requirement.
CPU 64 bit (x86-64) multicore
RAM 32 MiB
Hard Disk PATA (IDE)
Graphic Card VBE 2+
Keyboard PS2
USB Pen drive (for booting only)
It is based on BareMetalOS, of course, but there are
some differencies:
-Bootloader
-Kernel loader
-Memory
-File system
-Commands
-Syscalls
-Some inner functions
-No FAT
-No net
-Compiled with FASM
-GPL3 license
-Graph mode (VESA)
The source code is well commented and in order, so it's easy to understand
the meaning of functions and change the code.
I hope that this project can be useful for you.
Website: http://barenumbersos.xoom.it
-Introduction.
BareNumbersOS is a 64-bit operating system, monotasking
with multicore support.
It is a hobbystic project for educational purpose
and personal use.
It is written entirely in assembly language, so it is
small, fast and simple.
The compiler used is FASM (http://www.flatassembler.net/).
The interaction with the OS is realized by the command line interface
both in text mode and graph mode.
As from version 0.3 there is full support for VESA graphic modes.
The OS can use up to 256 cores and 256 GiB of RAM (64 GiB
ready).
-Minimum hardware requirement.
CPU 64 bit (x86-64) multicore
RAM 32 MiB
Hard Disk PATA (IDE)
Graphic Card VBE 2+
Keyboard PS2
USB Pen drive (for booting only)
It is based on BareMetalOS, of course, but there are
some differencies:
-Bootloader
-Kernel loader
-Memory
-File system
-Commands
-Syscalls
-Some inner functions
-No FAT
-No net
-Compiled with FASM
-GPL3 license
-Graph mode (VESA)
The source code is well commented and in order, so it's easy to understand
the meaning of functions and change the code.
I hope that this project can be useful for you.
Website: http://barenumbersos.xoom.it
Last edited by barenumbersos on Tue Aug 21, 2012 12:21 pm, edited 2 times in total.
----------------------------------------
http://barenumbersos.xoom.it
http://barenumbersos.xoom.it
Re: BareNumbersOS
Why does it support up to 256 cores if it can only run one process at a time?
Using 700MHz Pentium III machine with 64MB of RAM because I feel like it.
ed implementation in C: main(a){for(;;;){read(0,&a,1);if(a=='\n')write(1,"?\n",2);}}
ed implementation in C: main(a){for(;;;){read(0,&a,1);if(a=='\n')write(1,"?\n",2);}}
-
- Posts: 9
- Joined: Tue Feb 21, 2012 11:33 am
- Contact:
Re: BareNumbersOS
One process -> Multiple workload shared in the cores
BareNumbersOS is not a general purpose OS, but it is specific for number crunching, so the multitasking can decrease the performance.
Bye.
BareNumbersOS is not a general purpose OS, but it is specific for number crunching, so the multitasking can decrease the performance.
Bye.
----------------------------------------
http://barenumbersos.xoom.it
http://barenumbersos.xoom.it
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
Re: BareNumbersOS
It requires a multicore cpu?-Minimum hardware requirement.
CPU 64 bit (x86-64) multicore
-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
-
- Posts: 9
- Joined: Tue Feb 21, 2012 11:33 am
- Contact:
Re: BareNumbersOS
I have not a PC with one core only, then i never tested on it.
I have tested the OS on qemu:
qemu-system-x86_64 -m 128 -hda barenumbers.bin -rtc base=localtime -M pc -smp 1 -name "BareNumbers OS"
and it seems OK, but use it with 1 core is a non-sense.
Bye.
I have tested the OS on qemu:
qemu-system-x86_64 -m 128 -hda barenumbers.bin -rtc base=localtime -M pc -smp 1 -name "BareNumbers OS"
and it seems OK, but use it with 1 core is a non-sense.
Bye.
----------------------------------------
http://barenumbersos.xoom.it
http://barenumbersos.xoom.it
Re: BareNumbersOS
How are you measuring performance ? I think multitasking will increase performance.barenumbersos wrote:One process -> Multiple workload shared in the cores
BareNumbersOS is not a general purpose OS, but it is specific for number crunching, so the multitasking can decrease the performance.
Bye.
If a trainstation is where trains stop, what is a workstation ?
Re: BareNumbersOS
Its great to see you were inspired by BareMetal OS. Why drop the network support though?
-Ian
-Ian
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
-
- Posts: 9
- Joined: Tue Feb 21, 2012 11:33 am
- Contact:
Re: BareNumbersOS
Following the goal of my project, the network support is necessary only for clustering, but at this stage of development i prefer to complete the OS before to expand it.
Thank you for your great job.
Thank you for your great job.
----------------------------------------
http://barenumbersos.xoom.it
http://barenumbersos.xoom.it
-
- Posts: 9
- Joined: Tue Feb 21, 2012 11:33 am
- Contact:
Re: BareNumbersOS
Released BareNumbersOS v.0.2
Changes:
GNU/Linux utility named 'bnfs':
with this program you can copy a file from GNU/Linux to
BareNumbersOS (l2b), you can copy a file from BareNumbersOS
to GNU/Linux (b2l) and you can use all BNFS commands ( dir,
mkd, mkf, ren, del, mvf, lim, sto, format )
added the function os_get_datetime_string
modified del command
modified dir command
modified format command
modified kcli.inc
added keyb command
new keyboard driver
new italian keyboard layout
new usa keyboard layout
updated manual.txt
added changes.txt
+ minor changes and bugs fix
Changes:
GNU/Linux utility named 'bnfs':
with this program you can copy a file from GNU/Linux to
BareNumbersOS (l2b), you can copy a file from BareNumbersOS
to GNU/Linux (b2l) and you can use all BNFS commands ( dir,
mkd, mkf, ren, del, mvf, lim, sto, format )
added the function os_get_datetime_string
modified del command
modified dir command
modified format command
modified kcli.inc
added keyb command
new keyboard driver
new italian keyboard layout
new usa keyboard layout
updated manual.txt
added changes.txt
+ minor changes and bugs fix
----------------------------------------
http://barenumbersos.xoom.it
http://barenumbersos.xoom.it
-
- Posts: 9
- Joined: Tue Feb 21, 2012 11:33 am
- Contact:
Re: BareNumbersOS
Released BareNumbersOS v.0.3
modified infomap.inc
modified kimem_map.inc
modified vbe.inc
modified splash.inc
added UM_progress_bar
added vbe command
modified screen.asm
added os_inc_ycursor
added os_print_extrachar
deleted os_screen_scroll
new kvbe.inc
new k_init_graph.inc
new graph.asm
new six fonts: font5x10.inc, font6x12.inc, font8x12.inc
font10x15.inc, font12x18.inc, font16x24.inc
modified kcli.inc
modified debug.asm
modified input.asm
modified dir command in fs.inc
added os_get_rdtsc
added os_get_timer
modified ksyscalls.inc
modified bn_syscalls.inc
modified kernel.asm
modified sys64.asm
updated manual.txt
updated changes.txt
+ minor changes and bugs fix
----------------------------------------
The major change is graph mode.
(from manual.txt):
-Graphic mode
During the boot, when is prompted 'Press any key for txt mode',
you have three options:
1).Press no key: the boot continues in graph mode, with resolution
fixed in source code.
2).Press a key between F1-F10: the boot continues in graph mode, with
resolution changed at runtime as in tableA.
3).Press any more key: the boot continues in text mode.
TableA:
F1 = 1280x720 F5 = 1280x800 F9 = 800x600
F2 = 1600x900 F6 = 1680x1050 F10 = 1024x768
F3 = 1920x1080 F7 = 1920x1200
F4 = 2560x1440 F8 = 2560x1600
All resolutions are 32 bit per pixel only.
In text mode the screen is divided in 25 rows x 80 colums.
In graph mode the screen is divided in 60 rows x 160 columns.
To print a char is similar in both modes!
In graph mode there are six fonts available, one for resolution,
as in tableB.
TableB:
16/9________________16/10____________________4/3 (Not Av.)
---------------------------------------------------------------------------------------------------
Av. Resol. Font Disp. Av. Resol. Font Disp. Av. Resol. Font Disp. Size (In.)
---------------------------------------------------------------------------------------------------
* 1280x720 8x12 0-0 * 1280x800 8x12 0-80 1280x960 8x16 0-0 15'-17'
* 1600x900 10x15 0-0 * 1680x1050 10x15 80-150 1600x1200 10x20 0-0 20'
* 1920x1080 12x18 0-0 * 1920x1200 12x18 0-120 1920x1440 12x24 0-0 22'-24'
* 2560x1440 16x24 0-0 * 2560x1600 16x24 0-160 2560x1920 16x32 0-0 27'
* 800x600 5x10 0-0 ; default
* 1024x768 6x12 64-48
(* = available)
The favourite screen format is 16/9.
Disp indicates the pixels around the screen not used for rows x columns grid.
For searching your appropriate screen resolution supported by graphic card, you can use 'vbe' command.
It is recommended to write in source code the max resolution supported by your PC as default setting
(in sys64.asm) and recompile the kernel.
modified infomap.inc
modified kimem_map.inc
modified vbe.inc
modified splash.inc
added UM_progress_bar
added vbe command
modified screen.asm
added os_inc_ycursor
added os_print_extrachar
deleted os_screen_scroll
new kvbe.inc
new k_init_graph.inc
new graph.asm
new six fonts: font5x10.inc, font6x12.inc, font8x12.inc
font10x15.inc, font12x18.inc, font16x24.inc
modified kcli.inc
modified debug.asm
modified input.asm
modified dir command in fs.inc
added os_get_rdtsc
added os_get_timer
modified ksyscalls.inc
modified bn_syscalls.inc
modified kernel.asm
modified sys64.asm
updated manual.txt
updated changes.txt
+ minor changes and bugs fix
----------------------------------------
The major change is graph mode.
(from manual.txt):
-Graphic mode
During the boot, when is prompted 'Press any key for txt mode',
you have three options:
1).Press no key: the boot continues in graph mode, with resolution
fixed in source code.
2).Press a key between F1-F10: the boot continues in graph mode, with
resolution changed at runtime as in tableA.
3).Press any more key: the boot continues in text mode.
TableA:
F1 = 1280x720 F5 = 1280x800 F9 = 800x600
F2 = 1600x900 F6 = 1680x1050 F10 = 1024x768
F3 = 1920x1080 F7 = 1920x1200
F4 = 2560x1440 F8 = 2560x1600
All resolutions are 32 bit per pixel only.
In text mode the screen is divided in 25 rows x 80 colums.
In graph mode the screen is divided in 60 rows x 160 columns.
To print a char is similar in both modes!
In graph mode there are six fonts available, one for resolution,
as in tableB.
TableB:
16/9________________16/10____________________4/3 (Not Av.)
---------------------------------------------------------------------------------------------------
Av. Resol. Font Disp. Av. Resol. Font Disp. Av. Resol. Font Disp. Size (In.)
---------------------------------------------------------------------------------------------------
* 1280x720 8x12 0-0 * 1280x800 8x12 0-80 1280x960 8x16 0-0 15'-17'
* 1600x900 10x15 0-0 * 1680x1050 10x15 80-150 1600x1200 10x20 0-0 20'
* 1920x1080 12x18 0-0 * 1920x1200 12x18 0-120 1920x1440 12x24 0-0 22'-24'
* 2560x1440 16x24 0-0 * 2560x1600 16x24 0-160 2560x1920 16x32 0-0 27'
* 800x600 5x10 0-0 ; default
* 1024x768 6x12 64-48
(* = available)
The favourite screen format is 16/9.
Disp indicates the pixels around the screen not used for rows x columns grid.
For searching your appropriate screen resolution supported by graphic card, you can use 'vbe' command.
It is recommended to write in source code the max resolution supported by your PC as default setting
(in sys64.asm) and recompile the kernel.
----------------------------------------
http://barenumbersos.xoom.it
http://barenumbersos.xoom.it
-
- Posts: 9
- Joined: Tue Feb 21, 2012 11:33 am
- Contact:
Re: BareNumbersOS
2013 Apr. : Released BareNumbersOS v.0.4
added os_is_alpha
added os_is_uppercase
added os_is_lowercase
added os_is_ctrl_letter
modified screen.asm
added os_print_box_with_color
added os_input_string_with_cursor
added os_g_bitmap
added os_g_screen_to_bitmap
modified ksyscalls.inc
modified bn_syscalls.inc
modified ksysvar.inc
modified set_colsrows_limits in kinit_graph.inc
new controls.asm:
(check, label, activelabel, arrayalabel,
inputstring, bitmap, customcontrol)
new bn_controls.inc
new bn_hello-ui.asm
new ex_controls.inc (in examples.tgz)
new ex_tilectrl.asm (in examples.tgz)
updated manual.txt
updated changes.txt
+ minor changes and bugs fix
----------------------------------------
The major change is 'Tiles and Controls manager':
(from manual.txt):
-Tiles and controls
With the goal to facilitate the writing of programs were added tiles and controls.
The file bn_controls.inc included in your program permits to use tiles (similar but not equal to
tiled windows) and controls (similar to controls in other OS but not objects).
The use of them is optional, they are not part of the kernel.
The tile is a fixed panel or box not overlapping on other tiles with a max of 99 pages (turning with
pg down and pg up) and max 52 controls in every page. The tiles are named from a to z (lowercase),
the controls are named from a to z (lowercase) and from A to Z (uppercase).
To change the focus of a tile press CTRL+letter, to change the focus of a control press only a letter.
You use only keyboard, the mouse is not required: this is very useful and fast.
At this stage of development there are the following controls:
CHECK similar to checkbox, LABEL similar to label, ALABEL similar to button,
ARRAYALABEL similar to listbox, INPUTSTRING similar to textbox, BITMAP similar to image
and CUSTOMCONTROL defined by user.
For more informations view the code in bn_controls.inc, controls.asm and the examples in
bn_hello-ui.asm and ex_tilectrl.asm (in examples.tgz).
Screenshot:
http://barenumbersos.xoom.it/virgiliowi ... are-ui.png
added os_is_alpha
added os_is_uppercase
added os_is_lowercase
added os_is_ctrl_letter
modified screen.asm
added os_print_box_with_color
added os_input_string_with_cursor
added os_g_bitmap
added os_g_screen_to_bitmap
modified ksyscalls.inc
modified bn_syscalls.inc
modified ksysvar.inc
modified set_colsrows_limits in kinit_graph.inc
new controls.asm:
(check, label, activelabel, arrayalabel,
inputstring, bitmap, customcontrol)
new bn_controls.inc
new bn_hello-ui.asm
new ex_controls.inc (in examples.tgz)
new ex_tilectrl.asm (in examples.tgz)
updated manual.txt
updated changes.txt
+ minor changes and bugs fix
----------------------------------------
The major change is 'Tiles and Controls manager':
(from manual.txt):
-Tiles and controls
With the goal to facilitate the writing of programs were added tiles and controls.
The file bn_controls.inc included in your program permits to use tiles (similar but not equal to
tiled windows) and controls (similar to controls in other OS but not objects).
The use of them is optional, they are not part of the kernel.
The tile is a fixed panel or box not overlapping on other tiles with a max of 99 pages (turning with
pg down and pg up) and max 52 controls in every page. The tiles are named from a to z (lowercase),
the controls are named from a to z (lowercase) and from A to Z (uppercase).
To change the focus of a tile press CTRL+letter, to change the focus of a control press only a letter.
You use only keyboard, the mouse is not required: this is very useful and fast.
At this stage of development there are the following controls:
CHECK similar to checkbox, LABEL similar to label, ALABEL similar to button,
ARRAYALABEL similar to listbox, INPUTSTRING similar to textbox, BITMAP similar to image
and CUSTOMCONTROL defined by user.
For more informations view the code in bn_controls.inc, controls.asm and the examples in
bn_hello-ui.asm and ex_tilectrl.asm (in examples.tgz).
Screenshot:
http://barenumbersos.xoom.it/virgiliowi ... are-ui.png
----------------------------------------
http://barenumbersos.xoom.it
http://barenumbersos.xoom.it
- Love4Boobies
- Member
- Posts: 2111
- Joined: Fri Mar 07, 2008 5:36 pm
- Location: Bucharest, Romania
Re: BareNumbersOS
Is there any reason you decided to write a changelog that doesn't provide potential users with any useful information whatsoever?
No one, ever wrote:OMG, the new version of BareNumbersOS updates one of its source files, ksysvar.inc.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
[ Project UDI ]
-
- Posts: 9
- Joined: Tue Feb 21, 2012 11:33 am
- Contact:
Re: BareNumbersOS
What information you want to know?
----------------------------------------
http://barenumbersos.xoom.it
http://barenumbersos.xoom.it
Re: BareNumbersOS
I would love to download it and take a look, however the website is loading very slow