שיעור 4 of 22
בתהליך

מבוא לקורס

מבוא

אפליקציה היא תוכנית מחשב שמטרתה אינה קשורה ישירות לפעילות הפנימית של המחשב, אלא למשימות שהמשתמש מבצע. הפצות לינוקס מציעות אפשרויות רבות לאפליקציות לביצוע משימות שונות, כגון יישומי משרד, דפדפני אינטרנט, נגני מדיה, עורכים ועוד. לעיתים קרובות יש יותר מאפליקציה או כלי אחד לביצוע משימה מסוימת, והבחירה של האפליקציה המתאימה ביותר לצרכים האישיים נתונה למשתמש.

חבילות תוכנה

כמעט כל הפצת לינוקס מציעה סט אפליקציות מותקן מראש. בנוסף לאפליקציות אלו, לכל הפצה יש מאגר חבילות עם אוסף עצום של אפליקציות שניתן להתקין דרך מנהל החבילות שלה. למרות שההפצות השונות מציעות בערך את אותן אפליקציות, קיימות מספר מערכות ניהול חבילות שונות להפצות השונות. לדוגמה, Debian, Ubuntu ו-Linux Mint משתמשות בכלים כמו dpkg, apt-get ו-apt כדי להתקין חבילות תוכנה, הנקראות בדרך כלל חבילות DEB. לעומת זאת, הפצות כמו Red Hat, Fedora ו-CentOS משתמשות בפקודות rpm, yum ו-dnf להתקנת חבילות RPM. מכיוון שחבילת האפליקציות שונה עבור כל משפחת הפצות, חשוב מאוד להתקין חבילות ממאגר החבילות המתאים להפצה הספציפית.

בדרך כלל, המשתמש הסופי אינו צריך לדאוג לפרטים אלה, מכיוון שמנהל החבילות של ההפצה יבחר את החבילות הנכונות, התלויות הנדרשות ועדכונים עתידיים. תלות הן חבילות עזר הנדרשות על ידי תוכניות. לדוגמה, אם ספרייה מספקת פונקציות לטיפול בתמונות JPEG, שמשמשות מספר תוכניות, היא תהיה ארוזה בחבילה משלה, שכל האפליקציות המשתמשות בספרייה זו תלויות בה.

פקודות dpkg ו-rpm פועלות על קבצי חבילות בודדים. בפועל, כמעט כל משימות ניהול החבילות מבוצעות באמצעות פקודות apt-get או apt במערכות המשתמשות בחבילות DEB, או באמצעות yum או dnf במערכות המשתמשות בחבילות RPM. פקודות אלו עובדות עם קטלוגים של חבילות, מורידות חבילות חדשות ותלויות שלהן, ובודקות אם קיימות גרסאות חדשות של החבילות המותקנות.

התקנת חבילות

נניח ששמעת על פקודה בשם figlet שמדפיסה טקסט מוגדל על המסך ואתה רוצה לנסות אותה. עם זאת, לאחר הפעלת הפקודה figlet, אתה מקבל את ההודעה הבאה:

$ figlet
-bash: figlet: command not found

זה כנראה אומר שהחבילה אינה מותקנת במערכת שלך. אם ההפצה שלך עובדת עם חבילות DEB, תוכל לחפש את החבילה במאגרים באמצעות הפקודה apt-cache search package_name או apt search package_name. פקודת apt-cache משמשת לחיפוש חבילות ולהצגת מידע על חבילות זמינות. הפקודה הבאה מחפשת כל הופעה של המילה “figlet” בשמות החבילות ובתיאורים:

$ apt-cache search figlet
figlet - Make large character ASCII banners out of ordinary text

החיפוש זיהה חבילה בשם figlet, שמתאימה לפקודה החסרה. התקנה והסרה של חבילה דורשות הרשאות מיוחדות הניתנות רק למנהל המערכת, המשתמש הנקרא root. במערכות שולחן עבודה, משתמשים רגילים יכולים להתקין או להסיר חבילות על ידי הוספת הפקודה sudo לפני פקודות ההתקנה/ההסרה, מה שידרוש ממך להקליד את הסיסמה שלך כדי להמשיך. במערכות DEB, ההתקנה מתבצעת עם הפקודה apt-get install package_name או apt install package_name:

$ sudo apt-get install figlet
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  figlet
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.

בשלב זה, החבילה תורד ותותקן במערכת. כל התלויות שהחבילה צריכה יותקנו גם הן:

