Upload
kalli
View
106
Download
0
Embed Size (px)
DESCRIPTION
การพัฒนาระบบ โดยใช้ซอฟต์แวร์โอเพนซอร์ส และฟรีแวร์. ศารทูล คัมมกสิกิจ หน่วยปฏิบัติการวิจัยพัฒนาซอฟต์แวร์โอเพ่นซอร์ส ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ NECTEC. เนื้อหา. FreeSoftware ซอฟต์แวร์โอเพนซอร์สคืออะไร ฟรีแวร์คืออะไร การพัฒนาและเครื่องมือที่ใช้พัฒนาระบบ - PowerPoint PPT Presentation
Citation preview
การพฒันาระบบโดยใชซ้อฟต์แวรโ์อเพนซอรส์
และฟรแีวร์
ศารทลู คัมมกสกิิจหน่วยปฏิบติัการวจิยัพฒันาซอฟต์แวรโ์อเพน่ซอรส์
ศูนยเ์ทคโนโลยอิีเล็กทรอนิกส์และคอมพวิเตอรแ์ห่งชาติ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, high-performance, 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 ตัวกลางสำาหรบัภาษาท่ีใชพ้ฒันาอันหลากหลาย http://incubator.apache.org/thrift/
ตัวอยา่งการใชง้านโอเพนซอรส์– Varnish ตัวเสรมิประสทิธภิาพของ HTTP
http://www.varnish-cache.org/– ขอ้มูลทัง้หมดจาก
http://www.blognone.com/news/16872 http://royal.pingdom.com/2010/06/18/the-software-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)
– LAMP=Linux Apache MySQL PHP
– WAMP=Windows Apache MySQL PHP
• Core FTP• File Zilla
• PDF Creator• Putty• Database
(MySQL or Pgsql)
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
ตัวอยา่งผลงานที่ได้รบัรางวลั