Glibc 2.36 მოდის Linux-ისთვის ახალი ფუნქციებით, გაუმჯობესებებით და სხვა

ექვსთვიანი შემუშავების შემდეგ გამოცხადდა glibc 2.36-ის ახალი ვერსიის გამოშვება, რომელიც სრულად შეესაბამება ISO C11 და POSIX.1-2017 სტანდარტების მოთხოვნებს და რომელშიც ახალი ვერსია შეიცავს შესწორებებს 59 დეველოპერისგან. .

მათთვის, ვინც არ იცნობს გლიბკს, მათ უნდა იცოდნენ რა არის ეს GNU C ბიბლიოთეკა, საყოველთაოდ ცნობილი როგორც glibc არის სტანდარტული GNU C მუშაობის ბიბლიოთეკა. სისტემებზე, სადაც ის გამოიყენება, ეს C ბიბლიოთეკა რომ უზრუნველყოფს და განსაზღვრავს სისტემურ ზარებს და სხვა ძირითად ფუნქციებს, მას იყენებს თითქმის ყველა პროგრამა. 

Glibc 2.36– ის ძირითადი ახალი მახასიათებლები

ამ ახალ ვერსიაში, რომელიც წარმოდგენილია, ხაზგასმულია, რომ დაამატა მხარდაჭერა ახალი ნათესავი გადაადგილების მისამართის ფორმატისთვის DT_RELR, რომელიც საშუალებას გაძლევთ შეამციროთ შედარებითი გადაადგილების ზომა გაზიარებულ ობიექტებში და დაკავშირებულ შესრულებადებში PIE (პოზიციის დამოუკიდებელი შემსრულებლები) რეჟიმში. ELF ფაილებში DT_RELR ველის გამოყენება მოითხოვს "-z pack-relative-relocs" ვარიანტის მხარდაჭერას ლინკერში, რომელიც წარმოდგენილია binutils 2.38-ში.

კიდევ ერთი ცვლილება, რომელიც ახალ ვერსიაში გამოირჩევა, არის ის Linux-ისთვის ფუნქციები pidfd_open, pidfd_getfd და pidfd_send_signal განხორციელდა pidfd ფუნქციონირებაზე წვდომის უზრუნველსაყოფად რაც ხელს უწყობს PID ხელახალი გამოყენების სიტუაციების მართვას, რათა უფრო ზუსტად იდენტიფიცირდეს პროცესები, რომლებიც წვდომას ახდენენ მონიტორინგულ ფაილებზე (pidfd ასოცირდება კონკრეტულ პროცესთან და არ იცვლება, ხოლო PID შეიძლება დაერთოს სხვა პროცესს პროცესის დასრულების შემდეგ). PID).

Გარდა ამისა, ასევე Linux-ში მოდის process_madvise()რომ საშუალებას აძლევს პროცესს შეასრულოს madvise() სისტემის ზარი სხვა პროცესის სახელით, სამიზნე პროცესის იდენტიფიცირება pidfd-ის გამოყენებით. madvise() საშუალებით შეგიძლიათ აცნობოთ ბირთვს მეხსიერების მუშაობის მახასიათებლების შესახებ, პროცესის მეხსიერების მართვის ოპტიმიზაციისთვის, მაგალითად, მიღებული ინფორმაციის საფუძველზე, ბირთვს შეუძლია დაიწყოს დამატებითი თავისუფალი მეხსიერების გამოშვება.

ასევე აღნიშნულია, რომ ფუნქცია დაემატა process_mrelease(), რომელიც საშუალებას გაძლევთ დააჩქაროთ მეხსიერების გამოშვება პროცესისთვის, რომელიც ამთავრებს მის შესრულებას. ნორმალურ პირობებში, რესურსის გამოშვება და პროცესის შეწყვეტა არ არის მყისიერი და შეიძლება შეფერხდეს სხვადასხვა მიზეზის გამო, რაც ხელს უშლის მომხმარებლის სივრცის ადრეული გაფრთხილების სისტემებს, როგორიცაა oomd (მოწოდებული systemd-ის მიერ). process_mrelease-ის გამოძახებით, ამ სისტემებს უფრო პროგნოზირებად შეუძლიათ მეხსიერების მოძიება იმ პროცესებისთვის, რომლებიც იძულებით შეწყდა.