Need to get 184 kB of archives.
After this operation, 741 kB of additional disk space will be used.
Get:1 http://archive.raspbian.org/raspbian stretch/main armhf figlet armhf 2.2.5-2 [184 kB]
Fetched 184 kB in 0s (213 kB/s)
Selecting previously unselected package figlet.
(Reading database ... 115701 files and directories currently installed.)
Preparing to unpack .../figlet_2.2.5-2_armhf.deb ...
Unpacking figlet (2.2.5-2) ...
Setting up figlet (2.2.5-2) ...
update-alternatives: using /usr/bin/figlet-figlet to provide /usr/bin/figlet (figlet) in auto mode
Processing triggers for man-db (2.7.6.1-2) ...

לאחר סיום ההורדה, כל הקבצים יועתקו למיקומים המתאימים, תתבצע כל תצורה נוספת הנדרשת, והפקודה תהיה זמינה לשימוש:

$ figlet Awesome!
  _ _
  / \\__ _____ ___ ___ _ __ ___ ___| |
  / _ \\ \\ /\\ / / _ \\/ __|/ _ \\| '_ ` _ \\ / _ \\ |
 / ___ \\ V V / __/\\__ \\ (_) | | | | | | __/_|
/_/ \\_\\_/\\_/ \\___||___/\\___/|_| |_| |_|\\___(_)

בהפצות המבוססות על חבילות RPM, החיפושים מתבצעים באמצעות הפקודה yum search package_name או dnf search package_name. נניח שאתה רוצה להציג טקסט בצורה הומוריסטית, מלווה בפרה מצוירת, אבל אינך בטוח איזו חבילה יכולה לבצע את המשימה הזו. בדומה לחבילות DEB, פקודות החיפוש של חבילות RPM מקבלות תיאורים:

$ yum search speaking cow
Last metadata expiration check: 1:30:49 ago on Tue 23 Apr 2019 11:02:33 PM -03.
==================== Name & Summary Matched: speaking, cow ====================
cowsay.noarch : Configurable speaking/thinking cow

לאחר שמצאת חבילה מתאימה במאגר, ניתן להתקין אותה באמצעות yum install package_name או dnf install package_name:

$ sudo yum install cowsay
Last metadata expiration check: 2:41:02 ago on Tue 23 Apr 2019 11:02:33 PM -03.
Dependencies resolved.
==============================================================================
Package Arch Version Repository Size
==============================================================================
Installing:
cowsay noarch 3.04-10.fc28 fedora 46 k
Transaction Summary
==============================================================================
Install 1 Package
Total download size: 46 k
Installed size: 76 k
Is this ok [y/N]: y

שוב, החבילה הרצויה וכל התלויות שלה יותקנו במערכת:

הורדת חבילות:

cowsay-3.04-10.fc28.noarch.rpm 490 kB/s | 46 kB 00:00
==============================================================================
Total 53 kB/s | 46 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : cowsay-3.04-10.fc28.noarch 1/1
Running scriptlet: cowsay-3.04-10.fc28.noarch 1/1
Verifying : cowsay-3.04-10.fc28.noarch 1/1
Installed:
cowsay.noarch 3.04-10.fc28
Complete!

הפקודה cowsay עושה בדיוק כפי שמשתמע משמה:

$ cowsay "Brought to you by yum"
 _______________________
< Brought to you by yum >
 -----------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
  

למרות שהם עשויים להיראות חסרי תועלת, הפקודות figlet ו-cowsay מספקות דרך למשוך את תשומת הלב של משתמשים אחרים למידע רלוונטי.

הסרת חבילות

אותן פקודות המשמשות להתקנת חבילות משמשות גם להסרתן. כל הפקודות מקבלות את מילת המפתח remove כדי להסיר חבילה שהותקנה: apt-get remove package_name או apt remove package_name עבור חבילות DEB, ו-yum remove package_name או dnf remove package_name עבור חבילות RPM. גם פקודת sudo נדרשת לביצוע ההסרה. לדוגמה, כדי להסיר את החבילה figlet שהותקנה קודם לכן מהפצה מבוססת DEB:

$ sudo apt-get remove figlet
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  figlet
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 741 kB disk space will be freed.
Do you want to continue? [Y/n] Y
  

לאחר אישור הפעולה, החבילה נמחקת מהמערכת:

(Reading database ... 115775 files and directories currently installed.)
Removing figlet (2.2.5-2) ...
Processing triggers for man-db (2.7.6.1-2) ...
  

