Ideas Page: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
(upd SDL2 task)
(upd mbedtls task)
Line 126: Line 126:


=== Port Mbed TLS ===
=== Port Mbed TLS ===
* Primary goal: Make a working port of Mbed TLS (previously PolarSSL) as native KolibriOS MS COFF library and add it to the automatic build-system. (done)
* Primary goal: Finish MbedTLS port (headers for FASM, get ceritificates working) ([https://board.kolibrios.org/viewtopic.php?p=76983#p76983 TODOs])
* Additional goal: Update HTTP library (written in FASM) to support HTTPS. (todo)
* Additional goal: Update HTTP library (written in FASM) to support HTTPS by using mbedtls.obj
* Language: C/FASM
* Language: C/FASM
* Links: [http://board.kolibrios.org/viewtopic.php?f=40&t=2460 Forum thread about polarSSL], [http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fdevelop%2Flibraries%2Fhttp%2F&#a12c8a35f2062865521028a57a419b4e8 HTTP library on WebSVN], [https://github.com/rgimad/kos_mbedtls Port of mbedTLS to Kolibri (as a static library) + working example]
* Links: [https://board.kolibrios.org/viewtopic.php?p=76983 MbedTLS port thread]


=== Port FLTK ===
=== Port FLTK ===

Revision as of 21:02, 23 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

Sortable list of ideas for easy navigation

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

Port Mbed TLS

  • 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

Most importantly... Have Fun!