Archive by Author

Pekka Himanen – The Hacker Ethic

26 Jan

“One might say that there is an “ethics barrier ” a speed above which ethics can no longer exit. After that point the only remaining goal is to survive the immediate moment.”

-Pekka Himanen

Nearly a century ago, Max Weber’s The Protestant Ethic and the Spirit of Capitalism articulated the animating spirit of the industrial age, the Protestant ethic. Now, Pekka Hinamen — together with Linus Torvalds and Manuel Castells — articulates how hackers* represent a new, opposing ethos for the information age. Underlying hackers’ technical creations — such as the Internet and the personal computer, which have become symbols of our time — are the hacker values that produced them and that challenge us all. These values promoted passionate and freely rhythmed work; the belief that individuals can create great things by joining forces in imaginative ways; and the need to maintain our existing ethical ideals, such as privacy and equality, in our new, increasingly technologized society. The Hacker Ethic takes us on a journey through fundamental questions about life in the information age — a trip of constant surprises, after which out time and our lives can be seen from unexpected perspectives.

Download PDF

Android by Google Inc.

23 Jan

Information and History

 

Android Robot

The Android Mascot

Android is a Linux-based open-source software stack (mainly an operating system) created for mobile phones and other devices. The Android Open Source Project (AOSP), led by Google and developed by the Open Handset Alliance (OHA); is tasked with the maintenance and further development of Android.

The primary purpose of this project is to build an excellent software platform for everyday users and to make sure that there is no central point of failure, where one industry player can restrict or control the innovations of any other. The chosen solution is an open and open-source platform.

Google purchased the initial developer of the software, Android Inc. (which was founded in 2003 in PA, California by Andy Rubin), in 2005. The unveiling of the Android distribution in 2007 was announced with the founding of the OHA, a consortium of 86 hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. Google releases the Android code as open-source, under the Apache License.

“Why under the Apache License?” one might ask. For userspace software,  ASL2.0 (and similar licenses like BSD, MIT, etc.) is preferred by Google over other licenses such as LGPL. The main reason behind this decision (as described in Android’s Source web site) is as follows:

Here are some of our specific concerns:

  • LGPL (in simplified terms) requires either: shipping of source to the application; a written offer for source; or linking the LGPL-ed library dynamically and allowing users to manually upgrade or replace the library. Since Android software is typically shipped in the form of a static system image, complying with these requirements ends up restricting OEMs’ designs. (For instance, it’s difficult for a user to replace a library on read-only flash storage.)
  • LGPL requires allowance of customer modification and reverse engineering for debugging those modifications. Most device makers do not want to have to be bound by these terms, so to minimize the burden on these companies we minimize usage of LGPL software in userspace.
  • Historically, LGPL libraries have been the source of a large number of compliance problems for downstream device makers and application developers. Educating engineers on these issues is difficult and slow-going, unfortunately. It’s critical to Android’s success that it be as easy as possible for device makers to comply with the licenses. Given the difficulties with complying with LGPL in the past, it is most prudent to simply not use LGPL libraries if we can avoid it.

The issues discussed above are our reasons for preferring ASL2.0 for our own code. They aren’t criticisms of LGPL or other licenses. We do feel strongly on this topic, even to the point where we’ve gone out of our way to make sure as much code as possible is ASL2.0. However, we love all free and open source licenses, and respect others’ opinions and preferences. We’ve simply decided that ASL2.0 is the right license for our goals.

(More on Apache License will be explained on this blog later)

Software Design

Android Logo Text

Android Logo Text

Android consists of a kernel based on the Linux kernel (and further architecture changes by Google outside the typical Linux kernel development cycle), with middleware, libraries and Application Programming Interfaces (API) written in C and application software running on an application framework which includes Java-compatible libraries based on Apache Harmony (A free Java implementation project). Android uses the Dalvik Virtual Machine (the software which runs Android applications) with just-in-time compilation to run Dalvik dex-code (Dalvik Executable), which is usually translated from Java bytecode.

Usage

The Android 1.5 UI

