ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson...

32
Λειτουργικά Συστήµατα Unix/Linux

Transcript of ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson...

Page 1: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Λειτουργικά Συστήµατα

Unix/Linux

Page 2: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Ιστορία του UNIX

1940-50: υπολογιστές για ένα άτοµο καιµία εργασία για κάθε χρονική περίοδο �

επικράτηση batch systems

1960: ερευνητικά συστήµαταδιαµοιρασµού χρόνου

Dartmouth College: βασισµένο σε BASIC

MIT: CTSS

Page 3: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Multics

CTSS � Multics (MIT, Bell Labs, GE)

Τα Bell Labs αποσύρθηκαν από τοπρόγραµµα Multics.

Μια οµάδα ερευνητών συνέχισε την έρευναγια ένα ΛΣ µε δυνατότητες αντίστοιχες τουMultics

Page 4: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

UNIX

O Ken Thompson γράφει το 1969 µιαπεριορισµένη έκδοση του Multics σεassembler, το οποίο ονοµάστηκεUNICS.

Σχεδιάζεται από τους Thompson, Ritchie, Canaday το σύστηµα αρχείων, του οποίου η βασική φιλοσοφίαχρησιµοποιείται µέχρι σήµερα.

Page 5: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

UNIX & C

1971: O Thompson σχεδιάζει τηγλώσσα B.

1973: O Dennis Ritchie σχεδιάζει τηγλώσσα C (διάδοχος της Β).

Το Unix ξαναγράφεται σε C.

Η γλώσσα C παραµένει ως σήµερα ηκαταλληλότερη γλώσσα γιαπρογραµµατισµό συστήµατος.

Page 6: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Ιστορία του UNIX

Το Unix σε C µεταφέρεται σε άλλεςπλατφόρµες.

Πανεπιστήµια παίρνουν τον κώδικα καιαναπτύσσουν αυτόνοµα το σύστηµα καιάλλα προγράµµατα.

Το Berkeley δηµιουργεί σηµαντικέςεπεκτάσεις και βελτιώσεις στην έκδοση τουUnix (virtual memory, paging, TCP/IP δικτύωση, vi, csh, κτλ).

Page 7: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Πρότυπο UNIX

Στη δεκαετία του 1980 υπάρχουν δύοδιαφορετικές και αρκετά ασύµβατεςεκδόσεις (BSD και System V).

Επιπλέον, κάθε εταιρεία που ανέπτυσσεUnix τροποποιούσε κατά ασύµβατοτρόπο βασικές συµπεριφορές.

Το πρότυπο POSIX επιχειρεί ναενοποιήσει τις συµπεριφορές των Unix.

Page 8: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Τωρινή Κατάσταση

Απόγονοι BSD (FreeBSD, NetBSD, OpenBSD).

Απόγονοι System V (Sun Solaris, IBM AIX,…)

Linux

http://cm.bell-labs.com/cm/cs/who/dmr/hist.html

Page 9: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Επισκόπηση

To Unix είναι ένα διαλογικό (interactive) σύστηµα διαµοιρασµού χρόνου (timesharing).

Η φιλοσοφία των προγραµµάτων του είναι ναεκτελούν µία εργασία και να την εκτελούνκαλά.

Ο συνδυασµός των επιµέρους προγραµµάτωνπαρέχει ισχύ και ευελιξία.

Page 10: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Πειραµατισµός

Στα εργαστήρια Linux

Στο σπίτι (Linux, FreeBSD, cygwin)

Για σύνδεση από Windows σε Unix χρησιµοποιείτε ssh (putty, SecureCRT, κτλ).

Page 11: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Πώς βάζω Linux

Format όλο το σύστηµα

2nd partition, dual-boot

Virtual Machine (π.χ. virtualbox)

Page 12: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Σύστηµα αρχείων

root directory /current directory ./parent directory ../absolute – relative pathsfiles – linksdevices

Page 13: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Λογαριασµός χρήστη

Όνοµα χρήστη και password∆ιαθέσιµο shell (µόλις πιστοποιηθεί)File permissions (user, groups, other)Home (initial) directory

Page 14: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Χαρακτηριστικά Linux

Πολλαπλοί ταυτόχρονοι χρήστες

multi-tasking, concurrent processes, time-sharing

Μηχανισµοί ασφαλείας

Μονολιθική δοµή: kernel, shell, προγράµµατα

System calls: διάδραση µε kernel µέσωεντολών σε C

∆υνατότητες scripting: προγραµµατισµόςφλοιού

Page 15: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Βασικές Εντολές 1/2

• more/less : εµφανίζει περιεχόµενα αρχείουκατά οθόνες

• man: εµφανίζει οδηγίες χρήσης

• ls : εµφανίζει ονόµατα αρχείων

• mv : µετονοµάζει αρχεία

• cp : αντιγράφει αρχεία

• rm : διαγράφει αρχεία

• passwd : αλλάζει την κωδική λέξη (password)

• cat : εµφανίζει τα περιεχόµενα αρχείου

Page 16: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Βασικές Εντολές 2/2

• mkdir : δηµιουργεί νέο φάκελο (directory)

• rmdir : διαγράφει (κενό) directory

• cat : εµφανίζει περιεχόµενο αρχείου

• vi(m ) : text editor (τερµατικού)

• ps : εµφανίζει διεργασίες

Page 17: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Εντολές και ορίσµατα

ls (-a -l -r -R)

Οι περισσότερες εντολές παίρνουνορίσµατα, π.χ.:

ls -l: εµφανίζει τα ονόµατα αρχείων µεηµεροµηνίες, µεγέθη κ.α.

cp src dst: δηµιουργεί αντίγραφο τουαρχείου src µε όνοµα dst.

