כן. למי יש לזה ראש עכשיו. למי יש סבלנות. את מי זה בכלל מעניין.
ובכל זאת, הדברים שלהלן מוגשים כהתרגעות וכהתנתקות לשעה קלה מהמציאות הקשה בה אנו נתונים, ובתקווה שיבוא הזמן בו הם ישובו להיות רלוונטיים. והוא בוא יבוא. במהרה, אמן.
א. כרטיס מסך חדש, ומה שבא בעקבותיו
המעשה נפתח בשדרוג שערכתי למחשב. זה המחשב maheer, מחשב נסיונות בעל מעבד amd64. במחשב זה החלפתי את הכרטיס הגרפי הותיק (תוצרת NVIDIA) Geforce 5200 בחדש יותר: GeForce 6800, גם הוא מאותה תוצרת. זה כרטיס בעל ביצועים משופרים, וכצעד ראשון בדקתי אותו על הפצות לינוקס 64 ביט השונות. תוצאות אפייניות:
תוצאות משביעות רצון למדי.
עכשיו הגיע הזמן לבדוק את ביצועי הכרטיס על הפצות FreeBSD. כאלה מותקנות שתיים על המחשב הנידון: גרסה 6.1 ל-64 ביט, ו-PC-BSD גרסה 1.0 (סקירה).
הראשונה עלתה ללא בעיות, ובמלוא תפארתה. אבל השניה, PC-BSD – לא עלתה. מה זה לא עלתה? אחרי דקה או שתיים של מסך שחור, אותחל הממחשב מאליו.
ניסיתי להבין מה ההבדל בין שתי המערכות. קובץ האיתחול נקרא loader.conf וב PC-BSD כתוב בו כך:
לעומת זאת, הקובץ המקביל לו ב-FreeBSD 6.1 נראה כך:
הקרנלים של שתי מערכות ההפעלה אינם זהים: הראשון נועד לשרת מערכת הפעלה אוניברסלית, עם חומרה מגוונת, ומערכות קבצים שונות ומשונות ומכיל מודולים “בפנים”. השני הוא קרנל בסיסי בו יש צורך כי מודולים רבים יועלו רק על פי פקודה מפורשת.
אבל יש עוד הבדל בולט: loader.conf של PC-BSD מכיל פקודות להעלאת ה-boot splash! הגדרה לא-מתאימה שלו יכולה “לתקוע” את הכרטיס הגרפי החדש. פרט לכך, פרק ההמתנה עד לתחילת האיתחול הוא שתי שניות בלבד, ובפרק זמן זה איני מסוגל לבחור אופציית איתחול שונה מברירת המחדל.
נכנסתי איפה למחיצת /boot של PC-BSD דרך FreeBSD 6.1 וערכתי אותו, כך שלבש את הצורה הבאה:
אתחלתי, והפעם עלתה PC-BSD בלי טענות ומענות.
ב. כוכב חדש, ודיסק קשיח חדש
בינתיים שוחררה PC-BSD 1.2, והבטיחה גדולות ונצורות . החלטתי להתקין אותה על המחשב, על כונן חדש שהוספתי לו. זה כונן sata בן 400 ג'יגה, ו cache בן 16 מגה – מה שמבטיח ביצועים טובים. יעדתי אותו להרכבה על בקר promise-sata 386 שנמצא על לוח האם.
בקר זה לא היה עד היום בשימוש, כי כשרק התחלתי להשתמש במחשב, בימי kernel 2.6-test9, הוא טרם נתמך בלינוקס. היתה זו הזדמנות לבדוק מה מצב התמיכה של הבקר כיום.
הרכבתי את הדיסק והתחלתי בבדיקות. אחרי נסיונות אחדים הסתבר כי בחלונות ניתן להשתמש בדיסק שעל בקר promise רק אם הוא מותקן כמערך raid. לעומת זאת בלינוקס ניתן להשתמש בו רק כדיסק "רגיל".
זה היה גילוי מאכזב למדי, כי תכניתי המקורית היתה להעביר את את כל מה שמותקן על שני כונני PATA , בני 120 ג'יגה כל אחד לכונן החדש, ולשחרר אותם משירות. עכשיו זה לא מעשי – אלא אם כן אחליט שאני מסתפק ב"חלונות" על vmware ומגבלותיה.
הורדתי את ה-ISO של PC-BSD, צרבתי אותו והתחלתי בהתקנה. ו... מסך חשוך... חשוך... ואיתחול.
בדקתי את תוכן ה-CD הצרוב וכמובן, תוכן הקובץ boot.conf זהה לתוכנו במערכת המותקנת, והנסיון להעלות את ה boot.splash גורר אותן תוצאות עגומות.
צריך לכן להחליף את הקובץ הלא-תקין שעל ה-CD בקובץ התקין. איך עושים זאת?
ג. "עירצוב" לשעת הדחק
התחלתי בקריאה מאומצת של ה-"freebsd handbook", אותו כתב-חידה אגדי, כדי למצוא פתרון. ואחרי כמה וכמה נסיונות, הוא גם (איכשהו) נמצא.
ראשית פרשתי את את ה iso באופן הבא:
שמרתי אותו בספריית הבית, ומתוכה, כרוט, יצרתי את כונן ה CD הוירטואלי md:
הפלט בקונסול היה md0 – זה שם הכונן הוירטואלי שנוצר. עכשיו יצרתי את הספריה tmp/iso/ ועיגנתי את ה-ISO:
נכנסתי לתוכה ומצאתי את כל הקבצים שראיתי לפני כן ב CD הצרוב, פרט לכך שגודלה היה 1.1 ג'יגה, בעוד שתכולת ה Cd היא פחות מ 700 מגה.
כל הקבצים הם לקריאה בלבד, ואי אפשר לשנות זה, כי אנחנו ב CD, כאילו.
יצרתי לכן בספריית הבית תיקיה בשם PC-BSD, העתקתי לתוכה את כל הקבצים, ושיניתי בה את ההרשאות של boot/load.conf/ והכנסתי בו את אותם השינויים שתוארו למעלה.
הגיע הזמן ליצור מחדש את ה-ISO. זה נעשה על ידי הרצת הפקודה הבאה בתיקית הבית:
יש להחליף את username בשם המשתמש שלך.
נוצר הקובץ imagefile.iso בתוך הספריה PC-BSD, ובדיקתו על ידי עיגונו כמתואר למעלה הראתה שהוא זהה בכל למקור, פרט לקובץ שנערך. לרוע המזל הוא גם שונה בגודל: גודלו הגיע ל 1.1 ג'יגה.
לא מצאתי שום רמז בספרות איך לכווץ אותו לגדלו המקורי, ובלית ברירה החלטתי לצרוב אותו כ DVD.
עכשיו, סוף-סוף, עלתה תכנת ההתקנה של PC-BSD והתכוננה לעבודה. טחנה, טחנה, ובסוף גם אמרה שאינה מוצאת את החבילות להתקנה. למרבה המזל, כלל הפלט את המקומות בהם חיפשה. ביניהם היה כונן ה-CD (הנוסף) של המחשב. החלטתי להתחכם, ואיתחלתי שנית כאשר הפעם ה DVD המשופצר בכונן ה"מאתחל" וה CD המכיל את ה iso המקורי בכונן השני.
המפלצת הזו פעלה, הקבצים החסרים נמצאו, תכנת ההתקנה הגרפית וכל אשר לה עלתה, וסוף-סוף ניתן היה להתחיל בהתקנה.
ד. רשמים ראשונים מ PC-BSD 1.2
זיהוי חומרה: רוב החומרה זוהתה, כולל כונן ה sata שעל בקר promise. לא זוהה: כרטיס הרשת via-velocity שמזוהה היטב על ידי כל הפצות לינוקס (פרט למנדריבה 2006, עם קרנל 2.6.12 שלה).
בחרתי לפרמט מחיצה ראשונית נוספת בגודל 20 ג'יגה על הכונן החדש. הפירמוט הצליח מבחינה זו שלא נפגעה אף מחיצה קיימת על המחשב עמוס המחיצות. מבחינת גודל המחיצה החדשה – עדיין לא התחוורו לי לגמרי התוצאות. BSD טוענת שנוצרה מחיצה שגודלה 19 ג'גה. לינוקס טוענת שגודל המחיצה 364 ג'יגה – וחלונות לא מזהה אותה כלל.
התרשמות ראשונית: נראה לי שהפצה זו שואפת להיות הפצה מסחרית, למכור CD ולספק תמיכה למתקינים.
היא מספקת אוסף שלם של מה שנראה כחבילות עם קימפול סטאטי (הם נקראים PBI). התקנתם קלה במיוחד ומזכירה התקנת תוכנות בחלונות.
מאידך, אי אפשר להתקין בה אף אחת מאוסף החבילות pre-compiled הרגילות של FreeBSD. נחוץ קישור למאגר מיוחד, FreeBSD-6.1-release-p1, אותו פשוט לא הצלחתי למצוא (את המאגרים הרגילים שך FreeBSD קל מאד למצוא).
על שולחן העבודה נמצאות שתי צלמיות – האחת מהן מיועדת להתקנת תכנות חדשות ועידכון. היא פועלת רק בחלקה: הצלחתי להתקין בעזרתה את ספריית usr/scr/ - אך לא את usr/ports/ . כדי להתקין ספריה חדשה זו הייתי צריך להריץ cvsup ports-supfile מתוך ספריית רוט, פעולה שלדעתי משתמשים טירונים יתקשו בה, ובלעדיה לא יוכלו להגיע למערכת ראויה.
לצערי, גרסה זו היא צעד אחד קדימה – ושניים לאחור.
ובכל זאת, הדברים שלהלן מוגשים כהתרגעות וכהתנתקות לשעה קלה מהמציאות הקשה בה אנו נתונים, ובתקווה שיבוא הזמן בו הם ישובו להיות רלוונטיים. והוא בוא יבוא. במהרה, אמן.
א. כרטיס מסך חדש, ומה שבא בעקבותיו
המעשה נפתח בשדרוג שערכתי למחשב. זה המחשב maheer, מחשב נסיונות בעל מעבד amd64. במחשב זה החלפתי את הכרטיס הגרפי הותיק (תוצרת NVIDIA) Geforce 5200 בחדש יותר: GeForce 6800, גם הוא מאותה תוצרת. זה כרטיס בעל ביצועים משופרים, וכצעד ראשון בדקתי אותו על הפצות לינוקס 64 ביט השונות. תוצאות אפייניות:
47773 frames in 5.0 seconds = 9554.487 FPS
47995 frames in 5.0 seconds = 9598.823 FPS
47976 frames in 5.0 seconds = 9595.043 FPS
48013 frames in 5.0 seconds = 9602.525 FPS
47956 frames in 5.0 seconds = 9591.160 FPSתוצאות משביעות רצון למדי.
עכשיו הגיע הזמן לבדוק את ביצועי הכרטיס על הפצות FreeBSD. כאלה מותקנות שתיים על המחשב הנידון: גרסה 6.1 ל-64 ביט, ו-PC-BSD גרסה 1.0 (סקירה).
הראשונה עלתה ללא בעיות, ובמלוא תפארתה. אבל השניה, PC-BSD – לא עלתה. מה זה לא עלתה? אחרי דקה או שתיים של מסך שחור, אותחל הממחשב מאליו.
ניסיתי להבין מה ההבדל בין שתי המערכות. קובץ האיתחול נקרא loader.conf וב PC-BSD כתוב בו כך:
splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/PCBoot.bmp"
linux_load="YES"
hw.pci.allow_unsupported_io_range="1"
hw.ata.atapi_dma="1"
autoboot_delay="2"
#snd_ich_load="YES"
snd_emu10k1_load="YES"
nvidia_load="YES"לעומת זאת, הקובץ המקביל לו ב-FreeBSD 6.1 נראה כך:
snd_emu10k1_load="YES"
smbfs_load="YES"
ext2fs_load="YES"
msdosfs_load="YES"
reiserfs_load="YES"
if_vge_load="YES"הקרנלים של שתי מערכות ההפעלה אינם זהים: הראשון נועד לשרת מערכת הפעלה אוניברסלית, עם חומרה מגוונת, ומערכות קבצים שונות ומשונות ומכיל מודולים “בפנים”. השני הוא קרנל בסיסי בו יש צורך כי מודולים רבים יועלו רק על פי פקודה מפורשת.
אבל יש עוד הבדל בולט: loader.conf של PC-BSD מכיל פקודות להעלאת ה-boot splash! הגדרה לא-מתאימה שלו יכולה “לתקוע” את הכרטיס הגרפי החדש. פרט לכך, פרק ההמתנה עד לתחילת האיתחול הוא שתי שניות בלבד, ובפרק זמן זה איני מסוגל לבחור אופציית איתחול שונה מברירת המחדל.
נכנסתי איפה למחיצת /boot של PC-BSD דרך FreeBSD 6.1 וערכתי אותו, כך שלבש את הצורה הבאה:
splash_bmp_load="NO"
bitmap_load="NO"
bitmap_name="/boot/PCBoot.bmp"
linux_load="YES"
hw.pci.allow_unsupported_io_range="1"
hw.ata.atapi_dma="1"
autoboot_delay="30"
snd_emu10k1_load="YES"
nvidia_load="YES"אתחלתי, והפעם עלתה PC-BSD בלי טענות ומענות.
ב. כוכב חדש, ודיסק קשיח חדש
בינתיים שוחררה PC-BSD 1.2, והבטיחה גדולות ונצורות . החלטתי להתקין אותה על המחשב, על כונן חדש שהוספתי לו. זה כונן sata בן 400 ג'יגה, ו cache בן 16 מגה – מה שמבטיח ביצועים טובים. יעדתי אותו להרכבה על בקר promise-sata 386 שנמצא על לוח האם.
בקר זה לא היה עד היום בשימוש, כי כשרק התחלתי להשתמש במחשב, בימי kernel 2.6-test9, הוא טרם נתמך בלינוקס. היתה זו הזדמנות לבדוק מה מצב התמיכה של הבקר כיום.
הרכבתי את הדיסק והתחלתי בבדיקות. אחרי נסיונות אחדים הסתבר כי בחלונות ניתן להשתמש בדיסק שעל בקר promise רק אם הוא מותקן כמערך raid. לעומת זאת בלינוקס ניתן להשתמש בו רק כדיסק "רגיל".
זה היה גילוי מאכזב למדי, כי תכניתי המקורית היתה להעביר את את כל מה שמותקן על שני כונני PATA , בני 120 ג'יגה כל אחד לכונן החדש, ולשחרר אותם משירות. עכשיו זה לא מעשי – אלא אם כן אחליט שאני מסתפק ב"חלונות" על vmware ומגבלותיה.
הורדתי את ה-ISO של PC-BSD, צרבתי אותו והתחלתי בהתקנה. ו... מסך חשוך... חשוך... ואיתחול.
בדקתי את תוכן ה-CD הצרוב וכמובן, תוכן הקובץ boot.conf זהה לתוכנו במערכת המותקנת, והנסיון להעלות את ה boot.splash גורר אותן תוצאות עגומות.
צריך לכן להחליף את הקובץ הלא-תקין שעל ה-CD בקובץ התקין. איך עושים זאת?
ג. "עירצוב" לשעת הדחק
התחלתי בקריאה מאומצת של ה-"freebsd handbook", אותו כתב-חידה אגדי, כדי למצוא פתרון. ואחרי כמה וכמה נסיונות, הוא גם (איכשהו) נמצא.
ראשית פרשתי את את ה iso באופן הבא:
שמרתי אותו בספריית הבית, ומתוכה, כרוט, יצרתי את כונן ה CD הוירטואלי md:
mdconfig -a -t vnode -f PCBSD-1.2-x86-CD1.isoהפלט בקונסול היה md0 – זה שם הכונן הוירטואלי שנוצר. עכשיו יצרתי את הספריה tmp/iso/ ועיגנתי את ה-ISO:
mount -t cd9660 /dev/md0 /tmp/isoנכנסתי לתוכה ומצאתי את כל הקבצים שראיתי לפני כן ב CD הצרוב, פרט לכך שגודלה היה 1.1 ג'יגה, בעוד שתכולת ה Cd היא פחות מ 700 מגה.
כל הקבצים הם לקריאה בלבד, ואי אפשר לשנות זה, כי אנחנו ב CD, כאילו.
יצרתי לכן בספריית הבית תיקיה בשם PC-BSD, העתקתי לתוכה את כל הקבצים, ושיניתי בה את ההרשאות של boot/load.conf/ והכנסתי בו את אותם השינויים שתוארו למעלה.
הגיע הזמן ליצור מחדש את ה-ISO. זה נעשה על ידי הרצת הפקודה הבאה בתיקית הבית:
mkisofs -U -no-emul-boot -b boot/cdboot -o imagefile.iso /home/username/pc-BSDיש להחליף את username בשם המשתמש שלך.
נוצר הקובץ imagefile.iso בתוך הספריה PC-BSD, ובדיקתו על ידי עיגונו כמתואר למעלה הראתה שהוא זהה בכל למקור, פרט לקובץ שנערך. לרוע המזל הוא גם שונה בגודל: גודלו הגיע ל 1.1 ג'יגה.
לא מצאתי שום רמז בספרות איך לכווץ אותו לגדלו המקורי, ובלית ברירה החלטתי לצרוב אותו כ DVD.
עכשיו, סוף-סוף, עלתה תכנת ההתקנה של PC-BSD והתכוננה לעבודה. טחנה, טחנה, ובסוף גם אמרה שאינה מוצאת את החבילות להתקנה. למרבה המזל, כלל הפלט את המקומות בהם חיפשה. ביניהם היה כונן ה-CD (הנוסף) של המחשב. החלטתי להתחכם, ואיתחלתי שנית כאשר הפעם ה DVD המשופצר בכונן ה"מאתחל" וה CD המכיל את ה iso המקורי בכונן השני.
המפלצת הזו פעלה, הקבצים החסרים נמצאו, תכנת ההתקנה הגרפית וכל אשר לה עלתה, וסוף-סוף ניתן היה להתחיל בהתקנה.
ד. רשמים ראשונים מ PC-BSD 1.2
זיהוי חומרה: רוב החומרה זוהתה, כולל כונן ה sata שעל בקר promise. לא זוהה: כרטיס הרשת via-velocity שמזוהה היטב על ידי כל הפצות לינוקס (פרט למנדריבה 2006, עם קרנל 2.6.12 שלה).
בחרתי לפרמט מחיצה ראשונית נוספת בגודל 20 ג'יגה על הכונן החדש. הפירמוט הצליח מבחינה זו שלא נפגעה אף מחיצה קיימת על המחשב עמוס המחיצות. מבחינת גודל המחיצה החדשה – עדיין לא התחוורו לי לגמרי התוצאות. BSD טוענת שנוצרה מחיצה שגודלה 19 ג'גה. לינוקס טוענת שגודל המחיצה 364 ג'יגה – וחלונות לא מזהה אותה כלל.
התרשמות ראשונית: נראה לי שהפצה זו שואפת להיות הפצה מסחרית, למכור CD ולספק תמיכה למתקינים.
היא מספקת אוסף שלם של מה שנראה כחבילות עם קימפול סטאטי (הם נקראים PBI). התקנתם קלה במיוחד ומזכירה התקנת תוכנות בחלונות.
מאידך, אי אפשר להתקין בה אף אחת מאוסף החבילות pre-compiled הרגילות של FreeBSD. נחוץ קישור למאגר מיוחד, FreeBSD-6.1-release-p1, אותו פשוט לא הצלחתי למצוא (את המאגרים הרגילים שך FreeBSD קל מאד למצוא).
על שולחן העבודה נמצאות שתי צלמיות – האחת מהן מיועדת להתקנת תכנות חדשות ועידכון. היא פועלת רק בחלקה: הצלחתי להתקין בעזרתה את ספריית usr/scr/ - אך לא את usr/ports/ . כדי להתקין ספריה חדשה זו הייתי צריך להריץ cvsup ports-supfile מתוך ספריית רוט, פעולה שלדעתי משתמשים טירונים יתקשו בה, ובלעדיה לא יוכלו להגיע למערכת ראויה.
לצערי, גרסה זו היא צעד אחד קדימה – ושניים לאחור.