Page 1 of 1

Google Summer of Code 2024

Posted: Wed Jan 17, 2024 5:37 am
by dunkaist
Great news, GSOC 2024 is announced.
Google wrote:Applications for organizations open January 22 to February 6
Our Ideas Page.

Mentors, administrators, ideas are welcome.
I can be an administrator and a mentor.

Residents of United States embargoed countries are ineligible this year.

Re: Google Summer of Code 2024

Posted: Thu Feb 22, 2024 5:39 am
by dunkaist

We are glad to announce that KolibriOS has been accepted to participate in Google Summer of Code 2024!🎉

This is our third time after 2014 and 2016. It has been a while, yes. We are grateful to all the contributors, users and enjoyers who made this dream come true again.

Prospective students are welcome to find our ideas page here.

Each student is required to make a post with answers (see ideas page) until the application deadline.

Have fun!

Re: Google Summer of Code 2024

Posted: Fri Mar 29, 2024 11:29 pm
by kohsine
Task: draws the text 'Hello GSoC 2024' and creates a button 'Paint' that will change the color of that text between any three colors


Code: Select all


use alloc::vec::Vec;
use cstr_core::{cstr, CStr};

use kos::{
    graphics::{display_message, Color, Dot, Size},
    system::{get_lang, Lang},
    threads::{exit, fetch_event, Event},
        define_button, define_window, end_window_draw, get_button_id, start_window_draw,
        WindowKind, WindowParams, CLOSE_BUTTON,

const HEADER: &CStr = cstr!("Hey Kolibri");
const MSG: &CStr = cstr!("Hello GSoC 2024");
const BTN: u32 = 42;
const COLORS: [(u8, u8, u8); 3] = [(255, 0, 0), (0, 255, 0), (0, 0, 255)];

extern crate alloc;

fn draw_window(c: usize) {

        Dot { x: 50, y: 50 },
        Size {
            width: 300,
            height: 400,
        WindowParams {
            color: Color::rgb(0xff, 0xff, 0xff),
            kind: WindowKind::Themed,
            title: Some(HEADER),

    let color = COLORS[c % 3];
        Dot { x: 10, y: 10 },
        Color::rgb(color.0, color.1, color.2),

        Dot { x: 10, y: 70 },
        Size {
            width: 70,
            height: 15,
        Some(Color::rgb(128, 255, 128)),

        Dot { x: 10, y: 70 },
        Color::rgb(0, 0, 0),



fn button_handler(c: &mut usize) {
    let btn_id = get_button_id();

    if btn_id.is_some() {
        match btn_id.unwrap() {
            CLOSE_BUTTON => exit(),
            BTN => {
                *c += 1;
            _ => {}

fn kol_main() {
    let mut c = 0;

    while let Some(ev) =
        fetch_event((Event::Redraw as u32) | (Event::KeyPress as u32) | (Event::BtnPress as u32))
        match ev {
            Event::Redraw => draw_window(c),
            Event::KeyPress => drop(fetch_key()),
            Event::BtnPress => button_handler(&mut c),
            _ => break,

Re: Google Summer of Code 2024

Posted: Fri Mar 29, 2024 11:44 pm
by lzrd
Intake task: parsing a local RSS feed for the RSS/Atom feed reader project.

Currently, the program parses a local RSS feed and displays it's contents:

The target XML file should be placed at `/sys/MEDIA/example.rss`.

Attached with this post are the program and RSS schema file, along with links to library files.
The supporting files `` and `xml.obj` can be found in the following archives:
- ... 9cff948de9
- download/file.php?id=2508&sid=34fb35818 ... 9cff948de9

Re: Google Summer of Code 2024

Posted: Mon Apr 01, 2024 1:23 pm
by tejas_t
Intake task: Create two to three ext4 disk images that test various mkfs.ext4 capabilties.
GSOC task: Write support for ext4 file system.

Three different ext4 file system images test different features of the ext4 file system: addressing length: 32-bit vs 64-bit, no extents, and dir_index implementation.


t071 and t072 check with the file system being 32/64bit.
t073 makes the image without dir_index implementation and tries to read a file.
t074 makes the image without extent, and tries to read through a large file.

These are to be placed inside `umka/test`


All the image generation happens inside "". A makefile is provided for leisure, and one can simply run "make clean" and then "make" to make all the test disk images. It is to be placed in `umka/img/`

Re: Google Summer of Code 2024

Posted: Tue Apr 02, 2024 3:17 am
by ramenu
Here is my code for the NVMe driver test task. The task was to enumerate all NVMe devices on the PCI bus and report the capacity of the disk. I'm still currently working on reporting the capacity of the disk, since you have to initialize the controller first before you can send an identify command to the controller, and this requires you to do a lot of reading and setup the appropriate data structures. However, I was able to map the MMIO registers and query important information needed to setup the controller, so I have basically done a fair portion of the initialization work already.

Re: Google Summer of Code 2024

Posted: Tue Apr 02, 2024 6:40 pm
by arnavbhatt288
GSOC Task: SDL2 Port for KolibriOS
Test Task: Fixing sound bug of PokeMini:

There is a small bug in PokeMini where closing the program using "X" button of the window, last played in game sound hangs on which continues to play as a single infinite note until the shutdown or reboot of the system. The fix ports the current version of PokeMini in KolibriOS' source code to newlibc as it currently relies on menuetlibc for compiling.
Before fix
Downloaded 92 times
After fix
Downloaded 92 times

For such changes, a new Makefile has been made. Here is the patch for it:
Downloaded 95 times

Re: Google Summer of Code 2024

Posted: Tue Apr 02, 2024 9:36 pm
by kohsine
Was too late the revise my app to GSoC so submitting here.

Re: Google Summer of Code 2024

Posted: Fri Apr 12, 2024 10:10 pm
by Vivek Sahani
Hello, Everyone
My GSoC task is to write an RSS news reader as a standalone KolibriOS application.
I was assigned a test task of creating a KolibriOS application which parses the locally stored RSS/XML data and displays it on the application window.

An Example KolibriOS program was present in OS so I tried to understand the program and figured out how to create programs for KolibriOS.
I faced many challenges as a beginner but the mentors supported and helped me even with my silly doubts. As a result, I completed my test task. I have attached the Image of the working application.