Sie sind auf Seite 1von 66

PROJECT

FILE
NAME: KHUSHI SHARMA
CLASS: 9 TH
B

SAINT MIRA
ACADEMY
COMPUTER
PROJECT
History of Antivirus

Before Internet connectivity was widespread,


viruses were typically spread by infected floppy
disks; antivirus software started to be used, but was
updated relatively infrequently. At that time it was
said, correctly, that viruses could not be spread by
the readable content of emails, although executable
attachments were as risky as programs on floppy
disks. Virus checkers essentially had to check
executable files, and the boot sectors of floppy and
hard disks. As Internet usage became common,
initially by making a modem connection when
desired, viruses spread through the Internet.
Powerful macros in word processors such as
Microsoft Word presented a further risk. Virus
writers started using the macros to write viruses that
attached themselves to documents; this meant that
computers could now also be at risk from infection
by documents (with hidden attached macros) as
programs. Later email programs, in particular
Microsoft Outlook Express and Outlook, became
able to execute program code from within a
message's text by simply reading the message, or
even previewing its content. Virus checkers now had
to check many more types of file. As broadband
always-on connections became the norm and more
and more viruses were released, it became essential
to update virus checkers more and more frequently;
even then, a new virus could spread widely before it
was detected, identified, a checker update released,
and virus checkers round the world updated.
A very uncommon use of the term "antivirus" is to
apply it to benign viruses that spread and combated
malicious viruses. This was common on the Amiga
computer platform.
Ethical Hacking
You need protection from hacker
shenanigans. An ethical hacker possesses the
skills, mindset, and tools of a hacker but is also
trustworthy. Ethical hackers perform the hacks
as security tests for their systems. If you
perform ethical hacking tests for customers or
simply want to add another certification to your
credentials, you may want to consider the
ethical hacker certification Certified Ethical
Hacker, which is sponsored by ECCouncil. See
www.eccouncil.org/CEH.htm for more
information. Ethical hacking also known as
penetration testing or white-hat hacking
involves the same tools, tricks, and techniques
that hackers use, but with one major
difference: Ethical hacking is legal. Ethical
hacking is performed with the targets
permission. The intent of ethical hacking is to
discover vulnerabilities from a hackers
viewpoint so systems can be better secured. Its
part of an overall information risk management
program that allows for ongoing security
improvements. Ethical hacking can also ensure
that vendors claims about the security of their
products are legitimate. 10 Part I: Building the
Foundation for Ethical Hacking 04 55784x
Ch01.qxd 3/29/04 4:16 PM Page 10 To hack
your own systems like the bad guys, you must
think like they think. Its absolutely critical to
know your enemy; see Chapter 2 for details.
Understanding the Need to Hack Your Own
Systems To catch a thief, think like a thief.
Thats the basis for ethical hacking. The law of
averages works against security. With the
increased numbers and expanding knowledge
of hackers combined with the growing number
of system vulnerabilities and other unknowns,
the time will come when all computer systems
are hacked or compromised in some way.
Protecting your systems from the bad guys
and not just the generic vulnerabilities that
everyone knows about is absolutely critical.
When you know hacker tricks, you can see how
vulnerable your systems are. Hacking preys on
weak security practices and undisclosed
vulnerabilities. Firewalls, encryption, and virtual
private networks (VPNs) can create a false
feeling of safety. These security systems often
focus on high-level vulnerabilities, such as
viruses and traffic through a firewall, without
affecting how hackers work. Attacking your
own systems to discover vulnerabilities is a step
to making them more secure. This is the only
proven method of greatly hardening your
systems from attack. If you dont identify
weaknesses, its a matter of time before the
vulnerabilities are exploited. As hackers expand
their knowledge, so should you. You must think
like them to protect your systems from them.
You, as the ethical hacker, must know activities
hackers carry out and how to stop their efforts.
You should know what to look for and how to
use that information to thwart hackers efforts.
You dont have to protect your systems from
everything. You cant. The only protection
against everything is to unplug your computer
systems and lock them away so no one can
touch them not even you. Thats not the
best approach to information security. Whats
important is to protect your systems from
known vulnerabilities and common hacker
attacks. Its impossible to buttress all possible
vulnerabilities on all your systems. You cant
plan for all possible attacks especially the
ones that are currently unknown. However, the
more combinations you try the more you
test whole systems instead of individual units
the better your chances of discovering
vulnerabilities that affect everything as a
whole. Dont take ethical hacking too far,
though. It makes little sense to harden your
systems from unlikely attacks. For instance, if
you dont have a lot of foot traffic Chapter 1:
Introduction to Ethical Hacking 11 04 55784x
Ch01.qxd 3/29/04 4:16 PM Page 11 in your
office and no internal Web server running, you
may not have as much to worry about as an
Internet hosting provider would have.
However, dont forget about insider threats
from malicious employees! Your overall goals
as an ethical hacker should be as follows: Hack
your systems in a nondestructive fashion.
Enumerate vulnerabilities and, if necessary,
prove to upper management that
vulnerabilities exist. Apply results to remove
vulnerabilities and better secure your systems.
Understanding the Dangers Your Systems Face
Its one thing to know that your systems
generally are under fire from hackers around
the world. Its another to understand specific
attacks against your systems that are possible.
This section offers some well-known attacks
but is by no means a comprehensive listing.
That requires its own book: Hack Attacks
Encyclopedia, by John Chirillo (Wiley Publishing,
Inc.). Many information-security vulnerabilities
arent critical by themselves. However,
exploiting several vulnerabilities at the same
time can take its toll. For example, a default
Windows OS configuration, a weak SQL Server
administrator password, and a server hosted on
a wireless network may not be major security
concerns separately. But exploiting all three of
these vulnerabilities at the same time can be a
serious issue. Nontechnical attacks Exploits that
involve manipulating people end users and
even yourself are the greatest vulnerability
within any computer or network infrastructure.
Humans are trusting by nature, which can lead
to social-engineering exploits. Social
engineering is defined as the exploitation of the
trusting nature of human beings to gain
information for malicious purposes. I cover
social engineering in depth in Chapter 5. Other
common and effective attacks against
information systems are physical. Hackers
break into buildings, computer rooms, or other
areas containing critical information or
property. Physical attacks can include dumpster
diving (rummaging through trash cans and
dumpsters for intellectual property, passwords,
network diagrams, and other information).
CLOUD COMPUTING

