This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
Selim's profile picture

[0.7d] Northbridge Terminal OS - Back-ported Functions, Multitasking and more!

Started by Selim, 13 October 2015 - 08:10 PM
Selim #1
Posted 13 October 2015 - 10:10 PM

Northbridge Terminal OS [twitter]northbridge_net[/twitter]
The first OS with built-in support for the Northbridge Network.

Explanation of the Northbridge project here.

Features:
  • User login
  • Push notifications
  • Customizable theme
  • [acronym='Removed as of dev v0.7b and re-added in v0.7c, just as view-only']OS file protection[/acronym]
  • Online file storage (dev)
  • [acronym='Auto-completion, settings API, wget program, corrected pastebin program']Back-ported features[/acronym] (dev)
  • Environment detection (ComputerCraft (default), ComputerCraft Edu, Termu, CCEmuRedux and [acronym='The version hosted on the Northbridge website']Mimic[/acronym] are supported) (dev)
  • Multitasking API (dev)
  • RTC API (dev)
  • Metadata API (dev)
  • Detect MC version when _HOST is not available (dev)
  • Detect CC version when _HOST is not available (dev)
  • Most if not all features should be supported for pretty far back in past CC versions
Do not consider this a final product, there is always room for improvement, so if you find any bugs/have suggestions, feel free to post them below.

Screenshots:
SpoilerThe main feature to show off graphically right now is the theme and how different programs use it.
Default:

O "lava" theme:

Reboot program uses it:

Lua program uses it:

More screenshots to come as features make stable releases.

To do:
Spoiler
  • Program manager with permissions
  • Official programs in manager
    • Graphical desktop
    • Music streaming
    • Store API
    • Social
  • Built-in updater

Changelog:
SpoilerChangelog for alpha and dev builds are not tracked here. You can see the latest changes in the installer.
0.6
- Quick patch to fix the pastebin program
- Changed reboot and lua programs to follow theme

0.5
- Added notification API
- Fixed OS (hopefully)

0.4
- You can now change your theme by running the 'theme' command in the main terminal.
- Fixed the directory whitelist for fs.open.

0.3
- Added user login.
-> Network and local accounts.
- Something else I can't remember.

0.2
- Fixed file protection issue.

0.1
- Initial release.

To install:
Spoiler
pastebin run 9gQF554U

Why have three different builds?
SpoilerThe stable build is obviously going to be the most stable, more polished, should have fewer issues. Full changelog will be tracked here on the thread.
The dev build has finished features, little less stable.
Alpha build will be most unstable, and the newer features may change as it gets closer to being pushed to the dev build. Alpha will also be updated more frequently. Builds will not be posted here as frequently.

How versioning works in dev and alpha builds:
SpoilerThe number represents the stable build that it is working towards.
The first letter is the dev version or the version of dev that alpha is working towards.
The second letter is the alpha version.
For example, take version "0.5bc"
"0.5" is the new stable build that is in progress.
"b" is the dev build that is in progress.
"c" is the current alpha build.

Links:
SpoilerIssue tracker: https://github.com/S...hbridge_Network
Chat on Gitter here!

If you have any issues, use the "submitLog" program!

If you like this project or it's concept, please leave a reply saying so. It is a great encouragement to keep working on it.
Edited on 19 May 2016 - 03:03 PM
Selim #2
Posted 13 October 2015 - 10:52 PM
It appears that the OS is currently more buggy in 1.74 than 1.6. Just so you know. I will have to spend some extra time fixing that, as I can only do 1.6 when at school, cause I am using my Chromebook, with the Mimic emulator.

EDIT: I now have my Chromebook running Minecraft with ComputerCraft 1.74, so future builds should run better (hopefully).
Edited on 16 November 2015 - 10:33 PM
Creator #3
Posted 13 October 2015 - 10:54 PM
So this OS is built around the north bridge api?
Selim #4
Posted 13 October 2015 - 11:08 PM
Technically, all it is at the moment is a glorified CraftOS terminal. The only part of the Northbridge API that it will probably include normally is an app store, which will include some official apps that use the API more so. Though, the app store on the server end is not yet fully functional, so right now all it is a terminal, with file protection on the OS files.

