registery ?

תיקונים

"אין לך דרך לגבות רק את ההגדרות של המשתמשים, או את כל הרסיטרי, או כלום" לא נכון. אם תקרא מה שכתבתי, תלמד שיש קובץ REGISTRY לכל משתמש. ה-REGSISTRY של המערכת מורכב מכמה קבצים נפרדים, ואין להם קשר עם REGISTRY של משתמשים. אני מסכים, אמנם, שהיה נחמד אילו גם REGISTRY של משתמש מסויים היה מחולק לכמה קבצים. יש היבטים מסויימים שזה עלול להועיל. "הרגסיטרי שומר את כל הגדרות של המערכת אז או שכולם המשתמשים יכולים לעשות מה שהם רוצים, כולל למחוק הגדרות מערכת, או שהם לא יכולים לשנות הגדרות שלהם" קודם כל, משתמש לא אמור בכלל לגשת ל-REGISTRY ב-WINDOWS. אם הוא רוצה לשנות הגדרות של תוכנה מסויימת, הוא אמור לעשות זאת דרך אותה תוכנה. בלי שום קשר, משתמש רגיל לא יכול לשנות REGISTRY של מערכת ההפעלה כי אין לו הרשאות לעשות זאת. "אין אפשרות לספק תעוד על כל KEY" מסכים, אבל אפשר לספק תיעוד למפתחות גם בדרכים אחרות (MSDN, TECHNET) ובניגוד למה שאתה אומר, דווקא התיעוד "בצד" הוא הרבה יותר מפורט. גם אין צורך לתעד את כל המפתחות, אלא רק את אלה שאין דרך אחרת לשנות אותם חוץ מדרך REGISTRY EDITOR. "אם אתה מוחק משתמש כל החרא שלו ברג'יסרטי ישאר" כשמוחקים משתמש, אמורים למחוק אותו עם הפרופיל שלו, ולכן, כמו שאמרת, אין בעיה עם זה: גם ה-REGISTRY שלו ימחק. "עצם זה שהרגיסטרי בזיכרון מראה לך כמה הוא ל א י ע י ל" מה זה? נסיון להכשיל אותי?.... מה אני אמור לענות? "אתה צודק! אם הוא היה בדיסק, הוא היה הרבה יותר יעיל!" חחחחחחחחחחח. מה שאתה טוען לא רלוונטי כלל וכלל. ה-REGISTRY ב-RAM כדי להיות יעיל *ככל האפשר*. למען הדיוק, ה-REGISTRY מיושם כמסד נתונים הירארכי ב-RAM. היעילות שלו מצויינת. "הוא למשל שומר ב RAM הגדרות גם של תוכנות שכבר ה ו ס ר ו מהמערכת" זו בעיה ידועה ב-WINDOWS, אבל ת'אמת, זו לא אשמת מערכת ההפעלה או ה-REGISTRY, אלא אשמת מנועי ההתקנה הארורים של סוף שנות ה-90, ואשמת מי שכתב את תוכנות ההתקנה של 99% מהתוכנות שאתה מכיר: אף אחד לא ממש טורח לבצע הסרה קוהרנטית של המוצר שלו. "ושלא לדבר על תוכנות קיימות שלא בשימוש יומי" ה-REGISTRY נטען ל-RAM בעזרת CACHE, כלומר, מה שלא בשימוש, לא מגיע ל-RAM. "תוכנות חדשות עובדות עם שמירת קבצים בתיקית המשתמש במקום ברג'סטרי" REGISTRY לא בא להחליף שימוש בקבצים לכל צורך שהוא, אלא להחליף שימוש בקבצים עבור הגדרות. תוכנות עדיין ימשיכו להשתמש בקבצי TEMP ושאר קבצי מידע וקלט. אין שום קשר.
 

barakbl

New member
רק הערה קטנה

אני לא בטוח שזו אשמה של היישומים שלא נשארות שאריות ברג'יסטרי. זו אשמה של המבנה של הרג'יסטרי בדיוק, ובגלל שהוא עולה ל RAM. זה פרק ב design אם תשאל אותי...
 
תשמע,

אני מפתח תוכנות התקנה כבר 3 שנים ל-WINDOWS, בעזרת סביבות פיתוח משנות ה-90 ועד סביבות פיתוח שיצאו לפני חודשיים. גם במנועי ההתקנה הכי חדשים, אין פתרון לבטלנות וחוסר תשומת הלב של אנשי הפיתוח של ההתקנה. יש הרבה מאוד בעיות בהסרה מסודרת ושלמה של תוכנה מהמחשב. לפעמים השאלות של מה להסיר ומה להשאיר הופכות לדיונים פילוסופים. לפעמים יש דברים *שאסור* להסיר, אפילו אם מדובר בקבצים או REGISTRY שנמצאים תחת הספריה/מפתח של המוצר שלך. וזו רק דוגמה פשוטה. אני רק יכול לומר, שאם תהליך ההתקנה נכתב בפשטות ובתשומת לב סבירה, ואין אילוצים של "אסור למחוק", אזי בהחלט אפשר לראות היום תוכנות שמסירות את עצמן לגמרי, ללא לזכר. אבל אין קשר לארכיטקטורה של ה-REGISTRY.
 

