Jump to content




CCWin (Yet another multitasking OS with GUI and built-in file manager)


64 replies to this topic

#1 puzzletime

  • Members
  • 35 posts

Posted 26 June 2014 - 10:53 AM

CCWin 0.9

(1.0 is coming)


CCWin is an in-development operating system with an extendable GUI subsystem which supports multitasking and many other features. To make the long story short, CCWin currently has:
  • GUI system with 14 widgets and 2 common dialogs
  • Messaging system between processes
  • Cooperative multitasking
  • Http queue
  • Ini parser
  • Windows Explorer-like file browser with shortcuts (also available as a widget)
  • Paintbrush (to edit images in CCWin format, which is a little bit different from the one implemented in Paintutils)
  • Notepad (built-in text editor)
  • LUAEdit (a more complex text editor with syntax highlighting)
  • Task Manager with RAM usage statistics
  • CraftOS emulator
  • Customizable setup component (so that you can create rich and beautiful GUI setup wizards without programming at all!)
  • Updater utility
  • Pack utility (can create non-compressed self-extracting archives)
The OS is currently in development - it lacks lots and lots of features, which I am currently working on:
  • Native CraftOS emulator Done!
  • TextArea component (which is a must!) Done!
  • Text copy&paste
  • Multiple accounts
  • File system permissions
  • Syntax highlighting support in TextArea Done!
  • OS Configuration utility
  • Updater Done!

Screenshots

Spoiler


A video which shows the work of the new Task Manager:
Spoiler


API


The full API documentation and some tutorials will be available here and in the GitHub CCWin Wiki soon.


Downloads

Version 0.9.0 (stable release):
Pastebin installer:
pastebin run BCz5hkVh

Version 1.0.0 (latest alpha release):
Pastebin installer:
pastebin run sWNRkXH0




System Requirements

  • Advanced computer
  • "http://mypascal.url.ph" in http whitelist
CCWin requires ComputerCraft 1.6+


The changelog will be no longer available here, please visit GitHub repo for the latest release information, documentation and more.



Update 30.04.2015
User KAYOver made a cool mod WinUltimate with new look and features! Download
Please note, that I am not responsible for the possible damage made by this mod

Update 04.07.2015
I made a GitHub repo for this project.

Edited by puzzletime, 02 August 2015 - 10:35 PM.


#2 oeed

    Oversimplifier

  • Members
  • 2,095 posts
  • LocationAuckland, New Zealand

Posted 27 June 2014 - 11:22 AM

Wow, this is really impressive.

As I found with PearOS, having a proprietary program format isn't ideal. As you have mentioned, a CraftOS emulator is essential. It's far from easy, but vital.

One issue I had with the installer was not being able to install it at room. This may have been intentional, but having a default or recommended path would be nice.

Also, one question, why the custom image format as opposed to something fairly standard like NFT (which supports text)?

Edited by oeed, 27 June 2014 - 11:23 AM.


#3 Mr. Bateman

  • Members
  • 98 posts
  • LocationAustralia

Posted 27 June 2014 - 12:12 PM

