OSDev.org

The Place to Start for Operating System Developers
It is currently Thu Mar 28, 2024 2:35 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 22 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: 32 Bit FreeBasic OS
PostPosted: Fri Dec 09, 2016 4:51 am 
Offline
Member
Member

Joined: Tue Mar 25, 2008 12:26 pm
Posts: 52
Hi,

There is a little presentation of my OS, it need a name, if you have any idea, you can reply to this post

* It's written entirely in FreeBasic (an a little bit Assembly, using FASM), using Grub as boot loader
* It's a single tasked operating system, the application run in privileged mode (there is no paging, segmentation or security level, the application has full access to the system, like in DOS, but in 32 bit, in graphic mode)
* The applications are fully event driven, they do nothing unless the kernel call the "update" method, or if a callback (on button by example) is triggered
* There is no "Syscall", the kernel exposes public methods to the app trought a pointer array, at the initialization
* The system is multi user, each user has his own configuration and data file
* The apps are stored like in Mac, in an .App folder wich contains the app executable, the icon, the data files, etc...
* Altought it's single tasked, the user can launch multiple task, and manually switch between them
* The design is inspired by the CDE gui

* The application use XML to describe gui, the kernel can parse it to generate application interface and all controls (+callback)

there's somme screen shots

the Login screen
Attachment:
File comment: Login screen
Login.jpg
Login.jpg [ 38.06 KiB | Viewed 19962 times ]


the apps list:
Attachment:
File comment: Applications list
AppLists.JPG
AppLists.JPG [ 72.51 KiB | Viewed 19962 times ]


Address
Attachment:
File comment: address book
address_book.jpg
address_book.jpg [ 81.51 KiB | Viewed 19962 times ]


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Fri Dec 09, 2016 7:20 am 
Offline
Member
Member
User avatar

Joined: Tue Aug 02, 2016 1:52 pm
Posts: 286
Location: East Riding of Yorkshire, UK
trolly wrote:
* The application use XML to describe gui, the kernel can parse it to generate application interface and all controls (+callback)


Is this similar to FXML/JavaFX?

_________________
com.sun.java.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState
Compiler Development Forum


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Fri Dec 09, 2016 7:35 am 
Offline
Member
Member
User avatar

Joined: Sat Dec 27, 2014 9:11 am
Posts: 901
Location: Maadi, Cairo, Egypt
Neat.
Is there some code to see or a disk image to download?

_________________
You know your OS is advanced when you stop using the Intel programming guide as a reference.


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Fri Dec 09, 2016 5:47 pm 
Offline
Member
Member

Joined: Tue Mar 25, 2008 12:26 pm
Posts: 52
Hi,

i'm uploading the code and the binary dist there:

the source (include the kernel & apps sources + asm headers + linker scripts + batch files for the build process:
http://www.codinfinity.net/NewOS_src.zip 145k

the hard drive image (for qemu)
http://www.codinfinity.net/NewOS_hd.zip 4M

the full archive, including source, hard drive image and toolchain (freebasic compiler + linker + gcc, etc...) runs on windows without extra configuration
http://www.codinfinity.net/NewOS.zip 94M


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Fri Dec 09, 2016 5:55 pm 
Offline
Member
Member

Joined: Tue Mar 25, 2008 12:26 pm
Posts: 52
zenzizenzicube wrote:
trolly wrote:
* The application use XML to describe gui, the kernel can parse it to generate application interface and all controls (+callback)


Is this similar to FXML/JavaFX?


i'm not sure, because i dont know FXML or JavaFX,
to be short, the gui is programmed in Object Oriented, all widget are described in a class, in the xml the node name are the class names (Window , Button, etc...) the attributes are the properties (Top Left, Width , Text, OnClick, etc...) and the childnode are the children contained in the parent object (example, buttons inside a window)

there is by example the xml code for the calc app:
Code:
<Application>
<WindowView Title="Simple calculator" Width="550" Height="400">
        <GridLayout Columns="4" Rows="5" Margin="10">
      <TextBox ID="txtValue" Margin="5" ColumnSpan="4" Enabled="false" FontSize="2" TextAlign="Right" />
      <Button ID="btn7" Text="7" Margin="5" Click="btn7Click" />
      <Button ID="btn8" Text="8" Margin="5" Click="btn8Click" />
      <Button ID="btn9" Text="9" Margin="5" Click="btn9Click" />
      <Button ID="btnPlus" Text="+" Margin="5" Click="btnPlusClick" />
      <Button ID="btn4" Text="4" Margin="5" Click="btn4Click" />
      <Button ID="btn5" Text="5" Margin="5" Click="btn5Click" />
      <Button ID="btn6" Text="6" Margin="5" Click="btn6Click" />
      <Button ID="btnMinus" Text="-" Margin="5" Click="btnMinusClick" />
      <Button ID="btn1" Text="1" Margin="5" Click="btn1Click" />
      <Button ID="btn2" Text="2" Margin="5" Click="btn2Click" />
      <Button ID="btn3" Text="3" Margin="5" Click="btn3Click" />
      <Button ID="btnMultiply" Text="*" Margin="5" Click="btnMultiplyClick" />
      <Button ID="btnC" Text="C" Margin="5" Click="btnCClick" />
      <Button ID="btn0" Text="0" Margin="5"  Click="btn0Click" />
      <Button ID="btnEqual" Text="=" Margin="5"  Click="btnEqualClick" />
      <Button ID="btnDivide" Text="/" Margin="5"  Click="btnDivideClick" />
        </GridLayout>
</WindowView>
</Application>


Last edited by trolly on Fri Dec 09, 2016 6:21 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Fri Dec 09, 2016 6:05 pm 
Offline
Member
Member
User avatar

Joined: Tue Aug 02, 2016 1:52 pm
Posts: 286
Location: East Riding of Yorkshire, UK
trolly wrote:
zenzizenzicube wrote:
Is this similar to FXML/JavaFX?


i'm not sur, because i dont know FXML or JavaFX,
to be short, the gui is programmed in Object Oriented, all widget are described in a class, in the xml the node name are the class names (Window , Button, etc...) the attributes are the properties (Top Left, Width , Text, OnClick, etc...) and the childnode are the children contained in the parent object (example, buttons inside a window)


That's quite cool, do you also have a way to add a style to the widgets?

_________________
com.sun.java.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState
Compiler Development Forum


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Fri Dec 09, 2016 6:19 pm 
Offline
Member
Member

Joined: Tue Mar 25, 2008 12:26 pm
Posts: 52
for now, no , style is not supported (only the known properties can be set)
if you want to add custom widget you have to implement the class that's herit from the widget (a button by example) and write the draw method for it,

latter i'll add skin support


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Sat Dec 10, 2016 3:42 am 
Offline
Member
Member

Joined: Sun Feb 01, 2009 6:11 am
Posts: 1070
Location: Germany
trolly wrote:
the hard drive image (for qemu)
http://www.codinfinity.net/NewOS_hd.zip 4M

I wanted to try this out, but what would be a valid username/password for login? :)

