Πώς να χρησιμοποιήσετε την εντολή ar του Linux για να δημιουργήσετε στατικές βιβλιοθήκες

Ερώτηση Shell σε φορητό υπολογιστή Linux

Fatmawati Achmad Zaenuri/Shutterstock.com



Χρησιμοποιήστε το |_+_| του Linux εντολή για τη δημιουργία βιβλιοθηκών λειτουργιών όταν αναπτύσσετε λογισμικό. Αυτό το σεμινάριο θα σας δείξει πώς να δημιουργήσετε μια στατική βιβλιοθήκη, να την τροποποιήσετε και να τη χρησιμοποιήσετε σε ένα πρόγραμμα, με δείγμα κώδικα.

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





Το |_+_| Ωστόσο, η εντολή εξακολουθεί να χρησιμοποιείται για ορισμένους ειδικούς σκοπούς. |_+_| χρησιμοποιείται για τη δημιουργία στατικών βιβλιοθηκών. Αυτά χρησιμοποιούνται στην ανάπτυξη λογισμικού. Και |_+_| χρησιμοποιείται επίσης για τη δημιουργία αρχείων πακέτων όπως τα αρχεία .deb που χρησιμοποιούνται στη διανομή Debian Linux και τα παράγωγά του όπως το Ubuntu.

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



Σημειώστε ότι πρόκειται για ένα γρήγορο και βρώμικο hack για σκοπούς επίδειξης. Μην χρησιμοποιείτε αυτήν την κρυπτογράφηση για οτιδήποτε έχει αξία. Είναι το πιο απλό στον κόσμο κρυπτογράφηση αντικατάστασης , όπου το Α γίνεται Β, το Β γίνεται Γ κ.ο.κ.

ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Πώς να συμπιέσετε και να εξαγάγετε αρχεία χρησιμοποιώντας την εντολή tar στο Linux

Οι συναρτήσεις cipher_encode() και cipher_decode().

Θα εργαστούμε σε έναν κατάλογο που ονομάζεται βιβλιοθήκη και αργότερα θα δημιουργήσουμε έναν υποκατάλογο που ονομάζεται test.



Διαφήμιση

Έχουμε δύο αρχεία σε αυτόν τον κατάλογο. Σε ένα αρχείο κειμένου που ονομάζεται cipher_encode.c έχουμε το |_+_| λειτουργία:

ar

Το αντίστοιχο |_+_| Η συνάρτηση βρίσκεται σε ένα αρχείο κειμένου που ονομάζεται cipher_decode.c:

ar

Τα αρχεία που περιέχουν οδηγίες προγραμματισμού ονομάζονται αρχεία πηγαίου κώδικα. Θα δημιουργήσουμε ένα αρχείο βιβλιοθήκης που ονομάζεται libcipher.a. Θα περιέχει τις μεταγλωττισμένες εκδόσεις αυτών των δύο αρχείων πηγαίου κώδικα. Θα δημιουργήσουμε επίσης ένα σύντομο αρχείο κειμένου που ονομάζεται libcipher.h. Αυτό είναι ένα αρχείο κεφαλίδας που περιέχει τους ορισμούς των δύο συναρτήσεων στη νέα μας βιβλιοθήκη.

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

Μεταγλώττιση των αρχείων cipher_encode.c και cipher_decode.c

Για να μεταγλωττίσουμε τα αρχεία πηγαίου κώδικα, θα χρησιμοποιήσουμε |_+_|, το τυπικός μεταγλωττιστής GNU . Το |_+_| (μεταγλώττιση, χωρίς σύνδεσμο) η επιλογή λέει |_+_| για να μεταγλωττίσετε τα αρχεία και μετά να σταματήσετε. Παράγει ένα ενδιάμεσο αρχείο από κάθε αρχείο πηγαίου κώδικα που ονομάζεται αρχείο αντικειμένου. Το |_+_| Ο σύνδεσμος συνήθως παίρνει όλα τα αρχεία αντικειμένων και τα συνδέει μεταξύ τους για να δημιουργήσει ένα εκτελέσιμο πρόγραμμα. Παρακάμπτουμε αυτό το βήμα χρησιμοποιώντας το |_+_| επιλογή. Χρειαζόμαστε απλώς τα αρχεία αντικειμένων.

Διαφήμιση

Ας ελέγξουμε ότι έχουμε τα αρχεία που πιστεύουμε ότι έχουμε.

ar

