Firefox OS מערכת הפעלה בדפדפן

Firefox OS, או בשמו הקודם Boot2Gecko ‏(B2G) הוא מימוש של מערכת הפעלה שהדפדפן תופס בה חלק עיקרי ומשמעותי. בניגוד למערכות הפעלה רגילות בהן הדפדפן הוא תוכנה רגילה במחשב, ב־Firefox OS הדפדפן הוא מערכת ההפעלה, וכפי שניתן להבין מהשם, המערכת כולת את הדפדפן Mozilla Firefox.

באמצעות Firefox OS מנסה Mozilla לקרב את הרשת אל המשתמשים במכשירים סלולריים. במקום התקנה של עשרות יישומים על הטלפון החכם שלכם, ב־Firefox OS כל יישום הוא למעשה אתר אינטרנט בפני עצמו. בניגוד למערכות הפעלה אחרות לטלפונים חכמים, במקום פיתוח יישומים ב־Objective C או ב־Java, ב־Firefox OS מפתחים יישומים ב־HTML ו־JavaScript, כלומר אם כבר התנסתם בעברכם בבניה של אתר אינטרנט כלשהו (כולל ב־geocities) הרי יש לכם כבר את המיומנויות הנדרשות לפיתוח יישומים עבור Firefox OS.

Firefox OS משתמש בממשקי הפיתוח החדשים ביותר של HTML5 שמאפשרות ליישומי דפדפן יכולות דומות לאלו של יישום מקומי. בנוסף לכך מפתחים Mozilla ממשקים נוספים המוסיפות לדפדפן יכולות עבודה ישירות מול הברזלים, כמו למשל תקשורת מול שבב השן הכחולה המובנה במכשיר או יכולת הוצאה וקבלת שיחות. עצם היותה של המערכת מבוססת רשת אינו מחייב חיבור קבוע לרשת, שכן HTML5 מאפשר שמירה של תוכן באופן לא מקוון כך שלמרות היותו של הדפדפן מרכיב בסיסי במערכת היא תוכל לפעול כשורה גם ללא חיבור לרשת, אם כי התקנת היישומים ככל הנראה תחייב חיבור לרשת דרך רשת הסלולר או חיבור אלחוטי.

Firefox OS מורכב משלוש שכבות עיקריות:

  • Gonk – שכבה זו כוללת את ליבת המערכת. הליבה מבוססת על לינוקס וספריות עזר רבות שניתן לצפות למצוא בלינוקס, כמו גם ספריות נוספות שנלקחו מפרויקט Android.
  • Gecko – מנוע התצוגה של Mozilla שמשמש בסיס גם לדפדפן Mozilla Firefox על המחשב שלכם.
  • Gaia – ממשק המשתמש של Firefox OS שבנוי כולו בטכנולוגיות רשת כגון HTML, JavaScript ו־CSS. שכבה זו מממשת את יישומי הבסיס של המערכת כמו מסך נעילה, מסך הבית, חייגן, תוכנה לשליחה וקבלת מסרונים, יישום צילום ועוד.

נכון לעכשיו, Firefox OS נמצאת בשלבי פיתוח מתקדמים, ומכשירים ראשונים שמריצים את Firefox OS יופצו בחודשים הקרובים בדרום אמריקה ובמקומות נוספים בעולם. בשלב זה אין תכנון להפיץ מכשירים אלו בארץ, אבל במוקדם או במאוחר ניתן יהיה להשיג אותם גם במחוזותינו. אם יזם כלשהו מעוניין לפעול לייבוא מכשירים אלו לארץ, אשמח אם הוא יידע אותנו מבעוד מועד.

ניתן להתקין את המערכת כבר היום על מכשירים קיימים, החל מ־Samsung Galaxy S ועד ל־Raspberry Pi. לאנשים קצת פחות הרפתקניים, ניתן להריץ את המערכת גם על המחשב האישי, כפי שיפורט בהמשך.

מאחר ש־Gecko כבר קיים עבור מגוון רחב של סביבות עבודה, ניתן להיעזר בו כדי הריץ את Gaia מעליו. על Gonk יהיה עלינו לוותר, אבל זה לא יהיה יותר מידי משמעותי כי גם ככה חלק גדול מהיכולות של מכשיר סלולרי ממוצע כלל לא קיים במחשב השולחני שלנו.

כדי להפעיל את Firefox OS על המחשב האישי שלנו יהיה עלינו להריץ "גרסת אמולטור" של b2g על המחשב. ניתן להוריד את התוכנה מכאן; משתמשים מנוסים יותר או כאלה בעלי עודף זמן מוזמנים לבנות את התוכנה בעצמם.

לאחר שהצטיידנו בתוכנה, עלינו ליצור עבורה פרופיל שכולל את Gaia. נסיונות הפעלה של התוכנה ללא יצירה של פרופיל יניבו מסך ריק כי לא הותקנו מראש על הפרופיל יישומי הבסיס. כדי ליצור פרופיל יש להוריד את Gaia למחשב ולבנות את הפרופיל עם הפקודות הבאות:

git clone git://github.com/mozilla-b2g/gaia
make -C gaia profile

אם מה שנכתב לעיל נשמע לכם כמו ג'יבריש, אל חשש! הכנתי עבורכם פרופיל וניתן להורידו מכאן. שימו לב שאינני מתכוון לעדכן אותו באופן יומיומי ותוך זמן קצר הוא יהיה לא עדכני בהשוואה לקוד הקיים באתר. תשלחו לי הודעה אם ברצונכם שאעדכן את הקוד. (למעוניינים – תסריט בניית הפרופיל שלי זמין כאן)