EDIT: The above statement is no longer true, except the part about the app store.
Edited on 28 December 2015 - 05:23 PM
Selim #5
Posted 28 December 2015 - 06:22 PM
I didn't want to post on here each time there is an update, but I have now decided it isn't such a bad idea as it bumps it to the top of the list.
I case anyone is wondering, I am currently working on fully re-writing the file protection api in such a way that it can be used to protect files not only from the system files. It will be Linux-esc with three user-based permssions types (root, owner, other) and three access types. The main difference is that the access types do not include an "execute" permission as I assume it would irritate quite a few users that aren't familiar with it. Instead, it has a "no-access" permission where the file cannot even be read.
Edited on 29 December 2015 - 08:08 PM
FUNCTION MAN! #6
Posted 30 December 2015 - 12:04 AM
FYI: it's trwxrwxrwx, where 't' is the file type (character device, block device, regular file, dirent), 'r' is read, 'w' is write, 'x' is execute.
The permissions are organized into groups of 3, called triads, where the first triad is owner, the second is group, and the third is others.
Selim #7
Posted 30 December 2015 - 04:43 AM
Ok, but I was just using that as inspiration, I already know how that works.
My way of accomplishing it is just storing permissions in a serialized table within a file.
Edited on 30 December 2015 - 03:47 AM
Selim #8
Posted 17 January 2016 - 04:06 PM
New Alpha Build v0.7ba!
Technically, first alpha build, but here we go.

Changelog:
- Redid the login script slightly
- Added the Northbridge Files API

Accessible from the same installer and uses a new installation format! All files and directories are compressed into a single file that is downloaded then uncompressed.

If you have any issues, use the "submitLog" program!

https://twitter.com/...749880630579200
Edited on 17 January 2016 - 05:50 PM
Blue #9
Posted 20 January 2016 - 12:43 PM
You forgot to change the Y position for mouse clicking. Apart from that,this looks like an awesome OS! :D/>
Selim #10
Posted 20 January 2016 - 09:11 PM
You forgot to change the Y position for mouse clicking. Apart from that,this looks like an awesome OS! :D/>
Thank you! I forgot about that one, thanks, should be fixed soon.
Selim #11
Posted 24 January 2016 - 11:15 PM
New Alpha Build v0.7bc!

Changelog:
- Ported completion functions to CC versions before 1.75
- Ported settings API to CC versions before 1.77
- Fixed mouse event locations
- Added wget and set programs
- Probably more

If you have any issues, use the "submitLog" program!

https://twitter.com/...399019571101696
Edited on 25 January 2016 - 01:04 AM
Lupus590 #12
Posted 25 January 2016 - 08:47 AM
Any plans to release the back ports separately?
Selim #13
Posted 25 January 2016 - 01:22 PM
Any plans to release the back ports separately?
Not sure. Possibly.

EDIT: Done.
Edited on 25 January 2016 - 12:37 PM
cyanisaac #14
Posted 26 January 2016 - 12:14 AM
I'm still a bit confused. What is the Northbridge Network, what is this OS, what does it do? You don't have much of a description of it.
Selim #15
Posted 26 January 2016 - 12:33 AM
I'm still a bit confused. What is the Northbridge Network, what is this OS, what does it do? You don't have much of a description of it.
Northbridge Network is the API that the OS is written around. The OS has the listed features. I also put a link to the about page on the Northbridge website.
cyanisaac #16
Posted 26 January 2016 - 12:38 AM
I'm still a bit confused. What is the Northbridge Network, what is this OS, what does it do? You don't have much of a description of it.
Northbridge Network is the API that the OS is written around. The OS has the listed features. I also put a link to the about page on the Northbridge website.

"Northbridge is a project that I have been working on for quite some time. Originally, it was intended primarily for use on the BlueCircuit Server, and was going to be run entirely in game. Though, as the project evolved, I discovered how much easier it was to develop with a PHP webserver than using ComputerCraft's modems to relay messages to an in game ComputerCraft server to hold and send data.

Now, lucky for all of you, it is open for public use now! At some point there should hopefully be a client for ComputerCraft and possibly OpenComputers to use in game."

Yummy buzzwords! What I'm asking is, what does it do, what is its API, how does one utilize the Northbridge Network, etc. etc. etc.
Selim #17
Posted 26 January 2016 - 12:47 AM
What I'm asking is, what does it do, what is its API, how does one utilize the Northbridge Network, etc. etc. etc.
The API currently includes user logins, online file storage, and ComputerCraft "push notifications".
It is currently only accessible to everyone via the OS atm. I have not put time into the documentation of the PHP functions yet although there is partial documentation of how to use the functions via the APIs included in the OS.
The "public use" part was written as being very optimistic that I would put out documentation soon and hoping that someone didn't point it out until documentation was out :{
Edited on 25 January 2016 - 11:50 PM
cyanisaac #18
Posted 26 January 2016 - 01:02 AM
What I'm asking is, what does it do, what is its API, how does one utilize the Northbridge Network, etc. etc. etc.
The API currently includes user logins, online file storage, and ComputerCraft "push notifications".
It is currently only accessible to everyone via the OS atm. I have not put time into the documentation of the PHP functions yet although there is partial documentation of how to use the functions via the APIs included in the OS.
The "public use" part was written as being very optimistic that I would put out documentation soon and hoping that someone didn't point it out until documentation was out :{