Cloud computing is defined as a type of


computing that relies onsharing computing
resources rather than having local servers or
personal devices to handle applications. Cloud
computing is comparable to grid computing, a
type of computing where unused processing
cycles of all computers in a network are
harnesses to solve problems too intensive for
any stand-alone machine.
In cloud computing, the word cloud (also
phrased as "the cloud") is used as a metaphor
for "the Internet," so the phrase cloud
computing means "a type of Internet-based
computing," where different services such as
servers, storage and applications are
delivered to an organization's computers and
devices through the Internet.
How Cloud
Computing Works
The goal of cloud computing is to apply
traditional supercomputing, or high-
performance computing power, normally used
by military and research facilities, to perform
tens of trillions of computations per second, in
consumer-oriented applications such as
financial portfolios, to deliver personalized
information, to provide data storage or to power
large, immersive online computer games.
To do this, cloud computing uses networks of
large groups of servers typically running low-
cost consumer PC technology with specialized
connections to spread data-processing chores
across them. This shared ITinfrastructure
contains large pools of systems that are linked
together. Often, virtualization techniques are
used to maximize the power of cloud
computing.

Webopedia Resources:
Cloud Computing Definitions: 25 Cloud Terms
Defined
Cloud Computing Explained
Open Source Small Business Cloud Computing
Applications
Cloud Computing Security Challenges
Cloud Computing White Papers and Resources
for Small Businesses

Cloud Computing
Standards
The standards for connecting the computer
systems and the software needed to make
cloud computing work are not fully defined at
present time, leaving many companies to define
their own cloud computing technologies. Cloud
computing systems offered by companies,
like IBM's "Blue Cloud" technologies for
example, are based on open standards
and open source software which link together
computers that are used to to deliver Web
2.0capabilities like mash-ups or mobile
commerce.

