Transcript Open source

การพัฒนาระบบ
โดยใช้ซอฟต์แวร์โอเพนซอร์ส
และฟรี แวร์
ศารทูล คัมมกสิ กจ
ิ
หน่วยปฏิบต
ั ก
ิ ารวิจย
ั พัฒนาซอฟตแวร
โอเพ
นซอร
ส
่
์
์
์
ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ
NECTEC
เนื้อหา
• FreeSoftware
•
•
•
•
•
ซอฟตแวร
โอเพนซอร
สคื
์
์
์ ออะไร
ฟรีแวรคื
์ ออะไร
การพัฒนาและเครือ
่ งมือทีใ่ ช้พัฒนาระบบ
ตัวอยางซอฟต
แวร
โอเพนซอร
ส
่
์
์
์
การสอบเกีย
่ วกับซอฟตแวร
โอเพนซอร
ส
์
์
์
FreeSoftware
•
•
•
•
•
Free = Freedom != Free pay
0. RUN
1. Study
2. Redistribute
3. Distribute
• ขอ
่ ตัวเอง
้ 0-1 ทาเพือ
• ขอ
่ คนอืน
่
้ 2-3 ทาเพือ
แนวคิดซอฟต์แวร์โอเพนซอร์ส
• แนวคิด ซอฟตแวร
โอเพนซอร
สเริ
่ มาจาก
์
์
์ ม
เสรี
แนวคิด ซอฟตแวร
(free software)
์
์
• Free = freedom != free pay
• เสรีภาพทีจ
่ ะใช้งานซอฟตแวร
ตามต
องการ
์
์
้
• เสรีภาพทีจ
่ ะศึ กษาการทางานของโปรแกรม
ผานซอร
สโค
ด
่
์
้ และนาไปใช้ตามตองการ
้
• เสรีภาพทีจ
่ ะจาหน่ายจายแจกซอฟต
แวร
นั
่
์
์ ้น
• เสรีภาพทีจ
่ ะดัดแปลงแกไขเพิ
ม
่ เติม
้
ซอฟต์แวร์โอเพนซอร์ส
• ซอฟตแวร
ที
้ด
์
์ เ่ ปิ ดเผยซอรสโค
์
• อิสระในการ ใช้งาน (RUN)
ศึกษา (STUDY)
อิสระในการ เผยแพร่ (Redistribute)
อิสระในการ แก้ไขปรับปรุง(เมือ
่ นาไปเผยแพร่ต่อ
จะต้องใช้สญ
ั ญาอนุญาตเดิม)(Distribute)
• อิสระในการ
•
•
• โปรงใสและตอบสนองผู
ว
่
้ใช้อยางรวดเร็
่
• มีผ้พั
ู ฒนาทัว่ โลก
ฟรี แวร์
•
•
•
•
•
ไมมี
่ คาใช
่
้จายในการใช
่
้งาน
จากัดการใช้งานโดยเจ้าของลิขสิ ทธิ ์
ไมเปิ
ด
่ ดเผยซอรสโค
์
้
ไมมี
่ นแปลงแกไข
่ สิทธิใ์ นการเปลีย
้
ไมมี
่ สิทธิใ์ นการนามาศึ กษา
การพัฒนางานแบบโอเพนซอร์ส
• ตอยอดจากโปรแกรมที
ม
่ อ
ี ยูแล
่
่ ว
้
– Kernel
– Apache
– Firefox
• พัฒนาใหมทั
่ ง้ หมด
• สั ญญาอนุ ญาตแบบเปิ ด เช่น GPL, GNU GPL
ตัวอย่างการใช้งานโอเพนซอร์ส
• Facebook
– Memcached (Free & open source, highperformance, distributed memory object
caching system) เป็ นตัวกลางระหวางเว็
บ
่
เซิรฟเวอร
กั
่ ไมให
ยกขอมู
้ ล เพือ
่ ้ตองเรี
้
้ ล
์
์ บฐานขอมู
บอยครั
ง้ http://memcached.org/
่
– Hiphop for PHP พัฒนาเองโดย facebook ทา
หน้าที่ แปลงโค้ด PHP เป็ น C++ แลวจากนั
้นคอย
้
่
แปลง C++ เป็ นไบนารีดวย
้ g++ ซึง่ เป็ น C++
compiler ในชุด GCC มาตรฐานของโครงการ
GNU http://github.com/facebook/hiphop-php
ตัวอย่างการใช้งานโอเพนซอร์ส
– Cassandra ฐานขอมู
้ ลแบบกระจายตัว
http://cassandra.apache.org/
– Scribe ระบบจัดการ log file ทางานเป็ น server
รอรับ stream ของ log file
http://github.com/facebook/scribe
– Hadoop ระบบ map/reduce กระจายงานการ
วิเคราะหข
cluster
้ ลขนาดใหญในระบบ
่
์ อมู
– Hive ระบบทีใ่ ช้ SQL กับ Hadoop
http://hadoop.apache.org/
– Thrift ตัวกลางสาหรับภาษาทีใ่ ช้พัฒนาอัน
ตัวอย่างการใช้งานโอเพนซอร์ส
– Varnish ตัวเสริมประสิ ทธิภาพของ HTTP
http://www.varnish-cache.org/
– ขอมู
้ ลทัง้ หมดจาก
http://www.blognone.com/news/16872
http://royal.pingdom.com/2010/06/18/thesoftware-behind-facebook/
•
•
•
•
•
•
•
Tools
Editor/IDE
Language
Compiler
HTML Editor
Graphics and Multimedia
Utility
Library
เครื่ องมื่อในการพัฒนาระบบ
• SciTE
• Smart Editor Pro
•
•
•
•
•
•
•
Eclipse
NetBean
JCreator LE
Anjuta
Lazarus
Gambas
vi
Gambas
eclipse
Language
•
•
•
•
•
PHP
C/C++
Python
Free Pascal
MSW Logo
• Java
• C#
• Perl
Freepascal
Compiler
• GCC + automake
• VC
• .NET (Tool ทีเ่ ป็ น Opensource คือ
Mono)
• Java (ควรรันไดภายใต
้
้ OpenJDK)
– ถาส
า่ run บน Linux ตอง
้ ่ งขอเสนอว
้
้
present บน Linux
HTML Editor
•
•
•
•
NVU
Yahoo Site Builder
SciTE
Smart Editor Pro
Graphics Multimedia
•
•
•
•
Audacity
Blender
Cadstd Lite
CAD X11
• Cdex
– Open Source
Digital Audio CD
Extractor
•
•
•
•
Dia
Gimp
Inkscape
etc.
Gimps - Image manipulation
Inkscape - Vector graphics
editor
Blender - 3D / Game Creation
Flash animation
• http://www.salasaga.org/
Game Engines
• จะใช้อันไหนตองดู
เรือ
่ งสั ญญาอนุ ญาตดีด ี
้
• Freeware ส่วนมากจะเอามาใช้ในการ
แขงขั
ขอห
่ งการทาเงิน
่ นไมได
่ เพราะมี
้
้ ้ามเรือ
จากผลงานทีท
่ ากับ Game Engine นั้นๆเช่น
Torque Game Builder, Neoaxis,
UnrealEngine, Unity
• รวม Game Engines
http://en.wikipedia.org/wiki/List_of_game
_engines
Game Engines
ตัวอย่าง Game Engines
•
•
•
•
•
http://cubeengine.com
http://www.ogre3d.org
http://raydium.org/
http://ioquake3.org/
http://www.blender.org/
Utility
• EasyPHP(WAMP) • PDF Creator
– LAMP=Linux
• Putty
Apache MySQL
• Database (MySQL
PHP
or Pgsql)
– WAMP=Windows
Apache MySQL
PHP
• Core FTP
• File Zilla
easyphp
ตัวอย่าง Library opensource
•
•
•
•
•
Library ตางๆที
อ
่ ยูใน
่
่ Linux เช่น
Libssh
Libopengl
Zlib
libx11
ตัวอย่างซอฟต์แวร์โอเพนซอร์ส
•LinuxSIS
•LinuxTLE
•OpenOffice.org
•Mozilla Firefox
•Thunderbird
•CMS
•Android
LinuxSIS
•Linux Simple Internet Server
•ระบบปฏิบต
ั ก
ิ ารเซิรฟเวอร
ส
่ งพีซี
์
์ าหรับเครือ
•เวอรชั
์ นลาสุ
่ ด: LinuxSIS 6.5
•พัฒนาจาก: Debian 5.0
LinuxTLE
•Linux Thai Language Extension
•ระบบปฏิบต
ั ก
ิ ารสาหรับเครือ
่ งพีซห
ี รือโน้ตบุค
•เวอรชั
่ ด: LinuxTLE 9.0
์ นลาสุ
•พัฒนาจาก: Ubuntu 7.10
OpenOffice.org
•ซอฟตแวร
ส
บ MS-Office
้
์
์ านักงานคลายกั
•มาตรฐานเปิ ดในรูปแบบ XML
•ทางานไดหลายแพลตฟอร
ม
้
์
•มีหลายภาษา
•ใช้งานรวมกั
บโปรแกรมสานักงานอืน
่ ได้
่
•ส่งออกเป็ นเอกสาร PDF
•ในชุดประกอบดวย
Writer, Calc, Impress, Base,
้
Draw
OpenOffice – Writer
OpenOffice – Calc
OpenOffice – Impress
Mozilla Firefox – Web browser
Thunderbird – Email client
Content Management System: CMS
•Drupal
•Joomla
•LearnSquare
•Moodle
Drupal
LearnSquare
Moodle
แหล่งข้อมูลเพิม่ เติม
•www.opentle.org
•www.sf.net
•www.openoffice.org
•www.mozilla.org
•www.gimp.org
• www.easyphp.org
• www.freepascal.org
• www.jcreator.com
•www.netbeans.org
•www.eclipse.org
•projects.gnome.org/anjuta
•www.inkscape.org
•www.blender.org
•www.drupal.org
•www.joomla.org
•www.moodle.org
ตัวอย่างผลงานที่ได้รับรางวัล
• http://203.185.132.234/community/changeme:79
ตัวอย่างผลงานที่ได้รับรางวัล