The Android 1.5 UI

The open and customizable nature of the Android operating system allows it to be used on most electronics, including but not limited to: smartphones, fixed phones, laptops, netbooks, smartbooks, tablet computers, e-book readers, TVs, wristwatches, headphones, car CD and DVD players, digital cameras, portable media players and other devices. For more information and comparison (which are hard to fit here) about devices benefiting from Android, click here. The operating system itself is installed on 130 million total devices.

The main hardware platform for Android is the ARM Architecture. There is support for x86 from the Android x86 project, and Google TV uses a special x86 version of Android.

The Main Application Elements

Android Market Logo

Android Market Logo

The Market and application security is the most emphasized components of Android for both its end-users and developers. Android Market’s gateway is an application program called “Market”, comes preinstalled on most Android devices, which allows users to browse and download mobile apps published by third-party developers. The Android Market application is not open source. Only Android devices that comply with Google’s compatibility requirements may install and access Google’s closed-source Android Market app, subject to entering into a free-of-charge licensing agreement with Google. Application developers receive 70% of the application price, with the remaining 30% distributed among carriers and payment processors. Google itself does not take a percentage.

As of January 2012 there were more than 400,000 apps available for Android, and the estimated number of applications downloaded from the Android Market as of December 2011 exceeded 10 billion. Android Market features 67% of free of charge apps, the highest percentage of any major app store, closely rivaled by Windows Phone Marketplace at 61%. By comparison, the Apple App Store offers only 37% of their apps free of charge. As of May 2011, users in 131 countries can purchase paid applications from Android Market. Some carriers offer direct carrier billing for Android Market app purchases. Purchases of unwanted applications can be refunded within 15 minutes of the time of download. There is no requirement that Android applications be acquired from Android Market. Users may download Android applications from a developer’s website or through a third party alternative to Android Market.

Android applications run in a sandbox (a security mechanism for separating running programs), unless access permissions are granted by the user when the application is installed. Before installing an application, Android Market displays all required permissions. A game may need to enable vibration, for example, but should not need to read messages or access the phonebook. After reviewing these permissions, the user can decide whether to install the application or not.

Pirate Mascot

Pirate Mascot

Some Android malware incidents have been reported involving rogue applications on Android Market. In August 2010, Kaspersky Lab reported detection of the first malicious program for Android, named Trojan-SMS. AndroidOS.FakePlayer.a, an SMS trojan which had already infected a number of devices. In some cases applications which contained Trojans were hidden in pirated versions of legitimate apps. Google has responded by removing malicious apps from the Android Market, and remotely disabling them on infected devices. Several security firms have released antivirus software for Android devices, in particular, AVG Technologies, Avast!, F-Secure, Kaspersky, McAfee and Symantec.

Licensing

Apache Software Foundation Logo

Apache Software Foundation Logo

The source code for Android is available under free and open source software (FOSS) licenses. Google published their Linux kernel changes under the GNU General Public License version 2, and the rest of the code (including network and telephony stacks) under the Apache License version 2.0. Google also keeps the reviewed issues list publicly open for anyone to see and comment.

The OHA develops the GPL-licensed part of Android, that is their changes to the Linux kernel, in public, with source code publicly available at all times. The rest of Android is developed in private, with source code released publicly when a major new version is released. Typically Google collaborates with a hardware manufacturer to produce a flagship device (part of the Google Nexus series) featuring the new version of Android, then makes the source code available after that device has been released.

In early 2011, Google chose to temporarily withhold the Android source code to the tablet-only Honeycomb release, creating doubts over Google’s commitment to open source with Android. The reason, according to Andy Rubin in an official Android blog post, was because Honeycomb was rushed for production of the Motorola Xoom, and they did not want third parties creating a “really bad user experience” by attempting to put onto smartphones a version of Android intended for tablets. The source code was once again made available in November 2011 with the release of Android 4.0.

Source(s):

http://www.techcrunch.com/
https://market.android.com/
http://developer.android.com/
http://source.android.com/
http://en.wikipedia.org/