Difference between revisions of "Ideas Page"

From KolibriOS wiki
Jump to navigation Jump to search
(35 intermediate revisions by 5 users not shown)
Line 23: Line 23:
 
|Mentor
 
|Mentor
 
|-
 
|-
|
+
|Kiril Lipatov
|
+
|[[User:Leency|Leency]]
|Mentor
+
|C-- Mentor
 +
|-
 +
|Konstantin Pakhtusov
 +
|[[User:KPG|KPG]]
 +
|Mentor (Forth)
 
|}
 
|}
  
Line 45: Line 49:
 
! Programming Language
 
! Programming Language
 
! Mentors
 
! Mentors
 +
|-
 +
| [[#OpenBios_in_Loader|OpenBios in Loader]]
 +
| Kernel/Application
 +
| Forth, FASM (Assembler), C
 +
| KPG
 
|-
 
|-
 
| [[#File_system|File system]]
 
| [[#File_system|File system]]
Line 56: Line 65:
 
| dunkaist
 
| dunkaist
 
|-
 
|-
| [[#Port_PolarSSL|Port PolarSSL]]
+
| [[#Port_Mbed_TLS|Port Mbed TLS]]
 
| Library
 
| Library
 
| C/FASM
 
| C/FASM
 
| Punk_Joker
 
| Punk_Joker
 
|-
 
|-
| [[#XMPP.2FJabber_client|XMPP/Jabber client]]
+
| [[#Port_FLTK|Port FLTK]]
| Application
+
| Library
| Assembler/FASM
+
| C++
|  
+
| Punk_Joker
 
|-
 
|-
 
| [[#Fasmg_port|Fasmg port]]
 
| [[#Fasmg_port|Fasmg port]]
Line 72: Line 81:
 
|-
 
|-
 
| [[#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 89: Line 93:
 
| Kernel
 
| Kernel
 
| FASM (Assembler)
 
| FASM (Assembler)
| dunkaist
 
|-
 
| [[#GIMP_plugin_for_skins|GIMP plugin for skins]]
 
| Application
 
| C/Python/Scheme
 
 
| dunkaist
 
| dunkaist
 
|-
 
|-
Line 101: Line 100:
 
| dunkaist
 
| dunkaist
 
|}
 
|}
 +
 +
=== OpenBios in Loader ===
 +
OpenBIOS is a free, portable implementation of [https://archive.org/details/ieee_std_1275_1994_standard_for_boot_initialization_configur IEEE 1275-1994 (Open Firmware)]. [http://www.openbios.org/ 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 [https://www.openbios.org/Forth/FCode] - 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: [https://github.com/openbios Openbios Firmware in Github]
  
 
=== File system ===
 
=== File system ===
Line 114: Line 125:
 
* Links: [http://en.wikipedia.org/wiki/Widget_toolkit basic idea], [http://en.wikipedia.org/wiki/List_of_widget_toolkits list of toolkits]
 
* Links: [http://en.wikipedia.org/wiki/Widget_toolkit basic idea], [http://en.wikipedia.org/wiki/List_of_widget_toolkits list of toolkits]
  
=== Port PolarSSL ===
+
=== Port Mbed TLS ===
* Primary goal: Make a working port of PolarSSL (as native KolibriOS MS COFF library) and add it to the automatic build-system.
+
* 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.
 
* Additional goal: Update HTTP library (written in FASM) to support HTTPS.
 
* 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]
+
* 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]
  
=== XMPP/Jabber client ===
+
=== Port FLTK ===
* Primary goal: Write a basic XMPP/Jabber library and client for KolibriOS.
+
* Primary goal: Make a working port of FLTK (widget library) and add it to the automatic build-system.
* Additional goal: Implement some xmpp extentions.
+
* Additional goal: port Scintilla (minimum working version)
* Language: Assembler/FASM
+
* Language: C++
* 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]
+
* Links: [https://www.fltk.org/ Official site]
 +
 
 +
Language: C--, Assembler/FASM
  
 
=== Fasmg port ===
 
=== Fasmg port ===
Line 139: Line 152:
 
* 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 159: Line 165:
 
* 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 ===
Line 176: Line 175:
 
[[Category:Misc]]
 
[[Category:Misc]]
  
Most importantly...Have Fun!
+
Most importantly... Have Fun!

Revision as of 15:47, 7 September 2021

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

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

Most importantly... Have Fun!