A kezdetek Azt hiszem, kb. öt nagy IBM számítógép elegendő minden számítási igény kiszolgálására. Thomas Watson Az IBM elnöke 1943 floss.hu linuxprogramozas.hu.

Slides:



Advertisements
Hasonló előadás
A PC gépek szoftverei Kérdés: "Mi az elefánt?" Válasz: "Egér operációs rendszerrel."
Advertisements

Grafikus felhasználó felületek Linux-on
Winnie the pooh & friends
Operációs Rendszerek 2. Harmadik előadás február 19.
SB Eszter SB Application Engine Peter Verhás 2002 április 9.
Az operációs rendszer.
Objective- C Bereczki Gréta Tamara
9. előadás (2005. április 26.) Parancssor argumentum kezelés példák (K&R) Fordítóprogramok A C előfordító 1.
Programozási Nyelvek (C++) Gyakorlat Gyak 01.
A Windows 7 automatizált telepítése Windows AIK használatával
Programozási nyelvek.
10. előadás (2004. április 20.) A C előfordító (folytatás) Néhány hasznos compiler opció Egy tanulságos könyvtári függvény Változó hosszúságú argumentum.
11. előadás (2005. május 10.) A make segédprogram Alacsony szintű műveletek és bitmezők Fájl, katalógus rendszer hívások 1.
Fejlett Programozási Technológiák II. Világos Zsolt 12. gyakorlat.
Borland C/C++ mintapéldák függvényekre. 1. példa Írjunk olyan függvényt amely egy számot kiirat.
Borland C/C++ mintapéldák fájlokra. 1. példa Írjon olyan programot,amely megnyit egy hw.txt fájlt és írja bele a Hello világ szöveget. Ez után zárja le.
Készítette: Martis Zsombor
Az operációs rendszerek
Jelszavak helyes megválasztása, szótáras törés
Ellenőrző kérdések a)Auto-indexing enabled b)Auto-indexing disabled c)Nem eldönthető 1.
Programozás I. Horváth Ernő 1. Elérhetőségek Bauer Péter Horváth Ernő Tanszéki honlap
Krizsán Zoltán.  Ha az algoritmus sokáig dolgozik,  de el akarjuk kerülni a „fagyást”.  Kisebb a költsége, mint az új folyamatnak.  Programozás szempontjából.
Kliensoldali Programozás
C++ alapok, harmadik óra
Rendszeren belül és kívül. Segítség először  Bele a mélyvízbe vagy számoljunk el 10-ig?  Mérjük fel, mit szeretnénk csinálni, gyűjtsük össze kérdéseinket!
PHP III. Fájlok, űrlapok.
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
Grafikus tervezőrendszerek programozása 8. előadás.
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
Készítette: Csíki Gyula
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
A D programozási nyelv Angeli Dávid. Nagy vonalakban  C++  
Az operációs rendszerek feladata, fajtái, felépítése
Készítette: Tóth Gábor
Input – output, adatfolyamok
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Web Architecture. Development of Computing Architectures Monolithic mainframe programming Client Server Real Client Server Web Programming.
Miért is jók a rétegek?  Ha alkalmazást készítünk, nem akarunk IP csomagok küldésével bajlódni Ethernet keretekkel foglalkozni Implementálni megbízható.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 4. Gyakorlat Függvény paraméterek, dinamikus.
A varázslat világába lépsz be... Enter the world of magic …
OPERÁCIÓS RENDSZEREK LINUX – PARANCSSOR.
Szoftverek.
ügyviteli, irodatechnikai, kommunikációs ismeretek
Software - Ismeretek Avagy mitől megy a Hardware.
CUDA C/C++ programozás CUDA C bevezetés A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
2. Operációs rendszerek.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
DLL használata és készítése Feladat
Winnie the pooh & friends
Virgo Augustus 24. – September 23.. Virgo Symbols.
Assoc. Prof. Ján Gunčaga, PhD. Faculty of Education Catholic University in Ružomberok Nyílt forráskódú szoftverek és IKT az oktatásban.
Operációs rendszerek Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia.
A Linux operációs rendszer A Linux felépítése. A UNIX önálló változata. Forráskódja szabadon hozzáférhető->gyors terjedés Szabad szoftver de nem nyilvános.
Grafikus felhasználói felületek Linux alatt. Grafikus Interface A grafikus felhasználói felület (angolul graphical user interface, röviden GUI) olyan,
Programozási nyelvek Programozási alapismeretek
OPERÁCIÓS RENDSZEREK LINUX – PARANCSSOR.
Maven és Ant Build eszközök bemutatása
AGILE COCKTAIL – Shaken or stirred HWSW free!
Alkalmazási réteg protokolljai
“Tudásmegosztás és szervezeti problémamegoldás a mesterséges intelligencia korában” Levente Szabados Technológiai Igazgató.
International Olympiad in Informatics
IT ALAPFOGALMAK OPERÁCIÓS RENDSZEREK.
ResearcherID bemutatása
"Shoes on the Danube Bank”
Unix Linux GNU Copyright kriptográfia
Avagy mitől megy a Hardware
Az operációs rendszerek
Számold meg a fekete pontokat!
Előadás másolata:

A kezdetek Azt hiszem, kb. öt nagy IBM számítógép elegendő minden számítási igény kiszolgálására. Thomas Watson Az IBM elnöke 1943 floss.hu linuxprogramozas.hu

A Multics 1963 – projekt indul A nyertes: GE-645 mainframe, Multics operációs rendszerrel ● lapozott virtuális memória ● démonok ● dinamikus linkelés ● hierarchikus könyvtárszerkezet ● kölcsönösen hívható könyvtári függvények

