KYMENLAAKSON AMMATTIKORKEAKOULU

Samankaltaiset tiedostot
Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

Ohjelmointi Linuxissa. Sisällysluettelo. 1. Mitä tarvitaan sovellusten tuottamiseen? Tehnyt: Antti Martikainen ( )

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

Laiteläheinen C-kieli, mitä C-käännösprosessissa tapahtuu

.NET ajoympäristö. Juha Järvensivu 2007

Simulaattorin asennus- ja käyttöohje

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Valppaan asennus- ja käyttöohje

Ohjelmien lisensoinnista

UCOT-Sovellusprojekti. Asennusohje

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Avoimen lähdekoodin kehitysmallit

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Historiaa. Unix kirjoitettiin kokonaan uudestaan C-kielellä Unix jakautui myöhemmin System V ja BSDnimisiin. Kuutti, Rantala: Linux

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Scratchbox ja Maemo. Nokia 770 Internet Tablet-ohjelmistokehitys. Timo Savola. Movial Oy. FUUG:in kevätristeily

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

Jouko Nielsen. Ubuntu Linux

Kieliversiointityökalu Java-ohjelmistoon. Ohje

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Hellä ensikosketus. Tomi Kiviniemi

BL40A1810 Mikroprosessorit, harjoitus 1

WINE API ja Virtualisointiohjelmistot

UBUNTU. UBUNTU - Peruskäyttö. Työpöytä. GNU Free Documentation License. Sisäänkirjautuminen. Yläpaneelissa on kolme valikkoa. Paneelit ja valikot

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER

Asentaminen Bionic Beaver

Open source historia. Timo Nyyssönen

4. Lausekielinen ohjelmointi 4.1

Maiju Mykkänen Susanna Sällinen

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

KYMENLAAKSON AMMATTIKORKEAKOULU. Tietoverkkotekniikka. Wine API sekä virtualisointiohjelmistot. Linux. Lukukausi: Kevät Työ valmistui: 8.4.

Ei raportteja roskiin

Mathcad Flexnet lisenssipalvelimen asennus

JOHDANTO... 5 PÄÄKONFIGURAATIOTIEDOSTO KIELET KÄYNNISTÄMINEN JOHDANTO... 6

Aditro Tikon ostolaskujen käsittely versio 6.2.0

Open Source -ohjelmistot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

4. Lausekielinen ohjelmointi 4.1

Pedacode Pikaopas. Web-sovelluksen luominen

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Kieliteknologian ATK-ympäristö Kuudes luento

8. Näppäimistöltä lukeminen 8.1

Open Source -ohjelmien perusteet

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Demo 13. Aihe: Linux. Opettaja: Antti Ekonoja. Tekijä: Heini Puuska

Checkout lisäosa WooCommerce alustalle (c) Webbisivut.org

Novapoint Lisensiointi. Copyright 2006, ViaNova IT AS. All rights reserved 1

Digi-tv vastaanottimella toteutettavat interaktiiviset sovellukset Selvitys GPL-lisensoinnin tuomat ongelmat

Ohjelmointi 1 / syksy /20: IDE

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joonas Rosenblad. SteamOS-käyttöjärjestelmä

Viestit-palvelun viranomaisliittymän ohjelmointiohje. Java-esimerkki

Alkupiiri (5 min) Lämmittely (10 min) Liikkuvuus/Venyttely (5-10min) Kts. Kuntotekijät, liikkuvuus

SISÄLLYS 1 YLEISTÄ VERSIOT Tukiaika Variaatiot OHJELMISTO Paketinhallinta Komentorivisyntaksi

5. HelloWorld-ohjelma 5.1

Aditro Tikon ostolaskujen käsittely versio SP1

Octave-opas. Mikä on Octave ja miksi? Asennus

Avointen ohjelmistojen käyttö ohjelmistokehityksessä

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

8. Näppäimistöltä lukeminen 8.1

Linux ylläpitäjän opas. Tärkeimmät komennot, logit ja muuta hömppä *^_^* by Hannu Laitinen ETA14KT

15. Ohjelmoinnin tekniikkaa 15.1

Visual Case 2. Miika Kasnio (C9767)

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Javan asennus ja ohjeita ongelmatilanteisiin

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

Innovointiprosessi. Lili Aunimo Lili Aunimo

Aditro Tikon ostolaskujen käsittely versio SP1

Ohjelmointi 1. Kumppanit

Nero 7:n Windows Vista TM -tuki

erasmartcardkortinlukijaohjelmiston

Hannu Valtanen Oy. Linux vi-editori

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi)

Ti LÄHIVERKOT -erikoistyökurssi. X Window System. Jukka Lankinen

OpenOffice toimisto-ohjelma

