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

Chameleon TARDIX

Started by FUNCTION MAN!, 23 May 2015 - 11:27 PM
FUNCTION MAN! #1
Posted 24 May 2015 - 01:27 AM
the TARDIX Team presents…



Chameleon


A UNIX-like operating system ontop of a Microkernel


Have you ever found yourself wanting a a distro that innovates for the developer? How about a platform that models itself off of the real world? If you awnsered yes or no to any of these questions: Chameleon is for you.




What is it?

Chameleon is an UNIX like operating system built on top of a MINIX/L4-like microkernel.


Why do I want it?

Designed by developers for developers. Chameleon enables you to run a slim, fast, and flexable operating system. It's APIs allow programs to easily hook into the event system and take advantage of it's speed.


What can it do?
  • Be fast.
  • Provides developer & end user oriented APIs.
  • Customizable MOTD.
  • (more of the kernel but) has libnet integrated.
  • Easy peripheral access.
  • Powerful networking support.
Who developed it?

The TARDIX team consists of many, some well known, names!
Tell me more about this TARDIX kernel?

TARDIX will have a post when it's more… stable, however, it's a microkernel with the features
  • Fast!
  • Microkernel based
  • Multithreaded (using a one-shot event system)
  • Lightweight
  • Open-governed
I've seen the light! How do I help?


Simple, join our gitter channel were (almost all) the developers idle on. https://gitter.im/TARDIX/Dev


Where can I download it?

https://github.com/TARDIX/Chameleon

Editosaurus on OP:
There is now a pastebin installer:

cLpirxDA



WARNING:

Chameleon's command line interpretter preffers the TARDIX way of loading programs.

This means that for using regular programs, you need to use the ccc script.

Programs in the ROM get loaded the "classic" way.



Obligatory Screenshot Section




Chameleon message of the day (motd, /usr/etc/motd.lua) - fully tweakable to your liking. it can be either a lua script (under /usr/etc/motd.lua) or a plain text file printed into the terminal, located in /usr/etc/motd.




initd, the initialization controller for Chameleon starting the system. it reads from /usr/etc/release to get the cyan-colored text (here: Chameleon TARDIX) and loads daemons from /usr/etc/initd.




The default chameleon shell prompt displaying the kernel git commit sha- checksum and the current world time in 24-hour format.



kmsg, the kernel messaging system visualization utility viewing the last 5 messages.



sizeof determining the size and type of some files, and demonstrating the use of libinfo.print



viewing the help information for the 'cat' utility, again using libinfo.print
Edited on 07 June 2015 - 12:32 PM
flaghacker #2
Posted 24 May 2015 - 10:35 AM
Why do you keep saying it is "fast"? It surely isn't faster then CraftOs as it runs on top of it, or is it?

Othetwise, looks like you guys put some effort into this, it looks nice.

Edit: Also, what's up with lines 33 and 47 in boot.lua? They seem to "undo" each other?
Edited on 24 May 2015 - 08:38 AM
Creator #3
Posted 24 May 2015 - 11:32 AM
Please add a pastebin installer.

//offtopic: I actually helped with one wiki page and decision making ;)/> Maybe I'll have to get serious about this project.
FUNCTION MAN! #4
Posted 24 May 2015 - 12:58 PM
Please add a pastebin installer.

//offtopic: I actually helped with one wiki page and decision making ;)/> Maybe I'll have to get serious about this project.
As soon as I figure a way to make a github installer without blowing the GH API restrictions, yes.

Why do you keep saying it is "fast"? It surely isn't faster then CraftOs as it runs on top of it, or is it?

Othetwise, looks like you guys put some effort into this, it looks nice.

Edit: Also, what's up with lines 33 and 47 in boot.lua? They seem to "undo" each other?

It's fast, yes. Not faster then craftos, but faster than every other GUI OS out there.


/ DemHydraz
Creator #5
Posted 24 May 2015 - 08:25 PM
1. Download Compress by typing

pastebin get 1rQJ9wC7 Compress

2. Type
Compress Chameleon destinationfile

3. Publish on pastebin

4.Enjoy
Edited on 24 May 2015 - 06:25 PM
FUNCTION MAN! #6
Posted 24 May 2015 - 08:38 PM
1. Download Compress by typing

pastebin get 1rQJ9wC7 Compress

2. Type
Compress Chameleon destinationfile

3. Publish on pastebin

4.Enjoy

Shameless self-promotion, much? How about.. no?
We'll make our own installer.


/ DemHydraz
(Switched accounts because darned approval wall.)
Edited on 24 May 2015 - 06:52 PM
Creator #7
Posted 24 May 2015 - 09:00 PM
It is not shameless self-promotion, it is showiing you way to make people want to download the sofware. In the same manner, you are self-promoting Tardix Kernel by creating this topic.

