Difference between revisions of "Ideas Page"

From KolibriOS wiki
Jump to navigation Jump to search
Line 139: Line 139:
 
* Primary goal: Make a working port of FLTK (widget library) and add it to the automatic build-system.
 
* 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)
 
* Additional goal: port Scintilla (minimum working version)
* Language: C
+
* Language: C++
 
* Links: [https://www.fltk.org/ Official site]
 
* Links: [https://www.fltk.org/ Official site]
  

Revision as of 22:58, 12 December 2020

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
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
Quark Code editor Application C-- Leency
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: Make a working port of Mbed TLS (previously PolarSSL) as native KolibriOS MS COFF library and add it to the automatic build-system.
  • Additional goal: Update HTTP library (written in FASM) to support HTTPS.
  • Language: C/FASM
  • Links: Forum thread about polarSSL, HTTP library on WebSVN

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

Quark Code editor

Goals:

  • text edit support
  • syntax highlight support
  • add tabs

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

Most importantly...Have Fun!