rm –i: διαγράφει το αρχείο µετά απόεπιβεβαίωση

Page 18: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Εντολή ls

ls (-a -l -r -R)

Page 19: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Κέλυφος (shell)

Το κέλυφος είναι ο διερµηνευτής (interpreter) των γραµµών εντολών.

Οι εντολές µπορεί να είναι εγγενείς (τουκελύφους) (π.χ. cd ) ή αυτόνοµαπρογράµµατα (cp , ls ).

Κοινοί φλοιοί: tcsh (csh), bash (sh)Αρχεία που «εκτελούνται» στην αρχή:

• .bashrc (για bash)

• .cshrc (για tcsh)

Page 20: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

∆ικαιώµατα πρόσβασης

Κάθε αρχείο/φάκελος ανήκει στον χρήστη(user) που το δηµιούργησε

Κάθε χρήστης ανοίκει σε τουλάχιστον µίαοµάδα (group)

Τα δικαιώµατα των αρχείων εµφανίζονται µε10 χαρακτήρες

- rwx r-x r-xuser group others

1ος χαρακτήρας – (αρχείο) ή d (directory)

3 οµάδες δικαιωµάτων (read/write/execute)

Page 21: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Κανόνες δικαιωµάτων

αναφορά ή µετακίνηση στοdirectory (χωρίςδυνατότητα ονοµάτων)

εκτέλεση αρχείουx

προσθήκη ή διαγραφήαρχείων από το directory

µεταβολή ήδιαγραφή αρχείου

w

διάβασµα περιεχοµένου στοσυγκεκριµένο directory

διάβασµα ήαντιγραφή αρχείου

r

directoryαρχείο

Page 22: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Εντολές pwd, cd, mkdir, rmdir

Page 23: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Εντολές cp (-i, -r), mv (-i), rm (-i, -r, -f)

-i: interactive mode (ρωτάει πριν τηνενέργεια)

-r: recursive mode (να µπει και σεdirectories για cp, rm

-f: force mode (σε αµφιβολία δενρωτάει)

το ‘-i` έχει προτεραιότητα έναντι του `-f`

Page 24: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Εντολές more, cat

Page 25: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Text Editors

vi/vim2 τρόποι λειτουργίας: εντολές και επεξεργασία

από επεξεργασία σε εντολές: ESC

από εντολές σε επεξεργασία: ‘i` (a, o, O,...)

emacs/xemacs

pico/nano

gedit, kedit, kate, glade, ...

Page 26: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Εντολές επεξεργασίας αρχείων 1/2

• chmod : αλλάζει δικαιώµατα• chown : αλλάζει ιδιοκτήτη αρχείου• more : εµφάνιση αρχείου ανά οθόνη/σελίδα• less : όπως το more αλλά µε δυνατότητα

εµφάνισης προηγούµενης σελίδας• wc : στατιστικά για λέξεις σε αρχείο• sort : ταξινοµεί το περιεχόµενο• grep : αναζήτηση συγκεκριµένου string• ln : δηµιουργεί links (hard/soft)

Page 27: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Εντολές επεξεργασίας αρχείων 2/2

• cut : εµφανίζει κοµµάτι του αρχείου

• cmp : συγκρίνει δύο αρχεία

• diff : εµφανίζει διαφορές δύο αρχείων

• head : εµφανίζει τις πρώτες γραµµές αρχείου

• tail : εµφανίζει τις τελευταίες γραµµές αρχείου

• touch : αλλάζει χρονοσήµαντρο αρχείου

• αν δεν υπάρχει το αρχείο, δηµιουργείται νέο κενό

• grep : αναζήτηση συγκεκριµένου string

• ln : δηµιουργεί links (hard/soft)

Page 28: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Wildcards

Προσδιορισµός πολλών αρχείων µε κοινάστοιχεία ονόµατος:– ls *

– ls *.c

– ls *.*

– ls 2003*

– ls a?

Για την εισαγωγή ειδικών χαρακτήρωνχρησιµοποιείται ‘\’– touch a\*b

Page 29: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Βοήθεια - Manual

man εντολή: βοήθεια για την εντολήπ.χ. man grep

info εντολή: βοήθεια για την εντολή σεπρογράµµατα GNU

π.χ. info gcc

google

π.χ. http://www.google.com/search?q=grep

Page 30: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

∆ιεργασίες

ps : αναφορά υπαρχόντων διεργασιώνπ.χ. ps aux , ps -ef

top : συνεχής ενηµέρωση κατάστασης διεργασιών

kill -<num> <pid> : παράδοση σήµατος

<num> στο <pid>

Ctrl-C: SIGTERM στο τρέχοντα pid.

Ctrl-Z: SIGSTOP στο τρέχοντα pid.

bg: τοποθέτηση ανασταλείσας διεργασίας στο

παρασκήνιο

fg : επαναφορά τρέχουσας διεργασίας στο

παρασκήνιο

Page 31: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Ανάπτυξη Προγραµµάτων

cc, gcc : C compilers

gcc test.c (∆ηµιουργία a.out)

gcc –c test.c (∆ηµιουργία test.o)

gcc -o test test.c

make: «∆ηµιουργεί» το εκτελέσιµο

make (Προϋποθέτει την ύπαρξη Makefile)

make –f Makefile.unix

Page 32: ΛειτουργικάΣυστήµατα”ιαλέξεις... · UNIX O Ken Thompson γράφειτο1969 µια περιορισµένηέκδοσητουMulticsσε assembler,

Makefile

project1: data.o main.o io.occ data.o main.o io.o -o project1

data.o: data.c data.hcc -c data.c

main.o: data.h io.h main.ccc –c main.c

io.o: io.h io.ccc -c io.c

Makefile Tutorial: http://www.eng.hawaii.edu/Tutor/Make/