Join us on Discord!
You can help CodeWalrus stay online by donating here.

KnightOS Updates

Started by Vijfhoek, March 22, 2015, 04:29:22 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

DarkestEx

So we can try implementing parts of posix in the libc, right?
I mean we could need stdin, stdout, stderr and arguments, right?
  • Calculators owned: TI-84+, Casio 101-S, RPN-Calc, Hewlett-Packard 100LX, Hewlett-Packard 95LX
  • Consoles, mobile devices and vintage computers owned: Original Commodore 64C, C64 DTV, Nintendo GameBoy Color, Nintendo GameCube, Xbox 360, PlayStation 2

SirCmpwn

Quote from: DarkestEx on March 30, 2015, 02:30:19 PM
So we can try implementing parts of posix in the libc, right?
I mean we could need stdin, stdout, stderr and arguments, right?

There's no formal support for arguments, but there's some proposals. There is no stdin, stdout, or stderr. The file API is currently hardcoded on KFS operations and hasn't been abstracted out to allow for things like that yet.

You are welcome to help implement parts of POSIX in libc, though. Keep in mind that C support is still experimental in KnightOS and there are several important problems with it, and you will run into frustration if you try to embark on serious C projects on KnightOS.

SirCmpwn

C support continues, and is starting to become something usable for actual projects. More sophisticated programs are working now:



Bonus: I got it to work for the most part on TIOS, and I plan on adding support for writing programs in C for TIOS formally. Also, since KnightOS's libc is statically linked, you can use (most of) the POSIX functions provided by KnightOS on TIOS.


Snektron

  • Calculators owned: TI-84+
Legends say if you spam more than DJ Omnimaga, you will become a walrus...


Duke "Tape" Eiyeron

Mmh, puts is supposed to insert a newline after the string. :-°
  • Calculators owned: A lot.

SirCmpwn

Quote from: Duke "Tape" Eiyeron on April 22, 2015, 11:34:21 AM
Mmh, puts is supposed to insert a newline after the string. :-°

Yeah, I didn't bother looking into why it didn't work, that was just a proof of concept.

Duke "Tape" Eiyeron

Yeah and it looks very good. I can't wait to have some test runs on this sdk.
  • Calculators owned: A lot.

SirCmpwn

Minor updates:

Ivoah contributed a change to the castle that prevents it from showing the "you might lose work" warning on shut down if there are no running threads other than the castle.

libc is progressing. I've added support for SDCC built-ins from string.h (like memcpy), as well as adding a little bit more to ctype.h. C support in general is improving steadily, with bug fixes in scas and kcc going on. Handling for include paths for C programs has also changed a bit in the SDK to be more flexible and less stupid.

Also, the TI-73 explorer was tested with KnightOS. I expected it to work, and it did, so that's good. No updates on the 84+ CE front - I still don't own one and there are still no public exploits for installing unsigned operating systems.

Dream of Omnimaga

Glad to hear about those updates. As for CE support I hope it's not like the Nspire and doesn't require nLaunchy.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

CKH4

I may be able to test knight os when you get the ce version going. I don't have one yet but I'm planning on getting one soon.
  • Calculators owned: TI-83+, TI-84+


SirCmpwn

Kernel 0.6.8 released

This kernel adds mature date/time support and improves filesystem support.

Features

Bugs fixed


  • Several bugs in 0.6.7's date/time support
  • reassignMemory checks that the target thread exists and returns an error if not
Deprecated


  • `findFileEntry` and `findDirectoryEntry` are deprecated and now behave as no-ops. Internally, the kernel now uses `findNode`, and KFS internals are no longer exposed to userspace.

Download

kernel-headers-0.6.8.pkg
kernel-TI73.rom
kernel-TI83p.rom
kernel-TI83pSE.rom
kernel-TI84p.rom
kernel-TI84pSE.rom
kernel-TI84pCSE.rom

Kernel 0.6.8 on Github

Disclaimer

This release, like all other kernel releases, is only relevant to developers. The kernel also will not run on its own, so if you put this in an emulator you won't get much out of it.

Dream of Omnimaga

Good to see updates. :) Do you know approximately how much percentage of the project is done so far? (by approximate I mean something like 20-30% not a specific percentage :P)
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

SirCmpwn

It's a bit weird to ask for a percentage. I don't even know how I'd begin to calculate that. I don't even know what "done" means.

Dream of Omnimaga

Oh I mean until it's ready for public use in class and stuff, like Axe Parser 0.2.0, for example (the one that made ticalc.org front page), unless it already is? I didn't install it yet, since I needed to run TI-BASIC programs.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

SirCmpwn

Depending on your use-case, it's ready now. It runs on all of my calcs and the same can be said for several other people. The important milestone is probably math, and that depends on several other things being in place. Kernel 1.0.0 will be the biggest milestone the project has seen so far, and that requires USB support, I/O networking, fully fleshed out filesystem support, better compression support, a mature C API, and some major refactoring projects (refactoring internal kernel data structures, for the most part). For math, we first need to flesh out the package manager and add support for transferring files to calculators post-install, as well as bringing some kind of BCD support in the form of kernel support or a userspace library (or both). corelib should also see more development before we embark on that.

Before I'm willing to call it "1.0", we also need kpy support, a settings manager (in progress now), fileman needs to be fleshed out more, the castle needs to be finished (it's nearly done, but depends on kernel 0.7.0 features), and bed needs to be finished (it's not even close to done), along with all of the things mentioned in the last paragraph.

Powered by EzPortal