I have another question; why the need for another bootloader/manager? I already made one, and it has an API (but I haven't made documentation for it yet).

EDIT:

View Postoeed, on 27 June 2014 - 11:22 AM, said:

As I found with PearOS, having a proprietary program format isn't ideal. As you have mentioned, a CraftOS emulator is essential. It's far from easy, but vital.
I don't understand, does this mean the way you execute programs won't work with ordinary programs?

Edited by ROFLCopter64bit, 27 June 2014 - 12:54 PM.


#4 puzzletime

  • Members
  • 35 posts

Posted 27 June 2014 - 12:32 PM

View PostROFLCopter64bit, on 27 June 2014 - 12:12 PM, said:

I have another question; why the need for another bootloader/manager? I already made one, and it has an API (but I haven't made documentation for it yet).

View Postoeed, on 27 June 2014 - 11:22 AM, said:

Also, one question, why the custom image format as opposed to something fairly standard like NFT (which supports text)?

Because I had fun writing it:)
Seriously, I was planning to add the ability to store dynamic canvas effects. It's possible to write something like a converter in the future, I guess...

#5 puzzletime

  • Members
  • 35 posts

Posted 27 June 2014 - 12:56 PM

View PostROFLCopter64bit, on 27 June 2014 - 12:12 PM, said:

I have another question; why the need for another bootloader/manager? I already made one, and it has an API (but I haven't made documentation for it yet).

Didn't know about that) By the way, the "winldr" provided by CCWin can work just like CCWin OS loader, if only one startup configuration in "boot.ini" is listed.

#6 puzzletime

  • Members
  • 35 posts

Posted 27 June 2014 - 01:33 PM

Some words about capability with ordinary programs:

It is impossibe (at least now) to run programs which were not written for CCWin because CCWin API is very different from the standard one. There are process messaging queues instead of events, there is no direct access to term, and implementing those things right in the kernel module actually means implementing a CraftOS emulator there, which would make "kernel" file even bigger. So I decided to implement a CraftOS emulator as a standalone application. By the way, it is already included in the current release (as wncvm.app in %OSPATH%/system2 folder), but quite useless (and scrolling is broken).

The only applications that have access to standard CraftOS APIs are kernel-mode drivers (like http.app), which can obtain that access through "kernel.env" variable and catch raw events by adding a hook (through kernel.kiRegisterEventReceiver(event) and kernel.kiUnRegisterEventReceiver(event)). Any program which should be run in kernel mode must be placed in %OSPATH%/drivers folder. Kernel mode programs are loaded once on startup and are present all the time while the computer is on. As you can see in Task Manager (Ctrl+T), those applications are loaded even before taskbar.app and desktop.app.


By the way, has anyone already seen a BSoD?

#7 Mr. Bateman

  • Members
  • 98 posts
  • LocationAustralia

Posted 27 June 2014 - 02:25 PM

View Postpuzzletime, on 27 June 2014 - 12:56 PM, said:

Didn't know about that) By the way, the "winldr" provided by CCWin can work just like CCWin OS loader, if only one startup configuration in "boot.ini" is listed.

Well, if you need help moving over your OS to use my bootloader (only if you want to) I'd be more than happy to help.

#8 puzzletime

  • Members
  • 35 posts

Posted 27 June 2014 - 02:54 PM

View PostROFLCopter64bit, on 27 June 2014 - 02:25 PM, said:

Well, if you need help moving over your OS to use my bootloader (only if you want to) I'd be more than happy to help.

Thanks! I tried installing my os in your bootloader (via Pastebin). The first time everything went smoothly, but my installer downloaded nothing. The second time (on a clear computer), after I added ability to choose installation path, my installer crashed in attempt to download it's first file - the computer just rebooted. All the directories however were created.

#9 Mr. Bateman

  • Members
  • 98 posts
  • LocationAustralia

Posted 27 June 2014 - 02:58 PM

View Postpuzzletime, on 27 June 2014 - 02:54 PM, said:

View PostROFLCopter64bit, on 27 June 2014 - 02:25 PM, said:

Well, if you need help moving over your OS to use my bootloader (only if you want to) I'd be more than happy to help.

Thanks! I tried installing my os in your bootloader (via Pastebin). The first time everything went smoothly, but my installer downloaded nothing. The second time (on a clear computer), after I added ability to choose installation path, my installer crashed in attempt to download it's first file - the computer just rebooted. All the directories however were created.

It's still very buggy, but I can manually modify your install script to check if luagrub is installed, and install into the specified bootloader folder. (But this won't work if any of your code needs to access or create files outside of the installation folder, so it would be really handy if you could move those too)

#10 puzzletime

  • Members
  • 35 posts

Posted 27 June 2014 - 03:09 PM

View PostROFLCopter64bit, on 27 June 2014 - 02:58 PM, said:

It's still very buggy, but I can manually modify your install script to check if luagrub is installed, and install into the specified bootloader folder. (But this won't work if any of your code needs to access or create files outside of the installation folder, so it would be really handy if you could move those too)

The only two files which are not downloaded in the specified installation folder are "winldr" and "startup". They are just saved in the root (which seems not to be a big problem since your bootloader redirects all fs.* calls (at least it seems to)).

Edited by puzzletime, 27 June 2014 - 03:11 PM.


#11 Mr. Bateman

  • Members
  • 98 posts
  • LocationAustralia

Posted 27 June 2014 - 03:16 PM

View Postpuzzletime, on 27 June 2014 - 03:09 PM, said:

The only two files which are not downloaded in the specified installation folder are "winldr" and "startup". They are just saved in the root (which seems not to be a big problem since your bootloader redirects all fs.* calls (at least it seems to)).

It should redirect all fs.* calls to the new OS folder, but the way it changes the path is very hacky and confusing to the point where even I don't fully understand it. (It doesn't even fully work, as some files escape.) I'll try and fix this right now, but if I can't come up with a fix, i'll work on a modified installer instead.