Τα δύο αρχεία πηγαίου κώδικα υπάρχουν σε αυτόν τον κατάλογο. Ας χρησιμοποιήσουμε |_+_| για να τα μεταγλωττίσετε σε αρχεία αντικειμένων.

ar tar

Δεν πρέπει να υπάρχει έξοδος από |_+_| αν όλα πάνε καλά.

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

ar

Δημιουργία της Βιβλιοθήκης libcipher.a

Για να δημιουργήσουμε το αρχείο της βιβλιοθήκης—το οποίο είναι στην πραγματικότητα ένα αρχείο αρχειοθέτησης—θα χρησιμοποιήσουμε |_+_|.

Χρησιμοποιούμε το |_+_| (δημιουργία) επιλογή για τη δημιουργία του αρχείου της βιβλιοθήκης, το |_+_| (προσθήκη με αντικατάσταση) επιλογή για να προσθέσετε τα αρχεία στο αρχείο της βιβλιοθήκης και το |_+_| (ευρετήριο) επιλογή για τη δημιουργία ευρετηρίου των αρχείων μέσα στο αρχείο της βιβλιοθήκης.

Διαφήμιση

Θα καλέσουμε το αρχείο της βιβλιοθήκης libcipher.a. Παρέχουμε αυτό το όνομα στη γραμμή εντολών, μαζί με τα ονόματα των αρχείων αντικειμένων που πρόκειται να προσθέσουμε στη βιβλιοθήκη.

ar

Εάν απαριθμήσουμε τα αρχεία στον κατάλογο, θα δούμε ότι έχουμε τώρα ένα αρχείο libcipher.a.

ls -l

Αν χρησιμοποιήσουμε το |_+_| (πίνακας) επιλογή με |_+_| μπορούμε να δούμε τις ενότητες μέσα στο αρχείο της βιβλιοθήκης.

ar

Δημιουργία του αρχείου κεφαλίδας libcipher.h

Το αρχείο libcipher.h θα συμπεριληφθεί σε οποιοδήποτε πρόγραμμα που χρησιμοποιεί τη βιβλιοθήκη libcipher.a. Το αρχείο libcipher.h πρέπει να περιέχει τον ορισμό των συναρτήσεων που βρίσκονται στη βιβλιοθήκη.

Για να δημιουργήσουμε το αρχείο κεφαλίδας, πρέπει να πληκτρολογήσουμε τους ορισμούς συναρτήσεων σε a πρόγραμμα επεξεργασίας κειμένου όπως το gedit . Ονομάστε το αρχείο libcipher.h και αποθηκεύστε το στον ίδιο κατάλογο με το αρχείο libcipher.a.

cipher_encode()

Χρήση της Βιβλιοθήκης libcipher

Ο μόνος σίγουρος τρόπος για να δοκιμάσουμε τη νέα μας βιβλιοθήκη είναι να γράψουμε ένα μικρό πρόγραμμα για να τη χρησιμοποιήσουμε. Αρχικά, θα φτιάξουμε έναν κατάλογο που ονομάζεται test.

cipher_decode()Διαφήμιση

Θα αντιγράψουμε τη βιβλιοθήκη και τα αρχεία κεφαλίδας στον νέο κατάλογο.

gcc

Θα αλλάξουμε στον νέο κατάλογο.

-c

Ας ελέγξουμε ότι τα δύο αρχεία μας είναι εδώ.

gcc

Πρέπει να δημιουργήσουμε ένα μικρό πρόγραμμα που μπορεί να χρησιμοποιήσει τη βιβλιοθήκη και να αποδείξει ότι λειτουργεί όπως αναμένεται. Πληκτρολογήστε τις ακόλουθες γραμμές κειμένου σε ένα πρόγραμμα επεξεργασίας. Αποθηκεύστε τα περιεχόμενα του προγράμματος επεξεργασίας σε ένα αρχείο με το όνομα test.c στο δοκιμή Ευρετήριο.

gcc

Η ροή του προγράμματος είναι πολύ απλή:

  • Περιλαμβάνει το αρχείο libcipher.h ώστε να μπορεί να δει τους ορισμούς της συνάρτησης της βιβλιοθήκης.
  • Δημιουργεί μια συμβολοσειρά που ονομάζεται κείμενο και αποθηκεύει τις λέξεις How-To Geek loves Linux σε αυτό.
  • Εκτυπώνει αυτή τη συμβολοσειρά στην οθόνη.
  • καλεί το |_+_| λειτουργία για την κωδικοποίηση της συμβολοσειράς και εκτυπώνει την κωδικοποιημένη συμβολοσειρά στην οθόνη.
  • Καλεί |_+_| για να αποκωδικοποιήσει τη συμβολοσειρά και εκτυπώνει την αποκωδικοποιημένη συμβολοσειρά στην οθόνη.