_________________
Developer of tyndur - community OS of Lowlevel (German)


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Sat Dec 10, 2016 4:21 am 
Offline
Member
Member
User avatar

Joined: Sat Dec 27, 2014 9:11 am
Posts: 901
Location: Maadi, Cairo, Egypt
Kevin wrote:
I wanted to try this out, but what would be a valid username/password for login? :)

Same here. :)

_________________
You know your OS is advanced when you stop using the Intel programming guide as a reference.


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Sat Dec 10, 2016 4:42 am 
Offline
Member
Member

Joined: Tue Mar 25, 2008 12:26 pm
Posts: 52
sorry,


username : guest
password : BONJOUR

(case sensitive)


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Sat Dec 10, 2016 6:54 am 
Offline
Member
Member

Joined: Sun Feb 01, 2009 6:11 am
Posts: 1070
Location: Germany
Thanks, that works.

Good job, I like your OS. :)

_________________
Developer of tyndur - community OS of Lowlevel (German)


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Sat Dec 10, 2016 10:31 am 
Offline
Member
Member

Joined: Tue Mar 25, 2008 12:26 pm
Posts: 52
Kevin wrote:
Thanks, that works.

Good job, I like your OS. :)


Thanks,
there is still a lot to do
* audio driver,
* nethword card driver
* tcp/ip & udp stack
* settings programs
* website
* find a cool name for it

if you have any suggestion, or if you want to help me (writing drivers, desining website or make mokup for the apps, etc...) don't hesitate to reply


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Sat Dec 10, 2016 10:44 am 
Offline
Member
Member

Joined: Sun Feb 01, 2009 6:11 am
Posts: 1070
Location: Germany
If you want to use some drivers from me (and others), you can just implement the header files of the CDI interface. Interfacing between C and FreeBasic shouldn't be too hard, but it will add a C compiler to your toolchain.

_________________
Developer of tyndur - community OS of Lowlevel (German)


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Sat Dec 10, 2016 11:05 am 
Offline
Member
Member

Joined: Tue Mar 25, 2008 12:26 pm
Posts: 52
Kevin wrote:
If you want to use some drivers from me (and others), you can just implement the header files of the CDI interface. Interfacing between C and FreeBasic shouldn't be too hard, but it will add a C compiler to your toolchain.


ho thanks, btw, i think it should be easy to port it in freebasic :D

btw, i dont have git, how do i dowload the sources tree?


Top
 Profile  
 
 Post subject: Re: 32 Bit FreeBasic OS
PostPosted: Sat Dec 10, 2016 11:30 am 
Offline
Member
Member
User avatar

Joined: Tue Aug 02, 2016 1:52 pm
Posts: 286
Location: East Riding of Yorkshire, UK
trolly wrote:
btw, i dont have git, how do i dowload the sources tree?


Go to the commit log and click on the snapshot link.

http://git.tyndur.org/?p=cdi.git;a=snap ... bad;sf=tgz

_________________
com.sun.java.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState
Compiler Development Forum


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 22 posts ]  Go to page 1, 2  Next

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 20 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group