Rushabh Gala

GSoC Final Report

Hello! Welcome to my blog about my experience with GSOC 2024!

Introduction

I am Rushabh Vipul Gala, studying Computer Science and Engineering at the University of Mumbai, India. I love to solve real-world challenges, and want to contribute for the betterment of the world. I have a keen interest in new technologies. And I am thrilled to be able to contribute to the Open Source Community through Google Summer of Code (GSoC).

The main goals were to

What I did mainly is

The current state

What’s left to do

What code got merged upstream

Some challenges and important things I learned during the project

Something I learnt

QnA with my mentor Mr. Lup Yuen Lee

1. Think of a NuttX Developer, creating a NuttX App in Rust for the very first time. Have we done enough to help them? How else could we have helped?

Yes, we have done enough to help an experienced NuttX Developer to create a NuttX App in Rust. Though they might face difficulties in understanding the Rust Syntax, with time they should be able to understand Rust. We have developed and coded some NuttX POSIX APIs in Rust, which will help them in abstracting the underlying Unsafe code. There’s still room for improvement and developing more such APIs.

2. In the First Half of GSoC, we ran Rust Apps on Ox64 BL808 RISC-V SBC. In the Second Half, we ran Rust Apps on QEMU RISC-V. Why was it necessary to do both?

Yes, we ran Rust Apps on Ox64 BL808 RISC-V SBC in the first half because NuttX Kernel and NuttX Apps are real-world applications, which are better to build, run and test on physical hardware, to resolve any errors or glitches in the code. But not everyone has an Ox64 SBC, and it’s difficult to run the App on every existing Hardware Platform. That’s why we also built, ran and tested the Apps in QEMU RISC-V emulator, to make sure the Apps work on other platforms too.

3. Which topics should NuttX Project explore for the next GSoC? Create more NuttX Apps or NuttX Drivers (like for Ox64 BL808 SBC)?

There are many topics that NuttX Project could explore for the next GSoC, such as NuttX support for other platforms, creating more NuttX Apps for showcasing the capabilities of NuttX RTOS and the Community, or maybe a deep and thorough review of the NuttX Codebase and Documentation. And I believe it would be better to create more NuttX Drivers, which will enable more developers to create various Apps relying on the NuttX Drivers.

4. Should NuttX Project collaborate directly with universities, and work on team-based projects?

I think it’s a good idea to collaborate directly with the universities to work on team-based projects. This will help the NuttX Community to get new developers and implement the ideas that they conceive. I think it’s also beneficial for the students to learn and code in the standard way using Git.

Acknowledgments

I am also thankful to Mahadev, Bhagwan Vishnu, and all the gods and goddesses for granting me this opportunity and guiding me through this journey.

I am incredibly grateful to Mr. Lup Yuen Lee for his continuous support, patience, and invaluable guidance throughout the GSoC. His expertise as an experienced developer and as a lecturer were very helful in shaping my understanding and skills in embedded systems as a novice student developer.

A special thank you to the Apache Software Foundation. The resources and community at the Apache Software Foundation were essential in helping me achieve my goals and grow as a developer.

I am also grateful to PINE64 for sponsoring me with two Ox64 Single Board Computer BL808 RISC-V SoC, along with the setup tools. These resources were essential for testing my code and applications on physical hardware.

I extend my thanks to the NuttX Community: Alan Carvalho de Assis, Tomasz Cedro, Xiang Xiao, and Alin Jerpelea, my fellow GSoC-mate Saurav Pal, and others for their assistance and encouragement during challenging phases of the project.

I would also like to thank my parents, other family members and friends for their support throughout this journey.

Finally, I am grateful to Google, Stephanie and Lucila (GSoC Admins) for organizing the 20th Google Summer of Code and for providing a platform for students like me to learn and contribute to open-source projects.

Thank you once again to everyone who made this experience enriching and unforgettable.