Cloud Computing in
the Data Center and
for Small Business
Cloud computing has started to obtain mass
appeal in corporate data centers as it enables
the data center to operate like the Internet
through the process of enabling computing
resources to be accessed and shared as virtual
resources in a secure and scalable manner.
For a small and medium size business (SMB),
the benefits of cloud computing is currently
driving adoption. In the SMB sector there is
often a lack of time and financial resources to
purchase, deploy and maintain an infrastructure
(e.g. the software, server and storage).
In cloud computing, small businesses can
access these resources and expand or shrink
services as business needs change. The
common pay-as-you-go subscription model is
designed to let SMBs easily add or remove
services and you typically will only pay for what
you do use.
Identify your iPhone
model
Learn to identify your iPhone
model by its model number
and other details.
iPhone 6
Year introduced: 2014
Capacity: 16, 64, and 128 GB
Colors: space gray, silver, gold
Model number on the back cover:
Model A1549
Model A1586
Model A1589
More details: The display is 4.7
inches (diagonal). The front is flat
with curved edges and is made of
glass. The back is anodized
aluminum. The Sleep/Wake button is
on the right side of the device. The
Home button contains Touch ID.
There's a True Tone LED flash on the
back and a SIM tray on the right side
that holds a "fourth form factor" (4FF)
or nano-SIM card. The IMEI is etched
on the back cover.

iPhone 6 Plus
Year introduced: 2014
Capacity: 16, 64, and 128 GB
Colors: space gray, silver, gold
Model number on the back cover:
Model A1522
Model A1524
Model A1593
More details: The display is 5.5 inches
(diagonal). The front has curved edges
and is made of glass. The back is
anodized aluminum. The Sleep/Wake
button is on the right side of the
device. The Home button contains
Touch ID. There's a True Tone LED
flash on the back and a SIM tray on
the right side that holds a "fourth form
factor" (4FF) or nano-SIM card. The
IMEI is etched on the back cover.

iPhone 5s

Year introduced: 2013


Capacity: 16, 32, and 64 GB
Colors: space gray, silver, gold
Model number on the back cover:
A1453
A1457
A1518
A1528
A1530
A1533
More details: The front is flat and
made of glass. The back is anodized
aluminum. The Home button contains
Touch ID. There's a True Tone LED
flash on the back and a SIM tray on
the right side that holds a "fourth form
factor" (4FF) or nano-SIM card. The
IMEI is etched on the back cover.
.
iPhone 5

Year introduced: 2012


Capacity: 16, 32, and 64 GB
Colors: black and white
Model number on the back cover:
A1428
A1429
A1442
More details: The front is flat and
made of glass. The back is anodized
aluminum. There's a SIM tray on the
right side that holds a "fourth form
factor" (4FF) or nano-SIM card. The
IMEI is etched on the back cover.

iPhone 4s
Year introduced: 2011
Capacity: 8, 16, 32, and 64 GB
Colors: black and white
Model number on the back cover:
A1431
A1387
A1387
More details: The front and back are
flat and made of glass, and there's a
stainless steel band around the edges.
The volume up and down buttons are
marked with a "+" and "-" sign. There's
a SIM tray on the right side that holds
a "third form factor" (3FF) micro-SIM
card.
WHATSAPP
Welcome to How doe

WhatsApp is a texting service between mobile


phones as a replacement for the regular SMS text
messages. Over 800 million users are active
worldwide using the Whatsapp service. Whatsapp
uses an internet connection between phones. The
service is available for iPhone, Blackberry,
Android and Nokia Symbian60-phones.

The major difference between regular SMS text


messages and Whatsapp text messages is that
Whatsapp is free: You use the internet connection
on your phone (wifi or part of you mobile data
package depending on subscription or pre paid
type).

On this website you will find a lot of information on


Whatsapp. If you browse to What is Whatsapp?
you will find information on what kind of program
Whatsapp is. If you choose How does it work
you will find information on all kinds of options and
how Whatsapp works on your phone. If you want
to know for sure Whatsapp works on your phone
please visit Does it work on my phone?
Frequently asked questions about Whatsapp

Does it work on my phone?


Am I blocked?
Automatically download whatsapp images
Blocking other users
Can I change my phone number in Whatsapp?
Can I change my username on Whatsapp?
Can I install Whatsapp on an iPad or iPod?
Can I stop a WhatsApp message from being
delivered?
Changing your status message
Delete a chat
Delete Whatsapp
Does Whatsapp save my messages on their servers?
Does Whatsapp work with wi-fi?
Groupconversations
How do I add contacts to Whatsapp?
How do I change my profile picture?
How do I change my status last seen ?
How do I send voice messages with Whatsapp?
How do I use a Broadcast List
Install Whatsapp on your Android Tablet
Push notifications on your iPhone
Send a Whatsapp message by using the enter key
Share you Whatsapp-chat by email
Share your location
Transfer your chat history to another phone
View your Whatsapp statistics
What do the checkmarks mean?
What does Whatsapp cost?
What does Whatsapp do with my phone information?

