RASPBERRY PI
The Raspberry Pi is a series of credit card-sized single-board computers developed in the United Kingdom by the Raspberry Pi Foundation to promote the teaching of basic computer science in schools and developing countries.
Several generations of Raspberry Pi have been released. The
first generation (retrospectively known as the Raspberry Pi 1) was released in February 2012 in basic Model A and a higher
specification Model B. Improved A+ and B+ models were released a year later.
The Raspberry Pi 2 was released in February 2015 and Raspberry Pi 3 in February 2016. These boards are priced
between US$20 and 35. A cut down "compute" model was released in April 2014, and a Raspberry Pi Zerowith smaller size and limited input/output (I/O), general-purpose input/output (GPIO), abilities released in November 2015 for US$5.
All models feature a Broadcom system on a chip (SoC), which includes an AR compatible central processing unit (CPU) and an on chip graphics processing unit (GPU, a VideoCore IV). CPU speed ranges
from 700 MHz to 1.2 GHz for the Pi 3 and on board memory range from
256 MB to 1 GB RAM. Secure Digital (SD) cards are used to store the operating
system and program memory in either the SDHC or MicroSDHC sizes. Most boards
have between one and four USB slots, HDMI and composite video output, and a 3.5 mm phone jack for
audio. Lower level output is provided by a number of GPIO pins which support
common protocols like I²C. The B-models have an 8P8C Ethernet port and the Pi 3 has on board Wi-Fi 802.11n
and Bluetooth.
The Foundation provides Raspbian, a Debian-based Linux distribution for download, as well as third party Ubuntu, Windows 10 IOT Core, RISC OS, and specialised media center distributions. It promotes Python and Scratch as the main
programming language, with support for many other languages. The default firmware is closed source, while an unofficial open source is available.
In February 2016, the Raspberry Pi Foundation announced that
they had sold eight million devices, making it the best-selling UK personal computer, ahead of the Amstrad PCW. Sales reached ten million in September 2016.
A Schematic representation of Raspberry Pi Model
A Video to know the basics of Raspberry Pi Model
Contents
Hardware
The Raspberry Pi hardware has evolved through several versions
that feature variations in memory capacity and peripheral-device support.
This block diagram depicts Models A, B, A+, and B+. Model A, A+,
and the Pi Zero lack the Ethernet and USB hub components. The Ethernet adapter is internally connected to
an additional USB port. In Model A, A+, and the PI Zero, the USB port is
connected directly to the system on a chip (SoC). On the Pi 1 Model B+ and later
models the USB/Ethernet chip contains a five-point USB hub, of which four ports
are available, while the Pi 1 Model B only provides two. On the Pi Zero,
the USB port is also connected directly to the SoC, but it uses a micro USB
(OTG) port.
Processor
0 MHz 32-bit quad-core ARM Cortex-A7 processor (as do many current smartphones),
with 256 KB sha The Raspberry
Pi 2 uses a 32-bit 900 MHz quad-core ARM Cortex-A7processor.
The Broadcom BCM2835 SoC used in
the first generation Raspberry Pi is somewhat equivalent to the chip used in
first generation smartphones (its CPU is an older ARMv6 architecture), which includes a 700 MHz ARM1176JZF-S processor, VideoCore IV graphics processing unit (GPU),[and RAM. It has a level 1 (L1) cache of 16 KB and a level 2 (L2) cache of 128 KB. The
level 2 cache is used primarily by the GPU. The SoC is stacked underneath the glued
to RAM chip, so only its edge is visible.
The Raspberry Pi 2 uses a Broadcom BCM2836 SoC with a 90red
L2 cache.
The Raspberry Pi 3 uses a Broadcom BCM2837 SoC with a
1.2 GHz 64-bit quad-core ARM Cortex-A53 processor, with 512 KB shared L2 cache.
Performance
While operating at 700 MHz by default, the first generation
Raspberry Pi provided a real-world performance roughly equivalent to
0.041 GFLOPS. On the CPU level the performance
is similar to a 300 MHz Pentium II of 1997–99. The GPU
provides 1 Gpixel/s or 1.5 Gtexel/s of graphics processing or 24 GFLOPS of
general purpose computing performance. The graphical capability of the
Raspberry Pi are roughly equivalent to the performance of the Xbox of 2001.
The LINPACK single node compute
benchmark results in a mean single precision performance of 0.065 GFLOPS and a mean double precision performance of 0.041 GFLOPS for one Raspberry Pi
Model-B board. A cluster of 64 Raspberry Pi Model B
computers, labeled "Iridis-pi", achieved a LINPACK HPL suite result of
1.14 GFLOPS (n=10240) at 216 watts for c. US$4000.
Raspberry Pi 2 includes a quad-core Cortex-A7 CPU running
at 900 MHz and 1 GB RAM. It is described as 4–6 times more powerful
than its predecessor. The GPU is identical to the original. In parallelized benchmarks, the Raspberry
Pi 2 could be up to 14 times faster than a Raspberry Pi 1 Model B+.
The Raspberry Pi 3, with a quad-core Cortex-A53 processor,
is described as 10 times the performance of a Raspberry Pi 1.] This was suggested to be highly dependent upon
task threading and instruction set use. Benchmarks showed the Raspberry Pi 3 to
be approximately 80% faster than the Raspberry Pi 2 in parallelized tasks.
Overclocking
The first generation Raspberry Pi chip operated at 700 MHz
by default, and did not become hot enough to need a heat sink or special cooling unless the chip was
overclocked. The Raspberry Pi 2 runs at 900 MHz by default; it also
does not become hot enough to need a heatsink or special cooling, although overclocking may heat up the SoC more than usual.
Most Raspberry Pi chips could be overclocked to 800 MHz,
and some to 1000 MHz. There are reports the Raspberry Pi 2 can be
similarly overclocked, in extreme cases, even to 1500 MHz (discarding all
safety features and over-voltage limitations). In the Raspbian Linux distro the overclocking options on boot can be done by a software command running
"sudo raspi-config" without voiding the warranty. In those cases the Pi automatically shuts the
overclocking down if the chip reaches 85 °C (185 °F), but it is
possible to override automatic over-voltage and overclocking settings (voiding
the warranty); an appropriately sized heatsink is needed to protect the chip
from serious overheating.
Newer versions of the firmware contain the option to choose
between five overclock ("turbo") presets that when used, attempt to
maximize the performance of the SoC without impairing the lifetime of the
board. This is done by monitoring the core temperature of the chip, the CPU
load, and dynamically adjusting clock speeds and the core voltage. When the
demand is low on the CPU or it is running too hot the performance is throttled,
but if the CPU has much to do and the chip's temperature is acceptable,
performance is temporarily increased with clock speeds of up to 1 GHz
depending on the individual board and on which of the turbo settings is used.
The seven overclock presets are:
·
modest; 800 MHz
ARM, 250 MHz core, 400 MHz SDRAM, 0 overvolt,
·
medium; 900 MHz
ARM, 250 MHz core, 450 MHz SDRAM, 2 overvolt,
·
high; 950 MHz
ARM, 250 MHz core, 450 MHz SDRAM, 6 overvolt,
·
turbo; 1000 MHz
ARM, 500 MHz core, 600 MHz SDRAM, 6 overvolt,
·
Pi2; 1000 MHz
ARM, 500 MHz core, 500 MHz SDRAM, 2 overvolt,
·
Pi3; 1100 MHz
ARM, 550 MHz core, 500 MHz SDRAM, 6 overvolt. In system information
CPU speed will appear as 1200 MHz. When in idle speed lowers to
600 MHz.
In the highest (turbo) preset the SDRAM clock was
originally 500 MHz, but this was later changed to 600 MHz because
500 MHz sometimes causes SD card corruption. Simultaneously in high mode the core clock speed was lowered from 450 to 250 MHz,
and in medium mode from 333 to 250 MHz.
The Raspberry Pi Zero runs at 1 GHz.
RAM
On the older beta Model B boards, 128 MB was allocated by
default to the GPU, leaving 128 MB for the CPU.[On the first 256 MB release Model B (and
Model A), three different splits were possible. The default split was
192 MB (RAM for CPU), which should be sufficient for standalone 1080p
video decoding, or for simple 3D, but probably not for both together.
224 MB was for Linux only, with only a 1080p framebuffer, and was likely to fail for any video or 3D.
128 MB was for heavy 3D, possibly also with video decoding (e.g. XBMC).] Comparatively the Nokia 701 uses 128 MB
for the Broadcom VideoCore IV.] For the new Model B with 512 MB RAM
initially there were new standard memory split files released(
arm256_start.elf, arm384_start.elf, arm496_start.elf) for 256 MB,
384 MB and 496 MB CPU RAM (and 256 MB, 128 MB and
16 MB video RAM). But a week or so later the RPF released a new version of
start.elf that could read a new entry in config.txt (gpu_mem=xx) and could
dynamically assign an amount of RAM (from 16 to 256 MB in 8 MB steps)
to the GPU, so the older method of memory splits became obsolete, and a single
start.elf worked the same for 256 and 512 MB Raspberry Pi.
The Raspberry Pi 2 and the Raspberry Pi 3 have
1 GB of RAM. The Raspberry Pi Zero has 512 MB of RAM.
Networking
The Model A, A+ and Pi Zero have no Ethernet circuitry and are
commonly connected to a network using an external user-supplied USB Ethernet or Wi-Fi adapter. On the Model B and B+ the Ethernet port is provided by a built-in USB Ethernet adapter
using the SMSC LAN9514 chip. The Raspberry Pi 3 is equipped with
2.4 GHz WiFi 802.11n(150 Mbit/s) and Bluetooth 4.1 (24
Mbit/s) in addition to the
10/100 Ethernet port.
Peripherals
The current Model B boards incorporate four
USB ports for connecting peripherals.
Video
The early Raspberry Pi 1 Model A, with an
HDMI port and a standard RCA composite video port for older displays.
The video controller can emit standard modern TV resolutions,
such as HD and Full HD, and higher or lower monitor resolutions and older
standard CRT TV resolutions. As shipped (i.e., without custom overclocking) it
can emit these: 640×350 EGA; 640×480 VGA; 800×600 SVGA; 1024×768 XGA; 1280×720 720p HDTV; 1280×768 WXGA variant; 1280×800 WXGA variant; 1280×1024 SXGA; 1366×768 WXGAvariant; 1400×1050 SXGA+; 1600×1200 UXGA; 1680×1050 WXGA+; 1920×1080 1080p HDTV; 1920×1200 WUXGA.[31]
Higher resolutions, such as, up to 2048×1152, may work[32][33] or even 3840×2160 at 15 Hz (too low a
framerate for convincing video).[34]Note also that allowing the highest
resolutions does not imply that the GPU can decode video formats at those; in
fact, the Pis are known to not work reliably for H.265 (at those high resolution, at least), commonly used for very
high resolutions (most formats, commonly used, up to full HD, do work).
Although the Raspberry Pi 3 does not have H.265 decoding
hardware, the CPU, more powerful than its predecessors, is potentially able to
decode H.265-encoded videos in software. The Open Source Media Center (OSMC) project said in February 2016:
The new BCM2837 based
on 64-bit ARMv8 architecture is backwards compatible with the Raspberry
Pi 2 as well as the original. While the new CPU is 64-bit, the Pi retains
the original VideoCore IV GPU which has a 32-bit design. It will be a few
months before work is done to establish 64-bit pointer interfacing from the
kernel and userland on the ARM to the 32-bit GPU. As such, for the time being,
we will be offering a single Raspberry Pi image for Raspberry Pi 2 and the
new Raspberry Pi 3. Only when 64-bit support is ready, and beneficial to OSMC
users, will we offer a separate image. The new quad core CPU will bring
smoother GUI performance. There have also been recent improvements to H265
decoding. While not hardware accelerated on the Raspberry Pi, the new CPU will
enable more H265 content to be played back on the Raspberry Pi than before.
— Raspberry Pi 3
announced with OSMC support
The Pi 3's GPU has higher clock frequencies—300 MHz and
400 MHz for different parts—than previous versions' 250 MHz.
The Raspberry Pis can also generate 576i and 480i composite video signals, as used on old-style (CRT) TV screens through standard connectors—either
RCA or 3.5mm phone connector depending on models. The television signal
standards supported are PAL-BGHID, PAL-M, PAL-N, NTSC and NTSC-J.
Real-time clock
The Raspberry Pi does not have a built-in real-time clock, and does not "know" the time of
day. As a workaround, a program running on the Raspberry Pi can get the time
from a network time server or user input at boot time, thus knowing the time while powered
on.
A real-time hardware clock with battery backup, such as the
DS1307, which is fully binary coded, may be added (often via the I²C interface).
|
Variant
|
Raspberry Pi 1
|
Raspberry Pi 2
|
Raspberry Pi 3
|
Compute Module*
|
Raspberry Pi Zero
| ||||
|
Model
|
Model A
|
Model A+
|
Model B
|
Model B+
|
Model B
|
Model B
|
N/A
|
PCB v1.2
|
PCB v1.3
|
|
Release date
|
February 2012
|
November 2014[
|
April–June 2012
|
July 2014[
|
February 2015
|
February 2016
|
April 2014
|
November 2015
|
May 2016
|
|
Target price
|
US$25
|
US$20
|
US$35
|
US$25[
|
US$35
|
US$35
|
US$30 (in batches of 100)
|
US$5
|
US$5
|
|
Architecture
|
|
|
|
| |||||
|
|
|
BroadcomBCM2836
|
BroadcomBCM2837
|
| |||||
|
|
|
|
|
|
| ||||
|
|
Broadcom VideoCore IV @ 250 MHz (BCM2837: 3D part of GPU @ 300 MHz, video part of GPU @ 400 MHz).
OpenGL ES 2.0 (BCM2835, BCM2836: 24 GFLOPS / BCM2837: 28.8 GFLOPS) MPEG-2 and VC-1 (with license), 1080p30 H.264/MPEG-4 AVC high-profile decoder and encoder (BCM2837: 1080p60) | ||||||||
|
Memory (SDRAM)
|
256 MB (shared with GPU)
|
512 MB (shared with GPU) as of 4 May 2016. Older boards had
256 MB (shared with GPU)
|
1 GB (shared with GPU)
|
512 MB (shared with GPU)
| |||||
|
USB 2.0 ports
|
1 (direct from BCM2835 chip)
|
2 (via the on-board 3-port USB hub)
|
4 (via the on-board 5-port USB hub)
|
1 (direct from BCM2835 chip)
|
1 Micro-USB (direct from BCM2835 chip)
| ||||
|
Video input
|
15-pin MIPI camera interface (CSI) connector, used with the Raspberry Pi
camera or Raspberry Pi NoIR camera
|
2× MIPI camera interface (CSI)
|
None
|
MIPI camera interface (CSI) (rev 1.3)
| |||||
|
Video outputs
|
|
|
|
|
|
Mini-HDMI, 1080p60,composite video via GPIO
| |||
|
Audio inputs
|
| ||||||||
|
Audio outputs
|
|
Analog, HDMI, I²S
|
Mini-HDMI, stereo audio through PWM on GPIO
| ||||||
|
On-board storage
|
|
MicroSDHCslot
|
|
|
|
| |||
|
On-board network
|
None
|
|
10/100 Mbit/s Ethernet,
802.11n wireless, Bluetooth 4.1 |
None
| |||||
|
Low-level peripherals
|
8× GPIO[61] plus the following, which can also be used as
GPIO: UART, I²C bus, SPI bus with two chip selects, I²Saudio[62] +3.3 V, +5 V, ground[46][63]
|
|
8× GPIO plus the following,
which can also be used as GPIO: UART, I²C bus, SPIbus with two chip selects, I²S audio +3.3 V,
+5 V, ground.
|
|
|
| |||
|
Power ratings
|
|
200 mA (1 W)
|
700 mA (3.5 W)
|
600 mA
(3.0 W)
|
800 mA(4.0 W)[
|
200 mA (1 W)
|
~160 mA(0.8 W)
| ||
|
Power source
|
| ||||||||
|
Size
|
85.60 mm
× 56.5 mm (3.370 in × 2.224 in), not including
protruding connectors
|
65 mm
× 56.5 mm × 10 mm (2.56 in × 2.22 in
× 0.39 in), same as HAT board
|
85.60 mm × 56.5 mm
(3.370 in × 2.224 in), not including protruding connectors
|
67.6 mm
× 30 mm (2.66 in × 1.18 in)
|
65 mm
× 30 mm × 5 mm (2.56 in × 1.18 in
× 0.20 in)
| ||||
|
Weight
|
31 g
(1.1 oz)
|
23 g
(0.81 oz)
|
45 g
(1.6 oz)
|
|
| ||||
|
Console
|
| ||||||||
|
Model
|
Model A
|
Model A+
|
Model B
|
Model B+
|
Model B
|
Model B
|
N/A
|
PCB v1.2
|
PCB v1.3
|
|
Variant
|
Raspberry Pi 1
|
Raspberry Pi 2
|
Raspberry Pi 3
|
Compute Module*
|
Raspberry Pi Zero
| ||||
Connectors
|
Pi Zero
|
|
|
General purpose input-output (GPIO) connector
Raspberry Pi 1 Models A+ and B+, Pi 2 Model B,
Pi 3 Model B and Pi Zero GPIO J8 have a 40-pin pinout. Models A and B have only the first 26 pins.
|
GPIO#
|
2nd func.
|
Pin#
|
Pin#
|
2nd func.
|
GPIO#
| |
|
+3.3 V
|
1
|
2
|
+5 V
| |||
|
2
|
SDA1 (I²C)
|
3
|
4
|
+5 V
| ||
|
3
|
SCL1 (I²C)
|
5
|
6
|
GND
| ||
|
4
|
GCLK
|
7
|
8
|
TXD0 (UART)
|
14
| |
|
GND
|
9
|
10
|
RXD0 (UART)
|
15
| ||
|
17
|
GEN0
|
11
|
12
|
GEN1
|
18
| |
|
27
|
GEN2
|
13
|
14
|
GND
| ||
|
22
|
GEN3
|
15
|
16
|
GEN4
|
23
| |
|
+3.3 V
|
17
|
18
|
GEN5
|
24
| ||
|
10
|
MOSI (SPI)
|
19
|
20
|
GND
| ||
|
9
|
MISO (SPI)
|
21
|
22
|
GEN6
|
25
| |
|
11
|
SCLK (SPI)
|
23
|
24
|
CE0_N (SPI)
|
8
| |
|
GND
|
25
|
26
|
CE1_N (SPI)
|
7
| ||
|
(Pi 1 Models A and B stop here)
| ||||||
|
EEPROM
|
ID_SD
|
27
|
28
|
ID_SC
|
EEPROM
| |
|
5
|
N/A
|
29
|
30
|
GND
| ||
|
6
|
N/A
|
31
|
32
|
12
| ||
|
13
|
N/A
|
33
|
34
|
GND
| ||
|
19
|
N/A
|
35
|
36
|
N/A
|
16
| |
|
26
|
N/A
|
37
|
38
|
Digital IN
|
20
| |
|
GND
|
39
|
40
|
Digital OUT
|
21
| ||
Model B rev. 2 also has a pad (called P5 on the board and P6 on
the schematics) of 8 pins offering access to an additional 4 GPIO connections.
|
Function
|
2nd func.
|
Pin#
|
Pin#
|
2nd func.
|
Function
| |
|
N/A
|
+5 V
|
1
|
2
|
+3.3 V
|
N/A
| |
|
GPIO28
|
GPIO_GEN7
|
3
|
4
|
GPIO_GEN8
|
GPIO29
| |
|
GPIO30
|
GPIO_GEN9
|
5
|
6
|
GPIO_GEN10
|
GPIO31
| |
|
N/A
|
GND
|
7
|
8
|
GND
|
N/A
|
Models A and B provide GPIO access to the ACT status LED using
GPIO 16. Models A+ and B+ provide GPIO access to the ACT status LED using GPIO
47, and the power status LED using GPIO 35.
Accessories
·
Camera – On 14 May
2013, the foundation and the distributors RS Components & Premier
Farnell/Element 14 launched the Raspberry Pi camera board with a firmware
update to accommodate it. The camera board is shipped with a flexible flat cable that plugs into the CSI connector located between the Ethernet and
HDMI ports. In Raspbian, one enables the system to use the camera board by the installing
or upgrading to the latest version of the operating system (OS) and then running Raspi-config and
selecting the camera option. The cost of the camera module is €20 in Europe (9 September 2013). It can produce 1080p, 720p and 640x480p video. The dimensions are 25 mm × 20 mm × 9 mm. In May 2016, v2 of the camera came out, and is
an 8 megapixel camera.
·
Gertboard – A
Raspberry Pi Foundation sanctioned device, designed for educational purposes,
that expands the Raspberry Pi's GPIO pins to allow interface with and control
of LEDs, switches, analog signals, sensors and other devices. It also includes
an optional Arduino compatible controller
to interface with the Pi.
·
Infrared Camera – In
October 2013, the foundation announced that they would begin producing a camera
module without an infrared filter, called the Pi NoIR.
·
HAT (Hardware Attached
on Top) expansion boards – Together with the Model B+, inspired by the Arduino shield boards, the interface for HAT boards was
devised by the Raspberry Pi Foundation. Each HAT board carries a small EEPROM
(typically a CAT24C32WI-GT3)[82] containing the relevant details of the board, so that the Raspberry Pi's OS is informed of
the HAT, and the technical details of it, relevant to the OS using the HAT.[84] Mechanical details of a HAT board, that use
the four mounting holes in their rectangular formation, are available online.
Software
Operating systems
Various operating systems can be installed on
the Raspberry Pi through SD cards; most use a MicroSD slot located on the bottom
of the board.
The Raspberry Pi primarily uses Raspbian, a Debian-based Linux operating system. Other third party operating systems available
via the official website include Ubuntu MATE, Snappy Ubuntu Core, Windows 10 IoT Core, RISC OS and specialised
distributions for the Kodimedia center and classroom management.[87]
Many other operating systems can also run on the Raspberry Pi.
Other operating
systems (not Linux-based)
·
RISC OS Pi (a special cut down
version RISC OS Pico, for 16 MB cards and larger for all models of
Pi 1 & 2, has also been made available)
·
FreeBSD
·
NetBSD
·
Windows 10 IoT Core – a no-cost edition of Windows 10 offered by Microsoft that runs natively on the
Raspberry Pi 2.
·
xv6]– is a modern reimplementation of Sixth
Edition Unix OS for teaching purposes; it is ported to Raspberry Pi from MIT
xv6; this xv6 port can boot from NOOBS.
·
Haiku – is an opensource
BeOS clone that has can be compiled for the Raspberry Pi and several other ARM
boards. Work began in 2011 on Pi 1, but only the
Pi 2 will be supported.[citation needed]
Other operating
systems (Linux-based)
·
openSUSE
·
Slackware ARM – version 13.37 and later runs on the
Raspberry Pi without modification. The 128–496 MB of available memory on the
Raspberry Pi is at least twice the minimum requirement of 64 MB needed to
run Slackware Linux on an ARM or i386 system. (Whereas the majority of Linux systems boot
into a graphical user interface, Slackware's default user environment is the textual shell / command line interface.) The Fluxbox window manager running under the X Window System requires an additional 48 MB of RAM.
·
Moebius – is a light ARM HF distribution based on
Debian. It uses Raspbian repository, but it fits in a 128 MB SD card. It has only minimal services and its memory
use is optimized to be small.
·
Pardus ARM– is a Debian-based operating system which is
the light version of the Pardus (operating system).
·
ROKOS – is a Raspbian-based operating system with integrated
clients for the Bitcoin and OKCash cryptocurrencies.
·
Kano OS
·
Sailfish OS with Raspberry Pi 2 (due to use ARM
Cortex-A7 CPU; Raspberry Pi 1 uses different ARMv6 architecture and
Sailfish requires ARMv7.)
·
Tiny Core Linux – a minimal Linux operating system focused on providing a base system using BusyBox and FLTK. Designed to run primarily in RAM.
·
IPFire – is a dedicated firewall/router distribution for the
protection of a SOHO LAN; runs only on a Raspberry Pi 1; porting
to the Raspberry Pi 2 is not planned for now.
·
Alpine Linux – is a Linux distribution based on musl and BusyBox, primarily designed for "power users who appreciate security, simplicity and
resource efficiency".
·
Void Linux – a rolling release Linux distribution which was designed and
implemented from scratch, provides images based on musl or glibc.
·
Tingbot OS – based on Raspbian, primarily designed for
use with the Tingbot addon and running Tide apps.
·
WTware for Raspberry
Pi[ – is a free operating system for creating
Windows thin client from Pi 2 and Pi 3.
·
Media center operating
systems:
·
Audio operating
systems :
Driver APIs
Raspberry Pi can use a VideoCore IV GPU via a binary blob, which is loaded into the GPU at boot time
from the SD-card, and additional software, that initially was closed source.[120] This part of the driver code was later released.[121] However, much of the actual driver work is
done using the closed source GPU code. Application software use calls to closed
source run-time libraries (OpenMax, OpenGL ES or OpenVG) which in turn calls an open source driver
inside the Linux kernel, which then calls the closed source VideoCore IV GPU
driver code. The API of the kernel driver is specific for these closed libraries.
Video applications use OpenMAX, 3D applications use OpenGL ESand 2D applications use OpenVG which both in turn use EGL. OpenMAX and EGL use the open source kernel
driver in turn.
Firmware
The official firmware is a freely redistributable binary blob, that is closed-source.A minimal open source firmware is also
available.
Third party application software
·
Mathematica & the Wolfram Language – Since 21 November 2013, Raspbian includes a
full installation of this proprietary software for free. As of 24 August 2015, the version is
Mathematica 10.2. Programs can be run either from a command line
interface or from a Notebook interface. There are Wolfram Language functions
for accessing connected devices. There is also a Wolfram Language desktop
development kit allowing development for Raspberry Pi in Mathematica from
desktop machines.
·
Minecraft – Released 11 February
2013, a version for the Raspberry Pi, in which you can modify the game world
with code, the only official version of the game in which you can do so.
·
UserGate Web Filter – On 20 September 2013, Florida-based security vendor Entensys
announced porting UserGate Web Filter to Raspberry Pi platform.
Software development tools
·
Greenfoot – Greenfoot teaches
object orientation with Java. Create 'actors' which live in 'worlds' to build
games, simulations, and other graphical programs.
·
Julia – an interactive and
cross-platform programming language/environment, that runs on the Pi 1 and
later. IDEs for Julia, such as Juno, are available.
·
LiveCode – educational RAD IDE
descended from HyperCard using English-like
language to write event-handlers for WYSIWYG widgets runnable on desktop,
mobile and Raspberry Pi platforms.
·
Object Pascal – an object oriented variant (the one used in
Delphi IDE) of Niklaus Wirth's original Pascal language.
·
Processing – an IDE built for the electronic arts, new media art, and
visual design communities with the purpose of teaching the fundamentals of
computer programming in a visual context.
·
Scratch – a cross platform
teaching IDE using visual blocks that stack like Lego™ originally developed by
MIT's Life Long Kindergarten group. The Pi version is very heavily optimized for the limited compute resources available
and is implemented in the Squeak Smalltalk system.
·
V-Play Game Engine – a cross-platform development framework that supports mobile
game and app development with the V-Play Game Engine, V-Play apps and V-Play
plugins.
·
Xojo – a cross-platform, professional RAD tool that
can create desktop, web and console apps for Pi 2.
·
PowerBerry – The porting of POWER-KI[ programming language on Windows 10 IoT - The
PowerBerry Manager PBM allows the manage of the board and its distribution
contains demo and test Apps (GPIO, WEB,PCA9685..).
Reception and use
Technology writer Glyn Moody described the project
in May 2011 as a "potential BBC Micro 2.0", not by
replacing PC compatible machines but by supplementing them. In March 2012 Stephen Pritchard echoed the BBC
Micro successor sentiment in ITPRO. Alex Hope, co-author of the Next Gen report,
is hopeful that the computer will engage children with the excitement of
programming. Co-author Ian Livingstone suggested that the BBC could be involved in building support for the device, possibly
branding it as the BBC Nano. Chris Williams, writing in The Register sees the inclusion of programming languages
such as Kids Ruby, Scratch and BASIC as a "good start" to equip kids with the skills needed
in the future – although it remains to be seen how effective their use will be. The Centre for Computing History strongly supports the Raspberry Pi project,
feeling that it could "usher in a new era". Before release, the board was showcased by ARM's CEO Warren East at an event in Cambridge outlining Google's ideas to improve UK science and technology
education.[145]
Harry Fairhead, however, suggests that more emphasis should be
put on improving the educational software available on existing hardware, using
tools such as Google App Inventor to return programming to schools, rather than adding new
hardware choices. Simon Rockman, writing in a ZDNet blog, was of the opinion that teens will have "better
things to do", despite what happened in the 1980s.
In October 2012, the Raspberry Pi won T3's Innovation of the
Year award,and futurist Mark Pesce cited a (borrowed) Raspberry Pi as the
inspiration for his ambient deviceproject MooresCloud. In October 2012, the British Computer Society reacted to the announcement of enhanced specifications by
stating, "it's definitely something we'll want to sink our teeth
into."
In February 2015, a switched-mode power supply chip, designated U16, of the Raspberry Pi 2 Model B version
1.1 (the initially released version) was found to be vulnerable to flashes of
light, particularly the light from xenon camera flashes and green and red laser pointers. However, other bright lights, particularly
ones that are on continuously, were found to have no effect. The symptom was
the Raspberry Pi 2 spontaneously rebooting or turning off when these
lights were flashed at the chip. Initially, some users and commenters suspected
that the electromagnetic pulse (EMP) from the xenon flash tube was causing the problem by
interfering with the computer's digital circuitry, but this was ruled out by
tests where the light was either blocked by a card or aimed at the other side
of the Raspberry Pi 2, both of which did not cause a problem. The problem
was narrowed down to the U16 chip by covering first the system on a chip (main processor) and then U16 with Blu-Tack (an opaque poster mounting compound). Light
being the sole culprit, instead of EMP, was further confirmed by the laser
pointer tests, where it was also found that less opaque
covering was needed to shield against the laser pointers than to shield against
the xenon flashes. The U16 chip seems to be bare silicon without
a plastic cover (i.e. a chip-scale package or wafer-level package), which would, if present, block the light. Unofficial
workarounds include covering U16 with opaque material (such as electrical tape, lacquer, poster mounting compound, or even
balled-up bread[151]), putting the Raspberry Pi 2 in a case, and avoiding taking photos of the top side of
the board with a xenon flash. This issue was not caught before the release of
the Raspberry Pi 2 because while commercial electronic devices are
routinely subjected to tests of susceptibility to radio interference, it is not
standard or common practice to test their susceptibility to optical
interference.
Community
The Raspberry Pi community was described by Jamie Ayre of FLOSS software company AdaCore as one of the most
exciting parts of the project.[153] Community blogger Russell Davis said that the
community strength allows the Foundation to concentrate on documentation and
teaching.[153] The community developed a fanzine around the platform called The MagPi[154] which in 2015, was handed over to the
Raspberry Pi Foundation by its volunteers to be continued in-house.[155] A series of community Raspberry Jam events have been held across the UK and around
the world.[156]
Use in education
As of January 2012, enquiries about the board in the United
Kingdom have been received from schools in both the state and private sectors, with around five times as much interest from the
latter. It is hoped that businesses will sponsor purchases for less advantaged
schools.[157] The CEO of Premier Farnell said that the
government of a country in the Middle East has expressed interest
in providing a board to every schoolgirl, in order to enhance her employment
prospects.[158][159]
In 2014, the Raspberry Pi Foundation hired a number of its
community members including ex-teachers and software developers to launch a set
of free learning resources for its website.[160] The resources are freely licensed under
Creative Commons, and contributions and collaborations are encouraged on social
coding platform GitHub.
The Foundation also started a teacher training course called
Picademy with the aim of helping teachers prepare for teaching the new
computing curriculum using the Raspberry Pi in the classroom.[161] The continued professional development course
is provided free for teachers and is run by the Foundation's education team.
Use in home automation
There are a number of developers and applications that are
leveraging the Raspberry Pi for home automation. These programmers are making an effort to
modify the Raspberry Pi into a cost affordable solution in energy monitoring
and power consumption. Because of the relatively low cost of the Raspberry Pi,
this has become a popular and economical solution to the more expensive
commercial alternatives.[162]
Astro Pi
A project was launched in December 2014 at an event held by the
UK Space Agency. The Astro Pi competition was officially opened in January and
was opened to all primary and secondary school aged children who were residents
of the United Kingdom. During his mission, British ESA Astronaut Tim Peake plans to deploy the computers on board the International Space Station. He will then load up the winning code while in orbit, collect the
data generated and then send this to Earth where it will be distributed to the
winning teams. The themes of Spacecraft Sensors, Satellite Imaging, Space
Measurements, Data Fusion and Space Radiation were devised to stimulate
creative and scientific thinking.
The organisations involved in the Astro Pi competition include
the UK Space Agency, UKspace, Raspberry Pi, ESERO-UK and ESA.
History
|
|
This
section contains embedded lists that may be better presented
using prose. You
can help by converting the list or lists to prose, if appropriate. Editing help is available. (February 2015) (Learn how and when to remove this template message)
|
An early alpha-test board in operation using
different layout from later beta and production boards
In 2006, early concepts of the Raspberry Pi were based on the Atmel ATmega644 microcontroller. Its schematics and PCB layout are publicly
available.[163] Foundation trustee Eben Upton assembled a group of teachers, academics and
computer enthusiasts to devise a computer to inspire children.[157] The computer is inspired by Acorn's BBC Micro of 1981.[164][165] The Model A, Model B and Model B+ names are
references to the original models of the British educational BBC Micro computer, developed by Acorn Computers.[143] The first ARM prototype version of the
computer was mounted in a package the same size as a USB memory stick.[166] It had a USB port on one end and an HDMI port on the other.
The Foundation's goal was to offer two versions, priced at US$25
and 35. They started accepting orders for the higher priced Model B on 29
February 2012,[167] the lower cost Model A on 4 February 2013.[168] and the even lower cost (US$20) A+ on 10
November 2014.[43] On 26 November 2015, the cheapest Raspberry PI
yet, the Raspberry PI Zero, was launched at US$5 or £4.[169]
Pre-launch
·
July 2011: Trustee Eben Upton publicly
approached the RISC OS Open community in July 2011 to enquire about assistance with a
port.[170] Adrian Lees at
Broadcom has since worked on the port,[171][172] with his work
being cited in a discussion regarding the graphics drivers.[173] This port is now
included in NOOBS.
·
August 2011 – 50 alpha
boards are manufactured. These boards were functionally identical to the
planned Model B,[174] but they were physically larger to accommodate
debug headers. Demonstrations of the board showed it running the LXDE desktop on Debian, Quake 3 at 1080p,[175] and Full HD MPEG-4 video over HDMI.[176]
·
October 2011 – A
version of RISC OS 5 was demonstrated in
public, and following a year of development the port was released for general
consumption in November 2012.[177][178][179][180]
·
December 2011 –
Twenty-five Model B Beta boards were assembled and tested[181] from one hundred unpopulated PCBs.[182] The component layout of the Beta boards was
the same as on production boards. A single error was discovered in the board
design where some pins on the CPU were not held high; it was fixed for the
first production run.[183] The Beta boards were demonstrated booting
Linux, playing a 1080p movie trailer and the Rightware Samurai OpenGL ES benchmark.[184]
·
Early 2012 – During
the first week of the year, the first 10 boards were put up for auction on eBay.[185][186] One was bought anonymously and donated to the
museum at The Centre for Computing History in Cambridge, England.[144][187] The ten boards (with a total retail price of
£220) together raised over £16,000,[188] with the last to be auctioned, serial number
No. 01, raising £3,500.[189] In advance of the anticipated launch at the
end of February 2012, the Foundation's servers struggled to cope with the load
placed by watchers repeatedly refreshing their browsers.[190]
Launch
·
19 February 2012 – The
first proof of concept SD card image that could be loaded onto an SD card to
produce a preliminary operating system is released. The image was based on Debian 6.0 (Squeeze), with the LXDE desktop and the Midori browser, plus various programming tools. The image
also runs on QEMU allowing the Raspberry Pi to be emulated on
various other platforms.[191][192]
·
29 February 2012 –
Initial sales commence 29 February 2012[193] at 06:00 UTC;. At the same time, it was
announced that the model A, originally to have had 128 MB of RAM, was to
be upgraded to 256 MB before release.[167] The Foundation's website also announced:
"Six years after the project's inception, we're nearly at the end of our
first run of development – although it's just the beginning of the Raspberry Pi
story."[194] The web-shops of the two licensed manufacturers selling
Raspberry Pi's within the United Kingdom, Premier Farnell and RS Components, had their websites stalled by heavy web
traffic immediately after the launch (RS Components briefly going down
completely).[195][196] Unconfirmed reports suggested that there were
over two million expressions of interest or pre-orders.[197] The official Raspberry Pi Twitter account
reported that Premier Farnell sold out within a few minutes of the initial
launch, while RS Components took over 100,000 pre orders on day one.[167] Manufacturers were reported in March 2012 to
be taking a "healthy number" of pre-orders.[153]
·
March 2012 – Shipping
delays for the first batch were announced in March 2012, as the result of
installation of an incorrect Ethernet port,[198][199] but the Foundation expected that manufacturing
quantities of future batches could be increased with little difficulty if
required.[200] "We have ensured we can get them [the
Ethernet connectors with magnetics] in large numbers and Premier Farnell and RS
Components [the two distributors] have been fantastic at helping to source
components," Upton said. The first batch of 10,000 boards was manufactured
in Taiwan and China.[201][202]
·
8 March 2012 – Release
Raspberry Pi Fedora Remix, the recommended Linux distribution,[203] developed at Seneca College in Canada.[204]
·
March 2012 – The
Debian port is initiated by Mike Thompson, former CTO of Atomz. The effort was largely carried out by Thompson and Peter
Green, a volunteer Debian developer, with some support from the Foundation, who
tested the resulting binaries that the two produced during the early stages
(neither Thompson nor Green had physical access to the hardware, as boards were
not widely accessible at the time due to demand).[205] While the preliminary proof of concept image distributed by the Foundation before
launch was also Debian-based, it differed from Thompson and Green's Raspbian
effort in a couple of ways. The POC image was based on then-stable Debian Squeeze, while Raspbian aimed to track then-upcoming Debian Wheezy packages.[192] Aside from the updated packages that would
come with the new release, Wheezy was also set to introduce the armhf
architecture,[206] which became the raison d'être for the Raspbian effort. The Squeeze-based POC image was limited
to the armel architecture, which was, at the time of Squeeze's release, the latest
attempt by the Debian project to have Debian run on the newest ARM embedded-application binary interface(EABI).[207] The armhf architecture in Wheezy intended to make Debian run on the ARM VFP hardware floating-point unit, while armel was limited to emulating floating point operations
in software.[208][209] Since the Raspberry Pi included a VFP, being
able to make use of the hardware unit would result in performance gains and
reduced power use for floating point operations.[205] The armhf effort in mainline Debian, however,
was orthogonal to the work surrounding the Pi and only intended to allow Debian
to run on ARMv7 at a minimum, which would mean the Pi, an ARMv6 device, would
not benefit.[206] As a result, Thompson and Green set out to
build the 19,000 Debian packages for the device using a custom build cluster.[205]
Post-launch
·
16 April 2012 –
Reports appear from the first buyers who had received their Raspberry Pi.[210][211]
·
18 May 2012 – The
Foundation reported on its blog about a prototype camera module they had tested.[213] The prototype used a 14-megapixel module.
·
16 July 2012 – It was
announced that 4,000 units were being manufactured per day, allowing Raspberry
Pis to be bought in bulk.[215][216]
·
24 August 2012 –
Hardware accelerated video (H.264) encoding becomes available after it became
known that the existing license also covered encoding. Formerly it was thought
that encoding would be added with the release of the announced camera module.[217][218] However, no stable software exists for
hardware H.264 encoding.[219] At the same time the Foundation released two
additional codecs that can be bought separately, MPEG-2 and Microsoft's VC-1. Also it was announced that the Pi will implement CEC, enabling it to be
controlled with the television's remote control.[48]
·
July 2012 – Release of
Raspbian.
·
5 September 2012 – The
Foundation announced a second revision of the Raspberry Pi Model B.[221] A revision 2.0 board is announced, with a
number of minor corrections and improvements.
·
6 September 2012 –
Announcement that in future the bulk of Raspberry Pi units would be
manufactured in the UK, at Sony's manufacturing facility in Pencoed, Wales. The Foundation estimated that the plant would produce 30,000
units per month, and would create about 30 new jobs.[223][224]
·
15 October 2012 – It
is announced that new Raspberry Pi Model Bs are to be fitted with 512 MB
instead of 256 MB RAM.[225]
·
24 October 2012 – The
Foundation announces that "all of the VideoCore driver code which runs on
the ARM" had been released as free software under a BSD-style license, making it "the first ARM-based multimedia SoC with fully-functional, vendor-provided (as
opposed to partial, reverse engineered) fully open-source drivers",
although this claim has not been universally accepted.[121] On 28 February 2014, they also announced the
release of full documentation for the VideoCore IV graphics core, and a
complete source release of the graphics stack under a 3-clause BSD license[226][227]
·
October 2012 – It was
reported that some customers of one of the two main distributors had been
waiting more than six months for their orders. This was reported to be due to
difficulties in sourcing the CPU and conservative sales forecasting by this
distributor.[228]
·
17 December 2012 – The
Foundation, in collaboration with IndieCity and Velocix, opens the Pi Store, as
a "one-stop shop for all your Raspberry Pi (software) needs". Using
an application included in Raspbian, users can browse through several categories
and download what they want. Software can also be uploaded for moderation and
release.[229]
·
3 June 2013 – 'New Out
Of Box Software or NOOBS is introduced. This
makes the Raspberry Pi easier to use by simplifying the installation of an
operating system. Instead of using specific software to prepare an SD card, a
file is unzipped and the contents copied over to a FAT formatted (4 GB or
bigger) SD card. That card can then be booted on the Raspberry Pi and a choice
of six operating systems is presented for installation on the card. The system
also contains a recovery partition that allows for the quick restoration of the
installed OS, tools to modify the config.txt and an online help button and web
browser which directs to the Raspberry Pi Forums.[230]
·
October 2013 – The
Foundation announces that the one millionth Pi had been manufactured in the
United Kingdom.[231]
·
28 February 2014 – On
the day of the second anniversary of the Raspberry Pi, Broadcom, together with
the Raspberry PI foundation, announced the release of full documentation for
the VideoCore IV graphics core[clarification needed], and a complete source release of the graphics stack under a
3-clause BSD license.[226][227]
Raspberry Pi Compute Module
Raspberry Pi Model B
·
7 April 2014 – The
official Raspberry Pi blog announced the Raspberry Pi Compute Module, a device
in a 200-pin DDR2 SO-DIMM-configured memory
module (though not in any way compatible with such RAM), intended for consumer
electronics designers to use as the core of their own products.[41]
·
June 2014 – The
official Raspberry Pi blog mentioned that the three millionth Pi shipped in
early May 2014.[233]
·
14 July 2014 – The
official Raspberry Pi blog announced the Raspberry Pi Model B+, "the final
evolution of the original Raspberry Pi. For the same price as the original
Raspberry Pi model B, but incorporating numerous small improvements people have
been asking for".[40]
·
10 November 2014 – The
official Raspberry Pi blog announced the Raspberry Pi Model A+.[43] It is the smallest and cheapest (US$20)Raspberry Pi so far and has the same processor
and RAM as the model A. Like the A, it has no Ethernet port, and only one USB
port, but does have the other innovations of the B+, like lower power,
micro-SD-card slot, and 40-pin HAT compatible GPIO.
·
2 February 2015 – The
official Raspberry Pi blog announced the Raspberry Pi 2. Looking like a Model
B+, it has a 900 MHz quad-core ARMv7 Cortex-A7 CPU, twice the memory (for
a total of 1 GB) and complete compatibility with the original generation
of Raspberry Pis.[234]
·
14 May 2015 – The
price of Model B+ was decreased from US$35 to 25, purportedly as a "side
effect of the production optimizations" from the Pi 2 development.[235] Industry observers have skeptically noted,
however, that the price drop appeared to be a direct response to the C.H.I.P., a lower-priced competitor.[236]
·
26 November 2015 – The
Raspberry Pi Foundation launched the Raspberry Pi Zero, the smallest and
cheapest member of the Raspberry Pi family yet, at 65 mm × 30 mm, and
US$5. The Zero is similar to the model A+ without camera and LCD connectors,
while smaller and uses less power. It was given away with the Raspberry PI
magazine Magpi #40 that was distributed in the UK and US that day – the
MagPi was sold out at almost every retailer internationally due to the freebie.[42]
·
29 February 2016 –
Raspberry Pi 3 with a BCM2837 1.2 GHz 64-bit quad processor based on the
ARMv8 Cortex A53, with built-in Wi-Fi BCM43438 802.11n 2.4 GHz and
Bluetooth 4.1 Low Energy (BLE). Starting with a 32-bit Raspbian version.[237]
·
25 April 2016 –
Raspberry Pi Camera v2.1 announced with 8 Mpixels, in normal and NoIR (can
receive IR) versions. The camera uses the Sony IMX219 chip with a resolution of 3280 × 2464. To make use of the new resolution the
software has to be updated.[238]
See also
References
2.
Jump up^ "Raspberry Pi 3
is out now! Specs, Benchmarks & More". The MagPi Magazine.
1 April 2016.
3.
Jump up^ Cellan-Jones, Rory (5 May
2011). "A £15 computer
to inspire young programmers". BBC News.
4.
Jump up^ Price, Peter (3 June 2011). "Can a £15
computer solve the programming gap?". BBC Click. Retrieved 2 July 2011.
5.
Jump up^ Bush, Steve (25 May 2011). "Dongle computer
lets kids discover programming on a TV". Electronics Weekly. Retrieved 11 July 2011.
8.
Jump up^ Alex Hern. "Raspberry Pi 3:
the credit card-sized 1.2GHz PC that costs $35". the Guardian.
9.
Jump up^ "Raspberry Pi 3
on sale now at $35". Raspberry Pi. Archived from the original on 29 February
2016.
10.
Jump up^ "Ten millionth
Raspberry Pi, and a new kit - Raspberry Pi". 8 September 2016.
Retrieved 2016-09-09.
11.
^ Jump up to:a b c d "BCM2835 Media
Processor; Broadcom". Broadcom.com. 1 September 2011. Archived
from the original on 13 May 2012.
Retrieved 6 May 2012.
Jump up^ Brose,
Moses (30 January 2012). "Broadcom
BCM2835 SoC has the most powerful mobile GPU in the world?". Grand
MAX. Retrieved 13
HERE SOME INTERESTING VIDEOS OF RASPBERRY PI
INDUSTRIAL APPLICATION OF RASPBERRY PI
Understand that Python doesn't need to compile. Python is an interpreted language, which means you can run the program as soon as you make changes to the file. This makes iterating, revising, and troubleshooting programs is much quicker than many other languages.
- Python is one of the easier languages to learn, and you can have a basic program up and running in just a few minutes.
Python is a widely used high-level, general-purpose, interpreted, dynamic programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than possible in languages such as C++ or Java.[26][27] The language provides constructs intended to enable writing clear programs on both a small and large scale.[28]
Python supports multiple programming paradigms, including object-oriented, imperative and functional programming or proceduralstyles. It features a dynamic type system and automatic memory management and has a large and comprehensive standard library.[29]
Python interpreters are available for many operating systems, allowing Python code to run on a wide variety of systems. Using third-party tools, such as Py2exe or Pyinstaller,[30] Python code can be packaged into stand-alone executable programs for some of the most popular operating systems, so Python-based software can be distributed to, and used on, those environments with no need to install a Python interpreter.
CPython, the reference implementation of Python, is free and open-source software and has a community-based development model, as do nearly all of its variant implementations. CPython is managed by the non-profit Python Software Foundation
HOW TO INSTALL PYTHON SOFTWARE
FOR WINDOWS 8 TO INSTALL SOFTWARE
Python was conceived in the late 1980s,[31] and its implementation began in December 1989[32] by Guido van Rossum at Centrum Wiskunde & Informatica (CWI) in the Netherlands as a successor to the ABC language (itself inspired by SETL)[33] capable of exception handling and interfacing with the operating system Amoeba.[8] Van Rossum is Python's principal author, and his continuing central role in deciding the direction of Python is reflected in the title given to him by the Python community, benevolent dictator for life (BDFL).
About the origin of Python, Van Rossum wrote in 1996:[34]
Python 2.0 was released on 16 October 2000 and had many major new features, including a cycle-detecting garbage collector and support for Unicode. With this release the development process was changed and became more transparent and community-backed.[35]
Python 3.0 (which early in its development was commonly referred to as Python 3000 or py3k), a major, backwards-incompatible release, was released on 3 December 2008[36] after a long period of testing. Many of its major features have been backported to the backwards-compatible Python 2.6.x[37] and 2.7.x version series.
Features and philosophy
Python is a multi-paradigm programming language: object-oriented programming and structured programming are fully supported, and many language features support functional programming and aspect-oriented programming (including by metaprogramming[38] and metaobjects (magic methods)).[39] Many other paradigms are supported via extensions, including design by contract[40][41] and logic programming.[42]
Python uses dynamic typing and a mix of reference counting and a cycle-detecting garbage collector for memory management. An important feature of Python is dynamic name resolution (late binding), which binds method and variable names during program execution.
The design of Python offers some support for functional programming in the Lisp tradition. The language has map(), reduce() and filter() functions; list comprehensions, dictionaries, and sets; and generator expressions.[43] The standard library has two modules (itertools and functools) that implement functional tools borrowed from Haskell and Standard ML.[44]
The core philosophy of the language is summarized by the document The Zen of Python (PEP 20), which includes aphorisms such as:[45]
- Beautiful is better than ugly
- Explicit is better than implicit
- Simple is better than complex
- Complex is better than complicated
- Readability counts
Rather than requiring all desired functionality to be built into the language's core, Python was designed to be highly extensible. Python can also be embedded in existing applications that need a programmable interface. This design of a small core language with a large standard library and an easily extensible interpreter was intended by Van Rossum from the start because of his frustrations with ABC, which espoused the opposite mindset.[31]
While offering choice in coding methodology, the Python philosophy rejects exuberant syntax, such as in Perl, in favor of a sparser, less-cluttered grammar. As Alex Martelli put it: "To describe something as clever is not considered a compliment in the Python culture."[46] Python's philosophy rejects the Perl "there is more than one way to do it" approach to language design in favor of "there should be one—and preferably only one—obvious way to do it".[45]
Python's developers strive to avoid premature optimization, and moreover, reject patches to non-critical parts of CPython that would offer a marginal increase in speed at the cost of clarity.[47] When speed is important, a Python programmer can move time-critical functions to extension modules written in languages such as C, or try using PyPy, a just-in-time compiler. Cython is also available, which translates a Python script into C and makes direct C-level API calls into the Python interpreter.
An important goal of Python's developers is making it fun to use. This is reflected in the origin of the name, which comes from Monty Python,[48] and in an occasionally playful approach to tutorials and reference materials, such as using examples that refer to spam and eggs instead of the standard foo and bar.[49][50]
A common neologism in the Python community is pythonic, which can have a wide range of meanings related to program style. To say that code is pythonic is to say that it uses Python idioms well, that it is natural or shows fluency in the language, that it conforms with Python's minimalist philosophy and emphasis on readability. In contrast, code that is difficult to understand or reads like a rough transcription from another programming language is called unpythonic.
Users and admirers of Python, especially those considered knowledgeable or experienced, are often referred to as Pythonists, Pythonistas,










