የGoogle ገንቢዎች ለLLVM የራሳቸውን ሊቢክ እንዲያዘጋጁ ሐሳብ አቅርበዋል።

ከGoogle ገንቢዎች አንዱ ተነስቷል። በኤልኤልቪኤም የደብዳቤ መላኪያ ዝርዝር ላይ ስለ ባለብዙ ፕላትፎርም መደበኛ ሲ ቤተ-መጽሐፍት (ሊቢሲ) እንደ የኤልኤልቪኤም ፕሮጀክት አካል። በበርካታ ምክንያቶች Google አሁን ባለው ሊቢሲ (glibc, musl) አልረካም እና ኩባንያው አዲስ አተገባበርን ለማዘጋጀት በመንገዱ ላይ ነው, ይህም እንደ የኤልኤልቪኤም አካል ሊዘጋጅ ነው.

የኤልኤልቪኤም እድገቶች የጉግል መሰብሰቢያ መሳሪያዎችን ለመገንባት እንደ መነሻ በቅርቡ ጥቅም ላይ ውለዋል። ዋናው ሃሳብ ጎግል ሊቢክን ማዳበር ከጀመረ ለምንድነው ወዲያውኑ ስርዓቱን እንደ LLVM አካል አላዳበረውም ፣ይህም አስቀድሞ ለC++ (Libc++) የራሱ የሆነ መደበኛ ቤተ-መጽሐፍት ይሰጣል ፣ ግን ለ C ተመሳሳይ መደበኛ ቤተ-መጽሐፍት የለውም። (libc)

ልማት በደረጃዎች እንዲከናወን ታቅዷል, ቀስ በቀስ ተግባራዊነትን ይጨምራል. የመጀመሪያዎቹ አማራጮች በመተግበሪያው እና በሲስተም ሊቢሲ መካከል እንደ ንብርብር እንዲነደፉ ቀርበዋል, ከእነዚህ ውስጥ እስካሁን ያልተተገበሩ ባህሪያት ይበደራሉ. የተወሰነ የተግባር ደረጃ ላይ ከደረሰ በኋላ አዲሱ ሊቢሲ ለስርዓቱ ሊቢሲ ሙሉ ለሙሉ ምትክ ሆኖ ሊያገለግል ይችላል። ለ x86-64 አርክቴክቸር፣ ሊኑክስ እና የማይንቀሳቀስ ትስስር (ተለዋዋጭ ጭነት፣ ማገናኘት እና ተጨማሪ አርክቴክቸር በሁለተኛ ደረጃ ይተገበራል) ድጋፍ ለመጀመር አቅደናል።

ፕሮጀክቱ አሁንም በመጀመሪያ የእድገት ደረጃ ላይ ነው, ነገር ግን መሰረታዊ ግቦች ቀደም ሲል ተገልጸዋል.

  • ሞዱላሪቲ እና ልማት ከአንድ ነጠላ ስብስብ ይልቅ የጥራጥሬ ቤተ-መጽሐፍትን የማድረስ ፍልስፍና;
  • በ ሁነታዎች ውስጥ የማይለዋወጥ ማገናኘት ድጋፍ ኬክ (በአቀማመጥ-ገለልተኛ አስፈፃሚዎች) እና ያለ PIE። በስታቲስቲክስ ለተገናኙ ፈጻሚዎች CRT (C Runtime) እና PIE ጫኚን መስጠት፤
  • ለአብዛኛዎቹ መደበኛ C ቤተ-መጽሐፍት ተግባራት ድጋፍ ፣ በ POSIX ተጨማሪዎች እና በነባር መተግበሪያዎች የሚፈለጉ አንዳንድ ስርዓት-ተኮር ቅጥያዎች ፤
  • በአቅራቢ-ተኮር ቅጥያዎች ይጠንቀቁ እና አስፈላጊ በሚሆንበት ጊዜ ብቻ ይጨምሩ። ለሶስተኛ ወገን ማራዘሚያዎች ድጋፍን በተመለከተ የ Clang እና libc ++ ፕሮጀክቶችን አቀራረብ ለመጠቀም ይመከራል;
  • የኤልኤልቪኤም መሣሪያ ስብስብን በመጠቀም በእድገት ላይ ያሉ ምርጥ ልምዶችን መጠቀም፣ ለምሳሌ ከመጀመሪያው ጀምሮ የንፅህና መጠበቂያ እና የfuzz ሙከራን መጠቀም።