A Multics nyelvei Az adaptált nyelvek a PL/I-en kívül ● BCPL – a C nyelv elődje ● BASIC ● APL ● FORTRAN ● LISP ● SNOBOL ● C – 1986-ban implementálták ● COBOL ● ALGOL 68 ● PASCAL ● ADA

A UNIX 1969 – A Bell Labs kiszáll a Multics projektből K.Thompson, D.M.Ritchie, M.D.McIlroy és J.F.Ossanna új rendszer fejlesztésébe fognak Egy PDP 7-esen megírják a Space Travel nevű játékot. Ennek farvizén kifejlesztik a UNIX-ot. A BCPL nyomdokain kifejlesztik először a „B” nyelvet majd a C-t.

A UNIX filozófiája ● Írj olyan programot, ami egy dolgot csinál de azt jól. ● Írj olyan programot, ami együttműködik a többivel. ● A programjaid kommunikáljanak szöveg folyamokkal, ez az igazán univerzális interface ● Összefoglalva: ● A Unix olyan keretrendszer, ami lehetővé teszi, hogy egymás munkáira építsenek a programozók.

A legfontosabb események 1969 – kernel, shell, editor, assembler 1971 – az első UNIX manual 1972 – átírják a rendszert C nyelvre 1978 – az első BSD UNIX, az első portolás 1979 – V7, az utolsó „igazi” UNIX; XENIX :-) Andy Tanenbaum elkezdi a Minixet 1982 – Stallman – GNU kiáltvány 1989 – a C programozási nyelv ANSI szabvány

Egy mail, amely megrengette a világot... From: Linus Benedict Torvalds Subject: What would you like to see most in minix? Newsgroups: comp.os.minix Date: :12:08 PST Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.

A user és kernel tér

A filerendszer

Hello World! #include int main (int argc, char* argv[]) { printf ("Hello world!\n"); return (0); } // main

Az eszközeink ● Terminál ● Shell ● C fordító ● Make utility ● Szerkesztő (editor) ● Dokumentáció (man page-ek) ● Debugger (gdb)

A fordítás folyamata

A program és a környezete ● Az input és output, azaz a stdin és stdout ● Minden fájl a Unix-ban: ● f p r i n t f ( stdout, " Hello world !\ n " ); ● Az argumentum lista ● int main ( int argc, char * argv []) ● A getopt és getopt_long ● A hibakezelés

A libraryk, azaz függvénykönyvtárak ● Statikus ● Megosztott ● Dinamikusan betölthető

A memória kezelés ● Néhány nagyon egyszerű függvényen keresztül ● Közvetlen memória hozzáférés nincs ● Az OOM-killer void *malloc(size_t size); void *calloc(size_t nmemb, size_t size); void free(void *ptr); void *realloc(void *ptr, size_t size);

Fájl kezelés ● Uniformizált felület ● open(), close(), read(), write() ● Nem pufferelt, kicsit rendszerközeli, igényli a fcntl() hívásokat ● File system interface, fopen(), fclose() és társai ● Teljes, rugalmas, rendkívül kényelmes felület a filekezeléshez

A folyamatok - processek ● Saját memória terület, nincs „átnyúlás” ● Mint egy virtuális gép ● IPC ● init – fork – exec – kill - wait ● A démonok – a DOS-nál tárrezidens program

Szál kezelés ● Thread ● Egy folyamaton – processen – belül több „alfolyamat” ● Gyors, „olcsó” a létrehozása ● Közös memória, mutex ● Pthread library

Az X programozása ● Kliens-szerver alapú grafikus rendszer ● Hálózati kapcsolat, X protokol ● Xlib, Xtoolkit ● Eszközkészletek: Xaw, Motif ● Rendkívül „fapados” ● A kód nagy része a felület előállítása ● Helyette GTK, Qt, vxWidgets, akármi más

Glib, gdk ● Keresztplatformos alapkönyvtár ● Nem keverendő a glibc-vel! ● Típusdeklarációk ● Eseményhurok kezelés ● Utility-k százai, pl. karakterkezelés, kódlap konverziók, dátumok, listák, stb. ● Makrók ● Gdk – keresztplatformos könyvtár, az eszköz készlet és az ablakkezelő köztes rétege

GTK ● Teljes grafikus eszközkészlet ● GIMP Tool Kit ● Leválás a Gnome-ról ● Printing support ● A GDK-ra és Glib-re épül ● C-ben íródik, de sok nyelvhez van „binding” ● Teljes keresztplatformos, az Ablaxtól a mobil telefonokig a Mac-en át mindenre protolták

Glade ● A felület generálása futásidőben ● libglade vagy gtkbuilder ● Nincs kódgenerálás! ● Integrálható komplett fejlesztőrendszerbe, lásd Anjuta

Az RS232 kezelése ● Minden file, tehát az RS232 port is az ● Nyisd meg, írd/olvasd, zárd be! ● /dev/ttyS0, /dev/ttyS1, és így tovább ● A POSIX terminal interface, #include ● Minden file, de azért vas van mögötte... ● int ioctl(int fd, int request,...); ● Várunk az adatra: ● select(), poll()

A hardver közvetlen programozása ● Átnyúlunk a kernel feje fölött ● Kivételes esetek, szűk lehetőségek ● Printer port, game port ● /dev/port vagy direkt I/O ● read(), write(), … nincs select(), poll() ● int ioperm(unsigned long from, unsigned long num, int turn_on); ● #include, inb(port), outb(value, port) ● Hobbi célokra

Köszönöm a figyelmet! floss.hu linuxprogramozas.hu