גנו (מערכת הפעלה)

גנו (באנגלית GNU, ה-G מבוטאת) היא מערכת הפעלה שהייתה אמורה להיות הבסיס של פרויקט גנו. כתיבתה של הליבה של המיזם (Hurd) התעכבה ובהמשך שימשו חלקים חשובים ממנה למערכות לינוקס, בשילוב שנודע גם בשם GNU/Linux. השם GNU הוא ראשי תיבות רקורסיביים של "GNU's Not Unix" (גנו אינו יוניקס). בין התוכנות שנכתבו במסגרת הפרויקט: המהדר GCC, הליבה Hurd והמעטפת Bash. יוניקס היא מערכת הפעלה קניינית בשימוש נרחב; כיוון שהארכיטקטורה שלה הייתה מוכחת היטב, מערכת GNU תוכננה להיות תואמת לה. הארכיטקטורה של יוניקס אפשרה ל-GNU להיות מתוכנתת כרכיבי תוכנה נפרדים: רכיבים שכבר היו זמינים באופן חופשי, כמו מערכת סידור הדפוס TeX והמערכת הגרפית X11, אומצו ונעשה בהם שימוש חוזר, אחרות נכתבו מהבסיס. הפרויקט הוכרז לציבור ב-27 בספטמבר 1983 בקבוצות הדיון net.unix-wizards ו ו-net.usoft. העבודה על הפרויקט החלה באופן רציני ב-5 בינואר 1984, כאשר ריצ'רד סטולמן התפטר מעבודתו ב-MIT, כך שהוא יכול היה להשקיע את זמנו ב-GNU. ההודעה המקורית לוותה במנשר של גנו (GNU Manifesto) ומאמרים אחרים של סטולמן אשר פרשו את המניעים שלו בנוגע לפרויקט גנו. אחד מהם היה "להחזיר את תחושת שיתוף-הפעולה אשר שלטה בקהילת המחשוב בימים עברו". כדי להבטיח שהתוכנה של GNU תישאר חופשית לכל משתמשיה "להרצה, העתקה, שינוי והפצה", יצא הפרויקט תחת רישיון אשר מיועד לתת לכל אחד את ההיתרים הנ"ל, בעת שהוא גם מונע מכולם להוסיף הגבלות משל עצמם לרישיון המקורי. רעיון זה, אשר מוזכר כ-copyleft (משחק מילים באנגלית עם הביטוי "copyright", אשר מתורגם כ"זכויות יוצרים"), הפך מאוחר יותר לבסיס ה-GPL, הוא "הרישיון הציבורי הכללי של GNU". ב-1985 ייסד סטולמן את "המוסד לתוכנה חופשית" (FSF), מוסד הפטור ממס, כדי לספק תמיכה לוגיסטית, חוקית ופיננסית לפרויקט גנו. כמו כן, המוסד העסיק מתכנתים אשר תרמו ל-GNU, אם כי את החלק העיקרי של הפיתוח ביצעו (וממשיכים לבצע) מתנדבים. כאשר גנו החלה לצבור פרסום, חברות מגלות עניין החלו לתרום לפיתוח או למכירה של תוכנה של GNU ושל עזרה טכנית. הבולטת והמוצלחת מבין החברות הללו הייתה Cygnus Solutions, כעת חלק מ-Red Hat. ב-1990 היה למערכת גנו כבר עורך תמלילים בר-הרחבה בשם Emacs, מהדר יעיל ומצליח בשם GCC, ומרבית ספריות הגרעין והכלים של הפצת יוניקס סטנדרטית. המרכיב העיקרי שעדיין היה חסר היה הליבה (Kernel). במנשר של גנו הזכיר סטולמן ש-"ליבה ראשונית קיימת אך תכונות רבות עדיין נדרשות כדי לחקות את יוניקס". הוא התייחס ל-TRIX, ליבת RPC (קריאה להליכים מרחוק) שפותחה ב־MIT, שעורכיה החליטו להפיצה בחינם והייתה תואמת עם גרסה 7 של יוניקס. בדצמבר 1986 התחילה עבודה לשינוי ליבה זו, אך מפתחיה החליטו לבסוף שהיא לא מתאימה כנקודת התחלה, בעיקר מאחר שהיא רצה רק על "ארכיטקטורת 68000 היקרה והאלמונית" והיה צורך להתאים אותה לארכיטקטורות אחרות לפני שאפשר היה להשתמש בה. ב־1988 נשקלה במקומה ליבת "מאך", אשר פותחה ב-CMU (אוניברסיטת קרנג'י מלון), על אף שתחילה נדחה פיתוחה מפני שמפתחיה נדרשו להוריד קוד שהיה שייך לחברת AT&T. בתחילה הוחלט לקרוא לליבה Alix, אך המפתח מייקל בושנל העדיף מאוחר יותר את השם Hurd, כאשר השם הקודם נדחק לתת-מערכת ובסופו של דבר נעלם לחלוטין. גם הפיתוח של Hurd נעצר בסופו של דבר בעקבות בעיות טכניות ועימותים מתמשכים בין המפתחים. ב־1991 כתב לינוס טורבאלדס את הקרנל (ליבה) תואם-היוניקס שלו - לינוקס. על אף שבתחילה היא לא הייתה תוכנה חופשית, ב־1992 שינה טורבאלדס את רישיון ההפצה ל־GPL של גנו. מתכנתים שונים ברחבי האינטרנט המשיכו לפתח את לינוקס, וב־1992 שולבה לינוקס עם מערכת גנו, ושתיהן יחד יצרו מערכת הפעלה חופשית פועלת ומלאה. התצורה עם קרנל הלינוקס היא התצורה הנפוצה כיום של מערכת גנו, והיא מכונה בדרך-כלל "מערכת גנו/לינוקס" או "הפצת לינוקס". נכון לשנת 2009, Hurd עדיין בפיתוח פעיל, וקיימת גרסה ניסיונית של מערכת גנו שמשתמשת ב-Hurd ולא בלינוקס. ישנו גם פרויקט אשר עובד על הסבת מערכת גנו לליבה של FreeBSD. ישנם מקרים בהם רכיבים של גנו מותקנים על מערכות יוניקס קנייניות במקום תוכנות היוניקס המקוריות, מאחר שהם הגיעו לרמה גבוהה מזו של תוכנות המקור של יוניקס. רכיבים אלה קיבלו את הכינוי הקבוצתי "כלי גנו". תוכנות גנו רבות הוסבו גם למערכות ההפעלה Windows ו־Mac OS X. מערכת ההפעלה של גנו הייתה אמורה להיות מבוססת על ליבת ה־HURD. אולם ליבה זו לא הצליחה "להתרומם" והסתבכה בבעיות ביצועים ותכנון קשות. לעומת זאת, כלי GNU היוו את התשתית למערכות עם ליבת לינוקס. בעקבות כך נותק במינוח של גנו הקשר הישיר בין ליבת מערכת הפעלה למערכת ההפעלה עצמה. מערכת גנו יכולה לרוץ על ליבת לינוקס או על ליבת HURD. כיום קיימות מערכות הפעלה שונות שלהן אפשר לקרוא ״גנו״: לינוקס כלומר GNU/Linux HURD כלומר GNU/HURD GNU/kFreeBSD כלומר מערכת GNU שרצה מעל ליבה (kernel) של FreeBSD. מערכת כזו תהיה ככל הנראה חלק מהגרסה הבאה (6.0) של מערכת דביאן GNU/Solaris מערכת Nexenta מבוססת ברובה על גרסה של הפצת הלינוקס אובונטו אולם משתמשת בתשתית של Solaris - הן בליבה והן ב־libc. Cygwin אפשר לכלול ברשימה גם את Cygwin, מכיוון שהיא עובדת בעיקרון דומה: מממשת מחדש את כל מה שמחוץ לליבה (כולל libc) מעל "ליבה" אחרת. אולם במקרה הזה ה"ליבה" היא מערכת Windows וספריות המערכת הבסיסיות שלה. בעבר החלה עבודה להסבת מערכת דביאן גם על ליבת NetBSD, אולם הפרויקט ננטש באוקטובר 2002. בשנת 2010 החלה עבודה על היסב של דביאן מעל מערכת מיניקס. פרויקט גנו הרישיון לשימוש חופשי במסמכים של גנו תוכן חופשי גנו/לינוקס מדיה וקבצים בנושא גנו בוויקישיתוף אתר האינטרנט הרשמי של גנו אני רוצה גנו/לינוקס! ההכרזה מ-1983 של סטולמן על פרויקט גנו דו"ח אישי ארוך של סטולמן על הפרויקט וההיסטוריה שלו The Free Universal Encyclopedia and Learning Resource, מאמרו של סטולמן בנוגע לאנציקלופדיה של GNU הסבה של עזרי גנו לסביבת חלונות Debian GNU/kFreeBSD - ההיסב של דביאן לליבת FreeBSD Nexenta היסב של אובונטו למערכת סולריס מאמר על ההיסטוריה של ליבת HURD בThe H דף החדשות של הסבת דביאן לליבת NetBSD. היסב של דביאן מעל מערכת מיניקס דיווח של המפתח שחלק מהמערכת עובד אצלו