Για να δημιουργήσετε το |_+_| πρόγραμμα, πρέπει να μεταγλωττίσουμε το πρόγραμμα test.c και να συνδέσουμε στη βιβλιοθήκη. Το |_+_| (έξοδος) η επιλογή λέει |_+_| πώς να ονομάσετε το εκτελέσιμο πρόγραμμα που δημιουργεί.

-c

Εάν |_+_| σας επιστρέφει σιωπηλά στη γραμμή εντολών, όλα καλά. Τώρα ας δοκιμάσουμε το πρόγραμμά μας. Η στιγμή της αλήθειας:

gcc

Και βλέπουμε το αναμενόμενο αποτέλεσμα. Το |_+_| Το πρόγραμμα εκτυπώνει το απλό κείμενο εκτυπώνει το κρυπτογραφημένο κείμενο και στη συνέχεια εκτυπώνει το αποκρυπτογραφημένο κείμενο. Χρησιμοποιεί τις λειτουργίες της νέας μας βιβλιοθήκης. Η βιβλιοθήκη μας λειτουργεί.

Επιτυχία. Αλλά γιατί να σταματήσουμε εκεί;

Προσθήκη άλλης ενότητας στη βιβλιοθήκη

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

Διαφήμιση

Πληκτρολογήστε τις ακόλουθες γραμμές σε ένα πρόγραμμα επεξεργασίας. Αποθηκεύστε τα περιεχόμενα του προγράμματος επεξεργασίας σε ένα αρχείο με το όνομα cipher_version.c, στο βιβλιοθήκη Ευρετήριο.

gcc

Πρέπει να προσθέσουμε τον ορισμό της νέας συνάρτησης στο αρχείο κεφαλίδας libcipher.h. Προσθέστε μια νέα γραμμή στο κάτω μέρος αυτού του αρχείου, έτσι ώστε να μοιάζει με αυτό:

ar

Αποθηκεύστε το τροποποιημένο αρχείο libcipher.h.

Πρέπει να μεταγλωττίσουμε το αρχείο cipher_version.c ώστε να έχουμε ένα αρχείο αντικειμένου cipher_version.o.

-c

Αυτό δημιουργεί ένα αρχείο cipher_version.o. Μπορούμε να προσθέσουμε το νέο αρχείο αντικειμένου στη βιβλιοθήκη libcipher.a με την ακόλουθη εντολή. Το |_+_| (περιφραστική) επιλογή κάνει το συνήθως αθόρυβο |_+_| πείτε μας τι έχει κάνει.

-r

Το νέο αρχείο αντικειμένου προστίθεται στο αρχείο της βιβλιοθήκης. |_+_| εκτυπώνει επιβεβαίωση. Το μέσο προστέθηκε.

Μπορούμε να χρησιμοποιήσουμε το |_+_| (πίνακας) επιλογή για να δείτε ποιες λειτουργικές μονάδες βρίσκονται μέσα στο αρχείο της βιβλιοθήκης.

-s

Διαφήμιση

Υπάρχουν τώρα τρεις ενότητες μέσα στο αρχείο της βιβλιοθήκης μας. Ας αξιοποιήσουμε τη νέα λειτουργία.

Χρησιμοποιώντας τη συνάρτηση cipher_version().

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

Θα διαγράψουμε τις παλιές εκδόσεις των αρχείων.

-t

Θα αντιγράψουμε τις νέες εκδόσεις στον κατάλογο δοκιμής.

ar

Θα μεταβούμε στον κατάλογο δοκιμής.

cipher_encode()

Και τώρα μπορούμε να τροποποιήσουμε το πρόγραμμα test.c ώστε να χρησιμοποιεί τη νέα λειτουργία βιβλιοθήκης.

Πρέπει να προσθέσουμε μια νέα γραμμή στο πρόγραμμα test.c που καλεί |_+_| λειτουργία. Θα το τοποθετήσουμε πριν από το πρώτο |_+_| γραμμή.

cipher_decode()