תהליך דומה מבוצע במערכת מבוססת RPM. לדוגמה, כדי להסיר את החבילה cowsay מהפצה מבוססת RPM:

$ sudo yum remove cowsay
Dependencies resolved.
==================================================================================
 Package           Arch    Version          Repository    Size
==================================================================================
Removing:
 cowsay            noarch  3.04-10.fc28     @fedora       76 k
Transaction Summary
==================================================================================
Remove  1 Package
Freed space: 76 k
Is this ok [y/N]: y
  

באופן דומה, תתבקש לאשר את הפעולה והחבילה תימחק מהמערכת:

Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing : 1/1
  Erasing : cowsay-3.04-10.fc28.noarch 1/1
  Running scriptlet: cowsay-3.04-10.fc28.noarch 1/1
  Verifying : cowsay-3.04-10.fc28.noarch 1/1
Removed:
  cowsay.noarch 3.04-10.fc28
Complete!
  

קבצי התצורה של החבילות שהוסרו נשמרים במערכת, כך שניתן להשתמש בהם שוב אם החבילה תותקן מחדש בעתיד.

יישומי משרד

יישומי משרד משמשים לעריכת קבצים כמו טקסטים, מצגות, גיליונות אלקטרוניים ופורמטים אחרים המשמשים בסביבות משרדיות. יישומים אלו מאורגנים בדרך כלל באוספים הנקראים חבילות משרד.

במשך זמן רב, חבילת המשרד הנפוצה ביותר בלינוקס הייתה OpenOffice.org. OpenOffice.org הייתה גרסה בקוד פתוח של חבילת StarOffice ששוחררה על ידי Sun Microsystems. כמה שנים לאחר מכן נרכשה Sun על ידי חברת Oracle, שהעבירה את הפרויקט לקרן Apache, ושם הפרויקט שונה ל-Apache OpenOffice. במקביל, שוחררה חבילת משרד נוספת המבוססת על אותו קוד מקור על ידי Document Foundation, ונקראה LibreOffice.

לשני הפרויקטים יש את אותן תכונות בסיסיות והם תואמים לפורמטים של מסמכים מ-Microsoft Office. עם זאת, פורמט המסמך המועדף הוא Open Document Format (ODF), פורמט קבצים פתוח וסטנדרטי של ISO. השימוש בקבצי ODF מבטיח שניתן להעביר מסמכים בין מערכות הפעלה ואפליקציות מספקים שונים, כמו Microsoft Office.

היישומים העיקריים שמציעים OpenOffice/LibreOffice הם:

  • Writer: עורך טקסטים
  • Calc: גיליונות אלקטרוניים
  • Impress: מצגות
  • Draw: ציור וקטורי
  • Math: נוסחאות מתמטיות
  • Base: מסד נתונים

גם LibreOffice וגם Apache OpenOffice הם תוכנות קוד פתוח, אך LibreOffice מופץ תחת רישיון LGPLv3, ואילו Apache OpenOffice מופץ תחת רישיון Apache License 2.0. ההבדל ברישוי מאפשר ל-LibreOffice לשלב שיפורים שנעשו ב-Apache OpenOffice, אך Apache OpenOffice אינו יכול לשלב שיפורים שנעשו ב-LibreOffice. ההבדל הזה, יחד עם קהילת מפתחים פעילה יותר, הוא הסיבה לכך שרוב ההפצות מאמצות את LibreOffice כחבילת המשרד המוגדרת כברירת מחדל.

דפדפני אינטרנט

עבור רוב המשתמשים, המטרה העיקרית של המחשב היא לספק גישה לאינטרנט. כיום, דפי אינטרנט יכולים לפעול כאפליקציות מלאות, עם היתרון שניתן לגשת אליהם מכל מקום, ללא צורך בהתקנת תוכנה נוספת. זה הופך את דפדפן האינטרנט לאפליקציה החשובה ביותר במערכת ההפעלה, לפחות עבור המשתמש הממוצע.

עצה:

אחד המקורות הטובים ביותר ללימוד פיתוח אתרים הוא MDN Web Docs, זמין בכתובת https://developer.mozilla.org/. האתר, המנוהל על ידי Mozilla, מלא במדריכים למתחילים וחומרי עיון על רוב הטכנולוגיות המודרניות של האינטרנט.

