Title: Iphone application company Ambala
1iphone application company ambala
2Outline
- Hardware
- CPU / GPU / Cache
- Memory / Storage / Extras
- Operating System
- Overview / OS X / Darwin
- XNU / Mach
- IPC / Thread Management
- Differences w/ iPhone
- Development
- SDK / Tools / Objective-C / Examples
3Hardware (3G)
4Motherboard (top)
5Motherboard (bottom)
6Samsung S5L8900 (SoC)
S3C6400
7CPU / GPU Specs
- ARM1176JZ(F)-S
- 412 MHz (620 MHz)
- 103MHz FS Bus
- 32-bit RISC
- 32KB L1 (16x2 I/D)
- ARM TrustZone
- ARM Thumb
- PowerVR MBX Lite
- 133 MHz (233 MHz)
- 130m pix/s fillrate
- 1.7m tri/s fill rate
- Anti-Aliasing
- Texture Compression
- OpenGL ES / D3D M
8Memory (PoP)
- DDR-SDRAM
- 1Gb (128MB)
- (16MB reserved for GPU)
- 8K blocks
- 4 banks
- Speed 7.5ns_at_CL3
- 1.8V core - 1.8V I/O
9Storage
- K9MCG08U5M
- TH58NVG6D1D (3G)
- NAND Flash Memory
- 4GB / 8GB / 16GB
- 2 GB dies (x2 / x4 / x8)
- ---------------------------------------
- NOR faster non-contiguous reads, slow erase/write
(read only) - NAND faster erase/write, slow non-contiguous
reads (serial)NAND prone to single-bit errors
error detection correction
10Touch Screen
- Broadcom BCM5974 Controller
- Multi-touch
- No stylus or non-conductive gloves
11iPhone OS (?)
- Remember that OS X on a Mac features a lot of
applications that we dont have to ship on the
iPhone. - Greg Joswiak
- Macworld Expo (01/2007)
- The entire Mac OS is gigs, a lot is data. Take
out the data -- every desktop pattern, sound
sample -- if you look at Safari it's not that
big. It's REAL Safari, REAL OS X. We put a
different user interface on it to work with a
multi-touch screen... - Steve Jobs
- Wall Street Journal D Conference (05/30/2007)
12OS X Lineage
13NeXTSTEP
- ... we at id Software developed DOOM and Quake
on the NeXTSTEP 3.3 OS running on a variety of
hardware for about 4 years. I still remember the
wonderful time I had coding DoomEd and QuakeEd in
Objective-C there was nothing like it before and
there still is no environment quite like it even
today. - John Romero
- http//rome.ro
- I wrote the program using a NeXT computer. This
had the advantage that there were some great
tools available -it was a great computing
environment in general. In fact, I could do in a
couple of months what would take more like a year
on other platforms, because on the NeXT, a lot of
it was done for me already. - Tim Berners-Lee
- http//www.w3.org/People/Berners-Lee/WorldWideWeb
http//www.youtube.com/watch?vj02b8Fuz73A
14NeXTSTEP -gt OPENSTEP -gt Rhapsody -gt Darwin -gt OS X
http//www.roughlydrafted.com/RD/RDM.Tech.Q1.07/4B
800F78-0F75-455A-9681-F186A4365805.html
Apple using System Software 1984 - 1999 Apple
talks w/ Microsoft, Be, Sun, NeXT. Apple acquires
NeXT (1996) Apple initially pushes OPENSTEP (epic
fail) Rhapsody OPENSTEP, BSD, etc. Apple
rushes OS X Server v1.0 (1999) Apple forks
Rhapsody as Darwin (2000) Apple releases OS X
v10.0 (2001)
15Darwin OS X
16Darwin Source
17Mac OS X Kernel XNU
Layered modular simplicity / debugging -
layers add overhead - layer order complexity
(catch-22 scenarios)
Microkernel ease of extending hardware
portability reusable w/ OS layers -
performance decrease due to extensive IPC
Hybrid / Modular benefits of layered
dynamic-loaded extensions IPC unnecessary
between extensions - too many kernel
extensions becomes -gt monolithic
...about 70 percent of operating systems consist
of device drivers, which have error rates three
to seven times higher than ordinary code... 22
18XNU
I/O Kit
FreeBSD
- process model
- user ids, permissions, basic security policies
- POSIX API, BSD style system calls
- TCP/IP stack, BSD sockets, firewall
- VFS, HFS and other file systems
- System V IPC
- cryptographic framework
- various synchronization mechanisms
- dynamic matching / loading of drivers / kext
- numerous device families (usb, pci, ata, etc.)
- i/o registry
- object oriented abstractions of devices
- power management
- an extensive API
- plug-and-play and hot-plugging
- driver stacking
Mach
- preemptive multitasking, kernel threads
- protected memory
- virtual memory management (FIFO w/ second
chance) - inter-process communication
- interrupt management
- kernel debugging support
- console I/O
19Mach
- Simplified kernel structure, easier to extend
modify - BSD compatible Heterogeneous system support
Mach-O binary format - Support diverse architectures mutliprocessors
(UMA, NUMA, NORMA) - Network transparency Distributed operation
internally externally - Fix UNIX design of everything-as-a-file
Generalize pipes to ports
Machs design philosophy is to have a simple,
extensible kernel, concentrating on communication
facilities. For instance, all requests to the
kernel, and all data movement among processes,
are handled through one communication mechanism.
Mach is therefore able to provide system-wide
protection to its users by protecting the
communications mechanism. Optimizing this one
communications path can result in significant
performance gains, and it is simpler than trying
to optimize several paths. 21
20Mach System Components
- TaskContains virtual address space, threads,
protected access to system resources via ports. - ThreadBasic unit of execution shares parent
tasks resources. - PortKernel-protected communication channel with
access rights.Tasks must have proper rights to
use the ports.Implemented as a protected,
bounded queue within kernel. - Port SetGroup of ports sharing a common message
queue. - MessageBasic method of communication between
threads collection of typed data or pointers. - Memory ObjectAny source of memory where
memory-mapped access makes senseTasks access it
by mapping portions into their address spaces.
21XCode Interface Builder
22IB Connecting Components
23Shark
24Objective-C
Simula
C
Small Talk
Developed 1985 interchangeable software
components Licensed by NeXT 1988 Used by Apple
(Cocoa API)
C
Obj-C
- Message Handlers vs. Methods
- Dynamic Typing (use types according to runtime
data) - Categories (method blocks bound _at_ runtime)
- Properties (public instance variables generate
methods) - Protocols Interfaces
25CONTACT US
- For More Information Visit Us Dupleit.com
- Email-info_at_dupleit.com/91 9996444070
- Address- 36-A, Taneja road, Mahesh nagar,Ambala
Cantt 133001,India