פרויקט גנו
GNU הוא ראשי תיבות רקורסיביים של "GNU's Not Unix" (גנו אינו יוניקס). זהו פרויקט שהשיק ריצ'רד סטולמן במטרה ליצור מערכת הפעלה שלמה וחופשית - מערכת גנו. בהמשך התמקד הפרויקט בהשלמת החוסרים למערכות התוכנה החופשית.
סטולמן מבקש שגנו יבוטא עם ה-G (גימל), כדי "למנוע בלבול איום" עם המילה "new" באנגלית. בעברית מבטאים גְּנוּ.
היסטוריה
יוניקס הייתה (ועודנה) מערכת הפעלה קניינית בשימוש נרחב; כיוון שהארכיטקטורה שלה הייתה מוכחת היטב, מערכת GNU תוכננה להיות תואמת לה. הארכיטקטורה של יוניקס אפשרה ל-GNU להיות מתוכנתת כרכיבי תוכנה נפרדים: רכיבים שכבר היו זמינים באופן חופשי, כמו מערכת סידור הדפוס TeX והמערכת הגרפית X Windows, אומצו ונעשה בהם שימוש חוזר, אחרות נכתבו מהבסיס.
הפרויקט הוכרז לציבור ב-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).
הפרויקט החל לכתוב ליבה בשם Hurd אולם פיתוחה של זו נתקל בקשיים, ובמקביל ליבת לינוקס נכתבה ובראשית שנות התשעים של המאה העשרים החלו לצוץ הפצות של ליבת לינוקס בשילוב עם שאר הכלים מבית פרויקט גנו.
תוכנה של גנו
חלק מהתוכנות שמפותחות בשביל פרויקט גנו הן:
- Bison - יוצר תוכניות ניתוח במטרה להחליף את yacc.
- Bash - מעטפת פקודה.
- BFD - ספריה של קובצי אובייקט.
- Classpath - ספריות ל-Java.
- DotGNU - תחליף ל־.NET של מיקרוסופט.
- Emacs - עורך טקסט בר הרחבה.
- GIMP - תוכנת עיבוד תמונות
- glibc - ספרית POSIX C סטנדרטית, בתוספת תפקודיות נוספת.
- GMP - ספריה לתכנות חישובים מספריים עם דיוק שרירותי.
- GNOME - סביבת עבודה גרפית.
- GNU Binutils - GNU Assembler, GNU Linker, וכלים קשורים.
- GNU build system - Automake, Autoconf, Libtool
- GCC - מהדר מייעל קוד לשפות תכנות רבות, כולל שפת C ,C++, שפת Fortran, Ada, ו-Java.
- מנפה השגיאות של גנו - תוכנה לניפוי שגיאות
- GNU MDK - ערכת פיתוח לתכנות ב-MIX
- GNU Octave - תוכנה לחישובים מספריים דומה ל-MATLAB.
- GNU Robots - משחק קטן למתכנתים.
- GNUnet - רשת תקשורת חבר-אל-חבר (P2P) מבוזרת, מתוכננת להיות חסינה לצנזורה.
- GNUstep - מימוש של סטנדרט ה-OpenStep עבור מערכת של ספריות וכלי פיתוח ליישומים גרפיים.
- GSL - הספרייה המדעית של גנו.
- Gzip - ספריה ותוכנה לדחיסת נתונים.
- Hurd - מערכת של שרתים מבוססי מיקרו-ליבה אשר מתפקדים כמו ליבה של יוניקס.
- Maxima - מערכת למתמטיקה סימבולית.
- R - תוכנה לחישובים מספריים וסטטיסטיים.
- Texinfo - מערכת תיעוד ליצירת מדריכים מקוונים ומודפסים.
פרויקט גנו מפיץ ועוזר בפיתוח של חבילות אחרות אשר נוצרו במקום אחר, למשל:
- CVS - בקרה על קוד מקור.
- DDD - ממשק גרפי לתוכנות ניפוי שגיאות (Debugging).
- eCos - מערכת הפעלה קטנה להתקנים קבועים.