הדפדפנים העיקריים בסביבת לינוקס הם Google Chrome ו-Mozilla Firefox. Chrome הוא דפדפן אינטרנט שמנוהל על ידי Google, אך מבוסס על הדפדפן הפתוח Chromium, שניתן להתקינו באמצעות מנהל החבילות של ההפצה והוא תואם לחלוטין ל-Chrome. Firefox, שמנוהל על ידי Mozilla, ארגון ללא מטרות רווח, הוא דפדפן שמקורו ב-Netscape, הדפדפן הראשון שפעל במודל קוד פתוח. קרן Mozilla מעורבת עמוקות בפיתוח התקנים הפתוחים שעליהם מבוסס האינטרנט המודרני.

Mozilla מפתחת גם אפליקציות נוספות, כמו לקוח הדוא”ל Thunderbird. משתמשים רבים מעדיפים להשתמש בדוא”ל מבוסס אינטרנט (Webmail) במקום אפליקציית דוא”ל ייעודית, אך לקוח כמו Thunderbird מציע תכונות נוספות.

ומתממשק בצורה הטובה ביותר עם יישומים אחרים בשולחן העבודה.

מולטימדיה

בהשוואה לאפליקציות אינטרנט זמינות, יישומי שולחן עבודה הם עדיין האפשרות הטובה ביותר ליצירת תוכן מולטימדיה. פעילויות הקשורות למולטימדיה, כמו רינדור וידאו, לעיתים דורשות משאבי מערכת רבים, אותם ניתן לנהל בצורה הטובה ביותר על ידי יישום מקומי על שולחן העבודה. להלן רשימה של כמה מהאפליקציות הפופולריות ביותר למולטימדיה בסביבת לינוקס והשימושים שלהן.

  • Blender: רנדר תלת-ממדי ליצירת אנימציות. ניתן להשתמש ב-Blender גם כדי לייצא אובייקטים תלת-ממדיים להדפסה במדפסת תלת-ממד.
  • GIMP: עורך תמונות מלא תכונות, שניתן להשוות אותו ל-Adobe Photoshop, אך יש לו מושגים וכלים ייחודיים לעבודה עם תמונות. GIMP יכול לשמש ליצירה, עריכה ושמירה של קובצי מפת סיביות כמו JPEG, PNG, GIF, TIFF ועוד רבים אחרים.
  • Inkscape: עורך גרפיקה וקטורית, הדומה ל-Corel Draw או Adobe Illustrator. הפורמט המוגדר כברירת מחדל של Inkscape הוא SVG, שהוא תקן פתוח לגרפיקה וקטורית. קובצי SVG ניתנים לפתיחה בכל דפדפן אינטרנט, ובשל אופיו כגרפיקה וקטורית, ניתן להשתמש בו בפריסות גמישות של דפי אינטרנט.
  • Audacity: עורך אודיו. ניתן להשתמש ב-Audacity לסינון, להחלת אפקטים ולהמרה בין פורמטי אודיו שונים כמו MP3, WAV, OGG, FLAC ועוד.
  • ImageMagick: כלי שורת פקודה להמרה ועריכת רוב סוגי קובצי התמונה. ניתן גם להשתמש בו ליצירת מסמכי PDF מקובצי תמונה ולהפך.

קיימות גם אפליקציות רבות המיועדות לניגון מולטימדיה. האפליקציה הפופולרית ביותר לניגון וידאו היא VLC, אך יש משתמשים שמעדיפים חלופות אחרות, כמו smplayer. לניגון מוזיקה מקומית יש גם אפשרויות רבות, כמו Audacious, Banshee ו-Amarok, שיכולות גם לנהל אוסף של קובצי אודיו מקומיים.

תוכניות שרת

כאשר דפדפן אינטרנט טוען דף מאתר אינטרנט, הוא למעשה מתחבר למחשב מרוחק ומבקש מידע ספציפי. בתרחיש זה, המחשב שמריץ את דפדפן האינטרנט נקרא לקוח (client), והמחשב המרוחק נקרא שרת (server).

מחשב השרת, שיכול להיות מחשב שולחני רגיל או חומרה ייעודית, זקוק לתוכנית ספציפית כדי לנהל כל סוג מידע שהוא יספק. בכל הנוגע לשירות דפי אינטרנט, רוב השרתים בעולם משתמשים בתוכנות שרת בקוד פתוח. תוכנת שרת זו נקראת שרת HTTP (HTTP מייצג Hyper Text Transfer Protocol) והפופולריים ביותר הם Apache, Nginx ו-lighttpd.

