Jump to content




netOS development thread - first OS with "internet" build in.


  • This topic is locked This topic is locked
49 replies to this topic

Poll: netOS questions (42 member(s) have cast votes)

Do you want me to modify "rom" files or I should make it "download one file by paste bin and it will do everything"?

You cannot see the results of the poll until you have voted. Please login and cast your vote to see the results of this poll.

Do you want repeating packets in one network

You cannot see the results of the poll until you have voted. Please login and cast your vote to see the results of this poll.
Vote

#1 grabie2

  • Members
  • 79 posts
  • LocationPoland

Posted 15 December 2012 - 07:40 AM

Hello everyone!

This is development thread - here we're discussing newest versions on project SVN, if you want to get current release see netOS main thread: http://www.computerc...uild-innot-yet/


I'm looking for someone to help me with that pretty difficult task, I will need:
- printer driver (printing queue, page management, paper/ink management, API for it, user application[console], future printing over network, mapping network printers)
- beta tester
- someone to help programming GUI
- printer application for GUI that will be created
- possibly more

I'm Bartek from Poland, 15 years old and I love computer networks. I'm creating my own implementation of Internet that will work on CC computers. The protocols i'm planning to have native support:
- ARP
- UDP
- TCP
- DHCP
- HTTP
- FTP
- DNS
- TELNET

Network will be made of layers - similar to real Internet:
1st - rednet
2nd - IP - thx to huettner94
3rd - UDP/TCP
4th - application protocols for example DNS, HTTP, FTP

I also plan(later) to implement AES cryptography, so there will be things like:
- SSH
- SSL
- VPN
BUT performance will be big issue, possibly I will make addon to CC(like peripherals) that will add special encrypting API.

There will be native dynamic routing protocols, I don't yet know which, or maybe my own - that's really far future.

For more see project page(below).

It's multitasking OS, so you'll be able to have multiple consoles at the same time, for example lua interpreter on local terminal, paint on left monitor, information about your turtles on top screen, star wars video on right and more!
Of course I'll make it so you can easily switch between terminals.


I've implemented VTYs - virtual terminals. Currently they aren't supporting colors, but will soon.
Also textutils API has disabled all printing features, cause they aren't supporting VTYs.
To switch between terminals use CTRL+<number>.

Here is project page: http://netos.robotronika.pl
If you found any bugs please post it on bugtracker: http://netos.robotronika.pl/newticket
Do download source code use SVN: http://svn.robotronika.pl/svn/netos/
user: netos
password: netos

Currently I have implemented about 60% of OS API and very little of networking. After I've done working OS I'll go back to networking stuff.

Changelog(SVN revisions):
23:
  • working IP layer
  • ifconfig program(for now) that shows all interfaces and their configuration
21:
  • moved ip manipulating functions to separate library
  • the same with interfaces
  • ARP is working
  • fixed few bugs
  • added "lock" mode ONLY for drivers, this locks execution of other tasks for some critical operations
  • probably other changes that I forgot about
  • everything form revisions 18-20, I forgot about this change log, sorry.
17:
  • initial version
  • added VTYs
  • locked printing functions of textutils API
  • first step in program privilege levels
  • some bug fixes
PS. Sorry if I made language mistake or something isn't understandable, I'm still learning ;) Feel free to point it out to me.</number>

Posted Image
netOS and all included programs made by grabie2 are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Edited by grabie2, 23 January 2013 - 07:23 AM.


#2 billysback

  • Members
  • 569 posts

Posted 15 December 2012 - 07:45 AM

This looks good but it should go in "General" as there isn't actually any code here, sorry :P

#3 CoolisTheName007

  • Members
  • 304 posts

Posted 15 December 2012 - 09:09 AM

You may be interested in checking out these posts if you don't feel like re-inventing the wheel (on your own):
http://www.computerc...net-rednet-api/
http://www.computerc...__fromsearch__1
http://www.computerc...__fromsearch__1

#4 Ballistic Buddha

  • Members
  • 15 posts

Posted 15 December 2012 - 09:23 AM

I'm super excited for this, I can't wait until this comes to fruition with a working Telnet/SSH daemon so I can finally just remote into a CC Computer and use my OS's native terminal, and bypass the in-game terminal completely.

#5 grabie2

  • Members
  • 79 posts
  • LocationPoland

Posted 15 December 2012 - 10:20 AM

@billysback
Sorry for that, some code will be there(or link to that) in few days, so please don't mind me :D

@CoolisTheName007
I will write everything on my own, cause I like it ;) But still thanks for links I may get some ideas from that

@Ballistic Buddha
Keep in mind that SSH will be slow... and I think that i'll use instead of 1024 bit keys - 32/64/128 bit keys, beacause of lag.

