Ideas Page: Difference between revisions
m (→Screen Ruler) |
mNo edit summary |
||
Line 99: | Line 99: | ||
| FASM (Assembler) | | FASM (Assembler) | ||
| dunkaist | | dunkaist | ||
|- | |||
| | |||
| | |||
| | |||
|} | |} | ||
Revision as of 10:16, 24 January 2023
Introduction
This is our ideas page for new developers.
Organization
You can find the organizers at our forum: http://board.kolibrios.org/
Name | Nickname | Role |
Ivan Baravy | dunkaist | Administrator, Mentor |
Dmitriy Smirnov | Pathoswithin | Mentor, (Administrator) |
Serhii Sakhno | Punk_Joker | Mentor |
Kiril Lipatov | Leency | C-- Mentor |
Konstantin Pakhtusov | KPG | Mentor (Forth) |
Ideas
Idea Name | Area | Programming Language | Mentors |
---|---|---|---|
OpenBios in Loader | Kernel/Application | Forth, FASM (Assembler), C | KPG |
File system | Kernel/Application | FASM (Assembler) | Pathoswithin |
Widget toolkit | System wide | FASM (Assembler), C | dunkaist |
Port Mbed TLS | Library | C/FASM | Punk_Joker |
Port FLTK | Library | C++ | Punk_Joker |
Fasmg port | Application | FASM/FASMG (Assembler) | dunkaist |
Unicode library | Library/Application | FASM (Assembler) | dunkaist |
Virt-IO driver | Kernel | FASM (Assembler) | dunkaist |
Loop device driver | Kernel | FASM (Assembler) | dunkaist |
RSS/Atom news reader | Application | FASM (Assembler) | dunkaist |
OpenBios in Loader
OpenBIOS is a free, portable implementation of IEEE 1275-1994 (Open Firmware). Find detailed information about OpenBIOS OpenBIOS can replace your system firmware (BIOS) partly or completely. It can also be used as a bootloader to create an Open Firmware compatible interface between legacy firmware and an operating system. This is achieved by a modular concept that consists of a portable Forth kernel and three interfaces for user interaction, device initialization and client (operating system) control in command line like shell in Linux. OpenBios implentation Fcode [1] - Bytecode is small, hardware independent and efficient. And an evaluator (bytecode virtual machine) is almost trivial to implement or/and with possible an uses JIT technology.
- Primary goal: Add OpenBios ("Forth") support to the system bootloader.
- Additional goal: Create simple interactive more device drivers
- Language: Forth, FASM (Assembler), C
- Links: Openbios Firmware in Github
File system
- Primary goal: Add write support for ext4 file system (ext4 reading and ext2 writing are already supported).
- Additional goal: Improve write support for NTFS file system.
- Language: FASM (Assembler)
- Links: Ext4 Disk Layout
Widget toolkit
- Primary goal: Extend Box_lib (a set of separate widgets) to create a full-featured widget toolkit, design architecture and implement focus handling, callbacks and other core ideas.
- Additional goal: Integrate created box_lib widgets to the C-framework, extend framework with font handling, layout manager
- Language: FASM (Assembler), C (framework)
- Links: basic idea, list of toolkits
Finish Mbed TLS port
- Primary goal: Finish MbedTLS port (headers for FASM, get ceritificates working) (TODOs)
- Additional goal: Update HTTP library (written in FASM) to support HTTPS by using mbedtls.obj
- Language: C/FASM
- Links: MbedTLS port thread
Port FLTK
- Primary goal: Make a working port of FLTK (widget library) and add it to the automatic build-system.
- Additional goal: port Scintilla (minimum working version)
- Language: C++
- Links: Official site
Language: C--, Assembler/FASM
Fasmg port
Tomasz Grysztar (creator of FASM) introduced FASMG, a new assembler engine. It would be nice to support its new syntax in KolibriOS.
- Primary goal: Write FASMG application like FASM one. Port standard KolibriOS macros to FASMG syntax.
- Additional goal: Implement macros for compatibility with FASM.
- Language: Assembler/FASM/FASMG
- Links: FASMG overview, FASMG manual
Unicode library
Unicode is a huge and sophisticated standard. Nevertheless modern OS should provide libraries with Unicode related routines like NFC, NFD, sorting, comparing, etc.
- Primary goal: Write a tiny Unicode library with core Unicode algorithms and example application.
- Additional goal: Upgrade existing applications to use the new library.
- Language: Assembler/FASM
- Links: libutf
Virt-IO driver
Virtio is a virtualization standard for network and disk device drivers where just the guest's device driver "knows" it is running in a virtual environment, and cooperates with the hypervisor. This enables guests to get high performance network and disk operations, and gives most of the performance benefits of paravirtualization.
- Primary goal: Write kernel driver for, say, virt-io Ethernet card.
- Additional goal: Write more drivers.
- Language: Assembler/FASM
- Links: Virt-IO wiki
Loop device driver
- Primary goal: Write loop device driver and example application to manage loop devices.
- Additional goal: Prepare a set of disk images to be used in filesystem unit tests.
- Language: Assembler/FASM
- Links: loop device overview
RSS/Atom news reader
RSS and Atom are standards for web feeds. They are XML based and easily processed via AsmXml library. Corresponding user application would be a big plus to usability of KolibriOS.
- Primary goal: Write RSS news reader as a standalone KolibriOS application.
- Additional goal: Add Atom support to the app.
- Language: Assembler/FASM
- Links: AsmXml library, RSS, Atom
Port SDL2
SDL1.2 is already ported to KolibriOS, but there is no SDL2 port.
- Primary goal: Make a working port of SDL2.
- Additional goal: Port additional SDL2 libraries: SDL2_image, SDL2_mixer, SDL2_ttf, etc.
- Language: C
- Links: libsdl.org
Add forms to WebView
Currently WebView browser doesn't support support html forms (<form>, <input>, etc.)
- Primary goal: Add support for <form>, <input> for types that was prior to HTML5
- Additional goal: Add input types that was introduced in HTML5
- Language: C--
- Links: WebView on svn
J2ME Emulator
Thousands of games and programs have been created for the j2me platform. It would be cool to be able to run them in KolibriOS.
- Primary goal: Port JVM and java.microedition.* runtime
- Additional goal: Make it run most of popular j2me games
- Language: C, Java
- Links: miniJVM
Screen Ruler
Program for conveniently measuring the distance between selected points on the screen.
- Primary goal: measure distance by X, Y, diagonal.
- Additional goal: Also with a built-in magnifier and aim to see which pixel you choose.
- Language: FASM
- Links: for additional goal it would be useful to see: sources of Magnify
Most importantly... Have Fun!