See all Photos

Facebook
www.facebook.com

Connecting the world takes every one of us.

Working at Facebook means making an


impact on billions of people around the world each
day. We build new products and services that
bring people closer together. We believe that
every connection we make takes us one step
closer to a better world where ideas and
knowledge can be shared freely. Our people-first
approach allows us to do things authentically and
make things that are meaningful to everyone.
Engaged Employer

"Our overall philosophy in terms of our benefits is that


we want to take care of the people who work at
Facebook and the people who matter most to them." --
Lori Goler, VP People at Facebook.

Facebook is at the forefront of a radical workplace


shift - and every business in America should take
notice

After his daughter's 5 a.m. feeding during the first few


months after she was born, Adam Isserlis would lie
back in bed with his newborn child resting on his chest,
and the two would doze off together. Thanks to
Facebook's parental-leave policy, the first-time father
says he enjoyed innumerable "magical" moments like
these that helped him foster a bond with his new
daughter.
Helpful (0)

Facebook update
4 days ago

Meet Caitlin, Head of Product Design at Oculus VR,


and learn about her passion to tinker, build and create.

"The only reason we fail is because we... - Facebook


Careers | Facebook
"The only reason we fail is because we are growing
fast and hitting new ceilings as we move up. You have
to have grit - you can't get discouraged. It's...
Be bold. Move fast.

Were a culture of builders who are hungry to solve the


biggest challenges and do it faster than anyone else.
Through relentless focus on the impact of our work,
were able to push the limits of whats capable with
technology at tremendous scale. From Facebook
Messenger, Internet.org, WhatsApp, Oculus to
Instagram, as an engineer at Facebook, youll have
opportunity to ship code daily and work with some of
the smartest people in technology. We have
engineering offices around the world, from our global
headquarters in Menlo Park to New York, London,
Seattle, and Tel Aviv.

View Facebook Engineering opportunities.


Approves of CEO
I worked at Facebook full-time (More than a year)
Pros
It might be easy to roll your eyes when people
from Facebook say how open their culture is, but
it's true; it's more open than any other place I've
worked at. At a company wide-level, secret
projects, public incidents, important non-public
business metrics and the like are all openly
discussed. You can ask questions about them
directly to Zuckerburg at the weekly Q&A. I think
the idea is that if Show More
Cons
FB expects a lot out of engineers, and you can't
slack off. Of course, you shouldn't slack off at any
job, but since FB is pretty fast-paced, there is a risk
that you'll have trouble adjusting at first. FB has a
lot of custom infrastructure and tools, and prehaps
more impressively, it works great. It makes doing
your job really great, but on the other hand, you'll
end up learning Show More
Advice to Management
You need to focus on how you are going to
maintain the existing culture and protocols as you
grow. I think this could be really tough.
1. Sep 18, 2014
Helpful (212)

Software Engineer Interview


Anonymous Interview Candidate
Accepted Offer
Interview
phone interview starting with introducing yourself
followed by two code questions. The first coding
question is very standard coding question and the
second one is a little more related to facebook's
certain functionality

Facebook Awards & Accolades


