HCD : Locale Kit progress report

Blog post by PulkoMandy on Wed, 2010-07-14 08:30

Hello readers !

As you know, I’m currently working on the locale kit to bring it to a more polished state. The work is going well, and it’s about time for a status update. I’ve been quite busy at school for the whole year and committed few time to Haiku, so I’m catching up with a lot of things.

Services Kit is Going Well

Blog post by shisui on Sun, 2010-07-11 20:02

It's been a month and half since the very beginning of the GSoC coding period, and this is my first blog post about Services Kit. In fact, it's quite difficult to write interesting things for both developers and non-developers, I waited to have some materials before writing a report of my work and ... it's time !

If you manage to build complex applications over the original BeOS Network Kit, you will quickly face a major problem. Indeed, if it's a good C++ wrapper of the BSD sockets API, it's only a wrapper, providing useful classes to handle a network link, but no more. Services Kit is here to provide a more complete set of useful classes which will let developers to get rid of internet protocols and to only think of the good part of a web service client application.

Anatomy of an elf

Blog post by lucian on Thu, 2010-07-08 03:30

Porting LKL to Haiku's kernel API may not have been very hard, but convincing Haiku to load a properly built LKL-based add-on has presented some interesting and challenging problems.

Booting LKL inside Haiku

Blog post by lucian on Thu, 2010-07-08 01:57

The first milestone in this GSoC journey to building a generic file system driver based on Linux kernel code is booting LKL (Linux Kernel Library) inside Haiku.

For the short attention span: it works :)

...
KERN: KDiskDeviceManager::_AddDiskSystem() done: No error
KERN: file system: file_systems/iso9660/v1
KERN: KDiskDeviceManager::_AddDiskSystem(file_systems/iso9660/v1)
KERN: KDiskDeviceManager::_AddDiskSystem() done: No error
KERN: lklhaikufs: unhandled pheader type 0x4
KERN: file system: file_systems/lklhaikufs/v1
KERN: KDiskDeviceManager::_AddDiskSystem(file_systems/lklhaikufs/v1)
KERN: khaiku_env_timer:: LKL_TIMER_INIT
KERN: [lkl-console] Linux version 2.6.29 (gringo@lethe) (gcc version 4.4.4 (GCC) ) #10 Fri Jun 18 14:45:38 EEST 2010
KERN: [lkl-console] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
KERN: [lkl-console] Kernel command line: 
KERN: [lkl-console] lkl: IRQs initialized
KERN: [lkl-console] PID hash table entries: 256 (order: 8, 1024 bytes)
KERN: [lkl-console] lkl: timer initialized
KERN: [lkl-console] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
KERN: [lkl-console] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
KERN: [lkl-console] Memory available: 64900k/65536k RAM, (862k kernel code, 270k data)
KERN: [lkl-console] Mount-cache hash table entries: 512
KERN: [lkl-console] bio: create slab  at 0
KERN: [lkl-console] io scheduler noop registered (default)
KERN: [lkl-console] lkl: syscall interface initialized
KERN: [lkl-console] console [lkl_console0] enabled
KERN: [lkl-console] Warning: unable to open an initial console.
KERN: [lkl-console] Switched to NOHz mode on CPU #0
KERN: [lkl-console] System halted.
KERN: khaiku_env_timer:: LKL_TIMER_SHUTDOWN
KERN: [lkl-console] lkl: IRQs freed
KERN: lkl: halt user callback called
KERN: KDiskDeviceManager::_AddDiskSystem() done: No error
KERN: file system: file_systems/nfs/v1
KERN: KDiskDeviceManager::_AddDiskSystem(file_systems/nfs/v1)
...

These are messages from /var/log/syslog that are generated when Haiku searches for available file system add-ons. One of those drivers is my lklhaikufs driver. Messages with [lkl-console] are from LKL (similar to what you see when a normal Linux kernel boots) :)

GSoC: IPv6 implementation progress

Blog post by kfx on Mon, 2010-07-05 10:15

Up to now an initial version of the following functionality has been made: new address family module - struct net_address_module_info - for IPv6 implemented, based on code from haiku/src/add-ons/kernel/network/protocols/ipv4/ipv4_address.cpp new protocol module - struct net_protocol_module_info - for IPv6 implemented, based on code from haiku/src/add-ons/kernel/network/protocols/ipv4/ipv4.cpp a patch for the ifconfig tool, that allows to configure interfaces with IPv6 addresses. It works by adding new struct net_interface structures, in a way to similar to how IPv4 address aliasing works.

Lesson 23: Polish and Packaging Our Project

Blog post by darkwyrm on Wed, 2010-06-23 00:41

This lesson finishes up the project that the last two have been about: HaikuFortune, a program which randomly chooses and displays a fortune in a window. It’s not a very complicated one, but it exemplifies a reasonably well-coded real-world project. Although it was code complete as of the end of Lesson 22, it was not finished, missing icons and other resources. This concludes the project with adding resources, a basic discussion on source code licensing, and packaging a program for Haiku.

The summer is back, and HCD comes with it

Blog post by PulkoMandy on Mon, 2010-06-21 09:20

Hello Haikuers, As you know, I worked last year as a GSoC student on the Locale Kit. Unfortunately, I had to get back to school in september and had not much free time to spend on Haiku. I attended the coding sprint at BeGeistert, but my laptop fan died while I was there and forced me to run my cpu at 800MHz, which was quite painful for coding.

Evolution of user interfaces in Haiku and other Operating systems

Blog post by PulkoMandy on Sun, 2010-06-20 16:11

This blog post talks about the changes that have been hapenning in recent versions of others Operating Systems, and wether Haiku should copy them or not.

Getting haiku_loader to play nicely with elves

Blog post by nmentley on Sat, 2010-06-19 15:04

One of the first steps I’m taking in setting up x86_64 support for haiku is updating haiku_loader to support elf64 binaries. I felt like it would be a bit more logical to be able to boot a 64bit kernel before trying to build one.

There are a few hurdles to jump before haiku_loader is ready to load a 64bit haiku kernel. For example, we need to add the code to detect weather a kernel is an elf32 or elf64 binary. We need to load it accordingly and finally we’ll need to modify how the kernel_args data structure is handled to support 64bit pointers.

Unit Testing for Fun and Profit

I noticed the other day that I had a comment below my previous blog post, I didn't have time to reply that day, the next day I was in bed sick, but TODAY, I can reply! In the comment, AndrewZ asked if I could post some of my unit testing code, and I thought that would make for an interesting blog post, and here one is.