Page 1 of 1

volunteering

Posted: Fri Jun 04, 2021 8:23 am
by lmemsm
Do any operating system projects need a volunteer to build apps in C? I'm trying to find a project that I can volunteer for. I have my own basic package manager/build system written using C and shell scripts. I've built a lot of lightweight cross-platform Open Source C/C++ applications on Linux, Windows, AIX and even FreeDOS. I have a lot of experience porting applications from one compiler or operating system to another.

Re: volunteering

Posted: Fri Jun 04, 2021 12:26 pm
by vvaltchev
lmemsm wrote:Do any operating system projects need a volunteer to build apps in C? I'm trying to find a project that I can volunteer for. I have my own basic package manager/build system written using C and shell scripts. I've built a lot of lightweight cross-platform Open Source C/C++ applications on Linux, Windows, AIX and even FreeDOS. I have a lot of experience porting applications from one compiler or operating system to another.
Hi, I believe my project (Tilck) could benefit from some help. It's a Linux-compatible kernel, with already plenty of Linux usermode applications running on it, but it's far from being production-ready. A C or C++ developer, even if interested just in usermode software, could help a lot.

When it's about contributors, I'm flexible and I'll plan to accept any kind of contribution, as long as it's useful to Tilck or any of my other projects. In other words, if the patches are technically good and move any aspect of the project forward, that's enough for me because having contributions per se adds a huge value to an open source project. If the contributor gets seriously interested in the project, over time he/she will naturally start contributing to other parts of the project as well: that's why any piece of code is a good start.

Some ideas to work on
------------------------------
After the premise above, I can quickly mention what comes to my mind when it's about user space applications for Tilck.
Please don't assume that this list is exhaustive. It's literally made by the first things that came to my mind now.

  • Writing a cool menuconfig-like tool for configuring Tilck, which uses CMake and ccmake as "configuration gui".
  • Writing cool C++ unit tests for the project. Currently, the project already uses unit testing extensively, but much more can be done in this area both in the direction of refactoring the existing tests and in the direction of writing new ones.
  • Writing more system tests for Tilck in C. Those tests run on Tilck itself and use syscalls.
  • Help porting more stuff Linux apps to Tilck by compiling them and debugging them, discovering what feature XYZ Tilck will need to run a given application. Part of that can be testing current ports as well.
  • Improving tfblib and write more cool apps and games with it, for both Linux and Tilck. Tetris is already pretty cool. Adding a minimalistic snake would be great, for example. Another thing that might be cool here is to add sound effects to the tetris game. Maybe that's useless from the kernel point of view, but it's cool for the project as a whole.
  • Tilck has an (almost) user-mode application built-in curses application inside the kernel called "debug panel". It would be cool to improve it and/or maybe consider porting it entirely to user space. There's some kernel effort on this, but that would be on my side.
  • The list could go on and on, as you can imagine.

Ideas for contributing to the kernel itself
-----------------------------------------------------
Too many, as most of the work is there. I'll just skip this for now since you said you're looking to contribute mostly on apps, not the kernel itself.


Conclusion
--------------
That's all for the moment. In that case you find my project interesting, let me know. I'd be happy to talk with you about it.

Vlad

Re: volunteering

Posted: Sat Jun 05, 2021 1:34 pm
by lmemsm
vvaltchev wrote: [*]Improving tfblib and write more cool apps and games with it, for both Linux and Tilck. Tetris is already pretty cool. Adding a minimalistic snake would be great, for example. Another thing that might be cool here is to add sound effects to the tetris game. Maybe that's useless from the kernel point of view, but it's cool for the project as a whole.
[*]Tilck has an (almost) user-mode application built-in curses application inside the kernel called "debug panel". It would be cool to improve it and/or maybe consider porting it entirely to user space. There's some kernel effort on this, but that would be on my side.
I was looking at tilck at github on Friday. I thought the tfblib looked really cool. Do you have curses or ncurses or pdcurses support working on tilck? I know a lot of great programs that work with curses. Have you thought about support for anything like OpenGL? I've been doing a lot of experimenting with picoGL (a tinyGL fork). I'm not a big fan of cmake so I probably can't help much there. I mainly work with CDetect and standard GNU makefiles.

What's a good way to contact you to discuss topics in more detail?

Re: volunteering

Posted: Sat Jun 05, 2021 4:34 pm
by vvaltchev
lmemsm wrote:
vvaltchev wrote: [*]Improving tfblib and write more cool apps and games with it, for both Linux and Tilck. Tetris is already pretty cool. Adding a minimalistic snake would be great, for example. Another thing that might be cool here is to add sound effects to the tetris game. Maybe that's useless from the kernel point of view, but it's cool for the project as a whole.
[*]Tilck has an (almost) user-mode application built-in curses application inside the kernel called "debug panel". It would be cool to improve it and/or maybe consider porting it entirely to user space. There's some kernel effort on this, but that would be on my side.
I was looking at tilck at github on Friday. I thought the tfblib looked really cool.
Thanks :-)
lmemsm wrote:Do you have curses or ncurses or pdcurses support working on tilck? I know a lot of great programs that work with curses.
Yes, Tilck supports ncurses. There's a simple app called "ncapp" to test ncurses. I don't claim that everything ncurses supports will actually work, but most things should, as vim, compiled for i686-linux works with syntax highlighting etc. There's another idea I didn't thing of: expanding "ncapp" to test more and more ncurses features on Tilck.
lmemsm wrote:Have you thought about support for anything like OpenGL? I've been doing a lot of experimenting with picoGL (a tinyGL fork).
Well, proper support for OpenGL requires a video driver with hardware acceleration support. Doing that requires a ton of work (in order of 100 kLOC at least) and will only work on a few highly compatible video cards (e.g. Nvidia series XYZ). So, I'm not planning to work on anything like that any time soon.

BUT, if you're talking about software-rendered 3D graphics using a library like tinyGL, that's a different story: that should work out of the box, once the library is made to use the Linux framebuffer. In my understanding, that should be easy with tinyGL. In the examples, SDL is used just to setup the framebuffer which is then passed to tinyGL. Unfortunately, SDL2 doesn't support the Linux framebuffer while SDL1 is deprecated. But, with tfblib that will be super-easy. I'd be super happy if you make some stuff like that to run on Tilck. At the moment, fbDOOM runs fine on Tilck using the Linux framebuffer interface, but it has its own engine for software rendering.

Note: I've checked this tinyGL fork: https://github.com/C-Chads/tinygl
Unfortunately, I wasn't able to find a fork of it called "picoGL". The only picoGL project I've found on github is a javascript library, which has nothing to do with tinyGL. Can you share the link to the picoGL library you've been using?
lmemsm wrote:I'm not a big fan of cmake so I probably can't help much there. I mainly work with CDetect and standard GNU makefiles.
I get it, no problem :-)
lmemsm wrote:What's a good way to contact you to discuss topics in more detail?
I've sent you a PM with my contacts.