KolibriOS Summer of Code 2013 student applications

Post here questions, problems and suggestions in English language
  • Dear sir,

    The following post lists my application:
    1. Full name: Shikhin Sethi.
    2. Age: 15; date-of-birth for additional reference: 18th March, 1998.
    3. Location: New Delhi (city), Delhi (state), India (country).
    4. Human languages I speak: English (I'd say expert level) and Hindi (again, expert level). While Hindi is my mother-tongue, I learnt English prior to learning Hindi, and it can thus qualify as my first language.
    5. Springdales School, Pusa Road, New Delhi.
    6. Program under school: It's a school, so I'm not too sure what I write in the program. I've all science subjects coupled with Computer Science and English. I'm in the eleventh grade.
    7. UTC +5:30, India (Kolkata).
      • For open source projects, I've meddled with Sortix and its ext2 support, though I haven't pushed anything upstream. I haven't really messed with any other large-scale open source project, which is why I decided on applying for KolibriOS' SoC.
      • As for my own projects, I've got a primary hobby OS project, called Draumr. Draumr, a microkernel, has been designed to take care in mind NUMA, and SMP, since retro-fitting either is tough. It does not use many external resources (it has its own bootloader, not GRUB), and supports both legacy crud (serial ports, machines without CPUID, for example) and new stuff (NUMA, UEFI). It's in the refactoring stage right now (thus, upstream git won't build), and not much work is "viewable" if you run Draumr in an emulator, since most of it happens behind the scenes. Note that Draumr is the third rewrite attempting to be the perfect OS, which is why it's a bit of slow work with loads of design backhand. In prior versions of Draumr, which have since then been lost, I've dealt with FAT12,16,32 (which is relevant to the task I've chosen).
      • My other project is Tart which is a newly initiated Unix-clone for the Raspberry Pi. It's supposed to be a traditional monolithic kernel, and somewhat POSIX compliant to help me gain more experience with POSIX.
      • My third open-source project is a bootloader, destined to replace the monopoly that GRUB has. Its supposed to support all forms of booting, that is floppy, ISOs, hard-disks, PXE, both via legacy BIOS and UEFI. Furthermore, its supposed to be highly configurable to allow the booting kernel to even pick what video modes with what aspect ratio should be picked. Though it's not progressed much due to commitments of all the involved members, much of its design is final.
      • It's noticeable that my GitHub profile hasn't been very active in the past few months, due to school commitments. However, these are the summer vacations, which means that I'll be getting enough time to work on the task I choose for KolibriOS, if I get selected.
      • Draumr (hobby OS);
      • Tart (hobby OS);
      • Selfer. Selfer, which I haven't mentioned before, is supposed to be a fun bootsector project, as to test what all I can do in 512 bytes. You can assemble it with NASM and dd it onto a floppy, and boot it to have fun. It demonstrates my skills with assembly, and the corresponding OSdev.org thread with usage-instructions can be found here.
      • Since assembly experience should be a plus point, I'd like to point out that I rewrote the article on Entering Long Mode Directly, along with properly-commented assembly code for beginners, at the OSdev.org wiki.
    8. I'm willing to improve filesystem support in KolibriOS, by adding ext* write support, and further ironing of bugs in ext* read support. I'll also look at working on the caching layer, depending on the availability of time. I've had prior experience with filesystems, and I'm proficient at low-level programming. The task's idea is integral to a full featured OS, as well as the fact that it is a reasonable task which can be expected to be fulfilled under the given time frame.
      1. Fix. Authored a fix for sys_msg_board (fn 63) to not rely on cross_order and take arguments in original order.
      2. Potential bug. In boot_fat12.asm, line 47, you use lodsb, which depending on the state of DF either increases or decrements SI. It looks like you depend on it incrementing SI, which requires the direction flag to be clear. However, you don't clear the direction flag yourself, and its state is thus what the BIOS left it in. It is totally incorrect to assume the BIOS cleared the DF, and I've seen machines where it does not.
      3. Potential bug. In boot_fat12.asm, line 227, you attempt to read sectors from the disk. In several places in the same file, you try to read more than 1 sector at a time. First of all, the safest bet while reading from floppies using the BIOS is that only the sectors in the same track are tried to be read per call. A way to implement the floppy read code is to have a minimum threshold, and if the call to read multiple sectors fails that many times, after that, only single sector reads should be requested from the disk. Furthermore, between retries, it is helpful to reset the floppy using AH=00, int 0x13.
      4. Suggestion. In boot_fat12.asm, line 121, you do jmp $. That's a busy loop, which leads to the processor continuously doing... nothing. It's better to use the hlt instruction, which makes the processor execute no further instruction until an interrupt occurs, and thus saves power. The right sequence would then be: freeze_pc: hlt; jmp freeze_pc;.
      5. Potential bug. In kernel.asm, line 183, you enable the A20 using the keyboard controller. No checks follow to see whether the A20 gate actually got enabled, and I've seen machines where it would thus potentially fail. Moreover, the correct sequence to try and enable the A20 gate should be somewhat:
        • Try using the BIOS (int 0x15; ax=0x2401). The BIOS should be considered the most reliable, since it'd most probably use the method that should work for the particular machine. Check if A20 gate got enabled, and if successful, continue.
        • Try using the keyboard controller. Check if A20 gate got enabled, and if successful, continue.
        • Try using fast A20 (unless the fast A20 bit is already set). Fast A20 should be considered the least reliable. Check if A20 gate got enabled, and if successful, continue.
        It's not expensive to check if the A20 gate got enabled, and example code from Draumr can be found here.
      6. Wiki improvement. I pointed out the fact that the Style page on the wiki was inconsistent with the actual code and the forums. Hidnplayr beat me to fixing it, but the fix was based on my suggestion.
    I've mailed a consent letter from my parents, considering the fact that I'm under 18, to yogev_ezra. My school also reopens sometime in July (the date isn't confirmed), so I would have to go to school. Of course, I'll still be able to clock in 40 programmer-hours a week, and, hopefully, and usually, more.

    I think I'm a suitable candidate as I've experience with low-level programming, and my task matches the domain I've been working in over the past few years. I'm willing to work consistently over the given period, and won't do sloppy work at all (I love writing readable code as much as I love writing code). If any thing in my application is lacking, I'd be willing to provide that.

    Regards,
    Shikhin
    Last edited by Shikhin on Mon Jun 10, 2013 5:50 pm, edited 12 times in total.
  • Yo~~

    Application closed until further communication with the core team :)

    --Have a productive day,
    latentprion
    Last edited by latentprion on Mon Jun 10, 2013 10:09 pm, edited 1 time in total.
  • Hello!

    Here is my application. I keep it short but I hope you will like it.
    1. Full Name: Ivan Baravy
    2. Age: 22
    3. Location: St.Petersburg, Russia
    4. Languages: Russian (mother tongue), English (intermediate)
    5. University: SPbU
    6. Department: AM&CP
    7. Timezone: UTC+04:00
    8. FOSS Involvement: KolibriOS. I mostly work with raster images: decoding, encoding, transforms. But I also wrote 'crashtest' program (libcrash programming example) that computes different hashes of itself, including sha3 (keccak). This means I am experienced in parsing complex data structures and familiar with related algorithms.
    9. Code samples: libcrash, some parts of libimg, ASCIIVju (not really since I only disassembled it).
    10. Proposed task: I'd like to provide stable xfs read support and advance write support as much as I can. This became especially important for me with availability of AHCI driver, since I have xfs on almost all hdd partitions. And so the only reason I can't access my hard drive from KolibriOS is lack of xfs support.
    11. a + b + c
    Those bugXX files are kolibri executables that illustrate bugs in sysfuncXX. You should fix their signatures to run.
    Locker.asm is the source of locker binary. You may want to correct locker signature, run it and enjoy. However you are discouraged to do it!

    I would like to note once again that I have xfs on most of my hdd partitions and therefore I am interested not only in getting the money (which is obvious) but also in mantaining corresponding code after the KSoK.

    kind regards,
    dunkaist
  • Hi,

    1. Full Name: Abdul Rauf

    2. Age: 22

    3. Country + city of residence: India Gulbarga(Karnataka state)

    4. Human languages i speak: I am Fluent in English, Hindi, Urdu and have somewhere between basic and intermediate in Kannada and Arabic(i can read ).

    5. Name of college : Khaja Banda Nawaz College of Engineering. http://www.kbnce.org/

    6. Name of program: Electronics and Communication Engineering.

    7. Time Zone: UTC/GMT +5:30

    8. Past Involment with Open source projects
    I have recently started with SMC open source project and i am working on Urdu Transliteration ( https://github.com/haseebgit/Transliteration ), earlier i was fixing bugs/suggesting features to couple of Open source projects like Getting things gnome, Hasgeek's open source project etc

    I am active member of opensource community in my College and City. I have been taking part in many opensource meetups and events(mostly in Bangalore). I have also volunteered with many events like Hasgeek's events( http://hasgeek.com/ ),PyCon India etc.This time i am handling PyCon India's Registration and also did it in past. I am also the founder of my Local Linux User group in my town (ilug-gulbarga).

    In my free time i do translations to couple of open source project.


    Github : https://github.com/haseebgit
    Bitbucket: https://bitbucket.org/haseebbit
    Launchpad: https://launchpad.net/~haseeb
    Mozilla: http://mozilla.locamotion.org/accounts/haseeb/

    9. Code sample:
    https://bitbucket.org/haseebbit/another ... ?at=master

    10. Proposed task
    Improve Ethernet support
    The project aims at extending KolibriOS functionality by adding Ethernet drivers for popular network cards such Broadcom(bcm57xx), Atheros and Marvell Yukon network cards during this summer.

    My development process will follow the standard KolibriOS development process, under the guidance of my mentor. When the code is finished, they will go through code review by mentor to ensure it follows the coding standard, is sufficiently tested etc

    Small,frequent feedback via code review will ensure I am learning and improving throughout the summer,

    11. Suggest or make a slight improvement to KolibriOS:
    Wiki Improvement: I would like to add minimum hardware requirements in FAQ( http://wiki.kolibrios.org/wiki/FAQ )
    8MB RAM and few megabyte disk space.

    P.S : I need Network cards for my proposed task.
    Also i need a one week break from 4th july for my exam.

    Thanks,
    Abdul Rauf(haseeb)
  • Applications are now closed - thanks to everyone who applied. Our team will review the applications and notify of the results on Monday, June 17th, at 9:00 UTC.
  • *** Student application results announced! ***

    Many thanks to all 4 students that have applied this time, and we are very sorry that one of the students had withdrawn his application before the deadline (the application seemed a good quality, even though the proposed work did not fit our project).

    After carefully considering the remaining 3 applications, our team decided to select Shikhin and dunkaist as our students for KolibriOS Summer of Code 2013. Congratulation on being selected - you may start working on your projects right now. I need your photos for a Kickstarter update - please send me your photos in private message.

    haseeb - we wish you best of luck, and you are of course welcome to apply to us next year, if we run a similar Summer of Code (independently or via Google). You are also welcome to stay with the project if you like it, and contribute in your spare time.
  • Time for 1st month evaluations!
    Students - please create new threads in our forum in this category: viewforum.php?f=31
    Attach your source code (or link to your source code on the FTP) and describe what has been done by you in the 1st month.
    Our developers will evaluate your code, and provide feedback where appropritate (comment or suggest corrections).
  • Who is online

    Users browsing this forum: No registered users and 2 guests