Αποθηκεύστε αυτό ως test.c. Μπορούμε τώρα να το μεταγλωττίσουμε και να ελέγξουμε ότι η νέα συνάρτηση είναι λειτουργική.

test

Ας εκτελέσουμε τη νέα έκδοση του |_+_|:

Η νέα λειτουργία λειτουργεί. Μπορούμε να δούμε την έκδοση της βιβλιοθήκης στην αρχή της εξόδου από το |_+_|.

Μπορεί όμως να υπάρχει πρόβλημα.

Αντικατάσταση ενότητας στη βιβλιοθήκη

Αυτή δεν είναι η πρώτη έκδοση της βιβλιοθήκης. είναι το δεύτερο. Ο αριθμός έκδοσης μας είναι λανθασμένος. Η πρώτη έκδοση δεν είχε |_+_| λειτουργούν σε αυτό. Αυτό το κάνει. Άρα αυτή θα πρέπει να είναι η έκδοση 0.0.2. Πρέπει να αντικαταστήσουμε το |_+_| λειτουργία στη βιβλιοθήκη με μια διορθωμένη.

Ευτυχώς, |_+_| το κάνει πολύ εύκολο.

Διαφήμιση

Αρχικά, ας επεξεργαστούμε το αρχείο cipher_version.c στο βιβλιοθήκη Ευρετήριο. Αλλάξτε το κείμενο Alpha Έκδοση 0.0.1 σε Έκδοση 0.0.2 Alpha. Θα πρέπει να μοιάζει με αυτό:

-o

Αποθηκεύστε αυτό το αρχείο. Πρέπει να το μεταγλωττίσουμε ξανά για να δημιουργήσουμε ένα νέο αρχείο αντικειμένου cipher_version.o.

gcc

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

Χρησιμοποιήσαμε το |_+_| (προσθήκη με αντικατάσταση) επιλογή πριν, για προσθήκη νέων λειτουργικών μονάδων στη βιβλιοθήκη. Όταν το χρησιμοποιούμε με μια ενότητα που υπάρχει ήδη στη βιβλιοθήκη, |_+_| θα αντικαταστήσει την παλιά έκδοση με τη νέα. Το |_+_| Η επιλογή (ευρετήριο) θα ενημερώσει το ευρετήριο της βιβλιοθήκης και το |_+_| Η επιλογή (verbose) θα κάνει |_+_| πείτε μας τι έχει κάνει.

gcc

Αυτή τη φορά |_+_| αναφέρει ότι έχει αντικαταστήσει τη λειτουργική μονάδα cipher_version.o. Το r σημαίνει αντικαταστάθηκε.

Χρησιμοποιώντας τη συνάρτηση Ενημερωμένη cipher_version().

Θα πρέπει να χρησιμοποιήσουμε την τροποποιημένη βιβλιοθήκη μας και να ελέγξουμε ότι λειτουργεί.

Διαφήμιση

Θα αντιγράψουμε τα αρχεία της βιβλιοθήκης στον κατάλογο δοκιμής.

test

Θα μεταβούμε στον κατάλογο δοκιμής.

-v

Πρέπει να μεταγλωττίσουμε ξανά το δοκιμαστικό μας πρόγραμμα με τη νέα μας βιβλιοθήκη.

ar

Και τώρα μπορούμε να δοκιμάσουμε το πρόγραμμά μας.

ar

Το αποτέλεσμα από το πρόγραμμα δοκιμής είναι αυτό που περιμέναμε. Ο σωστός αριθμός έκδοσης εμφανίζεται στη συμβολοσειρά έκδοσης και οι ρουτίνες κρυπτογράφησης και αποκρυπτογράφησης λειτουργούν.

Διαγραφή Ενοτήτων από Βιβλιοθήκη

Φαίνεται κρίμα μετά από όλα αυτά, αλλά ας διαγράψουμε το αρχείο cipher_version.o από το αρχείο της βιβλιοθήκης.

Για να το κάνουμε αυτό, θα χρησιμοποιήσουμε το |_+_| (διαγραφή) επιλογή. Θα χρησιμοποιήσουμε επίσης το |_+_| (verbose) επιλογή, έτσι ώστε |_+_| μας λέει τι έχει κάνει. Θα συμπεριλάβουμε επίσης το |_+_| (ευρετήριο) επιλογή για ενημέρωση του ευρετηρίου στο αρχείο της βιβλιοθήκης.

-t

Διαφήμιση

