Google Summer of Code 2014

From KolibriOS wiki
Jump to navigation Jump to search

Introduction

KolibriOS is going to apply as a mentoring organization for Google Summer of Code 2014.
This page contains our ideas list and some additional information for students and mentors.

Organization

You can find the organizers on the IRC channel (#kolibrios @ irc.freenode.net) or at our forum: http://board.kolibrios.org/

Name Nickname Role
Yogev Ezra yogev_ezra Organization Administrator
Anton Kochkov XVilka Mentor, Backup Administrator
Dmitry Pereverzev SoUrcerer Mentor
Jeffrey Amelynck hidnplayr Mentor
Kirill Lipatov Leency Mentor
Serge Semenov Serge Mentor (only for Kernel Vulnerabilities task).

Ideas with appointed Mentor

Kernel vulnerabilities

Summary: Find and fix as many kernel vulnerabilities as you can.

Details:

  • Goal: Check the list of kernel API functions versus their actual implementation in KolibriOS kernel (for example, check that the function doesn't destroy register values if it declares in description that it doesn't). If you find a vulnerability, try to fix it so that it works according to API. If you cannot fix it yourself, document the vulnerability and describe the problem.
  • Language: Assembler/FASM
  • Skill level: Intermediate/Expert
  • Suggested by: Serge
  • Mentor: Serge (Is not always available to answer questions, so select this task only if you can work fairly independently.)

Web browser in FASM

Summary: Write a proper HTML web browser for KolibriOS

Links:

Details:

  • Primary goal: Have mostly complete HTML4 support on a good enough level to read non-complex (mobile?) websites
  • Secondary goal: Add certain elements of CSS, speed optimizations
  • Language: Assembler/FASM
  • Skill level: Expert
  • Suggested by: Pretty much everyone in Kolibri
  • Mentor: SoUrcerer

Web browser (Option B)

Summary: Complete porting of NetSurf browser for KolibriOS

Links:

Details: Our developer SoUrcerer started working on NetSurf browser port. Since he has no spare time, someone else needs to complete it.

  • Goal: Bring NetSurf browser port in KolibriOS to the point of 90-95% functionality, with all critical and major bugs fixed, and only minor or trivial bugs left
  • Language: C (may require writing a few lines in FASM assembly though, to port some libraries)
  • Skill level: intermediate/advanced
  • Suggested by: Pretty much everyone in Kolibri
  • Mentor: SoUrcerer

Font subsystem/Locales

Summary: Add a font subsystem (with Unicode?) and locale support

Details:

  • Primary goal: Add a font subsystem for multiple fonts, etc., standardize it and add keyboard layouts.
  • Language: Assembler/FASM
  • Skill level: intermediate/advanced
  • Suggested by: XVilka/Wildwest
  • Mentor: XVilka

Torrent client

Summary: Write a (bit-)torrent client for KolibriOS

Details:

  • Primary goal: Implement a torrent client similar to µTorrent Free edition
  • Language: Assembler/FASM
  • Skill level: intermediate/advanced
  • Suggested by: People on IRC
  • Mentor: hidnplayr

Filesystem support

Summary: Improve filesystem support in KolibriOS

Details:

  • Goals (you can do one or more of these, not all are necessary):
* Add XFS write support
* Add NTFS writing support
  • Language: Assembler/FASM
  • Skill level: intermediate/advanced
  • Suggested by: dunkaist
  • Mentor: XVilka

FTP client

Summary: Create a GUI based FTP client or add FTP support to one of the existing file managers

Details:

  • Goal: FTP access (download/upload/etc.)
  • Additional goal: Create an FTP client library.
  • Language: Assembler/FASM
  • Skill level: beginner/intermediate
  • Suggested by: hidnplayr
  • Mentor: hidnplayr

USB drivers

Summary: Add USB drivers for the new USB stack (gamepads, joysticks, tablets, etc.)

Details:

  • Goal: USB driver(s) for currently unsupported devices.
  • Language: Assembler/FASM
  • Skill level: beginner/intermediate/advanced
  • Suggested by: hidnplayr/Asper
  • Mentor: XVilka

Improve Ethernet support

Summary: Write more Ethernet drivers.

Details:

  • Primary goal: Support for popular Broadcom, Atheros and/or Marvell Yukon cards. (pick 2)
  • Additional goals: Any Ethernet cards students and their mentors find.
  • Language: Assembler/FASM
  • Skill level: intermediate/advanced
  • Suggested by: hidnplayr
  • Mentor: hidnplayr

Printing/scanning API

Summary: Add a printing and scanning API and drivers.

Details:

  • Primary goal: Design and code infrastructure for printing and scanning devices.
  • Language: Assembler/FASM
  • Skill level: intermediate/advanced
  • Suggested by: hidnplayr
  • Mentor: SoUrcerer

Music player

Summary: Improve the current music player in Kolibri.

Details:

  • Primary goal: Rewrite the current music player (ac97snd), in FASM, and improve its functionality.
* Support for file formats wav, mp3 an xm (using available external libraries).
* Support for playlists (m3u).
* A time display.
  • Additional goals:
* Use of system wide hotkeys to control player
* Support for IDv3 tags
* More codecs (flac, ogg, ...)
* Audio indication (oscillograph, bar graph, ...)
* Show cover art from files or album folder
* Fade in/out and/or crossover
* Streaming radio (at least mp3 over http stream)
* Skins
* Media library
  • Language: Assembler/FASM (C/C++ to port codec)
  • Skill level: intermediate/advanced
  • Suggested by: hidnplayr
  • Mentor: hidnplayr

Installer

Summary: Add an installer to KolibriOS.

Details:

  • Language: Sphinx C--
  • Skill level: beginner/intermediate/advanced
  • Suggested by: asiekierka
  • Mentor: Leency

Open Ideas (without appointed mentor)

Widget toolkit

Summary: Extend Box_lib to create a widget toolkit for software.

Details:

  • Language: Assembler/FASM
  • Skill level: beginner/intermediate/advanced
  • Suggested by: XVilka
  • Mentor: ???

One core for graphics

Summary: On multi-core systems, dedicate one core for graphics rendering ONLY.

Details:

  • Goal: Move graphics subsystem to a single, dedicated core if multicore machine detected.
  • Language: Assembler/FASM
  • Skill level: intermediate/advanced
  • Suggested by: Serge
  • Mentor: Serge(?)

Partition editor

Summary: Add a partition/HDD editor utility.

Details:

  • Language: Assembler/FASM
  • Skill level: intermediate/advanced
  • Suggested by: hidnplayr
  • Mentor: Mario(?)

Rewrite "Table" in Assembler

Summary: Rewrite a great Kolibri spreadsheet application Table from C++ to FASM

Details:

  • Goal: Port Table (C++) to Assembler/FASM.
  • Language: Assembler/FASM
  • Skill level: beginner/intermediate/advanced
  • Suggested by: Wildwest/asiekierka
  • Mentor: ???