במאי 1996 הוציא לאור ריצ'רד סטולמן את גרסה 19.31 של עורך הטקסט Emacs, כשהוא משנה ברשימת מערכות ההפעלה הנתמכות את השם "לינוקס" ל־"Lignux". הוא טען שיש לתת את הקרדיט הראוי לפרויקט, כשהוא משתמש במונח "מערכת גנו מבוססת לינוקס". לאחר מכן הפסיק סטולמן להשתמש במונח "Lignux" והוא משתמש באופן בלעדי במונח "גנו/לינוקס".
יש המכנים את המכלול כולו בשם לינוקס, אך פעילי תנועת התוכנה החופשית וריצ׳רד סטולמן בראשם מקדמים את הכינוי גנו/לינוקס, מכיוון שפרויקט גנו יזם וקידם את אידאולוגיות התוכנה החופשית שדחפו את פיתוחה של כלל המערכת באופן אידאולוגי וגם איפשרו אותה הלכה למעשה בתשתיות תוכנה שנכתבו. הבחירה בשם הכולל את "גנו" באה כדי להדגיש את הגרעין האידאולוגי של עקרונות החופש למשתמשים שאלמלא כן עלולים להכיר את מערכת ההפעלה כמוצר "טכני" בלבד.
ליבת מערכת ההפעלה שהייתה אמורה לתפקד בתוך מכלול גנו נקראה הֶרְד (באנגלית נשמע כמו "עדר", משחק מילים על "עדר של גנו"). מערכת הפעלה זו מתוכננת כמיקרו־ליבה, דהיינו אוסף ישויות המתקשרות זו עם זו (בניגוד ללינוקס, הבנויה מליבה מונוליתית אחת). מערכת כזו קשה יותר להביא לכלל פעולה יציבה, ואכן בתחילת שנות התשעים ניצב פרויקט גנו כשבידו די רכיבים לבניית מערכת הפעלה, פרט לליבה.
בשלב זה השימוש בכלים של גנו החל להתפשט במערכות הפעלה קנייניות רבות, ולפופולריות רבה זכו עורך הטקסט emacs, המהדר GCC, מעטפת, כלי מעטפת ועוד.
בשנת 1991 פרסם סטודנט צעיר מאוניברסיטת הלסינקי שבפינלנד בשם לינוס טורבלדס בסיס קטן למערכת הפעלה שיכול להריץ מספר כלים של גנו, ביניהם GCC ו־Bash. הפרסום היה בקבוצת הדיון comp.os.minix ברשת Usenet. לפי המכתב שהופץ, התכנה "לעולם לא תהיה משהו גדול ומקצועי כמו גנו", ו־"לעולם לא תהיה ניידת" (לא תעבוד על פלטפורמות חומרה אחרות פרט למעבד 80386 של אינטל)
לאור היסטוריה זו, מקפידים רבים מאנשי תנועת התוכנה החופשית לקרוא למערכת ההפעלה הכוללת בשם גנו/לינוקס. עמדת המוסד לתוכנה חופשית היא כי בשימור השם גנו בשמה של מערכת ההפעלה, היא מבקשת להזכיר כי פרויקט GNU, עקרונותיו לחירות פעולה בעולם המחשוב והתכנים הנסמכים עליו, קדמו לפרויקט הליבה של טורבאלדס בשנים. עקרונות אלו מכילים מטען פילוסופי חשוב המקיף עקרונות חברתיים שהם מנסים להפיץ ולהשריש באמצעות הפרויקט ורישיון GPL. קרן התכנה החופשית חוששת כי הימנעות מציון השם "גנו" בשם המערכת תשכיח את הגרעין האידאולוגי והמסר לא יגיע למשתמשים הבאים. כל זאת אף על פי שאנשי התנועה מודעים לכך שמערכת ההפעלה המודרנית הקרויה בשם הכולל "לינוקס" בפי כל כבר איננה מושתתת ברובה על גנו.
מנגד עומדים אלו המכנים את מערכת ההפעלה בשם לינוקס, ולא מתוך בורות. עדת המתנגדים מעלה לרוב את הטיעון של ספירת שורות קוד או מספר חבילות התוכנה במערכת ממקורות שונים, ביניהם BSD, XFree86 ועוד. אם המשתמש בוחר למשל בעורך הטקסט vim על פני GNU Emacs, מוותר על חבילת המהדרים GCC וכיוצא באלה, הרי שחלקי התוכנה מבית GNU יהיו ספורים ומצומצמים. בכך תוכח הטענה כי ניתן להריץ מערכת מעל ליבת לינוקס עם עזרה אפסית בלבד מפרויקט גנו. מכאן מסיקים אנשים אלה כי ההתעקשות של הדבקת GNU לשם המערכת היא עניין של אגו. ברם, זו אינה רק שאלה של מספר שורות קוד, GLIBC, ספרית התשתית של גנו/לינוקס המספקת בין השאר את גישה לקריאות המערכת ואת הטוען הדינאמי – המאפשר טעינה והרצה של תכנות וספריות, היא כולה קוד של גנו והיא מהווה תשתית לכל מה שרץ במרחב המשתמש. ראוי גם לציין כי קוד המקור של הליבה כולל הרחבות לשפת C שנתמכו עד לא מזמן רק במהדר GCC של גנו.
הוויכוח הניטש מוצג לעיתים קרובות כמלחמת אנשים בעלי חשיבה מעשית (הדוגלים במונח קוד פתוח) לעומת האידאולוגים (הדוגלים במונח תוכנה חופשית). ריצ׳רד סטולמן, אידאולוג אך גם איש מעשה שכתב לבדו את גרסאותיהן הראשונות של המרכזיות שבתוכניות פרויקט גנו, צוּטט לא פעם אומר כי "כאשר שואפים למטרה, אין כלי מעשי יותר מהאידאולוגיה".
כיום מקפידים פרויקטים כגון דביאן להמשיך לציין את גנו בשם המערכת, אך לא כך במוצרים של חברות מסחריות כגון Red Hat.
מודל שכבתי
מודל שכבתי הוא שיטה המשמשת בהנדסה לפירוק בעיה מורכבת למספר רבדים או שכבות. בכל רובד נפתרת תת-בעיה ספציפית, ואוסף כל הפתרונות מהווה את פתרונה של הבעיה המורכבת.
יתרונות המודל השכבתי.
למודל שכבתי יש מספר יתרונות, ביניהם:
זיכרון לקריאה בלבד
זיכרון לקריאה בלבד (מאנגלית: Read-only Memory, בראשי תיבות: ROM) הוא אמצעי לאחסון נתונים, דמוי זיכרון מחשב, המכיל נתונים הנכתבים בו פעם אחת, ונקראים ממנו פעמים רבות. שבבים אלה אינם ניתנים לכתיבה חוזרת (בצורה פשוטה), ומכאן שמם. בניגוד ל-RAM, תוכן ה-ROM נשמר גם לאחר ניתוק מקור מתח. הגישה ל-ROM פשוטה יותר ומהירה בהרבה מאשר גישה לאמצעי אחסון מגנטיים ואופטיים כגון דיסק קשיח או תקליטור.
בעבר שימש ה-ROM לאחסון מערכת ההפעלה כולה במחשבים אישיים. בהמשך נותרו ל-ROM מספר תפקידים עיקריים:
כיום, יותר ויותר פעולות במחשב שמולאו בעבר על ידי שבבי ROM (כולל תוכנת ה-BIOS) מבוצעים על ידי זיכרון הבזק, שיתרונו בכך שהוא מחיק (לא כמו ROM) ואינו תלוי בחיבור למקור מתח כמו זיכרון נדיף כך שניתן לעדכן את התוכנה המאוחסנת בו לגרסה חדשה יותר ללא צורך בהחלפתו כפי שיש לעשות כאשר משתמשים ב-ROM.
ROM באנדרואיד.
במערכת ההפעלה אנדרואיד ה-ROM מאחסן את מערכת ההפעלה של המכשיר שמריץ אותו, אך הוא ניתן להחלפה, באמצעות הרשאות מנהל, מערך Recovery (מקביל ל-BIOS במחשב) מותאם אישית או תוכנת צריבה (לדוגמה odin במכשירי סמסונג). צריבת ROM לא תקינה גורמת למכשיר להיכנס למצב המכונה "בריק" (Brick, בעברית: לבנה): מצב שבו לא ניתן להפעיל את מערכת ההפעלה של המכשיר. כדי לצאת ממצב בריק יש להיכנס למסך ה- Recovery, ולצרוב מחדש ROM. במקרים מסוימים, גם ה-Recovery או ה-FASTBOOT \ Download Mode לא יעלה. מצב זה נקרא בריק מלא, ומחייב החלפת לוח האם של המכשיר או צריבת המערכת על ידי חיבור ישיר לשבב הזיכרון על ידי JTAG. למכשירי סמסונג שמריצים אנדרואיד, קיים כלי בשם JIG אשר מחזיר את המכשיר למצב בו המשתמש יכול להיכנס ל-Download Mode אם המכשיר קיבל בריק חלקי.
פייתון
פייתון (באנגלית: Python) היא שפת תכנות דינמית מהנפוצות ביותר. פייתון תוכננה תוך שימת דגש על קריאוּת הקוד, וכוללת מבנים המיועדים לאפשר ביטוי של תוכניות מורכבות בדרך קצרה וברורה. אחד המאפיינים הבולטים בתחביר השפה הוא השימוש בהזחה להגדרת בלוקים של קוד (ללא שימוש בסוגריים או במילים שמורות לצורך כך, כמו ברוב השפות הנפוצות).
פייתון היא שפה מרובת־פרדיגמות, המאפשרת תכנות מונחה־עצמים, תכנות פרוצדורלי, ובמידה מסוימת גם תכנות פונקציונלי. לשפה ספרייה סטנדרטית גדולה וענפה, והיא תומכת באופן מובנה בהרחבה שלה אל שפות אחרות (בתלות במפרש: C, ++C, Java ו־#C).
לשפה שתי גרסאות ראשיות, פייתון 2 ופייתון 3. פייתון 2 איננה בפיתוח יותר, והתמיכה בה הסתיימה בשנת 2020.
פייתון מדורגת באופן עקבי כאחת משפות התכנות הפופולריות ביותר.
עיצוב ופיתוח.
השפה נוצרה על ידי גואידו ואן רוסום בתחילת שנות התשעים, במקור בתור פיתוח של שפת התכנות ABC אשר יוכל לטפל בחריגות עבור Amoeba OS. מאז השתנתה השפה בצורה משמעותית, וגם כיום נמשך הפיתוח ומוכנסים שינויים רבים. השפה תומכת באופן מובנה בעדכון גרסאות, ומושם דגש על תאימות־לאחור של גרסאות שונות. עם זאת, גרסה 3 של פייתון איננה תואמת באופן מלא לגרסאות קודמות. (הקוד המופיע בערך זה תואם לגרסה 3.0 ומעלה, ועבור גרסאות ותיקות יותר יש לבצע שינויים מינוריים). זכויות היוצרים על גרסאות פייתון החל מ־2.1 שייכות לקרן התוכנה של פייתון.
פייתון פותחה מתוך רצון להגיע לשפה פשוטה ומובנת, נוחה לקריאה וקלה לתחזוקה. לנגד עיניהם של מפתחי השפה, עמדה המטרה לאפשר קוד "יפה", "מפורש" ו"פשוט".
בין הכללים על פיהם מתוכננת השפה:
מאפייני השפה.
המימוש: מהדר ומפרש.
תוכניות פייתון נכתבות בקובצי טקסט, שעל־פי קונבנציה נשמרים במערכת ההפעלה בסיומת py. תוכניות פייתון עשויות לכלול קבצים רבים.
על מנת להריץ קוד פייתון יש לבחור מימוש – מהדר או מפרש – שיתרגם את הטקסט של התוכנית לפקודות שיתבצעו במעבד. לפייתון קיים "מימוש־ייחוס" כלומר מערכת שהיא זו שמגדירה את ההתנהגות של קוד שנכתב בשפה – בשם CPython. המימוש־ייחוס פועל בשני שלבים נפרדים: הידור והרצה.
לעיתים קרובות שני השלבים מתבצעים בתגובה לפקודה בודדת של המשתמש (כגון לחיצה כפולה על אייקון של קובץ שנכתב בשפה), אך תוצאת השלב הראשון נשמרת בקובץ נפרד כך שבהיעדר שינוי לקובץ הטקסט (קובץ py.) אין צורך לחזור על פעולת ההידור. כמו עבור כל שפת ביניים, יש להתקין מפרש פייתון על המכונה המבצעת, שמסוגל להריץ את קוד הביניים הנתון; מפרשים הם סטנדרט המובנה ברוב ההפצות של לינוקס, אך עבור מערכות הפעלה אחרות (כגון חלונות) יש לבצע התקנה עצמאית.
בנפרד מהתהליך המתואר לעיל, CPython תומך במצב פיתוח אינטראקטיבי, המאפשר לכתוב שורות קוד בודדות אשר יורצו מידית. מצב זה מאפשר לראות במהירות מה יהיו התוצאות של חלקים קטנים מהקוד, לערוך ניסויים, או לשמש כמחשבון שולחני.
מלבד CPython ישנם מימושים נוספים לשפה, בהם כאלה המשתמשים במנגנון JIT, וקיימים גם קומפיילרים לשפה המהדרים קוד של השפה אל שפת מכונה, לעיתים דרך שפת ביניים כגון ++C.
IPython מהווה מעטפת פקודה לשפת תכנות זו.
סגנונות תכנות נתמכים.