#12 Mr. Bateman

  • Members
  • 98 posts
  • LocationAustralia

Posted 27 June 2014 - 04:17 PM

Alright, I've updated the bootloader and confirmed that it works when installing CCWin, but it doesn't like fileListView:99. I think it's this line that messes with line 99:
local path = string.gsub(self.path, "home:/", "", 1)


#13 puzzletime

  • Members
  • 35 posts

Posted 27 June 2014 - 04:30 PM

View PostROFLCopter64bit, on 27 June 2014 - 04:17 PM, said:

Alright, I've updated the bootloader and confirmed that it works when installing CCWin, but it doesn't like fileListView:99. I think it's this line that messes with line 99:
local path = string.gsub(self.path, "home:/", "", 1)

Strange... I have just installed CCWin through your bootloader on a clear machine and everything works fine. Could you please describe what actually goes wrong - what error appears and when (I mean - on startup or when you launch Explorer, it happens like BSoD or a message box appears)?

This line, as you can see, just removes "home:/" from the component's absolute path. Line 99 from fileListView just gets the list of files in the specified directory, which should exist (explorer won't let you navigate to a non-existing dir). If that error happens in desktop.app (which is more likely), then it means that something went wrong during the installation and directory %OSPATH%/userdata/Desktop does not exist.

Also, if you installed CCWin over previous installation, file "boot.ini" may contain wrong path. Try fixing it (or deleting, and reinstall CCWin again).

Edited by puzzletime, 27 June 2014 - 04:41 PM.


#14 puzzletime

  • Members
  • 35 posts

Posted 27 June 2014 - 04:55 PM

I figured out what was wrong. Installer writes wrong path to boot.ini if it is not in root directory. Already fixing...

Update:
I was wrong, just placing "/" at the end of a path fixed the problem :).

Edited by puzzletime, 27 June 2014 - 07:33 PM.


#15 puzzletime

  • Members
  • 35 posts

Posted 28 June 2014 - 10:03 PM

New release! Version 0.8 is out.
Changelog:
  • Added text area component!
  • Added built-in text editor (notepad.app)
  • *.txt, *.ini and *.lua files now are opened in Notepad by default
  • Fixed bug with shortcuts sometimes not working in Explorer
  • Settings folder now contains shortcuts to all configuration files
Also, added a new screenshot.

Edited by puzzletime, 28 June 2014 - 10:10 PM.


#16 puzzletime

  • Members
  • 35 posts

Posted 29 June 2014 - 12:36 PM

Today's release 0.81 brought the following stuff:
  • Working syntax highlighting in TextArea component!
  • LUAEdit, a built-in LUA editor with syntax highlighting!
  • Small bugfix for TextArea component
  • Desktop changed a bit
The newest version is always available for download via pastebin, using the same pastebin code.

Edited by puzzletime, 29 June 2014 - 12:55 PM.


#17 puzzletime

  • Members
  • 35 posts

Posted 30 June 2014 - 01:53 PM

Version 0.82:
  • Task Manager now shows RAM usage of every process! (Currenty only global variables are counted since ComputerCraft programs don't have access to debug.getlocal() function)
  • New widget! GLSurface, which allows access to base term object without buffering, makes drawing a bit faster. It is also the first step to CraftOS Emulator.
I added a video to show you the work of the upgraded Task Manager:
Spoiler

Edited by puzzletime, 30 June 2014 - 03:34 PM.


#18 puzzletime

  • Members
  • 35 posts

Posted 30 April 2015 - 11:32 AM

Update 30.04.2015
User KAYOver made a cool mod WinUltimate with new look and features! Download
Please note, that I am not responsible for the possible damage made by this mod

#19 Exerro

  • Members
  • 801 posts

Posted 30 April 2015 - 03:51 PM

Wow, I'm amazed I didn't see this when it came out. Looks awesome! The design is a bit in-your-face and cluttered, but I guess making windows in CC will always result in that. Is this still being developed?

#20 puzzletime

  • Members
  • 35 posts

Posted 30 April 2015 - 07:18 PM

View Postawsumben13, on 30 April 2015 - 03:51 PM, said:

Wow, I'm amazed I didn't see this when it came out. Looks awesome! The design is a bit in-your-face and cluttered, but I guess making windows in CC will always result in that. Is this still being developed?

Thanks! I haven't touched it for several months but now think of continuing development.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users