אפילו דפי אינטרנט פשוטים עשויים לדרוש בקשות רבות, שיכולות להיות קבצים רגילים—הנקראים תוכן סטטי—או תוכן דינמי שנוצר ממקורות שונים. תפקידו של שרת HTTP הוא לאסוף ולשלוח את כל הנתונים המבוקשים חזרה לדפדפן, שמסדר את התוכן כפי שמוגדר במסמך ה-HTML שהתקבל (HTML מייצג Hyper Text Markup Language) ובקבצים התומכים הנוספים. לכן, רינדור של דף אינטרנט כולל פעולות המבוצעות בצד השרת ופעולות המבוצעות בצד הלקוח. שני הצדדים יכולים להשתמש בסקריפטים מותאמים לביצוע משימות ספציפיות. בצד שרת HTTP, נפוץ מאוד להשתמש בשפת הסקריפטים PHP. שפת הסקריפטים המשמשת בצד הלקוח (הדפדפן) היא JavaScript.

תוכנות שרת יכולות לספק כל מיני סוגי מידע. לא נדיר שתוכנית שרת אחת תבקש מידע שתוכנות שרת אחרות מספקות. זה המקרה כאשר שרת HTTP דורש מידע משרת מסד נתונים.

לדוגמה, כאשר דף דינמי מתבקש, שרת ה-HTTP בדרך כלל שואל מסד נתונים כדי לאסוף את כל פיסות המידע הדרושות ושולח את התוכן הדינמי חזרה ללקוח. באותו אופן, כאשר משתמש נרשם לאתר, שרת ה-HTTP אוסף את הנתונים שנשלחו על ידי הלקוח ושומר אותם במסד נתונים.

מסד נתונים הוא אוסף מאורגן של מידע. שרת מסד נתונים שומר תכנים בפורמט מסודר, מה שמאפשר לקרוא, לכתוב ולקשר כמויות גדולות של נתונים בצורה מהימנה ובמהירות גבוהה. שרתי מסד נתונים בקוד פתוח נמצאים בשימוש בהרבה אפליקציות, ולא רק באינטרנט. אפילו אפליקציות מקומיות יכולות לאחסן נתונים על ידי התחברות לשרת מסד נתונים מקומי. סוג מסד הנתונים הנפוץ ביותר הוא מסד נתונים יחסיים, שבו הנתונים מאורגנים בטבלאות מוגדרות מראש. מסדי הנתונים הפתוחים הפופולריים ביותר הם MariaDB (שמקורו ב-MySQL) ו-PostgreSQL.

שיתוף נתונים

ברשתות מקומיות, כמו אלו שנמצאות במשרדים ובבתים, זה רצוי שהמחשבים לא רק יוכלו לגשת לאינטרנט, אלא גם יוכלו לתקשר אחד עם השני. לפעמים מחשב פועל כשרת, לפעמים אותו מחשב פועל כלקוח. זה נחוץ כאשר רוצים לגשת לקבצים במחשב אחר ברשת—לדוגמה, גישה לקובץ השמור במחשב שולחני ממכשיר נייד—ללא הצורך להעתיק אותו לכונן USB או דומה.

בין מחשבי לינוקס, פרוטוקול NFS (Network File System) הוא לעיתים קרובות בשימוש. פרוטוקול NFS הוא הסטנדרט…

פרוטוקול NFS (Network File System) הוא הדרך הסטנדרטית לשיתוף מערכות קבצים ברשתות המצוידות רק במחשבי Unix/Linux. עם NFS, מחשב יכול לשתף אחד או יותר מהתיקיות שלו עם מחשבים ספציפיים ברשת, כך שיוכלו לקרוא ולכתוב קבצים בתיקיות אלו. ניתן אף להשתמש ב-NFS לשיתוף כל עץ התיקיות של מערכת ההפעלה עם לקוחות שיכולים להשתמש בה כדי לאתחל ממנה. מחשבים אלה, הנקראים “לקוחות רזים” (thin clients), משמשים לרוב ברשתות גדולות כדי להימנע מהצורך לתחזק כל מערכת הפעלה על כל מכונה.

אם ישנם סוגים אחרים של מערכות הפעלה המחוברות לרשת, מומלץ להשתמש בפרוטוקול שיתוף נתונים שניתן להבינו על ידי כולן. דרישה זו מתמלאת על ידי Samba. Samba מיישם פרוטוקול לשיתוף קבצים ברשת שנוצר במקור עבור מערכת ההפעלה Windows, אך כיום הוא תואם לכל מערכות ההפעלה הגדולות. עם Samba, מחשבים ברשת המקומית לא רק יכולים לשתף קבצים, אלא גם מדפסות.