Thanks for support!

#6 mibac138

  • Members
  • 132 posts
  • LocationPoland

Posted 15 December 2012 - 10:44 AM

Siemka! ;)

Też pl jestem :D

Masz skype? XD

#7 grabie2

  • Members
  • 79 posts
  • LocationPoland

Posted 15 December 2012 - 11:14 AM

Hey!

I've got skype. I wrote you a pm ;)

#8 Expenox

  • Members
  • 137 posts
  • LocationIn the depths of my computer.

Posted 15 December 2012 - 11:20 AM

Nice!

#9 grabie2

  • Members
  • 79 posts
  • LocationPoland

Posted 15 December 2012 - 01:01 PM

Project page was just created, still need some work, but i want to push that early code to you ;)
Unfortunantly it doesn't have any networking yet, as I said first I need to create the OS core
http://netos.robotronika.pl

#10 huettner94

  • Members
  • 27 posts

Posted 16 December 2012 - 06:18 AM

great Idea :D
It would probably be usefull if you put an IP-Layer above the rednet connection.
ICMP would be really usefull as well (ping, traceroute)

#11 grabie2

  • Members
  • 79 posts
  • LocationPoland

Posted 16 December 2012 - 06:33 AM

OK, base multitasking is done!
It still needs API and documentation, but now I think i'll start making network stuff ;)

#12 grabie2

  • Members
  • 79 posts
  • LocationPoland

Posted 16 December 2012 - 01:36 PM

I have big question to everyone interested in this OS:
Do you want me to modify "rom" files or I should make it "download one file by paste bin and it will do everything"? - answer in pool

#13 AfterLifeLochie

    Wiki Oracle

  • Moderators
  • 480 posts
  • LocationAfterLifeLochie's "Dungeon", Australia

Posted 16 December 2012 - 01:38 PM

Moved to General - the Programs section is for released software only.

#14 grabie2

  • Members
  • 79 posts
  • LocationPoland

Posted 16 December 2012 - 01:43 PM

Ohh that's why I couldn't submit post edit :D
Thanks for moving and sorry for my mistake.

#15 grabie2

  • Members
  • 79 posts
  • LocationPoland

Posted 16 December 2012 - 10:42 PM

What do you mean by not doing it right?

#16 grabie2

  • Members
  • 79 posts
  • LocationPoland

Posted 17 December 2012 - 11:08 AM

OK, quick update for today:
- I've coded about 30% of layer 2
- Probably I've broken loading driver APIs, so system in current repository version won't boot

also I run public SVN for this project:
http://svn.robotronika.pl/svn/netos
user: netos
pass: netos
Sorry, but because of server configuration, I can't run SVN without authentication.
DNS is fresh setup so it can not work for about a hour

#17 CoolisTheName007

  • Members
  • 304 posts

Posted 17 December 2012 - 11:28 AM

Your multitasking code is inefficient in the sense that it forces CC to resume netOs each 0.1 s.

#18 grabie2

  • Members
  • 79 posts
  • LocationPoland

Posted 18 December 2012 - 11:46 AM

yes, but without that, in this implementation, if task uses "addEventListener" it yields and possibly will resume after long period of time, in this case netOS will resume only if current executing task yields and passed 0.1 s, you can see the delay when you boot the system, when shell runs.

So it will allow to run all tasks in no more than 0.5 s after yield. Or maybe you have better suggestion, if so please let me know. I can change it to like 0.2 s and run all tasks after 3 ticks, more delay will be to noticeable for end user.

Maybe after I implement network in efficient way, I'll change multitasking system, but for now (if there are not major bugs) it will stay mainly like it is.
Maybe prioritization, so user programs run every 0.5 s and drivers/other after longer period of time. Or other event system.

I had idea to actually make "addEventListener" to add callback methods to table and call them when needed, but it was harder to implement and I've done it like it is.

Sorry, but today I had no time to write anything. Tomorrow will be probably the same, maybe Thursday/Friday I'll had time for netOS.

#19 CoolisTheName007

  • Members
  • 304 posts

Posted 18 December 2012 - 12:35 PM

View Postgrabie2, on 18 December 2012 - 11:46 AM, said:

snip
No problem man. I do it so that I yield to CC always (putting os.startTimer(timeout) before) where timeout is 0 if some task wants to run, or the minimum number of seconds needed for firing the next task. The I os.pullEventRaw until someone is ready to run.

#20 grabie2

  • Members
  • 79 posts
  • LocationPoland

Posted 18 December 2012 - 06:36 PM

What does os.startTimer(0), it immediately generates event or does nothing?





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users