Something missing? Add an award
25 Highest Rated Companies Hiring Interns Right
Now , Glassdoor, 2014
Glassdoors Employees Choice Award - Top 50 Large
Companies , Glassdoor, 2014
Employees Choice -50 Best Places to
Work , Glassdoor, 2012
The Worlds Most Innovative Companies
2010 (#1) , Fast Company, 2010
50 Most Innovative Companies , BusinessWeek, 2009
Show More
Additional Info
Websitewww.facebook.com

HeadquartersMenlo Park, CA

Size5000+ Employees

Founded2004

TypeCompany - Public (FB)

IndustryInformation Technology

Revenue$5 to $10 billion (USD) per year


CompetitorsGoogle, Pinterest, Microsoft
Facebook was built to help people connect and share,
and over the last decade our tools have played a critical
part in changing how people around the world
communicate. With over a billion people using
Facebook and more than fifty offices around the world,
Facebook strives to hire the best people who want to
move fast and make an impact. The company
empowers people in every ... More
Mission: Facebooks mission is to give people the
power to share and make the world more open and
connected. People use Facebook to stay connected with
friends and family, to discover whats going on in the
world and to share and express what matters to them.

Work at Facebook? Share Your


Experiences

Facebook
Click to Rate

or
Add Salary
Add Benefit

iphone working

iPhone Image Gallery

The iPhone 5c debuted in 2013 at a lower price point that


the iPhone 5s.

Image courtesy of Apple, Inc.


LEARN MORE
The Ultimate iPhone Quiz
Download the HowStuffWorks App
How to Jailbreak an iPhone
5 Time Management Apps for the iPhone

In January 2007, Steve Jobs introduced the Apple


iPhone during his keynote address at the Macworld
Conference and Expo. In its first appearance
onscreen and in Jobs's hand, the phone looked like a
sleek but inanimate black rectangle.

Then, Jobs touched the screen. Suddenly, the


featureless rectangle became an interactive surface.
Jobs placed a fingertip on an on-screen arrow and
slid it from left to right. When his finger moved, the
arrow moved with it, unlocking the phone. To some
people, this interaction between a human finger and
an on-screen image -- and its effect on the iPhone's
behavior -- was more amazing than all of its other
features combined.
And those features are plentiful. In some ways, the
iPhone is more like a palmtop computer than a
cellular phone. As with many smartphones, you can
use it to make and receive calls, watch movies, listen
to music, browse the Web, and send and receive e-
mail and text messages. You can also take pictures
and video (using an iPhone 3GS or later model) with
a built-in camera, import photos from your computer
and organize them all using the iPhone's software.

In 2008, Apple introduced the second generation


iPhone. This iPhone operates on third-generation
(3G) cellular networks and has a GPS receiver. It also
lets you view map and satellite data from Google
Maps, including overlays of nearby businesses.
Owners of the original iPhone got the opportunity to
upgrade the software on their phones. The 2.0
software gave the old phones new functions, but
without the GPS receiver or 3G network capability.

2009 was the year that Apple launched the iPhone


3GS. The 3GS iPhone models have more storage
capacity than earlier iPhones. They also have a better
camera that's capable of taking still shots and video at
30 frames per second. Another added feature is a
compass, which comes in handy when you need to
find your way through unfamiliar territory. Also in 2009
came iPhone OS 3.0, which offered many
improvements, such as the ability to cut and paste.

In 2010, Steve Jobs took the stage to announce a


new generation of Apple's runaway success: the
iPhone 4. The iPhone 4 sports two cameras -- one on
the front and one on the back. The iPhone 4 has a
retina display with a better resolution than earlier
phones. It also marked a departure from the basic
iPhone design -- the phone doesn't have a slightly
curved back so it lays flat on surfaces. Jobs also
announced a new name for the iPhone operating
system: iOS, a modified version of the Macintosh OS
X operating system used on Apple desktop and laptop
computers.
In June 2011, Apple announced iOS 5 for iPhone
3GS and later, which includes data syncing to the
iCloud service, as well as iMessage, Twitter
integration and a convenient new sliding notification
screen. In October 2011, Apple unveiled the iPhone
4S, with the faster A5 processor and a much
improved camera that shoots 8 megapixel images
and 1080p high-definition video. The 4S was also the
first phone that could take advantage of a major
addition to Apple's iOS, which debuted with iOS 5: the
Siri voice-activated personal assistant.

The iPhone 5 made its debut in the third quarter of


2013, and offered consumers two product lines to
choose from. The iPhone 5s includes an A7 64-bit
chip, and added a security enhancement in the form
of a fingerprint identity sensor (though just how
secure this feature is has been hotly debated). The
iPhone 5c provides a lower price point option, and
comes in plastic casings with a variety of color
options.
Apple's iOS lets you interact with all of the
applications on your iPhone. It displays icons for each
application on the iPhone's screen. It also manages
battery power and system security. The operating
system synchs the phone with your computer on older
iPhones and iOS versions, a process that requires a
connector much like the one used to synch an iPod,
but since iOS 5, most synching of data across Apple
devices can take place via the new iCloud service.
The OS also lets you multitask and move through
multiple open applications, just like you can on a
laptop or desktop computer.

But instead of using a mouse or a physical keyboard,


the iPhone uses virtual buttons and controls that
appear on its screen. This isn't really a new
phenomenon -- touch screens have been part of
everything from self-checkout kiosks to smartphones
for years. But the iPhone's touch screen is a little
different from many of the others currently on the
market. When you touch the screen on a PDA or
a Nintendo DS, you typically use a slender, pointed
stylus. The iPhone, on the other hand, requires you to
use your fingers or a conductive stylus. It can also
detect multiple touch points simultaneously.

This article will explore exactly how the iPhone's


touch screen carries instructions from your fingertips
to the phone's internal circuitry. We'll also look at the
features in Apple's latest and greatest, the iPhone 5c
and 5s, and the 2013 update to its operating system:
iOS 7.
Working of Android

Android Interfaces and Architecture

1. Application framework
2. Binder IPC
3. System services
4. Hardware abstraction layer (HAL)
1. Standard HAL structure
2. HAL modules
5. Linux kernel
Android gives you the freedom to implement your
own device specifications and drivers. The
hardware abstraction layer (HAL) provides a
standard method for creating software hooks
between the Android platform stack and your
hardware. The Android operating system is also
open source, so you can contribute your own
interfaces and enhancements.

To ensure devices maintain a high level of quality


and offer a consistent user experience, each
device must pass tests in the compatibility test
suite (CTS). The CTS verifies devices meet a
quality standard that ensures apps run reliably
and users have a good experience. For details on
the CTS, see Compatibility.

Before porting Android to your hardware, take a


moment to understand the Android system
architecture at a high level. Because your drivers
and the HAL interact with Android, knowing how
Android works can help you navigate the many
layers of code in the Android Open Source Project
(AOSP) source tree.
Figure 1. Android System Architecture
Application framework

The application framework is used most often by


application developers. As a hardware developer,
you should be aware of developer APIs as many
map directly to the underlying HAL interfaces and
can provide helpful information about
implementing drivers.

Binder IPC

The Binder Inter-Process Communication (IPC)


mechanism allows the application framework to
cross process boundaries and call into the
Android system services code. This enables high
level framework APIs to interact with Android
system services. At the application framework
level, this communication is hidden from the
developer and things appear to "just work."

System services

Functionality exposed by application framework


APIs communicates with system services to
access the underlying hardware. Services are
modular, focused components such as Window
Manager, Search Service, or Notification
Manager. Android includes two groups of
services: system (services such as Window
Manager and Notification Manager)
and media (services involved in playing and
recording media).
Hardware abstraction layer
(HAL)

The hardware abstraction layer (HAL) defines a


standard interface for hardware vendors to
implement and allows Android to be agnostic
about lower-level driver implementations. The
HAL allows you to implement functionality without
affecting or modifying the higher level system.
HAL implementations are packaged into modules
(.so) file and loaded by the Android system at the
appropriate time.
Figure 2. Hardware abstraction layer (HAL)
components

You must implement the corresponding HAL (and


driver) for the specific hardware your product
provides. HAL implementations are typically built
into shared library modules (.so files). Android
does not mandate a standard interaction between
your HAL implementation and your device drivers,
so you have free reign to do what is best for your
situation. However, to enable the Android system
to correctly interact with your hardware,
you mustabide by the contract defined in each
hardware-specific HAL interface.
Standard HAL structure
Each hardware-specific HAL interface has
properties that are defined
inhardware/libhardware/include/hardware/
hardware.h, which guarantee that HALs have a
predictable structure. This interface allows the
Android system to load the correct versions of
your HAL modules in a consistent way. There are
two general components that a HAL interface
consists of: a module and a device.

A module represents your packaged HAL


implementation, which is stored as a shared
library (.so file). It contains metadata such as
the version, name, and author of the module,
which helps Android find and load it correctly.
The hardware/libhardware/include/hardwar
e/hardware.h header file defines a
struct, hw_module_t, that represents a module
and contains information such as the module
version, author, and name.
In addition, the hw_module_t struct contains a
pointer to another struct, hw_module_methods_t,
that contains a pointer to an "open" function for
the module. This open function is used to initate
communication with the hardware that the HAL is
serving as an abstraction for. Each hardware-
specific HAL usually extends the
generichw_module_t struct with additional
information for that specific piece of hardware. For
example in the camera HAL,
the camera_module_t struct contains
a hw_module_t struct along with other camera-
specific function pointers:

typedef struct camera_module {


hw_module_t common;
int (*get_number_of_cameras)(void);
int (*get_camera_info)(int
camera_id, struct camera_info *info);
} camera_module_t;

When you implement a HAL and create the


module struct, you must name
it HAL_MODULE_INFO_SYM. For instance, here is
an example from the Nexus 9 audio HAL:

struct audio_module HAL_MODULE_INFO_SYM


= {
.common = {
.tag = HARDWARE_MODULE_TAG,
.module_api_version =
AUDIO_MODULE_API_VERSION_0_1,
.hal_api_version =
HARDWARE_HAL_API_VERSION,
.id = AUDIO_HARDWARE_MODULE_ID,
.name = "NVIDIA Tegra Audio
HAL",
.author = "The Android Open
Source Project",
.methods = &hal_module_methods,
},
};

A device abstracts the actual hardware of your


product. For example, an audio module can
contain a primary audio device, a USB audio
device, or a Bluetooth A2DP audio device. A
device is represented by the hw_device_tstruct.
Like a module, each type of device defines a
more-detailed version of the
generic hw_device_t that contains function
pointers for specific features of the hardware. For
example, the audio_hw_device_t struct type
contains function pointers to audio device
operations:

struct audio_hw_device {
struct hw_device_t common;

/**
* used by audio flinger to
enumerate what devices are supported by
* each audio_hw_device
implementation.
*
* Return value is a bitmask of 1
or more values of audio_devices_t
*/
uint32_t
(*get_supported_devices)(const struct
audio_hw_device *dev);
...
};
typedef struct audio_hw_device
audio_hw_device_t;
In addition to these standard properties, each
hardware-specific HAL interface can define more
of its own features and requirements. See
the HAL reference documentation as well as the
individual instructions for each HAL for more
information on how to implement a specific
interface.

HAL modules
HAL implementations are built into modules (.so)
files and are dynamically linked by Android when
appropriate. You can build your modules by
creating Android.mk files for each of your HAL
implementations and pointing to your source files.
In general, your shared libraries must be named
in a certain format, so that they can be found and
loaded properly. The naming scheme varies
slightly from module to module, but they follow the
general pattern
of: <module_type>.<device_name>.
For more information about setting up the build for
each HAL, see its respective documentation.

Linux kernel

Developing your device drivers is similar to


developing a typical Linux device driver. Android
uses a version of the Linux kernel with a few
special additions such as wake locks (a memory
management system that is more agressive in
preserving memory), the Binder IPC driver, and
other features important for a mobile embedded
platform. These additions are primarily for system
functionality and do not affect driver development.

You can use any version of the kernel as long as


it supports the required features (such as the
binder driver). However, we recommend using the
latest version of the Android kernel. For details on
the latest Android kernel, see Building Kernels.
The Android Source
Code
Android is an open source software stack created
for a wide array of devices with different form
factors. The primary purposes of Android are to
create an open software platform available for
carriers, OEMs, and developers to make their
innovative ideas a reality and to introduce a
successful, real-world product that improves the
mobile experience for users.

We also wanted to make sure there was no


central point of failure, where one industry player
could restrict or control the innovations of any
other. The result is a full, production-quality
consumer product with source code open for
customization and porting.
Figure 1. Android stack

Governance Philosophy

Android was originated by a group of companies


known as the Open Handset Alliance, led by
Google. Today, many companies -- both original
members of the OHA and others -- have invested
heavily in Android. These companies have
allocated significant engineering resources to
improve Android and bring Android devices to
market.

The companies that have invested in Android


have done so on its merits because we believe an
open platform is necessary. Android is
intentionally and explicitly an open source -- as
opposed to a free software -- effort; a group of
organizations with shared needs has pooled
resources to collaborate on a single
implementation of a shared product. The Android
philosophy is pragmatic, first and foremost. The
objective is a shared product that each contributor
can tailor and customize.

Uncontrolled customization can, of course, lead to


incompatible implementations. To prevent this,
the Android Open Source Project also maintains
the Android Compatibility Program, which spells
out what it means to be "Android compatible" and
what is required of device builders to achieve that
status. Anyone can (and will!) use the Android
source code for any purpose, and we welcome all
legitimate uses. However, in order to take part in
the shared ecosystem of applications we are
building around Android, device builders must
participate in the Android Compatibility Program.

The Android Open Source Project is led by


Google, who maintains and further develops
Android. Although Android consists of multiple
subprojects, this is strictly a project management
technique. We view and manage Android as a
single, holistic software product, not a
"distribution", specification, or collection of
replaceable parts. Our intent is that device
builders port Android to a device; they don't
implement a specification or curate a distribution.

Das könnte Ihnen auch gefallen