ברשתות מקומיות מסוימות, ההרשאה הניתנת בעת הכניסה לתחנת העבודה ניתנת על ידי שרת מרכזי הנקרא בקר דומיין (domain controller), המנהל את הגישה למשאבים מקומיים ומרוחקים שונים. בקר הדומיין הוא שירות המסופק על ידי Active Directory של Microsoft. תחנות עבודה מבוססות לינוקס יכולות להתחבר לבקר דומיין באמצעות Samba או תת-מערכת אימות הנקראת SSSD. החל מגרסה 4, Samba יכול גם לעבוד כבקר דומיין ברשתות הטרוגניות.

אם המטרה היא ליישם פתרון מחשוב ענן שמסוגל לספק שיטות שונות לשיתוף נתונים מבוסס אינטרנט, יש לקחת בחשבון שתי חלופות: ownCloud ו-Nextcloud. שני הפרויקטים דומים מאוד מכיוון ש-Nextcloud הוא פיצול של ownCloud, דבר שאינו נדיר בפרויקטים של קוד פתוח. פיצולים כאלו נקראים בדרך כלל “fork”. שני הפרויקטים מספקים את אותן תכונות בסיסיות: שיתוף וסנכרון קבצים, מרחבי עבודה שיתופיים, לוח שנה, אנשי קשר ודוא”ל, כולם דרך ממשקי שולחן עבודה, נייד ואינטרנט. ל-Nextcloud יש גם יכולות של ועידות אודיו/וידאו פרטיות, בעוד ownCloud מתמקד יותר בשיתוף קבצים ובאינטגרציה עם תוכנות צד שלישי. תכונות נוספות רבות מסופקות כתוספים שניתן להפעיל מאוחר יותר לפי הצורך.

גם ownCloud וגם Nextcloud מציעים גרסה בתשלום עם תכונות נוספות ותמיכה מורחבת. מה שמבדיל ביניהם לבין פתרונות מסחריים אחרים הוא היכולת להתקין את Nextcloud או ownCloud על שרת פרטי, ללא תשלום, וכך להימנע מהחזקת נתונים רגישים על שרת לא ידוע. מכיוון שכל השירותים תלויים בתקשורת HTTP ונכתבים ב-PHP, יש לבצע את ההתקנה על שרת אינטרנט שכבר הוגדר, כמו Apache. אם אתה שוקל להתקין את ownCloud או Nextcloud על השרת שלך, ודא שאתה גם מפעיל HTTPS כדי להצפין את כל החיבורים לענן שלך.

ניהול רשת

תקשורת בין מחשבים אפשרית רק אם הרשת פועלת כהלכה. בדרך כלל, תצורת הרשת מבוצעת על ידי קבוצת תוכנות הפועלות על הנתב, האחראיות על הגדרת הזמינות של הרשת ובדיקתה. לשם כך, שני שירותי רשת בסיסיים הם…

הפרוטוקולים הנפוצים המשמשים לניהול רשתות הם DHCP (Dynamic Host Configuration Protocol) ו-DNS (Domain Name System).

DHCP אחראי על הקצאת כתובת IP למארח כאשר כבל רשת מחובר או כאשר המכשיר נכנס לרשת אלחוטית. בעת חיבור לאינטרנט, שרת ה-DHCP של ספק האינטרנט (ISP) יספק כתובת IP למכשיר המבקש. שרת DHCP שימושי מאוד גם ברשתות מקומיות, כדי לספק כתובות IP באופן אוטומטי לכל המכשירים המחוברים. אם DHCP אינו מוגדר או שאינו פועל כראוי, יהיה צורך להגדיר ידנית את כתובת ה-IP של כל מכשיר המחובר לרשת. זה לא מעשי להגדיר כתובות IP באופן ידני ברשתות גדולות או אפילו ברשתות קטנות, ולכן רוב הנתבים ברשתות מגיעים עם שרת DHCP מוגדר מראש כברירת מחדל.

כתובת IP נדרשת כדי לתקשר עם מכשיר אחר ברשת IP, אך שמות דומיין כמו www.lpi.org ניתנים לזכירה הרבה יותר מאשר מספרי IP כמו 203.0.113.165. עם זאת, שם הדומיין לבדו אינו מספיק כדי ליצור תקשורת ברשת. לכן, שם הדומיין צריך להיות מתורגם לכתובת IP על ידי שרת DNS. כתובת ה-IP של שרת ה-DNS ניתנת על ידי שרת ה-DHCP של ספק האינטרנט ומשמשת את כל המערכות המחוברות כדי לתרגם שמות דומיין לכתובות IP.

