whitenoise

technology notes… mobile and embedded.

Posts Tagged ‘linux

Tech this week ( Jan 9 – Jan 16,2009)

leave a comment »

Hello all and welcome to 2009’s  first issue of this (not so regular) thread at my blog.

Nokia licenses QT under LGPL: After acquiring () Trolltech , Nokia has decided to move license QT under LGPL instead of QTs  Q Public License A major issue with QTL was its incompatibility with the GNU GPL.
This made it extremely difficult to link QT with other GPL covered programs. With QT moving to LGPL this limitation is gone!   The decision has been hailed by many in the FLOSS community. QT is already cross platform and changing the licensing model will make is more ‘corporate’ friendly.

Meanwhile,it has been found that there could be some issues with LGPL 2.1 and the various C++ template classes  in QT.  Though QT’s signal’s and slot mechanism does not use C++ templates, templates are used  with the container classes in QT. Template instantiation actually  nests (QT LGPL code) into the end user code.  So, we have a problem if the end-user licenses his code under non-LGPL! For the update on this,you have to look here .

I am not sure how this move would thwart GNOME’s efforts in getting into the mobile Linux world.  I hope both these libraries have their own  pro’s and cons and would continue to be widely used.

Windows 7 in beta: Last week also saw the release of Windows 7 as a beta. The Windows 7 buzz was around for quite some time.  User response has been overwhelming for this product. More than desktop, I think the strategy is to run Win7 on net books  as well and removing dependence on WinXP for this.

images1 TechRadar has made an attempt to run this on a ASUS EEE 1000 and are impressed with the sleekness.    Also some hackers have released a Windows7 LiTE version (find this in Bittorrent) that strips out some modules like language support,speech assist ,Windows Media Centre etc and managed to
get Windows7 run with a lesser memory than Windows XP SP3  and lesser install space than Windows Vista!

I believe Windows 7 will finally allow Windows to stop its support for XP after so many years.

images Vodafone demos 16Mbps with HSPA+: Last week also saw Vodafone demonstrating 16Mbs bitrates using HSPA+ , an evolution over HSPA . HSPA+ is considered as an enhancement to HSPA and achieves high data rates by including MIMO technologies. The current HSPA+ Release 7  provides  downlink data rate of up to 28Mbps and an uplink of 11Mbps. Future revisions may support higher bandwidth.

Linux kernel 2.6.29 -whats new : The merge window for the next release of the Linux kernel closed recently . Heise online has been running a series on the new and noteworthy features in this release.
An important feature would be the integration of Intel’s WiMAX stack into the kernel mainline by Greg Kroah Hartman. The next noteworthy feature is the integration of Kernel Mode Setting (KMS)  feature into the kernel mainline. Kernel Mode Setting would add a rich boot experience to Linux desktops .  This feature is already present in the latest Fedora release and many were impressed with the seamless boot process of that release.  Now that KMS makes to the linux mainline other distributions would also benefit from this. For a complete coverage on the release, you can have a look here.

Advertisements

Written by sujai

January 22, 2009 at 8:37 am

Posted in reviews, technology

Tagged with , , , , , , ,

Tech this week (Oct 20 to 24 2008)

with one comment

Nokia puts QT on Symbian series 60 platform: After Trolltech was acquired by Nokia ,it was widely anticipated that they may port QT libraries to Symbian platform. The first pre-release of QT for Symbian (called the ‘pyramid’) is now available.  As per the developer blog, to start with the Qore(QTCore),internet(QTNet) ,GUI (QTWidgets) and the GUI testing framework would be available.

With this release, QT now has support for the 3 major smartphone platforms today.

WiFi at 1Gbps: Yes, that is what Quantenna, a start up wants to achieve with its new chip!

WiFi standards, has come a long way and the latest standard 802.11.n (still in draft) has added support for multiple-input multiple-output  devices (MIMO) . In layman terms that means 802.11n allows devices with multiple transmitter and receiver antennas.

This inclusion enabled WiFi to achieve speeds upto 600Mbps .This has made the standard quite attractive and many devices already support the standard even though its still a draft.   Quantenna takes the 802.11n draft standard, and has improved it by  using four antennas each for sending and  receiving and 4 radio’s for each band. (a 4×4 array). This MIMO system makes it possible to achieve 1Gbps on WiFi.

Value of open source: The Linux Kernel is worth $1.4 bn!! That is the conclusion from a study done by the Linux Foundation. The figure was derived based on the number of lines of source that is calculated using a tool called SLOCount and then using an estimation model called ‘Intermediate COCOMO’ .

I remember COCOMO from my Software Engineering course at college. Now here ,is a nice example of how it is put to use 🙂  As acquiring small open source software companies by large companies increase, this model may help them in estimating the value of their product.

Microsoft’s new patent – real time censuring of audio :   Microsoft’s PDC2008 is on the way and many are expecting announcements on their next edition of Windows (Windows 7) and their road map on cloud computing. Before that ,here is a new patent from Microsoft that caught my attention.  PN/7,437,290 is about a method to analyze the phonemes in live audio streams and replace a F*** or M****** with a bleeps,other noise or silence.

Earlier , there used to be a 7 second delay during which the content is scanned by an editor who adds the bleep.  MS plans to use it in filtering audio exchanged between players using their XBox 360 along with some voip solutions like Teamspeak.

Written by sujai

October 29, 2008 at 2:58 pm

FOSS.in and the Omelette post

with one comment

FOSS.in is an annual open source event that happens in Bangalore. I’ve not attended the event anytime,but I go through the presentations of the speakers. There were several presentations on many topics like OpenMoko ,OpenSolaris,etc last year which were quite informative.

