Jump to content




Linear Operating System [Discontinued]


35 replies to this topic

#1 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 11 October 2014 - 07:29 PM

Posted Image



LinearOS has been discontinued due to lack of development for over a year. Feel free to use/edit it in whatever way you want.



Discontinuation
Spoiler

Linear Operating System is to be used on a advanced computer.
This operating system is a huge update from my previous operating system. This OS includes a lot more features and is more customizable.

Features
-SHA256 secured user accounts.
-Different desktop background for each user.
-ComputerCraft App Store by oeed. (Doesn't work for me at the moment.)
-Each user has their own programs folder, managed by the Program Manager (From OSROS)
-A clock will reveal itself when clicked on the top right desktop corner.
-Mouse File Browser by BigSHinyToys
-Compatible with any ComputerCraft program.
-Automatic Updates
-Manuel updates
-Sleek and fast installer

Installation

To install Linear OS v1.5.1 run

pastebin run vGdQnj5Y

Paste here.
You can find my GitHub repository for LinearOS here.


Known Issues
-The program manager will freeze and require an entire system reboot if you click uninstall without any programs in the programs folder.
-During updates, the OS won't tell you if you have HTTP on or off.
-I am expecting an error to rise with the returns I put in to prevent the stack overload, since that I haven't seen the overload error, yet I haven't used
the OS enough to find out.

Change-log
Spoiler

Screenshots
Spoiler

Thank you to:
Spoiler

Even though this OS has been discontinued, I may still work on a new one, I haven't decided yet.

Edited by Agent Smith, 19 January 2016 - 05:29 PM.


#2 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 12 October 2014 - 10:23 PM

Release 1.1

-Fixed the bug where if you logged in for the first time with the first registered user, the program would crash (copy failed)
-Replaced the previous ComputerCraft App Store code with the updated code. (Thanks oeed - but I still think it's broken, or maybe it's me. Check your PM)

Release 1.2 Planned Features
Estimated release date: 16/10/2014

-Updates to be implemented.
-Automatic updates to be implemented.
-Different menu bar colors for different users.


Any thoughts on the OS?

Please report any bugs you might have found via this topic or a personal message.

Edited by mrdawgza, 12 October 2014 - 10:36 PM.


#3 vyse

  • Members
  • 45 posts

Posted 13 October 2014 - 04:47 AM

this look amazing.. but one problem some reason i get a error when i try to install.. it says l:500 domain error

#4 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 13 October 2014 - 08:28 AM

View Postvyse, on 13 October 2014 - 04:47 AM, said:

this look amazing.. but one problem some reason i get a error when i try to install.. it says l:500 domain error

Thanks.

The fix for your problem
Linear OS cannot be installed on ComputerCraft v1.63 by default. Since the config now has website whistelisting, all websites but computercraft.info and pastebin.com are not allowed by default.
To get around this change 'S:http_whitelist="pastebin.com;*computercraft.info' in the ComputerCraft.cfg to 'S:http_whitelist=*'. This is fixed as of 1.64pr2.

It is because LinearOS uses GitHub for installation, GitHub is not on the domain whistelist.

About v1.2

I have gotten an updater implemented however it is quite buggy. I will recode it this afternoon and try get release 1.2 out by tonight.

I am also going to release a new installer which will scan for an old version of LinearOS and ask to update it, as well as make it error if it cannot reach Github.

Edited by mrdawgza, 24 October 2014 - 05:58 PM.


#5 cdel

  • Banned
  • 496 posts
  • LocationMelbourne, Australia

Posted 13 October 2014 - 08:47 AM

I haven't tried this yet, however the screenshots look very pleasing and impressive. :)

#6 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 13 October 2014 - 09:00 AM

View Postconnordelaneyy, on 13 October 2014 - 08:47 AM, said:

I haven't tried this yet, however the screenshots look very pleasing and impressive. :)/>

Thanks. There's just one bug on the desktop where for one third of each second, it doesn't register clicks. This is because of the time, it's quite annoying :P

#7 AssossaGPB

  • Members
  • 126 posts
  • LocationFlorida, USA

Posted 13 October 2014 - 01:15 PM

This does look really nice! I'll try it out later.

#8 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 13 October 2014 - 05:35 PM

Release 1.2 is now out.

New:
-Update function

This may only be one little update I just wanted to get it out so I can make releasing other updates easier.

Known issues:
-All issues from release 1.1 are carried to release 1.2.

Planned features for release 1.3
-Automatic updates
-Boot behavior
-New installer


Please report any bugs you might have found via this topic or a personal message.

#9 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 14 October 2014 - 03:04 PM

Release 1.3 is now out.

New:
-Automatic updates implemented
-Boot behavior implemented
-New installer

Known issues:
-All issues from release 1.2 are also in release 1.3

Planned features for release 1.4
-Fix the Java error one may encounter after using the exit button on programs a bit too much (All programs, switching from program to program)
-Individual user colors
-Make automatic updates configurable.

Please report any bugs you might have found via this topic or a personal message.

Edited by mrdawgza, 24 October 2014 - 01:43 PM.


#10 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 24 October 2014 - 02:03 PM

Release 1.4 is out

New:
-Automatic updates are now actually working.
-Automatic updates can be toggled.
-Each user has their own desktop configuration (both the menu bar color and time format)
-New color selector (logging in as new user and settings)

Fixed:
-Removed the random bar under the main desktop menu.

Known Issues:
All issues from release 1.3 are carried here

Please report any bugs you might have found via this topic or personal message.

#11 Dragon53535

  • Members
  • 973 posts
  • LocationIn the Matrix

Posted 24 October 2014 - 04:27 PM

Your java error is a Stack Overflow, or at least it looks like it will be.

When you keep calling a function over and over and don't allow any of them to end, then the computer's got all these locations of where to pick up on when each is done.

Say i have a program
function foo()
  bar()
end

function bar()
  foo()
end

foo()
The problem with this, is that it saves the point at which foo is first called, right at the bottom, and knows that whenever foo is done, go back there, however in foo, it goes to bar, and at that point it knows that whenever bar is done, go back to this point, however bar calls foo again, and the cycle keeps continuing without anyone finishing and so eventually the computer is going to have too many locations to remember to go back to, that it overflows, and you get an error.

#12 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 24 October 2014 - 05:41 PM

View PostDragon53535, on 24 October 2014 - 04:27 PM, said:

Your java error is a Stack Overflow, or at least it looks like it will be.

When you keep calling a function over and over and don't allow any of them to end, then the computer's got all these locations of where to pick up on when each is done.

Say i have a program
function foo()
  bar()
end

function bar()
  foo()
end

foo()
The problem with this, is that it saves the point at which foo is first called, right at the bottom, and knows that whenever foo is done, go back there, however in foo, it goes to bar, and at that point it knows that whenever bar is done, go back to this point, however bar calls foo again, and the cycle keeps continuing without anyone finishing and so eventually the computer is going to have too many locations to remember to go back to, that it overflows, and you get an error.

Ohh, I thought it was by using shell.run too many times. Thanks for the explanation, but how would I solve this?

BTW, is anyone else having trouble installing apps from the App Store included in this OS? (By oeed ofcourse, it's the standalone

Edited by mrdawgza, 24 October 2014 - 05:49 PM.


#13 KingofGamesYami

  • Members
  • 3,002 posts
  • LocationUnited States of America

Posted 24 October 2014 - 06:17 PM

View Postmrdawgza, on 24 October 2014 - 05:41 PM, said:

-snip-
Ohh, I thought it was by using shell.run too many times. Thanks for the explanation, but how would I solve this?

To solve it, don't call stuff like that. Use nested loops if you have too. The stack is 256 calls (if I remember correctly), which makes it really hard to overload, unless you use recursion (which is basically what Dragon said). Recursion can also be caused by programs running each other over and over, for example this program:
local pr = shell.getRunningProgram()
print( pr )
sleep( 0.01 )
shell.run( pr )
Will overload, because there are > 256 instances of the program running. Another solution is to use proper recursion (not recommended, of course) by ending the function when it is called.

Eg.
function foo()
  return bar()
end
function bar()
  return foo()
end
foo()
However, the code posted above suffers from a different problem, too long without yielding. CC kills any co routine that doesn't yield after ~10 seconds. os.pullEvent and some of the turtle API yield, preventing this from occurring.

#14 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 24 October 2014 - 06:28 PM

View PostKingofGamesYami, on 24 October 2014 - 06:17 PM, said:

View Postmrdawgza, on 24 October 2014 - 05:41 PM, said:

-snip-
Ohh, I thought it was by using shell.run too many times. Thanks for the explanation, but how would I solve this?

To solve it, don't call stuff like that. Use nested loops if you have too. The stack is 256 calls (if I remember correctly), which makes it really hard to overload, unless you use recursion (which is basically what Dragon said). Recursion can also be caused by programs running each other over and over, for example this program:
local pr = shell.getRunningProgram()
print( pr )
sleep( 0.01 )
shell.run( pr )
Will overload, because there are > 256 instances of the program running. Another solution is to use proper recursion (not recommended, of course) by ending the function when it is called.

Eg.
function foo()
  return bar()
end
function bar()
  return foo()
end
foo()
However, the code posted above suffers from a different problem, too long without yielding. CC kills any co routine that doesn't yield after ~10 seconds. os.pullEvent and some of the turtle API yield, preventing this from occurring.

Thanks. I'll look into it. (long term)

#15 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 28 October 2014 - 08:47 AM

I've been thinking of removing the clock on the desktop because it's kinda pointless. I don't know many OSs here that have clocks on the desktop. I'm thinking of replacing it for a separate function that displays time. I want to do this because the desktop is quite a pain with the timer for the clock. I've tried ways to get it working smoothly and it doesn't work.

#16 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 31 October 2014 - 02:27 PM

Release 1.5.1 is out

-User System: Each user has their own programs folder.
-Desktop: The clock has been replaced with a button ([CLOCK]) which will show the time for 1 second when clicked.
-Settings: Computer Statistics has been renamed to About LinearOS.
-Settings: About LinearOS (formerly Computer Statistics) now shows the computer label, ID and the free space in KB.
-LoadOS: Been shortened, a lot. I removed the bar and replaced it with the LINEAR image.
-LoadOS: The computer will check if all system files are present.
-LoadOS: If there is a missing system file, you will receive an error.
-LoadOS: Removed the user function from the Load OS file and put it in a separate file in apis.
-Startup: The startup file will immediately redirect to linear/system/loados.ls instead of displaying the LINEAR image.
-System: I have put a bunch of returns in to prevent the Java stack overload.
-Several bug fixes.

Regarding my previous post, I have removed the clock to allow more smoother desktop access.
As for the rest of the OS, I have reduced the size (considering the new features).

I think the Java Stack overload error will no longer occur but I am not so sure since I haven't spent a lot of time in the OS

Please report any bugs you might have found via this topic or personal message.

#17 Anavrins

  • Members
  • 775 posts

Posted 31 October 2014 - 03:50 PM

Nope, you still have it all over the place.
You also have code after "return"s statement that will never be executed, https://github.com/m...ettings.ls#L517

#18 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 31 October 2014 - 04:23 PM

View PostAnavrins, on 31 October 2014 - 03:50 PM, said:

Nope, you still have it all over the place.
You also have code after "return"s statement that will never be executed, https://github.com/m...ettings.ls#L517

Still have what? The Stack overload? I mainly put the return on the desktop and settings programs because they were used the most.

I may have code after the the returns and it hasn't errored yet


#19 com_kieffer

  • Members
  • 14 posts

Posted 31 October 2014 - 05:06 PM

View Postmrdawgza, on 31 October 2014 - 04:23 PM, said:

I may have code after the the returns and it hasn't errored yet

It hasn't errored because it will never be run. It is effectively dead code.

#20 mrdawgza

  • Members
  • 110 posts
  • LocationSouth Africa

Posted 31 October 2014 - 05:44 PM

View Postcom_kieffer, on 31 October 2014 - 05:06 PM, said:

View Postmrdawgza, on 31 October 2014 - 04:23 PM, said:

I may have code after the the returns and it hasn't errored yet

It hasn't errored because it will never be run. It is effectively dead code.

How do you mean dead? Its working like it did before I put in the returns.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users