אלדד28

New member
הרבה תוכנות לא רוצות בכלל להסיר

את עצמן לגמרי, בייחוד כאלו שעובדות עם LICENSE שעובד על זמן.
 
זו דוגמה

אבל אני תמיד יכול להזיז את השעון של המחשב....
אני יותר התכוונתי לבעיות כמו: מה קורה אם במהלך החיים של האפליקציה, המשתמש יצר קבצים בתוך ספריית ההתקנה? כמובן שאי אפשר לדעת אם הקובץ נחוץ לו או לא, ולכן רוב מנועי ההתקנה ישאירו בספריית התתקנה כל דבר שלא הם התקינו, וכל דבר שהוא אינו קובץ ששייך למוצר (האבחנה נעשית ע"י רשימות HARDCODED של קבצים/ספריות ש"בטוח" למחוק).
 

barakbl

New member
מה קשור להזזת השעון?

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

gilad_no

New member
ו...?

בעיה של חלונות או של המתכנת שלא רוצה שיגנבו לו את התוכנה? שוב מייקרוסופט אשמים?
 

barakbl

New member
הבעיה היא בתכנון

בגלל שהרג'יסטרי עולה לזכרון צצות הבעיות הללו. אם כל העסק היה סתם תופס עוד כמה בתים בדיסק הקשיח הבעיה היתה שולית עד לא קיימת.
 

gilad_no

New member
לא כולו עולה לזיכרון

זה בדיוק כמו DB ששוקל 10GB. כאשר אתה קורא ממנו, כולו עולה לזיכרון??? בשביל זה בדיוק יש PAGING וCACHE! חלונות קוראת לזיכרון את מה שהכרחי. אם זה משהו שכיח, הוא יישאר בזיכרון לאורך זמן כדי לחסוך קריאות. אם זה לא נחוץ - הוא יחזור לדיסק.
 

KKnDoIt

New member
וזו הדעה שלי:

אני עובד עם CYGWIN על חלונות XP (ויש לי רקע רב בחלונות 98), ויש שתי נקודות שחשובות לי במיוחד בנוגע לשתי השיטות לשמור הגדרות: רגי'סטרי מול קובצי קובפיגורציה (RC's ו- Conf's): מבלי להתייחס ליעילות של הרג'יסטרי, ועל הסכנה שהוא יושחט (אלה נושאים שאני לא מבין בהם), אני חושב שזה אכן לא לעניין שהמפתחות שרשומים שם לא ברורים. הדבר היפה ביותר בהגדרות של לינוקס זה שהם שמורות על קבצי טקסט הקריאים לפני אדם. אתה רוצה לבדוק את הקובפיגורציה של תוכנה מסויימת ? פתח את קובץ הקונפיגורציה שלה בעורך טקסט ותראה. הכל ברור, הכול גלוי. ועוד דבר: המשמעות של קבצי קונפיגורציה נבדלים השמורים בספריית הבית היא שניתן לעבור בקלות ממחשב למחשב: אם אני אעביר את הספרייה האישית שלי מהמחשב בעבודה למחשב בבית, כל התוכנות של CYGWIN (כולל המעטפת), יעבדו מייד ממש כאילו הייתי במחשב בעבודה. פרמוט ? מחשב חדש ? אין בעיה. צריך רק להעביר את קובצי הקונפיגורציה והכול עובד. איפו אפשר לעשות את זה בחלונות ?? למען ההגינות אני צריך לומר שעד עכשיו ניסיתי את זה רק על VIM לחלונות: יש לי אין סוף הגדרות עבורו, פלגאינים, וכדומה. ברגע שהעברתי את הספרייה של ההגדרות למחשב בבית, והחלפתי את קובץ הקונפיגורציה המקומי בזה של העבודה, זה עבד מייד. אם הוא היה שומר את ההגדרות האלה על הרג'יסטרי, אני לא מאמין שזה היה אפשרי.
 
אתה יכול

להעביר חלק מה-REGISTRY ממחשב אחד לאחר, וזה כמעט כמו רק להעתיק קובץ. כמובן שיש מקרים שבהם אפליקציה תתקין יחד איתה גם רכיבים שהם SHARED, אבל זה נכון גם ב-UNIX: אפליקציה יכולה לשנות קבצי CONFIG של מערכת ההפעלה, לשנות את ה-KERNEL וכו'. אני אפילו מכיר, מתוקף העבודה שלי, הרבה אפליקציות כאלה.
 
את קבצי ההגדרות

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

KKnDoIt

New member
אני מסכים חלקית

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

לא בעיה ב-REGISTRY, אלא בתוכנות שמשתמשות בו וכותבות אליו. יש סטנדרט, יש הנחיות, ובהנחה שתוכנה עוקבת אחרי ההנחיות האלה, אני יכול מיד לומר לך היכן ההגדרות שלה ב-REGISTRY (גם הגדרות כלליות וגם הגדרות למשתמש ספציפי), ואז אין את הבעיות שתיארת בהמשך ההודעה. אתה יכול בשקט להעתיק הגדרות ממחשב למחשב. אבל: כמו שב-UNIX יש מסלול ספריות מסויים, ששם *אמורות* להיות ההגדרות, כך זה ב-REGISTRY. כמו שב-UNIX עלולה תוכנה לחרוג ממהגדרות האלה ולעשות מה שבא לה, כך זה ב-WINDOWS.
 

אלדד28

New member
השאלה היא איפה יותר קל לטעות

אינטואיטיבית, קובץ הגדרות ב-UNIX לא יתקע את עצמו באיזשהו חור שכוח אל. ב-REGISTRY, לעומת זאת, אם לא קראת את כל ההנחיות של MS, אז הרבה יותר פשוט לטעות.
 
ממש לא נכון

ההנחיות של MICROSOFT LOGO CERTIFICATION הן קלות להבנה ולמימוש, ומאוד אינטואיטיביות. אני מכיר אותן די לעומק מכיוון שהמוצר שלנו הוא קרוב מאוד להיות CERTIFIED. ועצם זה שההנחיות "מוגדרות היטב" לא עושה אותן מסובכות.
 

KKnDoIt

New member
אני מבין את מה שאתה אומר,

ובאמת לא ידעתי את זה. עם זאת, אני מאמין שזה יותר נוח להעביר את התוכן של הספרייה HOME ממחשב א' למחשב ב' מאשר להעביר מפתחות של הר'גיטסרי. כך אתה מעביר בבת אחת גם את כל ההגדרות וגם את המידע שלך (חלק גדול מהתוכנות, כמו תוכנות דואר, שומרות שם את קבצי המידע). יתכן שזה נובע מכך שבלינוקס/יוניקס זה כבר מוסדר, ובחלונות הדברים עדיין לא קבועים. לדוגמה, ICQ לא שומרת את המסרים שלה בספריה %UserProfile% (שהיא המקבילה ל-$HOME ביוניקס) אלא בספרייה מקומית מתחת לעץ הספריות שלה. אילו הייתה שומרת שם, אז הייתי יכול להעביר את הספרייה ממחשב למחשב. ביודורה, רק בגרסה 5 נוספה האפשרות לבחור באיזו ספרייה ישמרו ההודעות. עד אז זה היה בספריית ההתקנה (לשמור קבצי מידע בספריית ההתקנה של התוכנה זה גרוע כמעט כמו לשמור אותה בספרייה C:\Windows\Temp...)
 
זו בדיוק דוגמה

מעולה לעניין הסטנדרטיות שהזכרתי. MICROSOFT מגדירה שקבצי משתמש יש לשמור תחת ה-USERPROFILE. כל תוכנה שעושה משהו אחר חורגת מהסטנדרט הזה. זה אמנם לא חוק ברזל, אבל תוכנה כזו עלולה לא לקבל את ההסמכה הנכספת של MICROSOFT LOGO, ובכך עלולה לאבד לקוחות וכו'. ושוב, זו לא בעיה במבנה ה-REGISTRY, אלא בשימוש בו. אם כל עניין הסטנדרטיות היה נשמר, אזי העברת הגדרות וקבצים אמנם היתה מתבצעת ב-2 שלבים, אך הכל היה מרוכז במקום אחד, כדי שיהיה קל למצוא...
 

KKnDoIt

New member
אני מסכים, אבל

מבחינתי הנקודה היא כזו: אם אני רוצה להעביר הגדרות (ומידע) ממחשב א' למחשב ב', אני רק צריך להעביר את הספרייה $HOME. אם אני רוצה להעביר קבצי מידע בחלונות, אני צריך להעביר את הספרייה %UserProfile% במקרה הטוב, ולהתחיל לחפש ספריות במקרה הפחות טוב (וכך זה בדרך כלל). כדי להעביר את ההגדרות של התוכנות, אני, בתור משתמש שאינו מתכנת, אפילו לא יודע איפה להתחיל לחפס. זה לא סותר את המצב שאמרת, אני רק חושב שכשיטה להעביר הגדרות השיטה של לינוקס עדיפה.
 
למעלה