Ideas Page: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
mNo edit summary
Line 74: Line 74:
| C++
| C++
| Punk_Joker
| Punk_Joker
|-
| [[#XMPP.2FJabber_client|XMPP/Jabber client]]
| Application
| Assembler/FASM
|
|-
|-
| [[#Eolite_improvement|Eolite_improvement]]
| [[#Eolite_improvement|Eolite_improvement]]
Line 91: Line 86:
|-
|-
| [[#Unicode_library|Unicode library]]
| [[#Unicode_library|Unicode library]]
| Library/Application
| FASM (Assembler)
| dunkaist
|-
| [[#Document_viewer|Document viewer]]
| Library/Application
| Library/Application
| FASM (Assembler)
| FASM (Assembler)
Line 108: Line 98:
| Kernel
| Kernel
| FASM (Assembler)
| FASM (Assembler)
| dunkaist
|-
| [[#GIMP_plugin_for_skins|GIMP plugin for skins]]
| Application
| C/Python/Scheme
| dunkaist
| dunkaist
|-
|-
Line 156: Line 141:
* Language: C
* Language: C
* Links: [https://www.fltk.org/ Official site]
* Links: [https://www.fltk.org/ Official site]
=== XMPP/Jabber client ===
* Primary goal: Write a basic XMPP/Jabber library and client for KolibriOS.
* Additional goal: Implement some xmpp extentions.
* Language: Assembler/FASM
* Links: [http://xmpp.org/xmpp-protocols/rfcs/ XMPP spec], [http://xmpp.org/xmpp-protocols/xmpp-extensions/ XMPP extentions], [http://board.kolibrios.org/viewtopic.php?f=32&t=3111&p=62432#p62433 Unfinished XMPP client for KolibriOS]


=== Quark Code editor ===
=== Quark Code editor ===
Line 184: Line 163:
* Language: Assembler/FASM
* Language: Assembler/FASM
* Links: [http://git.suckless.org/libutf/ libutf]
* Links: [http://git.suckless.org/libutf/ libutf]
=== Document viewer ===
Document viewer is a vital part of any desktop operating system. Text, config and source code files can be viewed by existing text editors, however binary documents viewer is still required.
* Primary goal: Design API for a document viewer extendable with plugins, implement it as a KolibriOS application.
* Additional goal: Write some plugins like PDF or DJVU.
* Language: Assembler/FASM
* Links: [https://pwmt.org/projects/zathura/plugins/development/ Zathura plugin system]


=== Virt-IO driver ===
=== Virt-IO driver ===
Line 204: Line 176:
* Language: Assembler/FASM
* Language: Assembler/FASM
* Links: [https://en.wikipedia.org/wiki/Loop_device loop device overview]
* Links: [https://en.wikipedia.org/wiki/Loop_device loop device overview]
=== GIMP plugin for skins ===
KolibriOS skins are currently written in FASM. It is inconvenient to design them as there is no realtime preview and all skin images are edited separately.
* Primary goal: Write a GIMP plugin to open/save KolibriOS skins.
* Additional goal: Create more skins.
* Language: C/Python/Scheme
* Links: [https://developer.gimp.org/writing-a-plug-in/1/ How to write a GIMP plugin]


=== RSS/Atom news reader ===
=== RSS/Atom news reader ===

Revision as of 13:59, 9 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 PolarSSL Library C/FASM Punk_Joker
Port FLTK Library C++ Punk_Joker
Eolite_improvement 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 PolarSSL

  • Primary goal: Make a working port of 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!