:P/> Well documentation is kinda important. If you could quickly write some documentation that would be neat, so I can experiment with what you're creating :D/>
Selim #19
Posted 26 January 2016 - 01:08 AM
:P/> Well documentation is kinda important. If you could quickly write some documentation that would be neat, so I can experiment with what you're creating :D/>
I shall tomorrow. During a very productive study hall :)/>
Selim #20
Posted 26 January 2016 - 02:34 PM
I shall tomorrow. During a very productive study hall :)/>
Well, I started…might take a while longer than expected.

EDIT: I am going to see if I can make it auto-pull functions from the PHP scripts so documentation is always updated :)/>
After getting the first version out of course.

EDIT2: Documentation for all PHP functions: http://northbridge.dx.am/docs/PHP/
Edited on 26 January 2016 - 06:27 PM
Selim #21
Posted 04 February 2016 - 11:36 PM
New Dev Build v0.7b!
- Added files api
- Added Lyqyd's metadata api
- Added error reporting
- Redid the login script slightly
- Fixed mouse event locations
- Condensed some (lots) of the code
- Backported the autocompletion functions
- Backported settings api
- Backported wget and set programs
- Modified how the notification api works
- Protected the theme array
- Removed need for json api
- Removed file protection api
- Probably lots more

Please test extensively so that I can clear bugs before pushing to stable.
https://twitter.com/...390628553715712
Edited on 10 February 2016 - 02:40 AM
Selim #22
Posted 16 February 2016 - 02:40 AM
New Dev Build v0.7cc!
- Added help files for Northbridge programs
- Slightly modified the vanilla help api to support additional paths
- Started work on app support
- Replaced intro and credits help files
- Fixed aliases better

Working on app store stuff! Yay!
https://twitter.com/...423413841039361
Edited on 17 February 2016 - 02:40 AM
Selim #23
Posted 16 March 2016 - 10:06 PM
New Dev Build v0.7c!
Now I just need to update the installer to better support such huge changelogs.

Changelog:
Spoiler- Added task API
- Added nb.getOnlineNotifications setting to enable/disable constant checking
- Added function to get CC version more reliably
- Added inter-task messaging
- Added help files for Northbridge programs
- Added user data folder, contains .settings and notifications
- Added sysinfo program and help file
- Added autocomplete parameters for Northbridge programs
- Fixed ls alias not following settings in older versions
- Fixed shell autocomplete not using aliases
- Fixed autocomplete parameters for programs Northbridge replaces
- Changed the vanilla help api to support additional paths
- Changed API load order to load priority APIs before online APIs
- Started work on app support
- Replaced intro and credits help files
- Made the notification bar re-render when pagedPrint and pagedTabulate scrolls
- Function(s) to get notifications runs in background using NB task API
- Made read use the current theme in modern versions for autocompletion
- Made the system files read-only
- Renamed user data file
- Consolidated NB client API functions to list local and network users into a single list users function with an optional filter
- Re-wrote API load order
- Help program will now prompt you with possible results
- Re-wrote the notification API

Some major changes, this time, around and another HUGE changelog.
Edited on 16 March 2016 - 09:29 PM
LDDestroier #24
Posted 17 March 2016 - 05:55 PM
Hm, I can't seem to install this in CCEmuRedux. It says,

Northbridge Terminal OS Build Info:

Then flashes some text too fast to read, then shuts down. Help?
Selim #25
Posted 17 March 2016 - 06:09 PM
Hm, I can't seem to install this in CCEmuRedux. It says,

Northbridge Terminal OS Build Info:

Then flashes some text too fast to read, then shuts down. Help?

I think it is an issue with the changelogs being too large. I will modify the installer to temporarily not show them until I get a better fix working.
Selim #26
Posted 19 May 2016 - 02:44 PM
New Dev Build v0.7d!
136.18% increase in download size!

Changelog:
- Added RTC API
- Added a background task to keep RTC accurate(ish)
- Added metadata API
- Added ComputerCraft Edu as a possible environment
- Added CC 1.78 to getCCVersion function in utils API
- Added getMCVersion to utils API
- Added displaying free space and MC version to sysinfo program
- Added turtleRemote task for Beginner's Turtle controls
- Fixed not being able to create a new user
- Fixed downloading online APIs
- Fixed auto-completion crashing the computer in CC versions prior to 1.74
- Fixed nbFs not using file whitelist
- Fixed metadata saving file creation data when the metadata file doesn't exist
- Fixed issue with getCCVersion function in utils API
- Metadata API now saves time stamped data about when a file was accessed
- Metadata API saves additional data when a file is created
- Now includes modified paint and edit programs that store additional metadata

If you have any issues, use the "submitLog" program!

https://twitter.com/northbridge_net/status/733292269910921220
Edited on 19 May 2016 - 12:45 PM