Also, this is why our community suffers, everyone tries to do their own script:
We'll make our own installer.

And sometimes even out of the wish to make others feel bad.
Edited on 24 May 2015 - 07:01 PM
KingofGamesYami #8
Posted 24 May 2015 - 09:02 PM
As soon as I figure a way to make a github installer without blowing the GH API restrictions, yes.

You ran into that as well? I'm pretty sure the restrictions are per-URL, since I've created an installer that doesn't kill it and uses more than 5 unauthenticated requests. Just don't run it repeatedly for testing… I've been locked out by api.github.com so many times, you'd think I'd learn my lesson.
FUNCTION MAN! #9
Posted 24 May 2015 - 09:07 PM
-snip-

You ran into that as well? I'm pretty sure the restrictions are per-URL, since I've created an installer that doesn't kill it and uses more than 5 unauthenticated requests. Just don't run it repeatedly for testing… I've been locked out by api.github.com so many times, you'd think I'd learn my lesson.

Are you using the API to download each file? You should be using the API to determine the files and getting them from raw.githubusercontent.com. Atleast, that's how I do it. But getting submodules requires one more API calls. And sometimes, we have multiple submodules.


It is not shameless self-promotion, it is showiing you way to make people want to download the sofware. In the same manner, you are self-promoting Tardix Kernel by creating this topic.

Also, this is why our community suffers, everyone tries to do their own script:
We'll make our own installer.

And sometimes even out of the wish to make others feel bad.

No, it's because of this that our community thrives. I ain't doing this to make you feel bad. I'm making this because convenience. With our own installer, we can have a crond task to check for updates. And have the script generate releases on pre-commit. And follow symlinks properly.



/DemHydraz
(Again, approval wall.)
Edited on 24 May 2015 - 07:08 PM
KingofGamesYami #10
Posted 24 May 2015 - 09:11 PM
-snip-

You ran into that as well? I'm pretty sure the restrictions are per-URL, since I've created an installer that doesn't kill it and uses more than 5 unauthenticated requests. Just don't run it repeatedly for testing… I've been locked out by api.github.com so many times, you'd think I'd learn my lesson.

Are you using the API to download each file? You should be using the API to determine the files and getting them from raw.githubusercontent.com

Nope. Just using https://api.github.com/repos/:user/:repo/contents/ to automatically find all files with a .lua extension in my repo. Then I can use the download_url key to download it. Still, I've got enough folders to go over 5 requests.
FUNCTION MAN! #11
Posted 24 May 2015 - 09:15 PM
-snip-

You ran into that as well? I'm pretty sure the restrictions are per-URL, since I've created an installer that doesn't kill it and uses more than 5 unauthenticated requests. Just don't run it repeatedly for testing… I've been locked out by api.github.com so many times, you'd think I'd learn my lesson.

Are you using the API to download each file? You should be using the API to determine the files and getting them from raw.githubusercontent.com

Nope. Just using https://api.github.c...:repo/contents/ to automatically find all files with a .lua extension in my repo. Then I can use the download_url key to download it. Still, I've got enough folders to go over 5 requests.

Try using it recursively. That way you'll get all the files in 1 go. (I think.)
Try https://api.github.com/repos/:owner/:repo/git/trees/:sha?recursive=1
Edited on 24 May 2015 - 07:15 PM
jaredallard #12
Posted 25 May 2015 - 02:50 AM
I must say, I very much approve.

Shiba with you
Geforce Fan #13
Posted 25 May 2015 - 05:09 AM
I like the Doctor Who reference.
But what does this OS really do as it stands currently?
FUNCTION MAN! #14
Posted 25 May 2015 - 11:04 AM
Well, it's multi threaded, has daemons, some command line utilities, a better network, a device discovery bus, a kernel message buffer, and others.
flaghacker #15
Posted 25 May 2015 - 11:17 AM
Edit: Also, what's up with lines 33 and 47 in boot.lua? They seem to "undo" each other?
FUNCTION MAN! #16
Posted 25 May 2015 - 04:14 PM
Edit: Also, what's up with lines 33 and 47 in boot.lua? They seem to "undo" each other?

Yea.
I did notice the first time you posted.

It should be fixed.
flaghacker #17
Posted 25 May 2015 - 04:36 PM
Ah ok, good to hear.
tenshae #18
Posted 26 May 2015 - 08:56 PM
As much as I dislike some of (one of) the people working on this project, it's pretty impressive IMO. Hope this doesn't end up dying. That would suck.
FUNCTION MAN! #19
Posted 27 May 2015 - 12:53 AM
It won't die.
biggest yikes #20
Posted 29 May 2015 - 12:36 AM
If you make a file called "/usr/etc/.rainbows." the CHAMELEON symbol on boot will become randomized colors instead of just orange.
FUNCTION MAN! #21
Posted 29 May 2015 - 01:02 AM
A secret it was. Except not really, Just was trying some configuration options for the motd. Tried several schemes, ended on orange + blue. But the rainbow scheme was the first I tried.