לאחר הורדת ופרישת התוכנה ותיקיית הפרופיל, כל שנותר הוא להפעיל את התוכנה ולהפנות אותה אל הפרופיל שזה עתה יצרנו. נעשה זאת על־ידי הפקודה הבאה (בהנחה שאנחנו נמצאים בתיקייה בה נפרשו הקבצים) –
./b2g -profile profile/

כעבור מספר שניות תופעל המערכת. ונוכל להתחיל לחקור אותה לעומק.

sipme בקלות עם csipsimple

לפני קרוב לשלושה חודשים פרסמתי כאן הנחיות פשוטות להגדרת חשבון ב־sipme עם היישום החופשי csipsimple במערכת אנדרואיד. במקביל לפרסום הרשומה פניתי לאנשי sipme ועדכנתי אותם על כוונתי להעלות את הרשומה ההיא ורצוני לשפר את דרך ההגדרה של החשבון ביישום, ולאחר מכן גם פניתי למפתח ובעזרתו האדיבה שיפרנו את הליך ההגדרה. ובכן, לאחר תקופה בה השיפורים היו זמינים למשתמשי הגרסה הלילית בלבד, העדכון האחרון של csipsimple שהתפרסם בימים האחרונים כולל תמיכה ב־sipme עבור כלל המשתמשים. במילים אחרות, מעתה יהיה פשוט מאד להגדיר את sipme על היישום הזה, וככל הנראה זוהי דרך ההגדרה הפשוטה ביותר של sipme באופן עצמאי כיום.

למידע כללי על פרוטוקול הטלפוניה SIP, היישום csipsimple, על שירות sipme וטיפים כלליים, אני ממליץ לקרוא את הרשומה הקודמת. ברשומה זו יופיעו הוראות ההתקנה העדכניות.

כדי לקבל את פרטי החשבון שלכם ב־sipme, היכנסו לחשבון שלכם בשירות, ולחצו על הכפתור Send שמופיע בשורה Use Personal Equipment. תוך מספר שניות ישלח למכשיר הסלולר שלכם מסרון הכולל את פרטי ההתחברות ב־SIP.

  1. … נפעיל את csipsimple ונגדיר את אופן העבודה של התוכנה. אני אישית מעדיף שלא לשלב את התוכנה עם החייגן המובנה כדי למנוע בלבול מיותר, וגם מגדיר את התוכנה לעבוד אך־ורק ב־wifi כדי למנוע צריכת נתונים במכשיר.
  2. נוסיף חשבון חדש.
  3. נבחר ב־sipme באשף הגדרת החשבונות. אם החשבון לא מופיע מיידית על המסך, יש לדפדף ברשימה ולפתוח את הקטגוריה של ישראל. כרגע מופיע שם רק אשף הגדרה עבור sipme; כולי תקווה שספקי שירות SIP אחרים יפעלו כדי להתווסף לרשימה.
  4. נגדיר את החשבון.
    • בשדה Phone Number נזין את מספר הקו שהוקצה לנו בשירות. ערך ברירת המחדל הוא 078555. יש להשלים את הערך למספר הקו המלא.
    • בשדה Password נזין את הססמה שקיבלנו במסרון. שימו לב שהססמה שלכם אינה זהה לזו שמשמשת אתכם בכניסה לאתר השירות.
  5. לאחר אישור פרטי ההתחברות יוצג חיווי על זמינות החיבור ל־sipme.סיימנו את כל הגדרות הנדרשות! ברשומה הקודמת כאן היה צורך להגדיר את הקידודים בהם משתמש השירות, אבל זה אינו נחוץ כיום כי האשף ביצע זאת עבורכם.
  6. כעת נוכל להוציא ולקבל שיחות. שימו לב שהחייגן של csipsimple יכול לאפשר לכם לבחור מאיזה קו תוציאו את השיחות, וכדאי לוודא תמיד שהוא לא נמצא על מצב סלולר כאשר תרצו להוציא שיחות מקו ה־sipme שלכם. בהגדרות התוכנה ניתן לקבוע כי שיחות למספרים מסוימים יצאו תמיד דרך הקו הסלולרי הרגיל או מחשבון ה־sip.ניתן לבחון שההגדרה תקינה באמצעות התקשרות למשיבון שלכם (לחיצה קבועה על הספרה 1) או להתקשר למספר של אדם אחר ב־sipme.

האפשרות להשפיע על אופן הפיתוח של יישומים היא אחת מהמעלות הגדולות ביותר בתוכנה חופשית. למרות האמונה הרווחת שכדי לשפר יישומי קוד פתוח צריך לדעת לתכנת, כדי להוסיף את התמיכה ב־sipme לקוד היישום לא נדרשתי כלל להתעסק בקוד. מספיק היה לפתוח בקשה מסודרת להוספת התכונה הזו ליישום, ולספק את המידע הדרוש למפתח. הוא מכיר את הקוד טוב יותר ממישהו מבחוץ, וככל הנראה לא לקח לו זמן רב לבצע את השינוי הזה בקוד. כמובן שבמקרים מסוימים הצעות לשיפורים שאנחנו נציע כמשתמשים לא יתקבלו אוטומטית מפאת חוסר זמן של המפתחים או גודל השינוי הדרוש, אבל בהנחה שהבקשה הגיונית תמיד נוכל לנסות להכניס את השינוי בעצמנו או אף לשלם כסף למפתח שיעשה את זה עבורנו. בכל מקרה, עצם היותו של המיזם פתוח וחשוף מאפשרת לנו להשפיע על המיזם כולו באופן רב יותר מאשר נוכל לבצע כאשר מדובר ביישום שאינו מפותח כמיזם תוכנה חופשית.

המשימה הבאה: לגרום להוספת מקלדת si1452 ב־Hackers Keyboard. ☺