ניתן לשנות את הגדרות ה-DHCP וה-DNS על ידי כניסה לממשק האינטרנט שמספק הנתב. לדוגמה, אפשר להגביל את הקצאת כתובת ה-IP רק למכשירים מוכרים או לשייך כתובת IP קבועה למכונות ספציפיות. כמו כן, ניתן לשנות את שרת ה-DNS המוגדר כברירת מחדל שסופק על ידי ספק האינטרנט. שרתי DNS של צד שלישי, כמו אלו שמספקים Google או OpenDNS, יכולים לעיתים לספק תגובות מהירות יותר ותכונות נוספות.

שפות תכנות

כל תוכנית מחשב (תוכניות לקוח ושרת, יישומי שולחן עבודה ומערכת ההפעלה עצמה) נכתבת באחת או יותר משפות תכנות. תוכניות יכולות להיות קובץ יחיד או מערכת מורכבת של מאות קבצים, אותם מערכת ההפעלה מתייחסת אליהם כרצף הוראות שצריך לפרש ולבצע על ידי המעבד והתקנים אחרים.

ישנן שפות תכנות רבות לצרכים שונים מאוד, ומערכות לינוקס מספקות רבות מהן. מכיוון שתוכנה בקוד פתוח כוללת גם את קוד המקור של התוכניות, מערכות לינוקס מציעות למפתחים תנאים מושלמים להבנת התוכנה, לשינויה או ליצירת תוכנה חדשה לפי צרכיהם.

כל תוכנית מתחילה כקובץ טקסט הנקרא קוד מקור. קוד מקור זה נכתב בשפה ידידותית יותר או פחות למשתמש שמתארת מה התוכנית עושה. מעבד המחשב אינו יכול לבצע ישירות קוד זה. בשפות מתורגמות, קוד המקור מומר לקובץ בינארי שניתן להריץ אותו על ידי המחשב. תוכנה הנקראת קומפיילר אחראית לבצע את ההמרה מקוד מקור לצורת ביצוע. מכיוון שהקובץ הבינארי שנוצר ספציפי ל…

סוג אחד של מעבד, ייתכן שיהיה צורך לקמפל מחדש את התוכנית כדי שתפעל על סוג אחר של מחשב.

בשפות מתורגמות, אין צורך לקמפל את התוכנית מראש. במקום זאת, מפרש קורא את קוד המקור ומבצע את ההוראות בכל פעם שהתוכנית פועלת. הדבר מקל ומאיץ את הפיתוח, אך במקביל, תוכניות מתורגמות נוטות להיות איטיות יותר מתוכניות מקומפלות.

שפות תכנות פופולריות

  • JavaScript: JavaScript היא שפת תכנות שמשמשת בעיקר בדפי אינטרנט. במקורה, יישומי JavaScript היו פשוטים מאוד, כמו רוטינות לאימות טפסים. כיום, JavaScript נחשבת לשפה ברמה ראשונה ומשמשת ליצירת יישומים מורכבים לא רק באינטרנט, אלא גם בשרתים ובמכשירים ניידים.
  • C: שפת התכנות C קשורה קשר הדוק למערכות הפעלה, במיוחד Unix, אך היא משמשת לכתיבת כל סוגי התוכניות כמעט לכל סוגי המכשירים. היתרונות הגדולים של C הם גמישות ומהירות. ניתן לקמפל את אותו קוד מקור שנכתב ב-C כדי לפעול בפלטפורמות ומערכות הפעלה שונות, עם מעט או ללא שינוי. לאחר הקומפילציה, התוכנית תפעל רק במערכת היעד.
  • Java: ההיבט המרכזי של Java הוא שהתוכניות הכתובות בשפה זו הן ניידות, כלומר, אותה תוכנית יכולה לפעול במערכות הפעלה שונות. למרות השם, Java אינה קשורה ל-JavaScript.
  • Perl: Perl היא שפת תכנות שמשמשת בעיקר לעיבוד תוכן טקסטואלי. יש לה דגש חזק על ביטויים רגולריים, מה שהופך את Perl לשפה המתאימה לסינון וניתוח טקסטים.
  • Shell: ה-Shell, ובמיוחד ה-Bash shell, אינו רק שפת תכנות, אלא גם ממשק אינטראקטיבי להפעלת תוכניות אחרות. תוכניות Shell, הידועות כ-Shell scripts, יכולות לאוטומט משימות מורכבות או חוזרות בסביבת שורת הפקודה.
  • Python: Python היא שפת תכנות פופולרית מאוד בקרב סטודנטים ואנשי מקצוע שאינם עוסקים ישירות במדעי המחשב. למרות שיש לה תכונות מתקדמות, Python היא דרך טובה להתחיל ללמוד תכנות בזכות הגישה הידידותית שלה.