edit: finish writing before posting.
Edited on 28 May 2015 - 11:02 PM
biggest yikes #22
Posted 29 May 2015 - 01:22 AM
A secret it was. Except not really, Just was trying some configuration options for the motd. Tried several schemes, ended on orange + blue. But the rainbow scheme was the first I tried.
I figured it was something like that, I thought it was a neat feature though.

edit: finish writing before posting.
I'm confused, are you saying you didn't finish your post or I didn't?
FUNCTION MAN! #23
Posted 29 May 2015 - 01:42 AM
A secret it was. Except not really, Just was trying some configuration options for the motd. Tried several schemes, ended on orange + blue. But the rainbow scheme was the first I tried.
I figured it was something like that, I thought it was a neat feature though.

edit: finish writing before posting.
I'm confused, are you saying you didn't finish your post or I didn't?

When I was writing your post I accidentally ended with "But rain" instead of the sentence :P/>
FUNCTION MAN! #24
Posted 06 June 2015 - 01:59 AM
In the latest commit/snapshot/whatever you want to call it of the TARDIX kernel, transparent file systems were implemented. This means that you can make your own file systems, such as, for example, httpfs, that pulls files from a remote server.
And, you can open whatever you want through that single, unique file system interface.
This means that if you register a file system that is the owner of paths that start with "http://" and you open a file, say "http://test.com", that will be "passed on" to the file system that controls said path.

Take, for example, httpfs.



That means, you can make, say, "rednet file system", and programs that use that will use the same interface as opening normal files, on your normal disk would be like.

And, as a bonus, files that do not have a registered owner are passed on to the ccfs (normal filesystem) driver, so that you never get an error. Unless the file doesn't exist on the disk.
This also means that loadfile("http://test.com") is a thing, so loading APIs from the web is way easier.
Geforce Fan #25
Posted 07 June 2015 - 04:28 AM
-snip-
Wow. That's a really neat idea.
What's your protocols for file writing, though?

Also: I love the name. Doctor who FTW!
and: Chameleon and [os] are quite similar really. We both have Easter eggs, we both expand CC's file system, we both boot to a command prompt, and we're both open source(although mine isslightly more locked down. It forces you to use the same license when forking, so theirs will have to be open source too, mwuahahaha)

Also, you can use gitget as an installer. It doesn't seem to download the kernel. you'll have to make 2 downloads to get it.
Edited on 07 June 2015 - 03:04 AM
jaredallard #26
Posted 07 June 2015 - 04:57 AM
-snip-
Wow. That's a really neat idea.
What's your protocols for file writing, though?

Also: I love the name. Doctor who FTW!
and: Chameleon and [os] are quite similar really. We both have Easter eggs, we both expand CC's file system, we both boot to a command prompt, and we're both open source(although mine isslightly more locked down. It forces you to use the same license when forking, so theirs will have to be open source too, mwuahahaha)

I cannot speak for the protocols for file writing, except for that it (should) be using a pluggable driver interface into act as the middle man for all fs calls, I'd join our gitter if you want to speak to us about more technical stuff (https://gitter.im/TARDIX/Dev).

The differences are that we are very MINIX inspired as well as MIT licensed so no limitations ;P

A bit of an update on stuff that has been added: We just got iostreams, stdout, stderr (and perhaps another) that aim to conform to POSIX IO stream standards!
FUNCTION MAN! #27
Posted 07 June 2015 - 01:56 PM
-snip-
Wow. That's a really neat idea.
What's your protocols for file writing, though?

Also: I love the name. Doctor who FTW!
and: Chameleon and [os] are quite similar really. We both have Easter eggs, we both expand CC's file system, we both boot to a command prompt, and we're both open source(although mine isslightly more locked down. It forces you to use the same license when forking, so theirs will have to be open source too, mwuahahaha)

Also, you can use gitget as an installer. It doesn't seem to download the kernel. you'll have to make 2 downloads to get it.

It doesn't download the kernel because the kernel is not a directory. It is a git sub-module. It appears as a directory when you clone it, but it is not one in the repo.

Edit: Also, what's up with lines 33 and 47 in boot.lua? They seem to "undo" each other?

This is there so that you can still pass arguments as separate strings ( like, "hello", "world" ) or as one string ( like "hello world" )


EDIT: There is now a pastebin installer!
cLpirxDA is the ID, go get it!
(pastebin run cLpirxDA)
Edited on 07 June 2015 - 12:17 PM
FUNCTION MAN! #28
Posted 14 July 2015 - 09:59 PM
Update: Added ccDocker (with permission, MIT licensed), Howl (with permission, MIT licensed) and Mu (my own little project thingy) to Chameleon.