ספקי כוח
כל הרכיבים הפעילים במערכת מחשב דורשים חשמל כדי לפעול. למרבה הצער, רוב מקורות החשמל אינם מתאימים. חומרת מערכת המחשב דורשת מתחים ספציפיים עם סבילות נמוכה יחסית, מה שלא זמין משקע הקיר המקומי שלך.
ספקי הכוח מנרמלים את מקורות החשמל הזמינים. דרישות מתח סטנדרטיות מאפשרות ליצרנים ליצור רכיבי חומרה שניתן להשתמש בהם במערכות בכל רחבי העולם. ספקי כוח למחשבים שולחניים נוטים להשתמש בחשמל משקעי קיר כמקור. ספקי כוח לשרתים נוטים להיות קריטיים יותר, כך שהם יכולים להתחבר לעיתים קרובות למספר מקורות כדי להבטיח שהם ימשיכו לפעול אם מקור אחד ייכשל.
צריכת חשמל מייצרת חום. חום יתר יכול לגרום לרכיבי מערכת לפעול לאט או אפילו להיכשל. ברוב המערכות יש צורה כלשהי של מאוורר כדי להזיז אוויר לקירור יעיל יותר. רכיבים כגון מעבדים לעיתים מייצרים חום שאי אפשר לפזר אותו רק באמצעות זרימת אוויר. רכיבים חמים אלה מצרפים סנפירים מיוחדים הידועים כגופי קירור כדי לעזור לפזר את החום שהם מייצרים. גופי קירור לעיתים קרובות כוללים מאוורר מקומי קטן משלהם כדי להבטיח זרימת אוויר מספקת.
לוח אם
כל החומרה של מערכת צריכה להתחבר. לוח אם מנרמל את החיבור הזה באמצעות מחברים וצורות תקן. הוא גם מספק תמיכה לצרכים הקונפיגורטיביים והחשמליים של המחברים הללו.
ישנם מספר רב של קונפיגורציות ללוחות אם. הם תומכים במעבדים שונים ובמערכות זיכרון שונות. יש להם שילובים שונים של מחברים סטנדרטיים. והם מתאימים לגודלי האריזה שמכילה אותם. חוץ מהיכולת לחבר מכשירים חיצוניים ספציפיים, קונפיגורציית לוח אם היא בדרך כלל שקופה למשתמשים.
מנהלים נחשפים לקונפיגורציית לוח אם בעיקר כאשר יש צורך בזיהוי מכשירים ספציפיים.
כאשר מופעל החשמל לראשונה, יש חומרה ספציפית ללוח האם שצריכה להיות מוגדרת ומאותחלת לפני שהמערכת יכולה לפעול. לוחות אם משתמשים בתוכנה המאוחסנת בזיכרון בלתי נדיף, הידועה כקושחה, כדי לטפל בחומרה הספציפית ללוח האם. הצורה המקורית של קושחת לוח אם הייתה ידועה בשם BIOS (Basic Input/Output System). מעבר להגדרות קונפיגורציה בסיסיות, ה-BIOS היה אחראי בעיקר לזיהוי, טעינה והעברת הפעולה למערכת הפעלה כמו לינוקס.
ככל שהחומרה התפתחה, הקושחה התרחבה לתמוך בכוננים גדולים יותר, באבחונים, בממשקים גרפיים, ברשתות, וביכולות מתקדמות אחרות, ללא תלות במערכת הפעלה טעונה כלשהי. הניסיונות הראשונים להרחיב את הקושחה מעבר ל-BIOS הבסיסי היו לעיתים קרובות ספציפיים ליצרנית לוח אם. אינטל הגדירה תקן לקושחה מתקדמת הידועה בשם EFI (Extensible Firmware Interface). אינטל תרמה את EFI לארגון תקנים כדי ליצור את UEFI (Unified Extensible Firmware Interface). כיום, רוב לוחות האם משתמשים ב-UEFI. BIOS ו-EFI כמעט ולא נראים במערכות האחרונות.
למרות זאת, רוב האנשים עדיין מתייחסים לקושחת לוח אם כ-BIOS. ישנם מעט מאוד הגדרות קושחה שמעניינות את המשתמש הכללי, כך שרק אנשים שאחראים על קונפיגורציית חומרה של מערכת צריכים בדרך כלל להתעסק עם קושחה והגדרותיה. אחת האפשרויות הנפוצות המשתנות היא הפעלת הרחבות הוירטואליזציה של מעבדים מודרניים.
זיכרון
זיכרון מערכת מחזיק את הנתונים ואת קוד התוכנית של היישומים שפועלים כרגע. כשמדברים על זיכרון מחשב, רוב האנשים מתייחסים לזיכרון המערכת. מונח נפוץ נוסף המשמש לזיכרון מערכת הוא ראשי התיבות RAM (Random Access Memory) או וריאציה כלשהי על ראשי תיבות אלה.
פיזית, זיכרון מערכת הוא בדרך כלל ארוז על מודולים של לוח מעגלים בודדים שמתחברים ללוח האם. מודולים בודדים של זיכרון נעים כיום בין גודל של 2 ג’יגה בייט ל-64 ג’יגה בייט. עבור רוב היישומים הכלליים, 4 ג’יגה בייט הם מינימום שכדאי לשקול עבור זיכרון מערכת. עבור תחנות עבודה אישיות, 16 ג’יגה בייט בדרך כלל יותר ממספיק. עם זאת, אפילו 16 ג’יגה בייט עשויים להיות מוגבלים למשתמשים שמריצים משחקים, וידאו, או יישומי אודיו מתקדמים. שרתים דורשים לעיתים קרובות 128 ג’יגה בייט או אפילו 256 ג’יגה בייט של זיכרון כדי לתמוך בעומסי המשתמשים ביעילות.
מעבדים
המילה “מעבד” מרמזת שמשהו מעובד. במחשבים, רוב העיבוד מתבצע על ידי אותות חשמליים. בדרך כלל אותות אלה מטופלים כאחד מהערכים הבינאריים 1 או 0.
כאשר מדברים על מחשבים, אנשים לעיתים קרובות משתמשים במילה “מעבד” ו-CPU (יחידת עיבוד מרכזית) לסירוגין. מה שלא לגמרי מדויק. לכל מחשב כללי יש CPU שמעבד את הפקודות הבינאריות שמוגדרות על ידי תוכנה, ולכן זה מובן שאנשים מחליפים בין המונחים “מעבד” ו-CPU. עם זאת, בנוסף ל-CPU, מחשבים מודרניים כוללים לעיתים מעבדים אחרים המתמחים במשימות ספציפיות. לדוגמה, המעבד הנוסף המוכר ביותר הוא GPU (יחידת עיבוד גרפית). לכן, למרות ש-CPU הוא מעבד, לא כל המעבדים הם CPU.
לרוב האנשים, ארכיטקטורת המעבד מתייחסת למערך הפקודות שהמעבד תומך בהן. למרות שאינטל ו-AMD מייצרות מעבדים התומכים באותן פקודות, חשוב להבדיל בין היצרנים בשל הבדלים באריזה, ביצועים, וצריכת חשמל ספציפיים ליצרן. הפצות תוכנה משתמשות בדרך כלל בהגדרות אלו כדי לציין את מערך הפקודות המינימלי שהן דורשות לפעולה:
- i386: מתייחס למערך הפקודות של 32 ביט המקושר למעבד Intel 80386.
- x86: מתייחס למערך הפקודות של 32 ביט המקושר ליורשים של 80386 כמו 80486, 80586 ופנטיום.
- x64 / x86-64: מתייחס למעבדים התומכים בפקודות 32 ביט וגם 64 ביט ממשפחת x86.
- AMD: מתייחס לתמיכה ב-x86 על ידי מעבדי AMD.
- AMD64: מתייחס לתמיכה ב-x64 על ידי מעבדי AMD.
- ARM: מתייחס למעבד RISC (Reduced Instruction Set Computer) שאינו מבוסס על מערך הפקודות של x86. בשימוש נפוץ במכשירים משובצים, ניידים, טאבלטים, ומכשירים שפועלים על סוללות. גרסה של לינוקס ל-ARM משמשת את ה-Raspberry Pi.
הקובץ /proc/cpuinfo מכיל מידע מפורט על המעבד של המערכת. למרבה הצער, הפרטים אינם ידידותיים למשתמשים כלליים. תוצאה כללית יותר ניתן לקבל באמצעות הפקודה lscpu. הנה פלט מתוך Raspberry Pi B+:
$ lscpu
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Model: 4
Model name: ARMv7 Processor rev 4 (v7l)
CPU max MHz: 1400.0000
CPU min MHz: 600.0000
BogoMIPS: 38.40
Flags: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
עבור רוב האנשים, מגוון היצרנים, משפחות המעבדים, והגורמים הספציפיים מייצגים מבחר מבלבל של אפשרויות. עם זאת, ישנם כמה גורמים הקשורים למעבדים ו-CPU שאפילו משתמשים כלליים ומנהלי מערכות נדרשים לעיתים לשקול כאשר הם צריכים להגדיר סביבות עבודה:
- גודל ביט: עבור מעבדים, המספר הזה מתייחס לגודל הנתונים הטבעי שהם מעבדים ולכמות הזיכרון שהם יכולים לגשת אליו. רוב המערכות המודרניות הן או 32 ביט או 64 ביט. אם יישום זקוק ליותר מ-4 ג’יגה בייט של זיכרון, הוא חייב לרוץ על מערכת 64 ביט מכיוון ש-4 ג’יגה בייט הוא כתובת המקסימום שניתן לייצג באמצעות 32 ביט. בעוד שיישומי 32 ביט יכולים בדרך כלל לרוץ על מערכות 64 ביט, יישומי 64 ביט לא יכולים לרוץ על מערכות 32 ביט.
- מהירות שעון: לעיתים מתבטאת במגה הרץ (MHz) או ג’יגה הרץ (GHz). מתייחסת למהירות שבה מעבד מעבד פקודות. אבל מהירות המעבד היא רק אחד הגורמים שמשפיעים על זמני התגובה של המערכת, זמני ההמתנה והקיבולת. משתמש רב-משימתי פעיל כמעט ואינו שומר על מעבד PC פעיל יותר מ-2 או 3 אחוז מהזמן. עם זאת, אם אתה משתמש לעיתים קרובות ביישומים שדורשים עיבוד כבד כמו הצפנה או עיבוד וידאו, מהירות המעבד עשויה להשפיע בצורה משמעותית על התפוקה וזמני ההמתנה.
- זיכרון מטמון: מעבדים דורשים זרם קבוע של פקודות ונתונים כדי לפעול. העלות וצריכת החשמל של זיכרון מערכת רב-ג’יגה-בייט שניתן לגשת אליו במהירות שעון של מעבד הייתה בלתי אפשרית. זיכרון מטמון במהירות מעבד משולב על שבב המעבד כדי לספק חוצץ מהיר בין מעבדים לזיכרון מערכת. זיכרון מטמון מחולק למספר שכבות, הידועות בדרך כלל כ-L1, L2, L3 ואפילו L4. במקרה של זיכרון מטמון, ככל שיש יותר – יותר טוב.
- ליבות: “ליבה” מתייחסת ל-CPU בודד. בנוסף לכך שליבה מייצגת מעבד פיזי, טכנולוגיית Hyper-Threading (HTT) מאפשרת למעבד פיזי בודד לעבד מספר פקודות במקביל וכך לפעול כאילו היו מעבדים פיזיים מרובים. לרוב, מספר ליבות פיזיות נארזות כשבב מעבד פיזי בודד. עם זאת, ישנם לוחות אם שתומכים במספר שבבי מעבדים פיזיים. תאורטית, ככל שיש יותר ליבות לעבד משימות, כך ניתן היה לצפות לשיפור בתפוקת המערכת. עם זאת, יישומי שולחן עבודה לעיתים קרובות מעסיקים מעבדים רק 2 או 3 אחוז מהזמן, כך שהוספת ליבות מעבד שיהיו ברוב הזמן לא פעילות עלולה להוביל לשיפור מינימלי בתפוקה. ליבות נוספות מתאימות יותר להפעלת יישומים שנכתבו כך שיש להם מספר שרשורי פעולה בלתי תלויים, כמו עיבוד פריימים של וידאו, עיבוד דפי אינטרנט או סביבות מכונות וירטואליות מרובות משתמשים.
אחסון
התקני אחסון מספקים שיטה לשמירת תוכניות ונתונים. כונני דיסק קשיח (HDDs) וכונני מצב מוצק (SSDs) הם הצורות הנפוצות ביותר של התקני אחסון לשרתים ולמחשבים שולחניים. גם התקני זיכרון USB ומכשירים אופטיים כמו DVD נמצאים בשימוש, אך לעיתים רחוקות כהתקן עיקרי.
כפי שהשם מרמז, כונן דיסק קשיח מאחסן מידע על דיסקים פיזיים קשיחים. הדיסקים הפיזיים מצופים במדיה מגנטית כדי לאפשר אחסון. הדיסקים נמצאים בתוך חבילה אטומה מכיוון שאבק, חלקיקים קטנים ואפילו טביעות אצבע יכולים להפריע ליכולת של ה-HDD לקרוא ולכתוב את המדיה המגנטית.
כונני SSD הם למעשה גרסאות מתוחכמות יותר של התקני זיכרון USB עם קיבולת גדולה בהרבה. SSDs מאחסנים מידע בשבבים מיקרוסקופיים כך שאין בהם חלקים נעים.
למרות שהטכנולוגיות הבסיסיות של HDDs ו-SSDs שונות, ישנם גורמים חשובים שניתן להשוות. קיבולת ה-HDD מבוססת על הגדלת רכיבים פיזיים בעוד שקיבולת ה-SSD תלויה במספר השבבים המיקרוסקופיים. עלות ל-GB של SSD היא בין פי 3 לפי 10 מהעלות של HDD. כדי לקרוא או לכתוב, ה-HDD חייב לחכות למיקום על הדיסק שיסתובב למיקום ידוע בעוד ש-SSDs הם בעלי גישה אקראית. מהירות הגישה של SSD היא בדרך כלל פי 3 עד 5 מהר יותר ממכשירי HDD. מכיוון שאין להם חלקים נעים, SSDs צורכים פחות חשמל ואמינים יותר מ-HDDs.
קיבולת האחסון ממשיכה לגדול עבור HDDs ו-SSDs. כיום, כונני HDD של 5 טרה-בייט וכונני SSD של 1 טרה-בייט זמינים לרכישה. עם זאת, קיבולת גדולה של אחסון אינה תמיד טובה יותר. כאשר התקן אחסון נכשל, המידע שהוא מכיל כבר אינו נגיש. כמובן שגם הגיבוי נמשך זמן רב יותר כשיש יותר מידע לגבות. עבור יישומים שקוראים וכותבים הרבה נתונים, זמן ההמתנה והביצועים עשויים להיות חשובים יותר מקיבולת.
מערכות מודרניות משתמשות ב-SCSI (ממשק מערכת מחשב קטן) או SATA (חיבור טורי מתקדם) כדי להתחבר להתקני אחסון. ממשקים אלה נתמכים בדרך כלל על ידי המחבר המתאים על לוח האם. הטעינה הראשונית מגיעה מהתקן אחסון המחובר ללוח האם. הגדרות הקושחה מגדירות את הסדר שבו הגישה להתקנים מתבצעת לצורך טעינה ראשונית זו.
מערכות אחסון הידועות בשם RAID (מערך של דיסקים עצמאיים משוכפלים) הן יישום נפוץ למניעת אובדן מידע. מערך RAID מורכב ממספר התקנים פיזיים המכילים עותקים משוכפלים של מידע. אם התקן אחד נכשל, כל המידע עדיין זמין. תצורות RAID פיזיות שונות מקבלות שמות כגון 0, 1, 5, 6, ו-10. לכל תצורה יש מאפייני גודל אחסון, ביצועים ושיטות לשמירת נתונים משוכפלים או צ’קסומים לשחזור נתונים. מעבר לכמה הגדרות ניהוליות, קיומו של RAID שקוף בדרך כלל למשתמשים.
התקני אחסון בדרך כלל קוראים וכותבים נתונים כבלוקים של בתים. ניתן להשתמש בפקודה lsblk כדי לרשום את התקני הבלוק הזמינים במערכת. הדוגמה הבאה הורצה על Raspberry Pi תוך שימוש בכרטיס SD כהתקן אחסון. הפרטים של הפלט מכוסים בשיעורים על מחיצות והתקנים בהמשך:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 29.7G 0 disk
+-mmcblk0p1 179:1 0 43.9M 0 part /boot
+-mmcblk0p2 179:2 0 29.7G 0 part /
מחיצות
התקן אחסון הוא למעשה רצף ארוך של מקומות אחסון. חלוקת מחיצות היא המנגנון שאומר ללינוקס האם לראות את המקומות הללו כרצף אחד או מספר רצפים עצמאיים. כל מחיצה מטופלת כאילו היא התקן נפרד. רוב הזמן המחיצות נוצרות כאשר המערכת מוגדרת לראשונה. אם יש צורך בשינוי, כלי ניהול זמינים כדי לנהל את חלוקת המחיצות.
אז מדוע חלוקת מחיצות תהיה רצויה? כמה דוגמאות לשימוש במחיצות כוללות ניהול נפח אחסון זמין, בידוד תקורות הצפנה, או תמיכה במערכות קבצים מרובות. מחיצות מאפשרות שיהיה התקן אחסון יחיד שניתן לאתחל מתחת למערכות הפעלה שונות.
בעוד שלינוקס יכולה לזהות את רצף האחסון של התקן גולמי, התקן גולמי לא ניתן לשימוש כפי שהוא. כדי להשתמש בהתקן גולמי יש לעצב אותו. העיצוב כותב מערכת קבצים להתקן ומכין אותו לפעולות קבצים. ללא מערכת קבצים לא ניתן להשתמש בהתקן לפעולות שקשורות לקבצים.
משתמשים רואים מחיצות כאילו הן התקנים נפרדים. זה מקל להתעלם מהעובדה שהם עדיין מתמודדים עם התקן פיזי יחיד. בפרט, פעולות התקן להתקן שהן למעשה פעולות מחיצה למחיצה לא ייתנו את הביצועים המצופים. התקן יחיד הוא מנגנון פיזי אחד עם ערכת חומרה אחת לקריאה/כתיבה. חשוב יותר, לא ניתן להשתמש במחיצות של התקן פיזי יחיד כעיצוב עמיד לתקלות. אם ההתקן נכשל, כל המחיצות נכשלות, כך שלא תהיה עמידות לתקלות.
הערה: Logical Volume Manager (LVM) הוא יכולת תוכנה שמאפשרת למנהלים לשלב דיסקים ודיסקים מחולקים למחיצות ולהתייחס אליהם כאילו הם כונן יחיד.
התקנים היקפיים
שרתים ותחנות עבודה זקוקים לשילוב של מעבד (CPU), זיכרון מערכת, ואחסון כדי לפעול. אך רכיבים בסיסיים אלה אינם מתחברים ישירות לעולם החיצוני. התקנים היקפיים הם המכשירים שמספקים למערכות קלט, פלט וגישה לעולם האמיתי.
רוב לוחות האם כוללים מחברים חיצוניים מובנים ותמיכה בקושחה לממשקים היקפיים נפוצים כמו מקלדת, עכבר, סאונד, וידאו ורשת. לוחות אם מודרניים כוללים בדרך כלל מחבר אתרנט לתמיכה ברשתות, מחבר HDMI לתמיכה בצרכים גרפיים בסיסיים, ואחד או יותר מחברי USB (Universal Serial Bus) לכל השאר. ישנם מספר גרסאות של USB עם מאפייני מהירות ופיזיים שונים. מספר גרסאות של יציאות USB נפוצות על לוח אם יחיד.
לוחות אם עשויים גם לכלול חריצי הרחבה. חריצי הרחבה מאפשרים למשתמשים להוסיף כרטיסי הרחבה מיוחדים שתומכים בהתקנים מותאמים אישית, ישנים או שאינם סטנדרטיים. כרטיסי הרחבה נפוצים כוללים ממשקי גרפיקה, סאונד ורשת. כרטיסי הרחבה גם תומכים ב-RAID ובממשקים בפורמטים ישנים כמו חיבורים טוריים ומקבילים.
תצורות System on a Chip (SoC) משיגות יתרונות של כוח, ביצועים, מקום ואמינות על פני תצורות לוח אם בכך שהן משלבות את המעבד, זיכרון המערכת, SSD, וחומרה לשליטה בהתקנים היקפיים בחבילת מעגל משולבת אחת. ההתקנים ההיקפיים הנתמכים על ידי תצורות SoC מוגבלים על ידי הרכיבים המשולבים. לכן, תצורות SoC נוטות להיות מפותחות לשימושים ספציפיים. טלפונים, טאבלטים ומכשירים ניידים אחרים מבוססים לעיתים קרובות על טכנולוגיית SoC.
חלק מהמערכות משלבות התקנים היקפיים. מחשבים ניידים דומים לתחנות עבודה אך כוללים התקני תצוגה, מקלדת ועכבר מובנים. מערכות All-In-One דומות למחשבים ניידים אך דורשות התקנים היקפיים כמו עכבר ומקלדת. בקרים מבוססי לוח אם או SoC לרוב נארזים עם התקנים היקפיים מובנים המתאימים לשימושים ספציפיים.
דרייברים וקבצי התקנים
עד כה, שיעור זה הציג מידע על מעבדים, זיכרון, דיסקים, חלוקת מחיצות, עיצוב והתקנים היקפיים. אך אם נדרוש ממשתמשים כלליים להתמודד עם הפרטים הספציפיים של כל אחד מההתקנים במערכת שלהם, הדבר יגרום לכך שהמערכות יהיו בלתי ניתנות לשימוש. כמו כן, מפתחי תוכנה יצטרכו לשנות את הקוד שלהם עבור כל התקן חדש או משודרג שעליהם לתמוך בו.
הפתרון לבעיה זו של “התמודדות עם הפרטים” מגיע באמצעות דרייבר התקן. דרייברים מקבלים מערך סטנדרטי של בקשות ולאחר מכן מתרגמים בקשות אלו לפעילויות המתאימות לשליטה בהתקן. הדרייברים הם אלו שמאפשרים לך וליישומים שלך לקרוא מהקובץ /home/carol/stuff מבלי לדאוג אם הקובץ נמצא על דיסק קשיח, כונן SSD, כונן זיכרון USB, אחסון מוצפן או כל התקן אחר.
קבצי התקנים נמצאים בתיקיית /dev ומזהים התקנים פיזיים, גישה להתקנים ודרייברים נתמכים. לפי מוסכמות המערכות המודרניות שמשתמשות בהתקני אחסון מבוססי SCSI או SATA, שם הקובץ מתחיל עם הקידומת sd. הקידומת מלווה באות כמו a או b, המצביעה על התקן פיזי. לאחר הקידומת ומזהה ההתקן מגיע מספר המצביע על מחיצה בתוך ההתקן הפיזי. לדוגמה, /dev/sda יתייחס לכל התקן האחסון הראשון, בעוד /dev/sda3 יתייחס למחיצה 3 בהתקן האחסון הראשון. לכל סוג התקן יש מוסכמות שם המתאימות לו. למרות שמוסכמות שמות אלו חורגות מתחום השיעור, חשוב לזכור שהן קריטיות להפיכת ניהול המערכת לאפשרי.
למרות שזה חורג מהיקף השיעור לסקור את תוכן תיקיית /dev, יש תועלת להסתכל על הכניסה של התקן אחסון. קבצי התקנים לכרטיסי SD בדרך כלל משתמשים בקידומת mmcblk:
$ ls -l mmcblk*
brw-rw---- 1 root disk 179, 0 Jun 30 01:17 mmcblk0
brw-rw---- 1 root disk 179, 1 Jun 30 01:17 mmcblk0p1
brw-rw---- 1 root disk 179, 2 Jun 30 01:17 mmcblk0p2
הפרטים של רישום התקן שונים מפרטי רישום של קובץ רגיל:
- בניגוד לקובץ או תיקייה, האות הראשונה של שדה ההרשאות היא
b. הדבר מצביע על כך שהנתונים נקראים ונכתבים מההתקן בבלוקים ולא בתווים בודדים. - שדה הגודל מורכב משני ערכים המופרדים על ידי פסיק ולא ערך יחיד. הערך הראשון מציין בדרך כלל דרייבר ספציפי בתוך הליבה, והערך השני מציין התקן ספציפי המנוהל על ידי הדרייבר.
- שם הקובץ משתמש במספר עבור ההתקן הפיזי כך שמוסכמת השמות מתאימה את עצמה על ידי הוספת סיומת מחיצה כ-
pואחריה ספרה.
הערה: לכל התקן מערכת צריך להיות ערך בתיקיית /dev. מכיוון שתוכן תיקיית /dev נוצר בעת ההתקנה, לעיתים יש ערכים לכל דרייבר והתקן אפשרי גם אם אין התקן פיזי קיים.
תרגילים מודרכים
1. תאר את המונחים הבאים:
- מעבד (Processor)
- יחידת עיבוד מרכזית (CPU)
- יחידת עיבוד גרפית (GPU)
2. אם אתה מריץ בעיקר יישומי עריכת וידאו (פעולה עתירת משאבים), אילו רכיבים ומאפיינים היית מצפה שיהיו בעלי ההשפעה הרבה ביותר על השימושיות של המערכת:
- ליבות המעבד (CPU cores)
- מהירות המעבד (CPU speed)
- זיכרון מערכת זמין (Available system memory)
- מערכת האחסון (Storage system)
- יחידת עיבוד גרפית (GPU)
- תצוגת וידאו (Video display)
- אף אחד מהנ”ל
3. מה היית מצפה שיהיה שם קובץ ההתקן בתיקיית /dev עבור מחיצה 3 בכונן SATA השלישי במערכת:
sd3p3sdcp3sdc3- אף אחד מהנ”ל
תרגילי חקר
1. הרץ את הפקודה lsblk במערכת שלך. זיהה את הפרמטרים הבאים. אם אין לך מערכת זמינה מיד, שקול את הפלט של lsblk -f עבור מערכת Raspberry Pi שהוזכרה בסעיף “אחסון” לעיל:
$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
mmcblk0
+-mmcblk0p1 vfat boot 9304-D9FD /boot
+-mmcblk0p2 ext4 rootfs 29075e46-f0d4-44e2-a9e7-55ac02d6e6cc /
- סוג ההתקנים וכמותם
- מבנה המחיצות של כל התקן
- סוג מערכת הקבצים והמיקום של כל מחיצה
סיכום
מערכת היא סכום של רכיביה. רכיבים שונים משפיעים על עלות, ביצועים ושימושיות בדרכים שונות. למרות שיש תצורות נפוצות עבור תחנות עבודה ושרתים, אין תצורה אחת שהיא הטובה ביותר.
תשובות לתרגילים מודרכים
1. תאר את המונחים הבאים:
- מעבד (Processor)
מונח כללי שמתייחס לכל סוג של מעבד. לעיתים קרובות משתמשים בו בצורה שגויה כמילה נרדפת ל-CPU. - יחידת עיבוד מרכזית (CPU)
יחידת עיבוד מרכזית. יחידת עיבוד המספקת תמיכה במשימות חישוב כלליות. - יחידת עיבוד גרפית (GPU)
יחידת עיבוד גרפית. יחידת עיבוד המותאמת במיוחד לפעולות הקשורות להצגת גרפיקה.
2. אם אתה עוסק בעיקר בעריכת וידאו (פעילות עתירת משאבים), אילו רכיבים ומאפיינים היית מצפה שיהיו בעלי ההשפעה הרבה ביותר על השימושיות של המערכת:
- ליבות המעבד (CPU cores)
כן. ליבות מרובות תומכות במשימות הקונקרטיות של הצגה ורינדור הנדרשות בעריכת וידאו. - מהירות המעבד (CPU speed)
כן. רינדור וידאו דורש כמות משמעותית של חישובים. - זיכרון מערכת זמין (Available system memory)
כנראה. הווידאו הלא דחוס המשמש בעריכה הוא גדול. מערכות כלליות בדרך כלל כוללות 8 ג’יגה בייט זיכרון. 16 או אפילו 32 ג’יגה בייט זיכרון מאפשרות למערכת להתמודד עם יותר פריימים של וידאו לא דחוס, מה שמייעל את תהליך העריכה. - מערכת האחסון (Storage system)
כן. קבצי וידאו הם גדולים. השימוש בכונני SSD מקומיים תומך בהעברה יעילה יותר. כוננים איטיים יותר על הרשת עשויים לפגוע בביצועים. - יחידת עיבוד גרפית (GPU)
לא. ה-GPU משפיע בעיקר על הצגת הווידאו המרונדר. - תצוגת וידאו (Video display)
לא. תצוגת הווידאו משפיעה בעיקר על הצגת הווידאו המרונדר. - אף אחד מהנ”ל
לא. לחלק מהגורמים הללו יש השפעה ברורה על השימושיות של המערכת שלך.
3. מה היית מצפה שיהיה שם קובץ ההתקן בתיקיית /dev עבור מחיצה 3 בכונן SATA השלישי במערכת:
sd3p3לא נכון. הכונן השלישי יהיהsdcולאsd3.sdcp3לא נכון. מחיצה 3 תהיה3ולאp3.sdc3נכון.אף אחד מהנ"ללא נכון. התשובה הנכונה היא אחת מהאפשרויות שניתנו.
תשובות לתרגילי חקר
1. הרץ את הפקודה lsblk במערכת שלך. זיהה את הפרמטרים הבאים. אם אין לך מערכת זמינה, שקול את הפלט של lsblk -f עבור מערכת Raspberry Pi שהוזכרה בסעיף “אחסון” לעיל:
$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
mmcblk0
+-mmcblk0p1 vfat boot 9304-D9FD /boot
+-mmcblk0p2 ext4 rootfs 29075e46-f0d4-44e2-a9e7-55ac02d6e6cc /
- סוג ההתקנים וכמותם: ישנו התקן אחד:
mmcblk0. לפי המוסכמות,mmcblkיהיה כרטיס זיכרון SD. - מבנה המחיצות של כל התקן: ישנן שתי מחיצות:
mmcblk0p1ו-mmcblk0p2. - סוג מערכת הקבצים והמיקום של כל מחיצה: מחיצה 1 משתמשת במערכת הקבצים
vfat. היא משמשת לאתחול המערכת וממוקמת ב-/boot. מחיצה 2 משתמשת במערכת הקבציםext4. היא משמשת כמערכת הקבצים הראשית וממוקמת ב-/.
Power Supplies
All of the active components in a computer system require electricity to operate. Unfortunately,
most sources of electricity are not appropriate. Computer system hardware requires specific voltages
with relatively tight tolerances. Which is not what is available from your local wall outlet.
Power supplies normalize available sources of power. Standard voltage requirements allow
manufacturers to create hardware components that can be used in systems anywhere in the world.
Desktop power supplies tend to use the electricity from wall outlets as a source. Server power
supplies tend to be more critical so they can often connect to multiple sources to assure that they
continue operating if one source fails.
Consuming power generates heat. Excessive heat can cause system components to operate slowly or
even fail. Most systems have some form of fan to move air for more efficient cooling. Components
such as processors often generate heat that air flow alone cannot dissipate. These hot components
attach special fins known as heat sinks to help dissipate the heat they generate. Heat sinks often
have their own small local fan to ensure adequate air flow.
Motherboard
All of a system’s hardware needs to interconnect. A motherboard normalizes that interconnection
using standardized connectors and form factors. It also provides support for the configuration and
electrical needs of those connectors.
There are a large number of motherboard configurations. They support different processors and
memory systems. They have different combinations of standardized connectors. And they adapt to
the different sizes of the packaging that contains them. Except perhaps for the ability to connect
specific external devices, motherboard configuration is effectively transparent to users.
Administrators are mostly exposed to motherboard configuration when there is a need to identify
specific devices.
When power is first applied there is motherboard specific hardware that must be configured and
initialized before the system can operate. Motherboards use programming stored in nonvolatile
memory known as firmware to deal with motherboard specific hardware. The original form of
motherboard firmware was known as BIOS (Basic Input/Output System). Beyond basic configuration
settings BIOS was mostly responsible for identifying, loading, and transferring operation to an
operating system such as Linux. As hardware evolved, firmware expanded to support larger disks,
diagnostics, graphical interfaces, networking, and other advanced capabilities independent of any
loaded operating system. Early attempts to advance firmware beyond basic BIOS was often specific
to a motherboard manufacturer. Intel defined a standard for advanced firmware known as EFI
(Extensible Firmware Interface). Intel contributed EFI to a standards organization to create UEFI
(Unified Extensible Firmware Interface). Today, most motherboards use UEFI. BIOS and EFI are almost
Linux Essentials (Version 1.6) | 4.2 Understanding Computer Hardware
Version: 2022-04-29 | Licensed for Cyber School. | learning.lpi.org | 267
never seen on recent systems. Regardless, most people still refer to motherboard firmware as BIOS.
There are very few firmware settings of interest to general users so only individuals responsible for
system hardware configuration typically need to deal with firmware and its settings. One of the few
commonly changed options is enabling virtualization extensions of modern CPUs.
Memory
System memory holds the data and program code of currently running applications. When they talk
about computer memory most people are referring to this system memory. Another common term
used for system memory is the acronym RAM (Random Access Memory) or some variation of that
acronym. Sometimes references to the physical packaging of the system memory such as DIMM,
SIMM or DDR are also used.
Physically, system memory is usually packaged on individual circuit board modules that plug into
the motherboard. Individual memory modules currently range in size from 2 GB to 64 GB. For most
general purpose applications 4 GB is the minimum system memory people should consider. For
individual workstations 16 GB is typically more than sufficient. However even 16 GB might be
limiting for users running gaming, video, or high-end audio applications. Servers often require 128
GB or even 256 GB of memory to efficiently support user loads.
For the most part Linux allows users to treat system memory as a black box. An application is
started and Linux takes care of allocating the system memory required. Linux releases the memory
for use by other applications when an application completes. But what if an application requires
more than the available system memory? In this case, Linux moves idle applications from system
memory into a special disk area known as swap space. Linux moves idle applications from the disk
swap space back to system memory when they need to run.
Systems without dedicated video hardware often use a portion of the system memory (often 1 GB) to
act as video display storage. This reduces the effective system memory. Dedicated video hardware
typically has its own separate memory that is not available as system memory.
There are several ways to obtain information about system memory. As a user, the total amount of
memory available and in use are typically the values of interest. One source of information would be
to run the command free along with the parameter -m to use megabytes in the output:
$ free -m
total used free shared buff/cache available
Mem: 748 37 51 14 660 645
Swap: 99 0 99
Linux Essentials (Version 1.6) | Topic 4: The Linux Operating System
268 | learning.lpi.org | Licensed for Cyber School. | Version: 2022-04-29
The first line specifies the total memory available to the system (total), the memory in use (used)
and the free memory (free). The second line displays this information for the swap space. Memory
indicated as shared and buff/cache is currently used for other system functions, although the
amount indicated in available could be used for application.
Processors
The word “processor” implies that something is being processed. In computers most of that
processing is dealing with electrical signals. Typically those signals are treated as having one of the
binary values 1 or 0.
When people talk about computers they often use the word processor interchangeably with the
acronym CPU (Central Processing Unit). Which is not technically correct. Every general purpose
computer has a CPU that processes the binary commands specified by software. So it is
understandable that people interchange processor and CPU. However, in addition to a CPU, modern
computers often include other task specific processors. Perhaps the most recognizable additional
processor is a GPU (Graphical Processing Unit). Thus, while a CPU is a processor, not all processors
are CPUs.
For most people CPU architecture is a reference to the instructions that the processor supports.
Although Intel and AMD make processors supporting the same instructions it is meaningful to
differentiate by vendor because of vendor specific packaging, performance, and power consumption
differences. Software distributions commonly use these designations to specify the minimum set of
instructions they require to operate:
i386
References the 32-bit instruction set associated with the Intel 80386.
x86
Typically references the 32-bit instruction sets associated with successors to the 80386 such as
80486, 80586, and Pentium.
x64 / x86-64
References processors that support both the 32-bit and 64-bit instructions of the x86 family.
AMD
A reference to x86 support by AMD processors.
AMD64
A reference to x64 support by AMD processors.
Linux Essentials (Version 1.6) | 4.2 Understanding Computer Hardware
Version: 2022-04-29 | Licensed for Cyber School. | learning.lpi.org | 269
ARM
References a Reduced Instruction Set Computer (RISC) CPU that is not based on the x86 instruction
set. Commonly used by embedded, mobile, tablet, and battery operated devices. A version of
Linux for ARM is used by the Raspberry Pi.
The file /proc/cpuinfo contains detailed information about a system’s processor. Unfortunately the
details are not friendly to general users. A more general result can be obtained with the command
lscpu. Output from a Raspberry Pi B+:
$ lscpu
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Model: 4
Model name: ARMv7 Processor rev 4 (v7l)
CPU max MHz: 1400.0000
CPU min MHz: 600.0000
BogoMIPS: 38.40
Flags: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva
idivt vfpd32 lpae evtstrm crc32
To most people the myriad of vendors, processor families, and specification factors represent a
bewildering array of choices. Regardless, there are several factors associated with CPUs and
processors that even general users and administrators often need to consider when they need to
specify operational environments:
Bit size
For CPUs this number relates to both the native size of data it manipulates and the amount of
memory it can access. Most modern systems are either 32-bit or 64-bit. If an application needs
access to more than 4 gigabytes of memory then it must run on a 64-bit system since 4 gigabytes
is the maximum address that can be represented using 32 bits. And, while 32-bit applications can
typically run on 64-bit systems, 64-bit applications cannot run on 32-bit systems.
Clock speed
Often expressed in megahertz (MHz) or gigahertz (GHz). This relates to how fast a processor
processes instructions. But processor speed is just one of the factors impacting system response
times, wait times, and throughput. Even an active multi-tasking user rarely keeps a CPU of a
Linux Essentials (Version 1.6) | Topic 4: The Linux Operating System
270 | learning.lpi.org | Licensed for Cyber School. | Version: 2022-04-29
common desktop PC active more than 2 or 3 percent of the time. Regardless, if you frequently
use computationally intensive applications involving activities such as encryption or video
rendering then CPU speed may have a significant impact on throughput and wait time.
Cache
CPUs require a constant stream of both instructions and data in order to operate. The cost and
power consumption of a multi-gigabyte system memory that could be accessed at CPU clock
speeds would be prohibitive. CPU-speed cache memory is integrated onto the CPU chip to
provide a high-speed buffer between CPUs and system memory. Cache is separated into multiple
layers, commonly referenced as L1, L2, L3 and even L4. In the case of cache, more is often better.
Cores
Core refers to an individual CPU. In addition to core representing a physical CPU, HyperThreading Technology (HTT) allows a single physical CPU to concurrently process multiple
instructions thus virtually acting as multiple physical CPUs. Most typically, multiple physical
cores are packaged as a single physical processor chip. However, there are motherboards that
support multiple physical processor chips. In theory having more cores to process tasks would
always seem to yield better system throughput. Unfortunately, desktop applications often only
keep CPUs busy 2 or 3 percent of the time, so adding more mostly idle CPUs is likely to result in
minimal improvement to throughput. More cores are best suited to running applications that are
written to have multiple independent threads of operation such as video frame rendering, web
page rendering, or multi-user virtual machine environments.
Storage
Storage devices provide a method for retaining programs and data. Hard Disk Drives (HDDs) and
Solid State Drives (SSDs) are the most common form of storage device for servers and desktops. USB
memory sticks and optical devices such as DVD are also used but rarely as a primary device.
As the name implies, a hard disk drive stores information on one or more rigid physical disks. The
physical disks are covered with magnetic media to make storage possible. The disks are contained
within a sealed package since dust, small particles, and even finger prints would interfere with the
ability of the HDD to read and write the magnetic media.
SSDs are effectively more sophisticated versions of USB memory sticks with significantly larger
capacity. SSDs store information in microchips so there are no moving parts.
Although the underlying technologies for HDDs and SSDs are different, there are important factors
that can be compared. HDD capacity is based on scaling physical components while SSD capacity
depends on the number of microchips. Per gigabyte, SSDs cost between 3 and 10 times what an HDD
costs. To read or write, an HDD must wait for a location on a disk to rotate to a known location
Linux Essentials (Version 1.6) | 4.2 Understanding Computer Hardware
Version: 2022-04-29 | Licensed for Cyber School. | learning.lpi.org | 271
while SSDs are random access. SSD access speeds are typically 3 to 5 times faster than HDD devices.
Since they have no moving parts SSDs consume less power and are more reliable than HDDs.
Storage capacity is constantly increasing for HDDs and SSDs. Today, 5 terabyte HDDs and 1
terabyte SSDs are commonly available. Regardless, large storage capacity is not always better. When
a storage device fails the information it contained is no longer available. And of course, backup takes
longer when there is more information to back up. For applications which read and write a lot of
data, latency and performance may be more important than capacity.
Modern systems use SCSI (Small Computer System Interface) or SATA (Serial AT Attachment) to
connect with storage devices. These interfaces are typically supported by the appropriate connector
on the motherboard. Initial load comes from a storage device attached to the motherboard. Firmware
settings define the order in which devices are accessed for this initial loading.
Storage systems known as RAID (Redundant Array of Independent Disks) are a common
implementation to avoid loss of information. A RAID array consists of multiple physical devices
containing duplicate copies of information. If one device fails all of the information is still available.
Different physical RAID configurations are referenced as 0, 1, 5, 6, and 10. Each designation has
different storage size, performance characteristics and ways to store redundant data or checksums
for data recovery. Beyond some administrative configuration overhead, the existence of RAID is
effectively transparent to users.
Storage devices commonly read and write data as blocks of bytes. The lsblk command can be used
to list the block devices available to a system. The following example was run on a Raspberry Pi
using an SD card as a storage device. The details of the output are covered by information in the
Partitions and Drivers lessons that follow:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 29.7G 0 disk
+-mmcblk0p1 179:1 0 43.9M 0 part /boot
+-mmcblk0p2 179:2 0 29.7G 0 part /
Partitions
A storage device is effectively a long sequence of storage locations. Partitioning is the mechanism
that tells Linux if it is to see these storage locations as a single sequence or multiple independent
sequences. Each partition is treated as if it is an individual device. Most of the time partitions are
created when a system is first configured. If change is needed, administrative tools are available to
manage device partitioning.
Linux Essentials (Version 1.6) | Topic 4: The Linux Operating System
272 | learning.lpi.org | Licensed for Cyber School. | Version: 2022-04-29
So why would multiple partitions be desirable? Some examples for using partitions would be
managing available storage, isolating encryption overhead, or supporting multiple file systems.
Partitions make it possible to have a single storage device that can boot under different operating
systems.
While Linux can recognize the storage sequence of a raw device a raw device cannot be used as-is.
To use a raw device it must be formatted. Formatting writes a file system to a device and prepares it
for file operations. Without a file system a device cannot be used for file-related operations.
Users see partitions as if they are individual devices. This makes it easy to overlook the fact that
they’re still dealing with a single physical device. In particular, device to device operations that are
actually partition to partition operations will not have the expected performance. A single device is
one physical mechanism with one set of read/write hardware. More importantly, you can’t use
partitions of a single physical device as a fault tolerant design. If the device fails, all partitions fail so
there would be no fault tolerance.
NOTE
Logical Volume Manager (LVM) is a software capability that allows administrators
to combine individual disks and disk partitions and treat them as if they are a
single drive.
Peripherals
Servers and workstations need a combination of CPU, system memory, and storage to operate. But
these fundamental components don’t directly interface with the external world. Peripherals are the
devices that provide systems with input, output, and access to the rest of the real world.
Most motherboards have built-in external connectors and firmware support for common legacy
peripheral interfaces supporting devices such as keyboard, mouse, sound, video, and network.
Recent motherboards typically have an Ethernet connector to support networks, a HDMI connector
supporting basic graphical needs, and one or more USB (Universal Serial Bus) connectors for mostly
everything else. There are several versions of USB with different speed and physical characteristics.
Several versions of USB ports are common on a single motherboard.
Motherboards may also have one or more expansion slots. Expansion slots allow users to add special
circuit boards known as expansion cards that support custom, legacy, and non-standard peripherals.
Graphics, sound, and network interfaces are common expansion cards. Expansion cards also support
RAID, and special format legacy interfaces involving serial and parallel connections.
System on a Chip (SoC) configurations achieve power, performance, space, and reliability advantages
over motherboard configurations by packaging processors, system memory, SSD, and hardware to
control peripherals as a single integrated circuit package. The peripherals supported by SoC
Linux Essentials (Version 1.6) | 4.2 Understanding Computer Hardware
Version: 2022-04-29 | Licensed for Cyber School. | learning.lpi.org | 273
configurations are limited by the components packaged. Thus, SoC configurations tend to be
developed for specific uses. Phones, tablets, and other portable devices are often based on SoC
technology.
Some systems incorporate peripherals. Laptops are similar to workstations but incorporate default
display, keyboard, and mouse peripherals. All-In-One systems are similar to laptops but require
mouse and keyboard peripherals. Motherboard or SoC based controllers are often packaged with
integral peripherals appropriate to a specific use.
Drivers and Device Files
So far, this lesson has presented information about processors, memory, disks, partitioning,
formatting and peripherals. But requiring general users to deal with the specific details for each of
the devices in their system would make those systems unusable. Likewise, software developers
would need to modify their code for every new or modified device they need to support.
The solution to this “dealing with the details” problem is provided by a device driver. Device drivers
accept a standard set of requests then translate those requests into the device appropriate control
activities. Device drivers are what allow you and the applications you run to read from the file
/home/carol/stuff without worrying about whether that file is on a hard drive, solid state drive,
memory stick, encrypted storage, or some other device.
Device files are found in the /dev directory and identify physical devices, device access, and
supported drivers. By convention, in modern systems using SCSI or SATA based storage devices the
specification filename starts with the prefix sd. The prefix is followed by a letter such as a or b
indicating a physical device. After the prefix and device identifier comes a number indicating a
partition within the physical device. So, /dev/sda would reference the entire first storage device
while /dev/sda3 would reference partition 3 in the first storage device. The device file for each type
of device has a naming convention appropriate to the device. While covering all of the possible
naming conventions is beyond the scope of this lesson it is important to remember that these
conventions are critical to making system administration possible.
While it is beyond the scope of this lesson to cover the contents of the /dev directory it is
informative to look at the entry for a storage device. Device files for SD cards typically use mmcblk as
a prefix:
$ ls -l mmcblk*
brw-rw—- 1 root disk 179, 0 Jun 30 01:17 mmcblk0
brw-rw—- 1 root disk 179, 1 Jun 30 01:17 mmcblk0p1
brw-rw—- 1 root disk 179, 2 Jun 30 01:17 mmcblk0p2
Linux Essentials (Version 1.6) | Topic 4: The Linux Operating System
274 | learning.lpi.org | Licensed for Cyber School. | Version: 2022-04-29
The listing details for a device file are different from typical file details:
• Unlike a file or directory the first letter of the permissions field is b. This indicates that blocks
are read from and written to the device in blocks rather than individual characters.
• The size field is two values separated by a comma rather than a single value. The first value
generally indicates a particular driver within the kernel and the second value specifies a specific
device handled by the driver.
• The filename uses a number for the physical device so the naming convention adapts by
specifying the partition suffix as a p followed by a digit.
NOTE
Each system device should have an entry in /dev. Since the contents of the /dev
directory are created at installation there are often entries for every possible driver
and device even if no physical device exists.
Linux Essentials (Version 1.6) | 4.2 Understanding Computer Hardware
Version: 2022-04-29 | Licensed for Cyber School. | learning.lpi.org | 275
Guided Exercises
1. Describe these terms:
Processor
CPU
GPU
2. If you are primarily running video editing applications (a computationally intensive activity)
which components and characteristics would you expect to have the most impact on system
usability:
CPU cores
CPU speed
Available system memory
Storage system
GPU
Video display
None of the above
3. What would you expect the name of the device file in /dev to be for partition 3 of the third
SATA drive in a system:
sd3p3
sdcp3
sdc3
None of the above
Linux Essentials (Version 1.6) | Topic 4: The Linux Operating System
276 | learning.lpi.org | Licensed for Cyber School. | Version: 2022-04-29
Explorational Exercises
1. Run the lsblk command on your system. Identify the parameters below. If a system is not
immediately available, consider the lsblk -f listing for the Raspberry Pi system mentioned in
the “Storage” section above:
$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
mmcblk0
+-mmcblk0p1 vfat boot 9304-D9FD /boot
+-mmcblk0p2 ext4 rootfs 29075e46-f0d4-44e2-a9e7-55ac02d6e6cc /
◦ The type of devices and how many
◦ The partition structure of each device
◦ The type of file system and mount for each partition
Linux Essentials (Version 1.6) | 4.2 Understanding Computer Hardware
Version: 2022-04-29 | Licensed for Cyber School. | learning.lpi.org | 277
Summary
A system is the sum of its components. Different components impact cost, performance, and
usability in different ways. While there are common configurations for workstations and servers
there is no single best configuration.