მეორეს მხრივ, აღნიშნულია, რომ დამატებულია "no-aaaa" ვარიანტის მხარდაჭერა ინტეგრირებული განხორციელებისთვის DNS გარჩევადობა, რომელიც საშუალებას გაძლევთ გამორთოთ DNS მოთხოვნის გაგზავნა AAAA ჩანაწერებისთვის (IPv6 მისამართის განსაზღვრა ჰოსტის სახელით), მაშინაც კი, როდესაც გაშვებულია NSS ფუნქციები, როგორიცაა getaddrinfo(), პრობლემების მოგვარების გასამარტივებლად. ეს ოფცია არ ახდენს გავლენას IPv6 მისამართების დაკავშირებებზე, რომლებიც განსაზღვრულია /etc/host-ში და ზარებზე getaddrinfo()-ზე AI_PASSIVE დროშით.

Linux-ისთვის დამატებულია ფუნქციები fsopen, fsmount, move_mount, fsconfig, fspick, open_tree და mount_setattr for უზრუნველყოს წვდომა ბირთვის ახალ API-ზე, რათა გააკონტროლოს ფაილური სისტემების დამონტაჟება დაფუძნებული სამონტაჟო სახელების სივრცეზე. შემოთავაზებული ფუნქციები იძლევა სხვადასხვა სამონტაჟო საფეხურის ცალკეული დამუშავების საშუალებას (სუპერბლოკის დამუშავება, ფაილური სისტემის შესახებ ინფორმაციის მიღება, მონტაჟი, დამაგრების წერტილზე მიმაგრება), რომლებიც ადრე სრულდებოდა საერთო mount() ფუნქციის გამოყენებით.

დაემატა ფუნქციები arc4random, arc4random_buf და arc4random_uniform სისტემური ზარის მიმაგრების უზრუნველსაყოფად შემთხვევითი და ინტერფეისი / Dev / urandom, აბრუნებს მაღალი ხარისხის ფსევდო შემთხვევითი რიცხვებს.

Linux-ზე მუშაობისას უზრუნველყოფილია არქიტექტურის მხარდაჭერა. ინსტრუქციების ნაკრებიდან LoongArch გამოიყენება Loongson 3 5000 პროცესორებში და დანერგილია ახალი RISC ISA, მსგავსი MIPS და RISC-V. მისი ამჟამინდელი ფორმით, მხოლოდ თავსებადობაა ხელმისაწვდომი 64 ბიტიანი ვარიანტით LoongArch-დან (LA64). გასაშვებად საჭიროა მინიმუმ binutils 2.38, GCC 12 და Linux kernel 5.19.

სხვა ცვლილებებიდან, რომლებიც გამოირჩევა:

  • წინასწარ დაკავშირების მექანიზმი, ისევე როგორც დაკავშირებული LD_TRACE_PRELINKING და LD_USE_LOAD_BIAS გარემოს ცვლადები და დამაკავშირებელი ფუნქციები, მოძველებულია და წაიშლება მომავალ გამოშვებაში.
  • წაიშალა კოდი Linux-ის ბირთვის ვერსიის შესამოწმებლად და LD_ASSUME_KERNEL გარემოს ცვლადის დასამუშავებლად. Glibc-ის შედგენისას მხარდაჭერილი ბირთვის მინიმალური ვერსია განისაზღვრება ELF ველით NT_GNU_ABI_TAG.
  • LD_LIBRARY_VERSION გარემოს ცვლადი მოძველებულია Linux პლატფორმაზე.

დაბოლოს, თუ თქვენ დაინტერესებული ხართ მეტი იცოდეთ ამის შესახებ, შეგიძლიათ გაეცნოთ დეტალებს შემდეგ ბმულზე.


სტატიის შინაარსი იცავს ჩვენს პრინციპებს სარედაქციო ეთიკა. შეცდომის შესატყობინებლად დააჭირეთ ღილაკს აქ.

იყავი პირველი კომენტარი

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი გამოქვეყნებული არ იყო. აუცილებელი ველები აღნიშნულია *

*

*

  1. მონაცემებზე პასუხისმგებელი: მიგელ ანგელ გატონი
  2. მონაცემთა მიზანი: სპამის კონტროლი, კომენტარების მართვა.
  3. ლეგიტიმაცია: თქვენი თანხმობა
  4. მონაცემთა კომუნიკაცია: მონაცემები არ გადაეცემა მესამე პირებს, გარდა სამართლებრივი ვალდებულებისა.
  5. მონაცემთა შენახვა: მონაცემთა ბაზა, რომელსაც უმასპინძლა Occentus Networks (EU)
  6. უფლებები: ნებისმიერ დროს შეგიძლიათ შეზღუდოთ, აღადგინოთ და წაშალოთ თქვენი ინფორმაცია.