The event will happen Nov 25-29 this year. The CFP announcement was done quite some back  . Yesterday I received an email on what has  changed and whats the focus. This year’s focus would be ‘Talk is cheap.Show me the Code‘.The bar has been raised now and its more of a ‘developer only’ event .The organizers want to keep the noise low and concentrate on what matters most..RESULTS… Way to go!!

Some thoughts: As the post says, much of it sounds idealistic… I really don’t know if coding workouts could produce ‘results’ as the post suggests.

I may be quite wrong but in my opinion ,summits/conferences are for ideas and not for writing code..not many would come to a   room and start coding…I may not be able to attend the meeting (I don’t want to stand on the way of  smart people).

I wish good luck for FOSS.in to be a grand success.

Here is the original Omelette post: http://foss.in/2008/10/fossin2008-the-omelette-post/

Written by sujai

October 3, 2008 at 10:54 am

Posted in foss

Tagged with , ,

My tryst with Linux.

with 8 comments

Playing around with my PC was a favorite activity during college. I used to try various OS’s at home .Notable were QNX (provides a host of features including a HTML browser  at a size of 1.44MB Floppy)  and  BeOS (another interesting OS which used to run OpenGL stuff which was otherwise not possible with my  440ZX Motherboard.)

During this time, I came to know of Linux from a friend. The whole idea of installing an operating system whose source code is available for users to change, sounded very attractive . Besides Linux is  based on UNIX. and I always wanted a UNIX environment at home after using SCOUnix for programing at my training institute.

But Linux was notorious for its ‘usability’ issues and installation was not quite easy.  We had to manually configure the mouse, soundcard ,and the gfx card. This was not easy as it sounds. I used to have a diary with all the device names/ model number and IRQ assignments before starting to install Linux.

The first distro I tried at my PC was RedHat 6.2, that came for free with PCQuest. LILO was quite primitve and GRUB was  still in the alpha stage at that time. So the paritions have to be made in windows using some tools like Parition Magic.  Once the partitions are made, it used to be a 1 hour wait (thats what was possible with a Pentium 350 MHz, 32MB RAM) until all software gets installed by the Anaconda installer .

Unlike current versions ,Configuration of display happens almost at the end of the installation.This was most annoying part.  I had an AGP card on my PC and there was no inbuilt support for it in the kernel.XWindows never worked fine for me and I had to work on a 640x 480 resolution.

Fastforward to 2008 and it all seems funny.   Today Linux is a name you cannot ignore and the latest edition from Canonical (Ubuntu Hardy) has an installation procedure that is ALMOST seamless, except for a couple of ENTER presses. As a popular AD from IBM shows, Tux is no more the new kid on the block .

Written by sujai

August 20, 2008 at 2:26 pm

Posted in life, linux

Tagged with , , ,

Creating Shared Objects in Linux- A primer

with 2 comments

Here is some information on the various nuances involved in compiling and using DSO’s in linux.

Lets assume the name of the source file is libhello.c. If we wanted to create a dynamic shared object we compile the file with the following flags.

gcc -fPIC -O2 -Wall -shared libhello.c -Wl,-soname,libhello.so.1 -o libhello.so.1.0

Meaning of the compiler switches:
-fPIC => This is a compiler option that instructs GCC to create Position Independant Code.PIC is a mandatory requirement for DSO’s.
-O2 => This specifies the level of optimisation to be used by the compiler.
-Wall => Generate all warnings.
-shared => This option instructs GCC to generate a shared object library.

-Wl => This is a compiler switch that is used to pass options to the linker .
-Wl,-soname,libhello.so.1 => this string sends the soname option to linker. The soname option sets the ‘soname’ for the shared object. The soname attribute is used by the dynamic linker at runtime to make sure the application loads the correct library.
The ‘1’ in so.1 is used as a versioning for the API’s exposed by the DSO. If we upgrade the API such that its not backward compatible anymore,we should change the number in the soname.

-o libhello.so.1.0 => generate the shared object with name as libhello.so.1.0

Symbolic links to the DSO:
After generating the so, we need to create some symbolic links.

ln -s libhello.so.1.0 libhello.so.1 ==> This link is used by the dynamic linker during runtime .
ln -s libhello.so.1.0 libhello.so ==> This link is used by the compiler when we link this shared object
as -l hello

Why should we have the so.1 and so.1.0 => The 1 in so.1 is used to version the API level changes. The extra versioning in so.1.0 is used to track any change in the DSO (this may not may not break the API compatibility).
Hence we have 2 versions.

LD_LIBRARY_PATH : Includes the directory of libhello to the LD_LIBRARY_PATH,so that the dynamic linker searches for libraries in this path.

ldconfig: The ldconfig command is used if we want to move our libraries to one of the standard system locations. This command also sets the symbolic links that we did manualy. This is a system administrator command .So ,to run this command you should login as root.

The rpath linker option:
Another important linker option used during development is the -Wl,-rpath. During development, there’s the potential problem of modifying a library that’s also used by many other programs — and you don’t want the other programs to use the `development’ library.
To resolve this, we used ld’s ‘rpath’ option, which specifies the runtime library search path of that particular program being compiled.

From gcc, you can invoke the rpath option by specifying it this way:
-Wl,-rpath,$(DEFAULT_LIB_INSTALL_PATH)

If you use this option when building the library client program, you don’t need to bother with LD_LIBRARY_PATH other than to ensure it’s not conflicting, or using other techniques to hide the library.

Written by sujai

April 24, 2008 at 11:33 am

Posted in linux

Tagged with ,

%d bloggers like this: