26.4. 15:15 | Kurssin vika uusintatentti on vajaan kuukauden päästä, 16.5. klo 13-16 sali T2. Ilmoittautuminen Topin kautta, auki on. |
3.2. 15:40 | Miika pitää vastaanoton harkkatöistä pe 9.2. klo 16-17. Tuolloin voi kysellä omasta harkkatyöstään - Miika käsittelee mahdolliset huomautukset arvosteluista tuolloin, ei sähköpostitse. Salina on A106. |
1.2. 23:41 | Kurssin tulokset on alla mainitun linkin takana. Harkkatöistä Miika järjestää palautetilaisuuden, ajan ilmoitan tällä sivulla. Kaikista harkkatöistä on Miika kirjannut lyhyen arvostelun. Sen saa minulta sähköpostitse. |
31.1. 10:11 | Harkkatöiden arvostelun pitäisi valmistua tänään. Pistän lopputulokset sitten heti verkkoon. Tulokset tulee tänne. |
1.1. 20:30 | Kurssin seuraavat uusinnat ovat: pe 12.1., 13-16, T1 ja ti 6.3., 9-12, T1. Kannattaa katsoa vielä tuolta mahdolliset muutokset. |
20.12. 22:38 | Kun joululomat pukkaavat päälle, omaan tenttivastaukseen ja sen arvosteluun voi tulla tutustumaan huoneeseeni A104 keskiviikkona 3.1. Olen paikalla todennäköisesti väh. klo 10-17. Jos tuo on vaikea päivä, ilmoittele, niin katsotaan toinen aika. |
20.12. 22:38 | Uusintatentti tarvittaneen piakkoin, sillä osa kurssilaisista ei päässyt tähän tilaisuuteen. Koitan saada uusinnan esim. ke 10.1. |
20.12. 22:36 | Tentit on korjattu ja tulokset tuolla. Tentissä oli 19 paikalla, ketään ei hylätty. |
14.12. 11:15 | Tarkennuksena harkkatöiden arvosteluun, Miika arvostelee lopullisesti kaikki työt kerralla. Kun toisen harkan deadline on vuoden loppu, tarkempi arvostelu ja palaute tulee tammikuussa. Tentin korjaan mahd. pian, ennen joulua. |
13.12. 20:56 | Kurssipalautteet on siis tuolla |
13.12. 20:44 | Muistakaa kurssipalaute. Pidin kurssin ekaa kertaa ja olisi hyvä tietää, esim. oliko homma turhaa, vai olisiko tälle tarvetta toistekin (joko samanlaisena tai jotenkin muutettuna, miten?) |
13.12. 20:40 | Miika on katsonut ekat harkkatyöt läpi. Jos haluat tarkan palautteen, ota yhteyttä Miikaan. Yleisiä kommenteja: testausta saisi parantaa, esim. morsetusohjelmat sekoilivat "haastavilla" lähdemateriaaleilla, lokifilen käsittely (esim. yksi ohjelmisto oletti, että lokifile oli jo olemassa eikä käynnistynyt muuten), kirjoittakaa selkeästi, mikä ohjelma on kyseessä ja miten sitä käytetään, muutamilla oli miltei olemattomat oppimispäiväkirjat (tulee pahasti miinusta). |
7.12. 17:29 | Lopulliset osan 2 kalvot on ladattu. |
7.12. 17:29 | Latasin uudet korjatut luentojen osan 2 esimerkit. Noissa on jonkinverrran korjauksia ja parannuksia alkuperäisiin verrattuna. |
30.10. 13:26 | Toisen periodin luennot aiheet menevät seuraavasti: 2.11. Prosessien välinen kommunikointi, 16.11. Inter-process communication (IPC) eli semaforit/jaettu muisti/viestijonot, 23.11. Säikeet ja lopulta 7.12. Muuta sekalaista ja mielenkiintoista. |
23.10. 22:48 | On tullut kyselyjä harkkatöiden aiheiden valitsemisesta ja ilmoittamisesta. Kukin opiskelija valitsee itse itseään kiinnostavan aiheen. Kuulemme mielellään etukäteen, mitä kukin valitsi, mutta ilmoittaminen ei ole ehdoton vaatimus. |
19.10. 20:23 | Kalvot on päivitetty, samoin esimerkkikoodit. |
28.9. 13:30 | Hyvä artikkeli tyypillisistä koodausvirheistä. Kannattaa lukea. |
28.9. 10:26 | Luentojen aiheista: tällä viikolla käyn läpi pääosin tiedostojen käsittelyn, ensi viikolle saattaa jäädä vielä hieman tiedostojen käsittelyä, mutta pääaihe on signaalit. Viides luento on sitten prosessien hallintaa ja kuudennelle luennolle jää sitten siirräntä. |
28.9. 10:13 | Tuo mun kirjasto+Makefile esimerkki autotools-työkalujen kanssa on korjattu. Eilisessä versiossa oli pieni kauneusvirhe, joka kyllä tuotti ihan oikean ohjelman, mutta hieman hassusti. Pienenä tarkennuksena tuohon Miikan ohjeeseen, Miikan ohjeet aina tuohon autogen.sh-skriptin ajamiseen tarvitsee tehdä vain kerran, kun projekti on pääosin kasassa. Jatkossa riittää vain ajaa "./configure", joka tarkastaa käännösympäristön ja luo Makefile-tiedoston, ja lopuksi vain "Make", joka kääntää lopullisen ohjelman. |
27.9. 18:19 | Kurssin tentti on 15.12. klo 13-16 T1:ssä |
27.9. 18:19 | Sain hyvää palautetta kurssin ensimmäisen osan kalvoista. Uudet kalvot lisätty. Kiitos Miikalle, Hannu Peltolalle ja erityiskiitos Heikki Kallasjoelle. |
27.9. 18:18 | Kurssin kirjasto- ja Makefile esimerkistä on tehty uusi versio, jossa on käytetty Miikan alla mainittua ohjetta. |
27.9. 18:15 | Lisäsin koodiesimerkkeihin luennolla mainitsemani projektin, jossa on esimerkki Makefilesta ja kirjaston tekemisestä. |
25.9. 18:10 | Miika Komu teki ohjeen autoconf-työkalujen käyttämiseen. |
25.9. 18:10 | comp.lang.c Frequently Asked Questions sivustolla on hyvä lista kysymyksiä ja vastauksia C-kielen ominaisuuksiin. Kannattaa tutustua. |
2.9. 17:05 | Kurssille on perustettu uusi uutisryhmä "opinnot.tik.unix" ja palvelinhan on otax.tky.hut.fi |
30.8. 17:19 | Kurssille on nyt luotu toteutus webtopiin. Ilmoittautuminen alkaa 1.9. klo 09:00. |
30.8. 13:03 | Ensimmäisen periodin kalvot on lisätty, samoin harjoitustyön ohje ja aiheita sekä esimerkkikoodeja luentoihin. Tenttipäivää en vielä tiedä, mutta se on toisen periodin päätteeksi. TOPI ilmoittautuminen avautuu, kunhan saan TOPIn toimimaan...;) |
23.8. 16:52 | Pääosa päivämääristä pitäisi olla kohdallaan. Luentoja on siis 10 x 3h. Tentin päivämäärä ja paikka pitää lisätä kun saan tiedon. |
9.8. 14:10 | Sivu luotu, pääosa sisällöstä on kirjattu (lisää infoa tulee myöhemmin). Päivämäärät ja materiaalit ovat vielä päivittämättä. |
Opettaja: Professori Jukka Manner
Assistentti: Miika Komu (päävastuu harjoitustöiden ohjaus ja tarkastus, email miika ät iki.fi)
Luennot: Torstaisin 14.9. - 19.10. ja 2.11. - 7.12, kello 14-17 sali T2
(Luentoa ei ole torstaina 9.11. eikä näillä näkymin torstaina 30.11.)
Kurssillä opiskellaan ja harjoitellaan monimutkaisempien ja edistyneempien C-kielisten ohjelmistojen tekoa. Läpi käytäviä palveluja ovat mm. prosessin ympäristön hallinta, tiedostojen- ja hakemistojen käsittely, prosessien ja säikeiden luonti ja hallinta, ja prosessien välinen kommunikointi eri muodoissaan. Käytännössä kyse on yleisesti hyväksytyistä C-kielisistä funktiokutsuista ja niiden oikeaoppisesta käytöstä. Mitä nämä funktiokutsut sitten ovat?
The Single UNIX Specification, Version 3 (UNIX03) on rajapintamäärittely, jolla pyritään yhtenäistämään käyttöjärjestelmän palveluiden käyttö erilaisissa ohjelmissa. UNIX03 muodostaa määrittelyn, jonka tarkoitus on antaa tarkka muoto UNIX-nimiselle käyttöjärjestelmälle. UNIX03 on laaja määrittely ja tällä kurssilla keskitytään lähinnä osaan "System Interfaces" ja yhden koneen sisällä tapahtuviin temppuihin.
Kurssilla perehdytään UNIX03-määrittelyn alaisiin funktiokutsuihin ja opiskellaan niiden käyttöä omissa ohjelmissa. Linux-käyttöjärjestelmä toteuttaa UNIX03-määrittelyn lähes täysin. UNIX03 on jatkoa ns. X/Open- ja POSIX-standardeille.
Kurssille otetaan korkeintaan 50 opiskelijaa. Ilmoittautuminen TOPIn kautta.
Kurssin jälkeen opiskelijoiden pitäisi kyetä luomaan monipuolisia C-kielisiä ohjelmia Linux-ympäristössä. Opittuja toimintoja ovat ohjelman ympäristön hallinta, tiedostojen käsittely, signaalien käsittely, prosessien luonti ja hallinta, prosessien välinen kommunointi eri muodoissa sekä säikeiden luonti ja käsittely.
Koska kurssilla pyritään keskittymään UNIX03-määrittelyn mukaisiin funktiokutsuihin ja niiden käyttöön, pitää opiskelijoiden hallita entuudestaan käyttöjärjestelmien toiminta ja C-ohjelmoinnin perusteet. Opiskelijalla pitää siis olla taustaosaaminen seuraavilta kolmelta alueelta:
Kurssi on jaettu kahteen osaan:
Osa I (luennot 14.9. - 19.10):
Osa II (luennot 2.11. - 7.12.):
Kurssi muodostuu luennoista ja harjoituksista, sekä kurssikokeesta. Kurssilla ei ole tavallisia laskuharjoituksia.
Kurssi on jaettu kahteen osaan. Ensimmäinen osa sisältää kuusi luentokertaa ja toinen neljäa tai viisi. Kummankin osan jälkeen tehdään pienimuotoinen harjoitustyö. Harjoitustyönä palautetaan C-kielinen lähdekoodi sekä oppimispäiväkirja.
Kurssin maksimipisteet ovat 60 pistettä, joista 40 voi saada tentistä ja 20 pistettä harjoitustöistä (10 kummastakin harjoitustyöstä). Molemmat harjoitustyöt pitää suorittaa hyväksytysti, ts. vaikka saisi täydet pisteet tentistä, ei kurssia läpäise tekemättä molempia harjoitustöitä.
Kurssitentti on pe 15.12.2006 klo 13-16 salissa T1. Tarkista mahdolliset viime hetken muutokset vielä täältä.
Kurssia ei voi suorittaa pelkällä tentillä.
Harjoitus on C-kielinen ohjelma, jossa käytetään luennoilla esiteltyjä funktiokutsuja. Tarkoitus on harjoitella luentojen asioita omakohtaisesti. Harjoitukset tehdään yksin.
Harjoituksena tuotetun ohjelman pitää sisältää tietty määrä luennoiduista menetelmistä. Ohjelman ei varsinaisesti tarvitse tehdä mitään kovin järkevää, kunhan työssä on selvästi harjoiteltu luennoitujen funktoiden käyttöä (lue: "sika makee" ja monipuolinen ns. Hello World-sovellus kelpaa mainiosti).
Aiheita annetaan pääosin kurssin vetäjien toimesta. On myös mahdollista (ja itse asiassa kovin toivottavaa) toteuttaa oma aihe, kunhan siitä erikseen sovitaan, ja syntynyt ohjelma käyttää riittävässä määrin luennoituja menetelmiä.
Erikseen on myös mahdollista palauttaa aikaisemmin tehty ohjelma, joka täyttää edellämainitut kriteerit. Tällöin opiskelijan on osoitettava, että työ on hänen itsensä tekemä. Mukaan pitää kuitenkin kirjoittaa oppimispäiväkirja työstä.
Kustakin harjoitustyöstä palautetaan C-kielinen lähdekoodi sekä oppimispäiväkirja.
Arvostelu tapahtuu pääosin seuraavien periaatteiden mukaan:
Luennot pidetään T-talon salissa T2 torstaisin 14-17.
Tarkkoja aiheita joka luennolle en halua veikata - katsotaan miten edistymme.
Harjoitustyöt pitää palauttaa seuraavasti:
Palautus sähköpostitse Jukalle ja Miikalle.
Osa 1 ruudulla katsomista varten, ei tulostettavaksi
Osa 2 ruudulla katsomista varten, ei tulostettavaksi
HT aiheita 1. ja 2. työhön (v.1.0)
Kurssi kattaa laajan alueen ja yhtä kattavaa teosta ei liene olemassa.
Mitään yksittäisiä kirjoja ei käydä läpi, mutta asioiden syvällisempään
opiskeluun ja muutenkin hyväksi taustamateriaaliksi, sekä "omaa
käsikirjastoa" ajatellen seuraavat teokset ovat hyviä valintoja.
W. Richard Stevens, Stephen A. Rago, Advanced Programming in the
UNIX® Environment, 2nd Edition, Addison-Wesley, 2005.
Marc J. Rochkind, Advanced Unix Programming, Second Edition,
Addison-Wesley, 2004.
Ensin mainittu on todellisen klassikon uusi painos. Ensimmäinen painos on vuodelta 1992 ja tänä vuonna on vihdoin kirja päivitetty, tosin ilman alkuperäistä kirjoittajaa, sillä Richard Stevens jätti tämän maailman muutama vuosi sitten. Jälkimmäinen kirja oli viime vuoden X/Open-sovellusohjelmointi kurssin oppikirjana ja sitä löytyy Kumpulan kirjastosta useampi kappale. Ne, jotka eivät missään nimessä halua ostaa kirjaa, käyttänevät kirjaston palveluja. Ne, joita aihe kiinnostaa ja, jotka uskovat tarvitsevansa tietoa jatkossa, suosittelen Stevensin kirjan hankkimista (nimim. "itsekin Stevensin kirjan hankin opiskeluaikoina").
Jokin kirja on hyvä olla, sillä kirjoista saa aina paremman kuvan siitä, miten funktioita oikeasti käytetään. Linuxin manuaalisivuista löytää kaikki funktiot ja niiden parametrit, mutta esimerkkejä koodista, jossa funktiota käytetään ei yleensä ole. Googlettamalla ei myös välttämättä löydä yhtä hyviä ja selkeitä esimerkkejä kuin kirjoista löytyy.
Alla on lueteltu muita mielenkiintoisia ja hyviä kirjoja hieman kurssia laajemmalta alueelta.
The responsible author of this page is Webmaster, <webmastertml.hut.fi>.
Page last updated on Fri, 16 Sep 2005 10:13:58
+0300.
URL: http://www.tml.tkk.fi/Opinnot/T-110.6120/2006/unso/