teaching

Οδηγίες για τα μαθήματα και τις εργασίες

View on GitHub

Εγκατάσταση προσαρμοσμένου και εξατομικευμένου λειτουργικού συστήματος

Αν και σε πρώτη ανάγνωση η χειροκίνητη εγκατάσταση ενός λειτουργικού συστήματος δεν φαίνεται εύχρηστη, τελικά, για κάποιον συχνό χρήστη, όπως είναι ένας ειδικός της πληροφορικής, η χειροκίνητη εγκατάσταση παρέχει μια αναγνωσιμότητα των διαδικασιών και των μηχανισμών που διευκολύνουν την μακροπρόθεση συντήρηση αυτού του συστήματος, ανεξάρτητα από τα (συνήθως κερδοσκοπικά) συμφέροντα εταιρειών που πουλάνε έτοιμη την ευχρηστία.

Γραφικό περιβάλλον

assignments deliverables references
add a status bar to your shell/editor and configure a color-theme edit the configuration files for your status line and for your color theme status bar solarized redshift pywall
configure a custom desktop enviroment customize the wallpaper, menu, bar, notifications, windows, screensaver and demonstrate them with a GIF polybar rofi dunst awesome pipes flashfocus
configure a custom window manager try different wm and configure one to fit your needs sowm dwm

Οδηγίες για την παράδοση και τα κριτήρια της βαθμολόγησης, HCI, UIST, SW


Διάδραση με την γραμμή εντολών

Οι εργασίες γραμμής εντολών ενθαρρύνουν μια εναλλακτική διάδραση με τον υπολογιστή, η οποία ήταν κάποτε (1970-1990) ο βασικός τρόπος διάδρασης, αλλά πλέον χρησιμοποιείται κυρίως από τους ειδικούς της κατασκευής λογισμικού. Αν και αυτός ο τρόπος διάδρασης δεν είναι ο πιο προσβάσιμος και φιλικός για τον αρχάριο και τον περιστασιακό χρήστη, είναι όμως ο πιο αποδοτικός τρόπος διάδρασης για τον ειδικό χρήστη (π.χ., προγραμματιστής εφαρμογών, web developer, network admin), αλλά και για όλους τους έμπειρους χρήστες που δουλεύουν κυρίως με κείμενο.

Για τον σκοπό αυτό θα κάνουμε τις παρακάτω δραστηριότητες:

  1. Κατανόηση και ανάπτυξη δεξιοτήτων στην διεπαφή γραμμής εντολών
  2. Καθημερινή χρήση της γραμμής εντολών ως εναλλακτική διεπαφή της γραφικής για τις δικές σας καθημερινές ανάγκες πληροφορικής
  3. Κατασκευή νέων σύνθετων διεπαφών γραμμής εντολών που εξυπηρετούν τις δικές σας ανάγκες και βασίζονται σε υπάρχουσες εντολές που συνδυάζονται με τις τεχνικές pipelines-scripts
  4. Σύνθεση και κατασκευή νέων εναλλακτικών συστημάτων διάδρασης ή οργάνωσης της ανάπτυξης λογισμικού, που βασίζονται σε ευέλικτα λειτουργικά συστήματα όπως τα archlinux, funtoo, LFS.

Επιλέγουμε να δουλέψουμε με την γραμμή εντολών και όχι με κάποιο άλλο δημοφιλές σύστημα διάδρασης (π.χ., κινητός υπολογισμός), γιατί αυτό είναι το πιο απλό, διαχρονικό, και εύκολο να αλλάξει σύστημα.

Για τα πιο προχωρημένα μαθήματα δίνουμε έμφαση σε λειτουργικά συστήματα πέρα από το λίνουξ. Γιατί αυτό που μετράει είναι να υπάρξει μια κατανόηση των σημαντικών διαφορών που έχουν τα διαθέσιμα λογισμικά λειτουργικού συστήματος και να γίνει μια επιλογή σε ευθυγράμμιση με τους στόχους-προδιαγραφές που έχετε περιγράψει στην εισαγωγή.

Η επιλογή της εγκατάστασης του αρκ λίνουξ στα εισαγωγικά μαθήματα είναι σε συνέπεια με την σχεδίαση αυτής της διανομής που αναγκάζει τον χρήστη να κάνει πολλά επιμέρους βήματα για την εγκατάσταση με χειροκίνητο τρόπο. Με αυτόν τον τρόπο, ο χρήστης αυτού του λειτουργικό θα πρέπει να μάθει στην πράξη πολλές λεπτομέρειες για το πως είναι οργανωμένος ο υπολογιστής και το λογισμικό του και κυρίως να κάνει επιλογές. Αν και αυτή η διαδικασία οδηγεί σε μια αρχικά χρονοβόρα διαδικασία εγκατάστασης, τελικά αφήνει στον χρήστη, πέρα από ένα νέο λειτουργικό σύτημα, τις γνώσεις και τις δεξιότητες για πως λειτουργεί το λογισμικό συστήματος.

Στα πιο προχωρημένα μαθήματα, χρησιμοποιούμε την αρχική βασική εγκατάσταση του αρκ λίνουξ για να κατασκευάσουμε μια προσαρμοσμένη γραφική διεπαφή, ενώ στην τεχνολογία λογισμικού μελετάμε εναλλακτικά συστήματα πέρα από το δημοφιλές λίνουξ.

Εκτός από τις παραπάνω χρήσιμες βασικές γνώσεις και δεξιότητες για τον υπολογιστή και το λειτουργικό σύστημα, υπάρχουν επιπλέον διαστάσεις στο λογισμικό, όπως το νομικό πλαίσιο για τις άδειες χρήσης. Για παράδειγμα, το γνωστό λίνουξ είναι μια συλλογή λογισμικού που έχει αρκετές διαφορές ανάλογα με την διανομή. Αν κάποιος θέλει να πουλήσει το ίδιο το λογισμικό, αυτό δεν μπορεί να το κάνει με τις διαθέσιμες άδειες λίνουξ. Η επιλογή του openbsd για την βάση του macos έγινε για αυτόν τον λόγο (+ασφάλεια). Σε αυτές τις περιπτώσεις κάποιος θα πρέπει να αναζητήσει εναλλακτικές πέρα από το λινουξ+σιστεμντι, τα οποία για τους γνώστες του unix είναι κάτι σαν τα windows. Ο σκοπός της άσκησης είναι να αποκτήσετε γνώσεις και δεξιότητες στην επιλογή και χρήση του κατάλληλου λειτουργικού για τις δικές σας διαδικασίες ανάπτυξης λογισμικού.