PHP

PHP היא שפת סקריפטים המשמשת בעיקר בצד השרת ליצירת תוכן לאינטרנט. רוב דפי ה-HTML המקוונים אינם קבצים סטטיים, אלא תוכן דינמי שנוצר על ידי השרת ממקורות שונים, כמו מסדי נתונים. תוכניות PHP—שנקראות לעיתים דפי PHP או סקריפטים של PHP—משמשות לעיתים קרובות ליצירת תוכן מסוג זה. המונח LAMP נובע מהשילוב של מערכת הפעלה לינוקס, שרת HTTP Apache, מסד נתונים MySQL (או MariaDB) ותכנות PHP. שרתי LAMP הם פתרון פופולרי מאוד להרצת שרתי אינטרנט. מלבד PHP, כל שפות התכנות שתוארו קודם לכן יכולות לשמש גם ליישום יישומים כאלו.

שפות C ו-Java הן שפות מקומפלות. כדי שהמערכת תוכל להריץ את הקוד, קוד המקור שנכתב ב-C מומר לקוד מכונה בינארי, בעוד שקוד המקור של Java מומר לבייטקוד (bytecode) שמבוצע בסביבה תוכנתית מיוחדת הנקראת Java Virtual Machine. JavaScript, Perl, Shell script, Python ו-PHP הן כולן שפות מתורגמות, הנקראות גם שפות סקריפטים.

תרגילים מודרכים

  1. עבור כל אחת מהפקודות הבאות, זיהה אם היא קשורה למערכת החבילות של Debian או למערכת החבילות של Red Hat:
    • dpkg
    • rpm
    • apt-get
    • yum
    • dnf
  2. איזו פקודה ניתן להשתמש בה כדי להתקין את Blender ב-Ubuntu? איך ניתן להפעיל את התוכנית לאחר ההתקנה?
  3. איזו אפליקציה מחבילת LibreOffice יכולה לשמש לעבודה עם גיליונות אלקטרוניים?
  4. איזה דפדפן קוד פתוח משמש כבסיס לפיתוח Google Chrome?
  5. SVG הוא תקן פתוח לגרפיקה וקטורית. איזו האפליקציה הפופולרית ביותר לעריכת קבצי SVG במערכות לינוקס?
  6. עבור כל אחד מפורמטי הקבצים הבאים, כתוב את שם האפליקציה שיכולה לפתוח ולערוך את הקובץ המתאים:
    • png
    • doc
    • xls
    • ppt
    • wav
  7. איזו חבילת תוכנה מאפשרת שיתוף קבצים בין מכונות לינוקס לחלונות ברשת המקומית?

תרגילי חקר

  1. אתה יודע שקבצי התצורה נשמרים גם אם החבילה המשויכת מוסרת מהמערכת. איך אפשר להסיר אוטומטית את החבילה בשם cups ואת קבצי התצורה שלה ממערכת מבוססת DEB?
  2. נניח שיש לך הרבה קבצי TIFF ואתה רוצה להמיר אותם ל-JPEG. איזו חבילת תוכנה ניתן להשתמש בה להמרת קבצים אלו ישירות משורת הפקודה?
  3. איזו חבילת תוכנה עליך להתקין כדי לפתוח קבצי Microsoft Word שנשלחו אליך על ידי משתמש חלונות?
  4. בכל שנה, linuxquestions.org מקדמים סקר על האפליקציות הפופולריות ביותר בלינוקס. בקר ב- linuxquestions.org וגלה אילו יישומי שולחן עבודה הם הפופולריים ביותר בקרב משתמשי לינוקס מנוסים.

סיכום

  • למדת על מערכות ניהול חבילות המשמשות בהפצות לינוקס הגדולות.
  • יישומים בקוד פתוח שיכולים לערוך פורמטי קבצים פופולריים.
  • תוכנות שרת המספקות שירותים רבים לאינטרנט ולרשתות מקומיות.
  • שפות תכנות נפוצות והשימושים שלהן.