|_+_| αναφέρει ότι έχει αφαιρέσει τη μονάδα. Το d σημαίνει διαγράφεται.

Αν ρωτήσουμε |_+_| για να παραθέσουμε τις ενότητες μέσα στο αρχείο της βιβλιοθήκης, θα δούμε ότι έχουμε επιστρέψει σε δύο λειτουργικές μονάδες.

cipher_version()

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

Μοιραστείτε τον Κώδικά σας

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

Εντολές Linux
Αρχεία πίσσα · pv · Γάτα · tac · chmod · λαβή · διαφ · sed · Με · άνδρας · έσπρωξε · popd · fsck · δοκιμαστικό δίσκο · επ · fd · παντοκ · CD · $PATH · οκ · Συμμετοχή · jq · πτυχή · uniq · journalctl · ουρά · κατάσταση · ls · fstab · πέταξε έξω · πιο λιγο · chgrp · τσόουν · στροφή μηχανής · Κοίτα · χορδές · τύπος · μετονομάζω · φερμουάρ · ανοίγω φερμουάρ · βουνό · ποσό · εγκαθιστώ · fdisk · mkfs · rm · rmdir · rsync · df · gpg · εμείς · νανο · mkdir · από · ln · κηλίδα · μετατρέπω · rclone · κομματάκι · SRM
Διαδικασίες ψευδώνυμο · οθόνη · μπλουζα · όμορφη · renice · πρόοδος · στρας · Σύστημα · tmux · chsh · ιστορία · στο · σύνολο παραγωγής · Ελεύθερος · οι οποίες · dmesg · usermod · ΥΣΤΕΡΟΓΡΑΦΟ · chroot · xargs · tty · ροζ · lsof · vmstat · τέλος χρόνου · τείχος · Ναί · σκοτώνω · ύπνος · sudo · του · χρόνος · ομαδική προσθήκη · usermod · ομάδες · lshw · ΤΕΡΜΑΤΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ · επανεκκίνηση · να σταματήσει · απενεργοποίηση · passwd · lscpu · crontab · ημερομηνία · bg · fg
Δικτύωση netstat · ping · traceroute · ip · σσ · ποιος είναι · fail2ban · bmon · εσύ · δάχτυλο · nmap · ftp · μπούκλα · wget · που · ποιός είμαι · Σε · iptables · ssh-keygen · ufw

ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Καλύτεροι φορητοί υπολογιστές Linux για προγραμματιστές και λάτρεις

ΔΙΑΒΑΣΤΕ ΤΗ ΣΥΝΕΧΕΙΑ
  • › 5 ιστότοποι που κάθε χρήστης Linux πρέπει να προσθέτει σελιδοδείκτη
  • › Ο φάκελος του υπολογιστή είναι 40: Πώς το Xerox Star δημιούργησε την επιφάνεια εργασίας
  • › Τι είναι το MIL-SPEC Drop Protection;
  • › Πώς να βρείτε το Spotify τυλιγμένο 2021
  • › Λειτουργίες έναντι τύπων στο Microsoft Excel: Ποια είναι η διαφορά;
  • & rsaquo; Cyber ​​Monday 2021: Καλύτερες προσφορές τεχνολογίας
Φωτογραφία προφίλ για τον Dave McKay Dave McKay
Ο Dave McKay χρησιμοποίησε για πρώτη φορά υπολογιστές όταν η διάτρητη χαρτοταινία ήταν στη μόδα και από τότε ασχολείται με τον προγραμματισμό. Μετά από περισσότερα από 30 χρόνια στη βιομηχανία της πληροφορικής, είναι πλέον δημοσιογράφος τεχνολογίας πλήρους απασχόλησης. Κατά τη διάρκεια της καριέρας του, έχει εργαστεί ως ελεύθερος επαγγελματίας προγραμματιστής, διευθυντής διεθνούς ομάδας ανάπτυξης λογισμικού, διευθυντής έργου υπηρεσιών πληροφορικής και, πιο πρόσφατα, ως Υπεύθυνος Προστασίας Δεδομένων. Η γραφή του έχει δημοσιευτεί από τα howtogeek.com, cloudsavvyit.com, itenterpriser.com και opensource.com. Ο Dave είναι ευαγγελιστής Linux και υπέρμαχος ανοιχτού κώδικα.
Διαβάστε το πλήρες βιογραφικό

Ενδιαφέροντα Άρθρα