ንቁ ከሆኑ LLVM ገንቢዎች አንዱ ጠቆመሊቢክን እንደ የኤልኤልቪኤም መሣሪያ ስብስብ አካል አድርጎ መላክ ትርጉም እንዳለው ግልጽ ነው፣ ነገር ግን ብዙውን ጊዜ እንዲህ ዓይነት ፍላጎት ሲኖር፣ የሙስሊሙ ቤተ መጻሕፍትን ይጠቀማሉ፣ እሱም በደንብ የተጻፈ፣ የተለያዩ አርክቴክቸርን ይደግፋል፣ እና ለተለዋዋጭ ድጋፍን ጨምሮ አስፈላጊውን ተግባር ያቀርባል። ማገናኘት. ሙስልን ወደ ኤልኤልቪኤም በመክተት ከዋናው ፕሮጀክት ጋር እንደ ሹካ ማዳበሩ ተገቢ ሊሆን ይችላል።

የአንተም አስተያየት ተገለፀ የሙስል ፕሮጄክት ደራሲ፣ የጉግል ፕሮፖዛል እና የሊቢክ በኤልኤልቪኤም ስርጭት ውስጥ ማካተት ለምንድነው ለመከራከር የሞከረው ።

  • ትክክለኛ፣ ተኳሃኝ እና ከፍተኛ ጥራት ያለው Libcን ማዳበር እና ማቆየት በጣም ከባድ ስራ ነው። ችግሩ በኮድ መጠን ላይ ሳይሆን ትክክለኛ ባህሪን እና በይነገጾችን በመተግበር ላይ ያሉ ችግሮችን በማረጋገጥ በC/C++ የተፃፉትን ግዙፍ አፕሊኬሽኖች እና እንዲሁም በሌሎች ቋንቋዎች አፕሊኬሽኖች ከግምት ውስጥ በማስገባት የሂደቱ ጊዜ ጥቅም ላይ ይውላል። በሊቢሲ. ጉዳዩን ከግምት ውስጥ ሳያስገባ የቅድሚያ አቀራረብ ብዙ ነባር ፕሮግራሞች ከሊቢክ ጋር መሥራት እንደማይችሉ ብቻ ነው, ነገር ግን እንዲህ ዓይነቱ ፕሮጀክት ለተጠቃሚዎች ፍላጎት አይኖረውም.
  • የኮርፖሬት ልማት Libcን ሊያበላሸው ይችላል፣ ነገር ግን በሰፊው ጥቅም ላይ እንዲውል ይገፋፋል፣ በዚህም ምክንያት በመተግበሪያዎች ውስጥ ተኳሃኝነትን ለማረጋገጥ ጠለፋዎችን ማከል ያስፈልጋል። በድርጅት ክፍት ምንጭ ፕሮጀክት ስር ያለው ልማት የህብረተሰቡን ጥቅም የሚጎዳ ወደ ኩባንያው ፍላጎቶች እና መፍትሄዎች ይጎትታል። ለምሳሌ፣ በሌላ ፕሮግራም ውስጥ በትልች ምክንያት የሚፈጠርን ችግር ለይተው ካወቁ፣ ቁጥጥር በሚደረግበት ልማት ውስጥ ስህተቱን በራሱ ከማስተካከል ይልቅ ሊቢክ ከዚህ ስህተት ጋር ተኳሃኝ መሆኑን ማረጋገጥ ቀላል ነው። አፕል ለእነዚህ አላማዎች የቢኤስዲ ሊቢክ ሹካ ይጠቀማል፣ እና ጉግል የሙስል ሹካውን በፉችሺያ ይጠቀማል። የሙስሊሙ አልሚ ልምድ የፈቃድ ጉዳዮችን ለማብራራት በዋናነት በጠበቆች ተገናኝቶ ነበር ነገርግን በቅርንጫፎቹ ላይ የማይጠቅሙ እና የሚረብሹ ለውጦችን ከማድረጋቸው በፊት ቴክኒካዊ ዝርዝሮችን ለማብራራት በጭራሽ አልተገናኘም።
  • በlibc ልማት ውስጥ አንድ ነጠላ ባህል አለመኖሩ እና በብቸኝነት ቁጥጥር ሳይሆን በስምምነት ላይ በተመሰረቱ ደረጃዎች ላይ ትኩረት ማድረግ፣ ይህም የመተግበሪያ ገንቢዎች ከተወሰኑ ትግበራዎች ጋር ከመተሳሰር ይልቅ ደረጃዎችን እንዲጠቀሙ ያነሳሳቸዋል። ለዚህም ነው የሙስሊሙ ፀሃፊ የእሱን ቤተ-መጽሐፍት በኤልኤልቪኤም ውስጥ እንዳይካተት እንዲሁም በኤልኤልቪኤም ውስጥ የሊቢክ እድገትን የሚቃወመው በዚህ ሁኔታ ውስጥ የሊቢክ ገለልተኛ ተፈጥሮ ጠፍቶ እና የተወሰነ ትግበራ የመጀመሪያ ደረጃ መፍትሄ ይሆናል ። LLVM፣ እና ሁሉም ሌሎች የሁለተኛ ደረጃ መፍትሄ ይሆናሉ።

ምንጭ: opennet.ru

አስተያየት ያክሉ