N300 WiFi USB Micro -sovitin (N300MA)

KYMENLAAKSON AMMATTIKORKEAKOULU. Ubuntu. Yukun Zhou

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

Java Runtime -ohjelmiston asentaminen

Projektin luonti LPCXpressolla

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat, Niina Järvinen & Valtteri Virtanen (muokattu 20.2.

Raspberry Pi. Yhden piirilevyn tietokone. Tässä dokumentissa kerrotaan yleistä tietoa Rasberry Pi- tietokoneesta ja. sen toiminnoista.

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

C-ohjelmointi, syksy Modulaarinen ohjelmointi. Luento C-ohjelmointi Syksy

ELM GROUP 04. Teemu Laakso Henrik Talarmo

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Laiteläheinen C-kieli, yleistä

Modulaarinen ohjelmointi

Vapaat ohjelmat matkalla

DNS- ja DHCPpalvelut. Linuxissa. Onni Kytönummi & Mikko Raussi

Luento 4. Timo Savola. 21. huhtikuuta 2006

Transkriptio:

1 KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka Ole Halonen GNU-ohjelmointityökalut Linux-järjestelmät 206101310 Seminaarityö 22.11.2012

2 Sisällysluettelo 2 1 Johdanto 3 2 GCC 3 3 Make 4 4 Makefile 4 5 GDB 5 6 GNU Emacs 5 7 GNU C Library 6 8 GNU Build system 7 9 GNU Binutils 8 10 Lähteet 9

3 Johdanto GCC GNU on vuonna 1983 syntynyt projekti, jonka alun perin käynnisti ohjelmoija Richard Stallman. Projektin tavoitteena on kehittää täysin vapaa käyttöjärjestelmä. GNU toimii vapaiden ohjelmistojen periaatteiden mukaan ja sen tavoitteena on kehittää täysin vapaa käyttöjärjestelmä. Projektia hallinnoi Free Software Foundation. GNU pyrkii tarjoamaan joukon erilaisia työkaluja ja alustan sovelluskehittäjille. GNU projektin tarpeisiin on luotu lisenssit kuten GNU General Public License (GPL), GNU Lesser General Public License (LGPL) ja GNU Free Documentation License (GFDL). GNU Compiler Collection (GCC) on GNU-projektin ohjelmointikielen kääntäjä, eräänlainen kääntäjien kokoelma. Richard Stallman aloitti GCC:n kehityksen ja se julkaistiin ensimmäisen kerran vuonna 1987. GCC perustuu Free Software Foundationin vapaisiin ohjelmistoihin. GCC on GNU:n kehitysympäristön tärkein osa ja vakiokääntäjänä useissa Unixin kaltaisissa käyttöympäristöissä. GCC on julkaistu GNU GPL ja osin LGPL lisenssien alaisuudessa. GCC on alustariippumaton ja siitä löytyy käännöstuki useille eri ohjelmointikielille. GCC osaa kääntää mm. C, C++, Javaa, Fortrania, Adaa, Objective-C, Objective C++ ja Go: ta.

4 Make Makefile GNU Make on työkalu, joka ohjaa lähdekooditiedostojen kääntämistä ajettaviksi tiedostoiksi. Ensimmäinen make työkalu julkaistiin vuonna 1977 Stuart Feldmanin toimesta. Make toimii GNU GPL-lisenssin alaisuudessa. Useimmiten lähdekoodihakemistossa make-käsky kääntää ohjelman ja make install asentaa sen. Kirjoittamalla komento make check voidaan tarkistaa tehty käännös. Komento make clean taas poistaa luodut tiedot (binäärit) lähdekoodihakemistosta. Make uninstall komento taas poistaa asennetut binäärit järjestelmästä. Makefile on tiedosto, jonka perusteella make kääntää ohjelman lähdekoodin. Makefilet ovat hyödyllisiä etenkin ohjelmoijille, jotka voivat niiden avulla helpottaa ja automatisoida halutun ohjelman käännösprosessin. Makefilen rakenne on seuraavanlainen: kohdetiedosto: lähdetiedosto1 lähdetiedosto2 lähdetiedosto3 <tabulaattori>kääntämiskomennot. Esimerkiksi C- kieliselle hey.c nimiselle ohjelmalle voidaan luoda seuraavanlainen Makefile: hey: hey.c gcc hey.c -o hey. Ohjelma saadaan ajettua ja käännettyä kirjoittamalla komento make samassa hakemistossa. Samassa Makefilessä voi olla myös useimpia käännöskohteita. Näitä käännöskohteita voidaan hyödyntää myös toisesta kohteesta käsin. Make tukee myös erilaisten muuttujien käyttöä Makefilessä. Tämän avulla saadaan tiedostosta helpommin ylläpidettävä ja siirrettävä.

5 GDB GNU Emacs Gdb (GNU Debugger) on GNU-projektin virheenjäljitysohjelma. Gdb:tä käytetään komentoriviltä ja se onkin erittäin tehokas työkalu ohjelmistojen virheiden etsimiseen. Ohjelman ensimmäinen versio julkaistiin vuonna 1986 Richard Stallmanin toimesta osana hänen GNU-projektiaan. Gdb toimii GNU GPL lisenssin alaisuudessa. Gdb tukee useita eri ohjelmointikieliä mm. Ada, C, C++, Objetive-C, Free Pascal, Fortran ja Javaa. Gdb:ssä ohjelman kääntämiseen tarvitaan debug-tietoja. GCC:tä käytettäessä tämä onnistuu kirjoittamalla tai valitsemalla g. Esimerkiksi gcc ohjelma.c o softa g. Gdb käynnistyy komennolla gdb./ohjelma. Tämän jälkeen Gdb:tä käytetään sen omilla komennoilla. Gnu Emacs on monipuolinen tekstieditori, jonka kehityksen aloitti Richard Stallman vuonna 1984. Emacs perustuu GPL-lisenssiin. Emacsia voidaan myös laajentaa Emacs Lisp-ohjelmointikielellä. Emacsin mukana tulee erilaisia työkaluja mm. Genus, Rmail, kalenteri, laskin ja muutamia pelejä. GNU Emacsissa liikutaan tiedostoissa erilaisilla käskyillä. Esimerkiksi C-p komennolla siirrytään rivi ylöspäin ja vastaavasti C-n siirrytään rivi alaspäin. Kun taas C-x C-s tallentaa tiedoston.

6 GNU C Library (glibc,libc) Glibc on Roland McGrathyn kehittämä ja vuonna 1987 ensimmäisen kerran julkaistu ohjelmointikirjasto. Kirjasto tarjoaa tavallisimmat C-kielen toiminnot ja rutiinit ohjelmille. Glibc perustuu GNU:n LGPL lisenssiin. Linux järjestelmissä käytetään yleensä GNU:n C-kirjastoa eli glibciä. Erilaisissa sulautetuissa järjestelmissä saatetaan kuitenkin käyttää muita yksinkertaisempia ja vähemmän resursseja vieviä versioita. Tällaisia versioita ovat mm. dietlibc, uclibc ja newlib. Suuri osa käytössä olevista ohjelmista käyttää kuitenkin libc:tä ja sen päivittäminen epäyhteensopivaan versioon voi saada järjestelmän toimimattomaksi. Tämän vuoksi päivityksessä tuleekin olla erityisen tarkka ja varovainen. 2.16 kesäkuu 2012 x32 ABI tuki, ISO C11,SystemTap 2.15 maaliskuu 2012 2.14 kesäkuu 2011 2.13 tammikuu 2011 2.12 toukokuu 2010 RHEL 6 2.11 lokakuu 2009 SLES 11, eglibc, Debian 6 2.10 toukokuu 2009 2.9 marraskuu 2008 Ubuntu 9.04 Kuva glibc:n versio historiasta versiosta 2.9 ylöspäin.

7 GNU build system (Autotools) GNU build system on GNU-projektin laajalti tuettu ja käytetty kehitystyökalupaketti erilaisten ohjelmien kääntämiseen ja muihin niihin liittyviin kehitystoimenpiteisiin. Autools pyrkii tekemään lähdekoodista helpommin siirrettävää. Pakettiin sisältyy Autoconf, Automake, Autoreconf, Libtool ja Aclocal ohjelmat. Autoconfin tehtävänä on muuttaa configure.in mallitiedosto configure-skriptiksi. Autoconf ja automaken toiminnan viivadiagrammi.

8 GNU Binutils GNU Binutils on kokoelma ohjelmia binäärimuotoisten tiedostojen käsittelyyn. Toimii GNU GPL-lisenssin alaisuudessa. Gnu Binutilssia käytetään yleensä yhdessä GCC, Make ja GNU Debuggerin kanssa. GNU Binutils sisältää seuraavat työkalut: ld linkittäjä as assembly kääntäjä addr2line muuntaa osoitteen tiedostoksi ja rivinumeroksi ar c++filt dlltool windowsin dll tiedostoja tuottava ohjelma gold vaihtoehtoinen ELF-linkittäjä gprof nlmconv nm objcopy objdump ranlib readelf size strings strip windmc windres

9 Lähteet http://www.gnu.org/ http://en.wikipedia.org/wiki/gnu_project http://en.wikipedia.org/wiki/gnu http://www.gnu.org/gnu/thegnuproject.fi.html linux.fi/wiki/ http://fsfe.org/freesoftware/basics/gnuproject.en.html