Ideas Page: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
(Remove GSoC related stuff)
(Don't mention mentors, this is not GSoC)
Line 14: Line 14:
! Area
! Area
! Programming Language
! Programming Language
! Mentor
|-
|-
| [[#File_system|File system]]
| [[#File_system|File system]]
| Kernel
| Kernel
| FASM (Assembler)
| FASM (Assembler)
| Pathoswithin
|-
|-
| [[#Widget_toolkit|Widget toolkit]]
| [[#Widget_toolkit|Widget toolkit]]
| System wide
| System wide
| FASM (Assembler), C
| FASM (Assembler), C
| Siemargl
|-
|-
| [[#Port_PolarSSL|Port PolarSSL]]
| [[#Port_PolarSSL|Port PolarSSL]]
| Library
| Library
| C/FASM
| C/FASM
| ashmew2
|-
|-
| [[#XMPP.2FJabber_client|XMPP/Jabber client]]
| [[#XMPP.2FJabber_client|XMPP/Jabber client]]
| Application
| Application
| Assembler/FASM
| Assembler/FASM
| ashmew2
|-
|-
| [[#Fasmg_port|Fasmg port]]
| [[#Fasmg_port|Fasmg port]]
| Application
| Application
| FASM/FASMG (Assembler)
| FASM/FASMG (Assembler)
| dunkaist
|-
|-
| [[#Unicode_library|Unicode library]]
| [[#Unicode_library|Unicode library]]
| Library/Application
| Library/Application
| FASM (Assembler)
| FASM (Assembler)
| dunkaist
<!--
|-
|-
| [[#Document_viewer|Document viewer]]
| [[#Document_viewer|Document viewer]]
| Library/Application
| Library/Application
| FASM (Assembler)
| FASM (Assembler)
| dunkaist
|-
|-
| [[#Virt-IO_driver|Virt-IO driver]]
| [[#Virt-IO_driver|Virt-IO driver]]
| Kernel
| Kernel
| FASM (Assembler)
| FASM (Assembler)
| dunkaist
|-
|-
| [[#Loop_device_driver|Loop device driver]]
| [[#Loop_device_driver|Loop device driver]]
| Kernel
| Kernel
| FASM (Assembler)
| FASM (Assembler)
| dunkaist
|-
|-
| [[#GIMP_plugin_for_skins|GIMP plugin for skins]]
| [[#GIMP_plugin_for_skins|GIMP plugin for skins]]
| Application
| Application
| C/Python/Scheme
| C/Python/Scheme
| dunkaist
|-
|-
| [[#RSS/Atom_news_reader|RSS/Atom news reader]]
| [[#RSS/Atom_news_reader|RSS/Atom news reader]]
| Application
| Application
| FASM (Assembler)
| FASM (Assembler)
| dunkaist
-->
|}
|}


Line 78: Line 64:
* Additional goal: Improve write support for NTFS file system.
* Additional goal: Improve write support for NTFS file system.
* Language: FASM (Assembler)
* Language: FASM (Assembler)
* Mentor: Pathoswithin
* Links: [https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout Ext4 Disk Layout]
* Links: [https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout Ext4 Disk Layout]


Line 85: Line 70:
* Additional goal: Integrate created box_lib widgets to the C-framework, extend framework with font handling, layout manager
* Additional goal: Integrate created box_lib widgets to the C-framework, extend framework with font handling, layout manager
* Language: FASM (Assembler), C (framework)  
* Language: FASM (Assembler), C (framework)  
* Mentor: Siemargl
* 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]


Line 92: Line 76:
* 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
* Mentor: ashmew2
* 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]


Line 99: Line 82:
* Additional goal: Implement some xmpp extentions.
* Additional goal: Implement some xmpp extentions.
* Language: Assembler/FASM
* Language: Assembler/FASM
* Mentor: ashmew2
* 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: [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]


Line 107: Line 89:
* Additional goal: Implement macros for compatibility with FASM.
* Additional goal: Implement macros for compatibility with FASM.
* Language: Assembler/FASM/FASMG
* Language: Assembler/FASM/FASMG
* Mentor: dunkaist
* Links: [https://flatassembler.net/docs.php?article=fasmg FASMG overview], [https://flatassembler.net/docs.php?article=fasmg_manual FASMG manual]
* Links: [https://flatassembler.net/docs.php?article=fasmg FASMG overview], [https://flatassembler.net/docs.php?article=fasmg_manual FASMG manual]


Line 115: Line 96:
* Additional goal: Upgrade existing applications to use the new library.
* Additional goal: Upgrade existing applications to use the new library.
* Language: Assembler/FASM
* Language: Assembler/FASM
* Mentor: dunkaist
* Links: [http://git.suckless.org/libutf/ libutf]
* Links: [http://git.suckless.org/libutf/ libutf]


<!--
=== Document viewer ===
=== 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.
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.
Line 124: Line 103:
* Additional goal: Write some plugins like PDF or DJVU.
* Additional goal: Write some plugins like PDF or DJVU.
* Language: Assembler/FASM
* Language: Assembler/FASM
* Mentor: dunkaist
* Links: [https://pwmt.org/projects/zathura/plugins/development/ Zathura plugin system]
* Links: [https://pwmt.org/projects/zathura/plugins/development/ Zathura plugin system]


Line 132: Line 110:
* Additional goal: Write more drivers.
* Additional goal: Write more drivers.
* Language: Assembler/FASM
* Language: Assembler/FASM
* Mentor: dunkaist
* Links: [https://wiki.libvirt.org/page/Virtio Virt-IO wiki]
* Links: [https://wiki.libvirt.org/page/Virtio Virt-IO wiki]


Line 139: Line 116:
* Additional goal: Prepare a set of disk images to be used in filesystem unit tests.
* Additional goal: Prepare a set of disk images to be used in filesystem unit tests.
* Language: Assembler/FASM
* Language: Assembler/FASM
* Mentor: dunkaist
* Links: [https://en.wikipedia.org/wiki/Loop_device loop device overview]
* Links: [https://en.wikipedia.org/wiki/Loop_device loop device overview]


Line 147: Line 123:
* Additional goal: Create more skins.
* Additional goal: Create more skins.
* Language: C/Python/Scheme
* Language: C/Python/Scheme
* Mentor: dunkaist
* Links: [https://developer.gimp.org/writing-a-plug-in/1/ How to write a GIMP plugin]
* Links: [https://developer.gimp.org/writing-a-plug-in/1/ How to write a GIMP plugin]


Line 155: Line 130:
* Additional goal: Add Atom support to the app.
* Additional goal: Add Atom support to the app.
* Language: Assembler/FASM
* Language: Assembler/FASM
* Mentor: dunkaist
* Links: [http://tibleiz.net/asm-xml/ AsmXml library], [https://en.wikipedia.org/wiki/RSS RSS], [https://en.wikipedia.org/wiki/Atom_(standard) Atom]
* Links: [http://tibleiz.net/asm-xml/ AsmXml library], [https://en.wikipedia.org/wiki/RSS RSS], [https://en.wikipedia.org/wiki/Atom_(standard) Atom]
-->


[[Category:Misc]]
[[Category:Misc]]


Most importantly...Have Fun!
Most importantly...Have Fun!

Revision as of 21:18, 18 October 2017

Introduction

This is an ideas page for new developers.


Ideas

Sortable list of ideas for easy navigation

Idea Name Area Programming Language
File system Kernel FASM (Assembler)
Widget toolkit System wide FASM (Assembler), C
Port PolarSSL Library C/FASM
XMPP/Jabber client Application Assembler/FASM
Fasmg port Application FASM/FASMG (Assembler)
Unicode library Library/Application FASM (Assembler)
Document viewer Library/Application FASM (Assembler)
Virt-IO driver Kernel FASM (Assembler)
Loop device driver Kernel FASM (Assembler)
GIMP plugin for skins Application C/Python/Scheme
RSS/Atom news reader Application FASM (Assembler)

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

XMPP/Jabber client

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

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: Zathura plugin system

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

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: How to write a GIMP plugin

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!