Open Source Programování

Transkript

Open Source Programování
Přehled OSS projektů
Open Source Programování
http://rtime.felk.cvut.cz/osp/
Pavel Píša
<[email protected]>
http://cmp.felk.cvut.cz/~pisa
Michal Sojka
František Vacek
DCE FEL ČVUT
© Copyright 2004­2010, Pavel Píša, Michal Sojka, František Vacek, Free­Electrons.com, GNU.org, kernel.org, Wikipedia.org
Creative Commons BY­SA 3.0 license Latest update: 26. II 2013
Open­source programování http://rtime.felk.cvut.cz/osp/
1
Požadavky pro úspěch projektu
Základní atributy
Svobodná licence
Stránky na Internetu a možnost stahování zdarma
Uživatelská komunita
Aktivní a nepřetržitý vývoj
Flexibilita a možnost úprav a rozšiřování
Další požadavky
Atraktivní, unikátní vlastnosti, užitečnost nebo velká výzva
Otevřený a jednoduchý vývoj (neplatí např. Pro Ooorg nebo Mozila)
Interoperabilita, dodržování standardů a formátů
Alternativa k jiným, hůře dostupným nebo navrženým řešením
Cena
Jasné vedení, jinak vznikne pouze balast
Peníze mohou pomoci, ale nemusí být nezbytnou podmínkou
Komunikace – skupiny, Wiki, IRC, fórum, bugzilla, repository
Open­source programování http://rtime.felk.cvut.cz/osp/
2
Architektura (unixových) systémů
Graphical user applications
Web browser, office, multimedia...
Command line applications
ls, mkdir, wget, ssh, gcc, busybox, shells (scripts)...
User space
Shared libraries
libjpeg, libstdc++, libxml...
C library
GNU C library, uClibc...
Operating system kernel
Linux, Hurd...
Hardware and peripherals
Kernel Space
Hardware
Převzato z http://free­electrons.com/docs/freesw (Michael Opdenacker)
Open­source programování http://rtime.felk.cvut.cz/osp/
3
Spodní vrstvy operačního systému
App1
App2
...
User
space
C library
System call interface
Process
management
Memory
management
Filesystem
support
Device
control
Networking
Character
device drivers
Network
device drivers
Filesystem
types
CPU support
code
CPU / MMU
support code
Storage
drivers
Kernel
space
Hardware
CPU
RAM
Storage
4
Open­source programování http://rtime.felk.cvut.cz/osp/
První uživatelsky „přívětivá“ vrstva Zde se projevuje naše vrozená touha komunikovat se vším a to i s operačním systémem a vzhledem k naší HW výbavě nám nezbývá než použít ruce/klávesnici, oči/terminál a pomůcky, které nám zpřístupní ABI a API knihoven a systémových volání
GNU/Linux systém se jedná především o
GNU core utilities (cat, ls, pwd, rm, tee, wc)
Util­Linux (mount, fdisk, setterm atd)
Shell
Bash
Dash
Csh
5
Open­source programování http://rtime.felk.cvut.cz/osp/
Příkazová řádka do kapsy ­ BusyBox
Obsahuje minimalizované alternativy základních nástrojů
od ls, přes init, sh, getty až po minimalizovaný webserver
Licence: GPL
Velikost binárního souboru: méně než 500kB (uClibc)
Použití: ve vestavných zařízeních a během startu v distribucích využívajících initial ramdisk/initramfs
Stránky projektu: http://busybox.net
Podporované architektury: všechny ­ ARM, CRIS, H8/300, x86, ia64, x86_64, m68k, MIPS, PowerPC, S390, SH3/4/5, Sparc, v850e, a x86_64, …
Standard: Open Group Base Standards (SUSv3) ­ Shell and Utilities (http://www.opengroup.org/onlinepubs/009695399/)
6
Open­source programování http://rtime.felk.cvut.cz/osp/
BusyBox – Často se o něm ani neví
Instalátory a spouštěcí ramdisky téměř všech distribucí ­ Debian, Red Hat, Slackware, Gentoo, Mandriva, tomsrtbt
Vestavné distribuce: Amazon Kindle, OpenWrt, PTXdist a komerční zařízení ­ Dreambox, Linksys WRT54G, NetGear WG602, ASUS WL­300g,U.S. Robotics, DLink GSL­G604T, Nokia 770, 800, 900, ..., Siemens SE515 DSL router, ZyXEL Routers
Často nedodržovaná pravidla GPL licence
Monsoon Multimedia Inc.
Xterasys
Verizon Communications
Best Buy, JVC, Samsung
Zatím vždy dosaženo
urovnání sporu
Open­source programování http://rtime.felk.cvut.cz/osp/
7
GIMP the GNU Image Manipulation Program
Aktuální verze: 2.6.8.
Licence: GPL
Počátek: Spencer Kimball a Peter Mattis, 1995, semestrální projekt, University of California, Berkeley
General→GNU, 1997, RMS v Berkley
GIMP 0.60 ­ Motif→Gtk, GIMP 0.99 ­ Gtk+
Stránky projektu: http://www.gimp.org/
Větev GIMP 1.0.4 (1998 ) ­ CinePaint ­ až 32­bit IEEE­FP na každý barevný kanál, podpora HDR – Použitý v mnoha filmech Scooby­Doo, Harry Potter and the Philosopher's Stone, The Last Samurai and Stuart Little, ..
GIMP 2.10 již přímo zahrnuje 16/32bit na barevný kanál
8
Open­source programování http://rtime.felk.cvut.cz/osp/
GIMP a GSoC
Finished projects examples:
on­canvas text editing, tagging of GIMP resources and Python scripting enhancements, 2013 possible proposals:
Implement GEGL ops that GIMP need
Slicing tool
Implement the combined selection tool
Make GIMP more suitable for use in VFX pipelines writing the code for importing EXR with settings
writing the code for exporting EXR with settings
quickly export sets of layers to a file
9
Open­source programování http://rtime.felk.cvut.cz/osp/
Inkscape – raději vektory
1999 ­ Raph Levien – GIL (Gnome Illustration app.) – SVG
Sodipodi – Lauris Kaplinski 2003 – Inkscape – Ted Gould, Bryce Harrington, Nathan Hurst, and MenTaLguY – Sodipodi fork, jiný názor na otevřenost, důraz na kompletnost podpory SVG před všeobecným graf. Edit.
Zůstává GTK+ aplikace, ale C→C++
Open Clip Art Library – kolekce SVG ikon a grafických děl
Již integrované GSoC projekty
Přechod kódu na 2Geom ­ geometric algebra, paths, distortions, boolean operations, plotting implicit functions, NURBS Node tool rewrite
D­Bus scripting API
Connector tool improvements
Projekty pro GSoC 2010 se diskutují, Témat v TODO je však dostatek
Open­source programování http://rtime.felk.cvut.cz/osp/
10
Scribus – open­source DTP
Založen: 2001
Licence: GPL
Profesionální DTP (SVG, CMYK a ICC, Python scripting) 11. 8. 2009 ­ Scribus 1.3.5 – zásadní update Qt3→Qt4
Dřívější GsoC projekty ­ Improving PDF Export
GsoC 2010
Quark QXML import, XPS export/import a další
Text to/from Story Editor import/export
Rewrite the template system, Speed optimisation
Rewrite the table code and create a table editor etc.
11
Open­source programování http://rtime.felk.cvut.cz/osp/
OpenOffice.org
Klasický WYSIWYG editor
1984 – German StarDivision (Lüneburg), Marco Börries
StarWriter (Zilog Z80 CP/M)
1994 – StarOffice, do verze 4.2 založeny na přenositelné C++ knihovně StarView
1999 – Sun Microsystems za US$73.5 miliónů, SUN měl 42 tisíc zaměstnanců, téměř každý Unix workstation a Windows laptop
StarOffice 5.2 volně k dispozici pro osobní použití, později free/open­source
Spolupráce s firmami Novell, RedHat, RedFlag CH2000, IBM, Google a množstvím dobrovolníků
Redesign na UNO components, XML formát a další
OASIS ODF (XML) – OpenOffice v2.0, KOffice a další
Licence: CDDL→LGPLv3 (Go­oo + LGPL)
Systémy: Microsoft Windows, Mac OS X, Linux, BSD, Unix
SVG ostuda, GSoC 2008 není pro SUN, podobná Eclipse a IBM
Open­source programování http://rtime.felk.cvut.cz/osp/
12
X11, Xfree86, Xorg 1983 ­ Projekt Athena (DEC, MIT a IBM) – vzdálený přístup, synchronní protokol W
1984 – Bob Scheifler a Jim Gettys, MIT, přepracovali na asynchronní – X1, 5× zrychlení, první nezávislý na HW a dodavateli
Principy
Přidávat funkce pouze, pokud bez nich nejde aplikace napsat
Nesnažit se řešit vše, raději rozšiřitelnost
Horší než generalizace je již pouze generalizace bez příkladu
Dokud tomu zcela nerozumíš, raději to nedělej
Když 10% práce stačí na 90% záměru tak se s tím spokoj
Omez složitost jak to jen jde
Definuj mechanismy raději než politiku, tu nech na uživateli, aplikaci
1988 – MIT X Consortium
1996 – rozpad, komercializace, X11R6.3
1997 – The Open Group, OSF X/Open, 1998 Xfree86, cathedral
2004 – lidé (Keith Packard a další) z X.Org a freedesktop.org založili
X.Org Foundation a X Consortium jim svěřilo doménu X.org
13
Open­source programování http://rtime.felk.cvut.cz/osp/
X11 ­ architektura
Accelerated X11 3D and 2D graphics
User's workstation
Keyboard
Screen
Mouse
X Server
X client
(browser)
X client
(xterm)
Aplikace
Local DRI
OpenGL
GLX
AIGLX
xyz_drv.so
Xorg/Xserver
Network
Desktop/WM
Compositor
Xgl (Xglx∨Xegl)
xyz_dri.so
Mesa/DRI
libdrm
libdrvmxyz
drm.ko
xyz.ko
X client
(up2date)
Remote machine
Linux kernel
Budoucnost: EGL+Wayland, Gallium3D+DRM+DRI2, KMS, GEM
Open­source programování http://rtime.felk.cvut.cz/osp/
14
Apache
http://httpd.apache.org
Web server from the Apache Foundation
License: Apache license (BSD type)
The most popular web server on Internet since April 1996!
http://news.netcraft.com/archives/web_server_survey.html
Supported platforms:
Unix and Windows NT
Main developers:
community
15
Open­source programování http://rtime.felk.cvut.cz/osp/
MySQL
The most popular Open Source database server
http://www.mysql.com
License: GNU GPL
Main developers: MySQL AB
Make money on service and
on selling commercial licenses
Fast and easy to configure
Nice market share!
Source: JoinVision E­Services GmbH, July 2006
http://www.mysql.com/why­mysql/marketshare
16
Open­source programování http://rtime.felk.cvut.cz/osp/
LAMP
Linux Apache MySQL PHP
Popular acronym referring to the successful combination of these 4 technologies to implement dynamic websites.
“P” can also stand for other scripting languages,
such as Python or Perl.
See http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29
17
Open­source programování http://rtime.felk.cvut.cz/osp/
OpenStreetMap
License
Haiti/Earthquake rescue teams support
CC­BY SA 2.0
Open Database License (OdbL)
JOSM Editor
Slippy Map
osm2pgsql
PostGIS
planet.osm XML 160 GiB (7.3GiB bzip2)
18
Open­source programování http://rtime.felk.cvut.cz/osp/
Open Database License (OdbL)
You are free:
To Share: To copy, distribute and use the database.
To Create: To produce works from the database.
To Adapt: To modify, transform and build upon the database.
As long as you:
Attribute: attribute in the manner specified in the ODbL. Keep intact any notices on the original database.
Share­Alike: for all database adaptations and all derived works, provide database under the ODbL.
Keep open: you can redistribute the database, or an adapted version with technical restrictions (such as DRM) as long as you also redistribute a version without such measures.
Open­source programování http://rtime.felk.cvut.cz/osp/
19
Blender a svobodná filmová tvorba
Blender (http://www.blender.org)
Otevřený software pro 3D animace
Původně interní vývoj holandského NeoGeo studia a Not a Number Technologies (NaN) 1998. Hlavní autor Ton Roosendaa
V roce 2002 odkoupen komunitou za €100,000 a licencován pod GPL
Použitý i při tvorbě komerčních filmů Spider­Man 2, Friday or Another Day, The Secret of Kells, historické dokumenty …
Použitý při svobodné tvorbě – Elephants Dream … Sintel
20
Open­source programování http://rtime.felk.cvut.cz/osp/
Hackerspace
BrmLab – Praha (http://brmlab.cz/)
Participace na mnoha projektech – Arduino, …
Shackspace (http://shackspace.de/)
Hackerspace Global Grid (HGG) – propojení s projektem Constellation
21
Open­source programování http://rtime.felk.cvut.cz/osp/
Otevřený hardware ­ Ronja
Ronja (http://ronja.twibright.com/) – Reasonable Optical Near Joint Access
Otevřený projekt návrhu optických dvoubodových spojů – běžný dosah 1.4km, 10Mbps full duplex
22
Open­source programování http://rtime.felk.cvut.cz/osp/
Další HW projekty
DSO Quad (http://www.seeedstudio.com/wiki/DSO_Quad)
kapesní čtyřkanálový osciloskop 4 (72MS/s)
ARM Cortex M3 (STM32F103VCT6) + FPGA
Bus­pirate – analyzátor sběrnic
JTAG, programátor, analyzátor
Flash, AVR, ARM, http://dangerousprototypes.com/bus­pirate­manual/
Neo FreeRunner a GTA04 (http://www.gta04.org)
Vývoj open hardware mobilního telefonu
800 MHz TI OMAP3 (ARM Cortex A8), 3D Graphics, 512 MB RAM, 512 MB Flash, Micro­SD, HSPA UMTS, GPS, Navigation Sensors, WLAN, Bluetooth, OTG2.0 23
Open­source programování http://rtime.felk.cvut.cz/osp/

Podobné dokumenty

vysoké učení technické v brně tvorba vlastních map z

vysoké učení technické v brně tvorba vlastních map z zdroj zdroj dat pro ČR, důležité je, že zde můžeme stáhnout historická data až do roku 2007.

Více

Průvodce

Průvodce tisk a obálka nebyly tak kvalitní jako v současnosti. Teprve od roku 1998 byl pod názvem „KATALOG“ určen pro širší veřejnost a od dalšího roku 1999 nesl již tradiční název „PRŮVODCE NÁVŠTĚVNÍKA“. B...

Více

Nástroje pro vývoj aplikací a jejich vazba na case

Nástroje pro vývoj aplikací a jejich vazba na case snížení nákladů na vývoj, kvalitnější a lepší návratnost investic, rychlejší využívání nových technologií a lepší znovu použití již vytvořených modelů. Hlavní myšlenkou je oddělit technické aspekty...

Více

Open Source Programování - Introduction GNU - Real

Open Source Programování - Introduction GNU - Real © Copyright 2004­2010, Pavel Píša, Michal Sojka, František Vacek,  Free­Electrons.com, GNU.org, kernel.org,  Wikipedia.org, distrowatch.com Creative Commons BY­SA 3.0 license Latest update: 17. V 2...

Více

Open Source Programování

Open Source Programování http://rtime.felk.cvut.cz/osp/ Pavel Píša http://cmp.felk.cvut.cz/~pisa Michal Sojka František Vacek DCE FEL ČVUT

Více

Elektronická verze - Zpravodaj Československého sdružení

Elektronická verze - Zpravodaj Československého sdružení her od Pavla Stříže; o grantovém programu Google Summer of Code a idejích TUG za poslední dva roky (za překlady děkujeme Marcelu Svitalskému).

Více

Srovnání alternativních implementací DirectX

Srovnání alternativních implementací DirectX d3dgl Direct3D driver for OpenGL

Více

Demonstrační robotická platforma - Real-time laboratoř

Demonstrační robotická platforma - Real-time laboratoř bylo při návrhu vycházet z konstrukce použité robotickým týmem Flamingos [23] z katedry řídicí techniky při mezinárodní soutěži Eurobot [10] v roce 2010. Většina součástí hardware i software robotu...

Více

Mobilní navigace v Linuxu

Mobilní navigace v Linuxu Mobilní navigace v Linuxu

Více

Mobilní zranitelnosti

Mobilní zranitelnosti banky se předhánějí, která nabídne lepší aplikaci pro smartphone lidé zadávají přihlašovací údaje do téhož zařízení, do kterého následně přichází ověřovací zpráva kompromitace mobilního zařízení ná...

Více