ინტერვიუ Flar2-თან, ElementalX Kernel-ის დეველოპერთან, ნაწილი 1

ჩვენ ვკითხულობთ flar2-ს, ElementalX ბირთვის დეველოპერს და ვიკვლევთ ისეთ თემებს, როგორიცაა მისი პირადი ცხოვრება, განვითარების სამუშაო და სხვა.

ახლახანს მივიღე ინტერვიუ flar2-ზე, კაცთან, რომელიც დგას ცნობილი ElementalX ბირთვის და მისი კიდევ უფრო პოპულარული ElementalX Kernel Manager აპლიკაციის უკან. მან გამოუშვა თავისი ბირთვის ვერსია მოწყობილობების ფართო სპექტრისთვის, მათ შორის OnePlus და Nexus მოწყობილობები.

ამ ნაწილში ვკითხულობთ flar2-ის აზრებს ანდროიდის მუშაობის შეფერხებებზე და უფრო მეტს მის პირად ცხოვრებაზე! შეგიძლიათ შეამოწმოთ ამ ინტერვიუს მე-2 ნაწილი აქ.


Ჰეი მანდ! სანამ კითხვებზე გადავალთ, პირველ რიგში გაგვეცანი.

მე მქვია აარონ სეგაერტი, ასევე ცნობილი როგორც flar2. უმეტესობა მიცნობს, როგორც ElementalX ბირთვის შემქმნელს. მეც მაქვს რამდენიმე აპლიკაცია.

წინასწარ გქონიათ რაიმე გამოცდილება კომპიუტერთან და განვითარებასთან დაკავშირებით? მაგალითად, კომპიუტერული მეცნიერების ხარისხი ან რამე?

კომპიუტერებით დავიწყე მუშაობა, როდესაც ძალიან პატარა ვიყავი. ჩემი პირველი კომპიუტერი იყო Texas Instruments TI-99/4A. ვისწავლე კოდირება BASIC-ში და შევინახე ჩემი პროგრამები კასეტაზე (დიახ, ბებერი ვარ). შემდეგ ჩვენმა ოჯახმა იყიდა 286 IBM-ის კლონი, მე კი იმ მომენტში კოდირებას თავი დავანებე, რადგან ეს ადრე იყო ინტერნეტი ფართოდ იყო ცნობილი და მე არ მქონდა რესურსი და არც ვიცნობდი ვინმეს, ვისაც ჰქონდა კომპიუტერი. კომპიუტერული მეცნიერება უნივერსიტეტში დავიწყე, მაგრამ პირველ კურსზე დავტოვე. კლასში არასდროს დავდიოდი, რადგან ძალიან დაკავებული ვიყავი ჩემს ჯგუფთან ერთად გართობით და კონცერტების თამაშით. მოგვიანებით სკოლაში დავბრუნდი და სოციოლოგიის დოქტორის ხარისხი ავიღე. სტუდენტობის პერიოდში დავინტერესდი ლინუქსით და ღია კოდით, მაგრამ არასდროს შევედი სერიოზულ პროგრამირებაში. მე ვაკეთებდი მცირე ნაწილებს აქეთ-იქით, მაგრამ ძირითადად მხოლოდ სკრიპტებს და მცირე პროგრამებს ვაკეთებდი ჩემი მიზნებისთვის. მე ალბათ ჩემი პირველი Linux ბირთვი 2002 წელს შევქმენი. იმ დროს მე არ ვწერდი ჩემს კოდს, მხოლოდ ექსპერიმენტებს ვატარებდი სხვადასხვა პატჩებზე და აწყობის ვარიანტებს შესრულების გასაუმჯობესებლად. მე უფრო მეტად ვიყავი კომპიუტერების მშენებლობაში, ოვერ ბლოკირებაში და ზოგადად ვცდილობდი, აპარატურა გამეკეთებინა ის, რაც არ იყო საჭირო.

ანდროიდის აპლიკაციების და ბირთვის განვითარების გარდა რაიმე სხვა განვითარება გაინტერესებთ?

ნამდვილად არა, მე ვიპოვე კარგი ხელსაწყოები, რომლებიც ხელმისაწვდომია თითქმის ყველაფრისთვის, რაც მჭირდებოდა კომპიუტერზე. მიზეზი, რის გამოც დავიწყე Android-ისთვის ბირთვებზე და აპებზე მუშაობა, არის ის, რომ ვიგრძენი, რომ საჭირო იყო გარკვეული ფუნქციები და არსებული ხელსაწყოების გაუმჯობესების ადგილი. მაგალითად, მე გავაკეთე Button Mapper, რადგან მინდოდა მთავარი კლავიში სამსუნგის ტელეფონებზე მეტი გაეკეთებინა და არ მომეწონა უკან და უახლესი კლავიშები. მე გავაკეთე DevCheck, რადგან სისტემის ინფორმაციის სხვა აპები არ აჩვენებდნენ ინფორმაციას, რომლის ნახვაც მსურს მკაფიოდ და ლაკონურად. ElementalX kernel ამატებს აპარატურის ახალ ფუნქციებს და EX Kernel Manager აკონტროლებს ამ ფუნქციებს და ამატებს რამდენიმე ხელსაწყოს, რომელსაც ვიყენებ განვითარების გასაადვილებლად. მე მომწონს პრობლემების გადაჭრა და სახალისო გამოწვევაა ნივთების შებრუნება ან ტელეფონში ახალი აპარატურის ფუნქციების დამატება.

როგორ დაუკავშირდით Android-ის განვითარებას, კონკრეტულად ბირთვის განვითარებას?

ყოველთვის მძულდა მობილური ტელეფონები და დიდხანს ვეწინააღმდეგებოდი. მე და ჩემმა მეუღლემ ვიზიარებდით საბაზისო გადაბრუნების ტელეფონს მინიმალური გეგმით, რომელიც ძირითადად საგანგებო სიტუაციებისთვის გამოიყენებოდა. 2012 წელს ჩვენს სახლში ხანძარი გაჩნდა და თითქმის სამი თვე ვიყავით გარეთ. ჩვენი ყველა კომუნალური მომსახურება გაითიშა და გადავწყვიტეთ არ დაგვეკავშირებინა ჩვენი სტაციონარული ტელეფონი, ამიტომ მივიღეთ სმარტფონი, რომელიც იყო LG P-რაღაც მგონი. მივხვდი, რომ ეს იყო მინი კომპიუტერი და გადავწყვიტე, რომ მჭირდებოდა ჩემი საკუთარი მინი კომპიუტერი, ამიტომ ვიყიდე HTC One V.

მას შემდეგ, რაც მე თითქმის ყველაფერს ვაკეთებ და ვცვლიდი, მაშინვე აღმოვაჩინე XDA და აღმოვაჩინე, რომ Android ტელეფონები არა მხოლოდ Linux-ზე მუშაობდნენ, არამედ მათი გადატვირთვაც შეიძლებოდა. მე უკვე დიდი ხანია Linux-ის მომხმარებელი ვარ, ასე რომ, ერთ-ერთი ბირთვი ჩანგალი დავდე და ჩავდექი. მალე მივიღე იაფფასიანი Acer ტაბლეტი და დავიწყე ამ აპარატურის და ბირთვის არევა, რადგან მინდოდა მას ჰქონოდა USB OTG. აღმოჩნდა, რომ აპარატურა არ იყო ქმედუნარიანი, მაგრამ ასე დავიწყე მეტის შესწავლა მობილური აპარატურის შესახებ. მე არასოდეს გამოვუშვი საჯაროდ ბირთვი LG-სთვის, Acer-ის ტაბლეტისთვის ან One V-ისთვის, მაგრამ შევქმენი ჩემი საკუთარი ბირთვები თითოეულისთვის და დავაყენე პერსონალური ROM-ები, რაც საჭირო იყო იმ დღეებში, რადგან Android ჯერ კიდევ არ იყო მომწიფებული.

მე მალე გავუსწრო One V-ს და გავყიდე HTC One XL-ზე და სწორედ მაშინ დაიბადა ElementalX.

რა იყო თავდაპირველად ElementalX-ის მიზანი და როგორ შეიცვალა ეს ბოლო წლებში?

ElementalX-ის მიზანი ყოველთვის იყო ტექნიკის სასარგებლო ფუნქციების დამატება, სტაბილურობისა და მუშაობის კომპრომისის გარეშე, და გამოუშვა ის, რაზეც ადამიანები უბრალოდ მუშაობენ. მე ყოველთვის პირველ ადგილზე ვაყენებ სტაბილურობას, რადგან მჭირდება, რომ ჩემი ტელეფონი იყოს საიმედო. არ არის შემთხვევითი გადატვირთვა ან ისეთი რამ, როგორიცაა კამერა არ მუშაობს. წლების განმავლობაში ფილოსოფია იგივე დარჩა. მე მარტივია და ვამატებ ტექნიკის ფუნქციებს, რომლებიც მე სასარგებლოა. ისეთი რამ, როგორიცაა გაღვიძების ჟესტები, მაღალი სიკაშკაშის რეჟიმი, ვიბრაციის რეგულირება, ხმის კონტროლი, მეტი ფაილური სისტემის მხარდაჭერა, ჯოისტიკები და ა.შ.

მე ბევრს ვმუშაობ იმისთვის, რომ ჩემი ბირთვები იყოს განახლებული, ადვილად დასაინსტალირებელი და რაც შეიძლება ფართოდ თავსებადი. ზოგიერთი მომხმარებელი იმედგაცრუებულია იმით, რომ მე არ ვამატებ ბევრ პაჩს CAF-დან ან ლინუქსის ზემოთ, მაგრამ ჩემი მთავარი მიზანია მივაწოდო ძალიან სტაბილური პროდუქტი უცნაური პრობლემების გარეშე. ჩემი ბევრი მომხმარებელი არ არის ხალხი, ვინც ბევრს აქვეყნებს XDA-ზე, ისინი არიან ძლიერი მომხმარებლები, რომლებსაც აქვთ კონკრეტული მოთხოვნილების დაკმაყოფილება მორგებული ბირთვის, ან ადამიანების მიერ, რომლებსაც ხანდახან უყვართ თავიანთი ტექნიკის დალაგება, მაგრამ არ არიან ჰარდკორი ფლეშჰოლიკები. მე მინდა, რომ ადამიანებს, რომლებიც არ აკვირდებიან Android-ის ყველა უახლეს განვითარებას, შეეძლოთ ElementalX-ის უპრობლემოდ გამოყენება.

არსებობს უამრავი სხვა ბირთვი, რომლებიც ექსპერიმენტებს ახდენენ ზედა დინების ლაქებით. ElementalX-ში ვიყენებ პაჩებისა და ოპტიმიზაციის საგულდაგულოდ შერჩეულ კომპლექტს. Android-ის გარეთ ჩემს კარიერაში, მე ვზომავ რაღაცებს, რომელთა გაზომვაც რთულია და ვიყენებ მტკიცებულებებს პოლიტიკის შესაქმნელად და რჩევების მიწოდებისთვის. მე ვიყენებ იგივე პრინციპებს ბირთვის განვითარებაზე და ზოგადად არ ვიყენებ პატჩებს, თუ არ არის გაზომვადი სარგებელი. ბატარეის მონიტორი EX Kernel Manager-ში ამის მაგალითია. ის გვთავაზობს საშუალებას ობიექტურად გავზომოთ ბატარეის შესწორებების და ბირთვის ცვლილებების ეფექტი. DevCheck-ში მცურავი მონიტორები არის კიდევ ერთი ინსტრუმენტი, რომელსაც ვიყენებ განვითარებისთვის, ძირითადად CPU-ს მონიტორინგისთვის სიხშირეები და ტემპერატურა სხვადასხვა გამოყენების შემთხვევაში, როგორიცაა თამაში, ვიდეოების ყურება ან ვებ დათვალიერება.

როგორ იმოქმედა თქვენს მუშაობაზე ბოლო რამდენიმე წლის განმავლობაში ანდროიდის ცვლილებებმა?

ზოგჯერ რთულია უსაფრთხოების მრავალ ცვლილებასთან გამკლავება, მაგრამ მე მესმის ისინი. თუ არ ვცდები, ანდროიდი ახლა უფრო ფართოდ გამოიყენება ვიდრე ვინდოუსი, რაც მას სამიზნედ აქცევს. ცუდი ადამიანები აპირებენ გამოიყენონ ნებისმიერი კუთხე, რაც შეუძლიათ Android-ის მომხმარებლების გამოსაყენებლად.

სისტემის დანაყოფის მოდიფიკაციის თავიდან აცილება აშკარად გასაღებია მოწყობილობის მთლიანობის დასაცავად. მახსოვს, როდესაც HTC-მა ამის გაკეთება დაიწყო 2012 ან 2013 წელს და თითქოს სამყაროს დასასრული იყო. იმ დროს, /system-ში ჩაწერა საჭირო იყო root-ისთვის, build.prop-ის რედაქტირებისთვის, პრივილეგირებული აპლიკაციების დაყენებისთვის, bloatware-ის და პრაქტიკულად ყველა პოპულარული მოდისთვის. ბევრი პერსონალიზაცია იმ დროს მოიცავდა ისეთ რამეებს, როგორიცაა დედოქსირება და ჩარჩოს შეცვლა. დიდი ხნის განმავლობაში, ბირთვის წყარო არ იყო ხელმისაწვდომი HTC-დან, ამიტომ შევქმენი ბირთვის მოდული, რათა გამორთო სისტემის ჩაწერის დაცვა საფონდო ბირთვში, რისთვისაც პირველად გავხდი ცნობილი როგორც დეველოპერი. მაგრამ დროთა განმავლობაში, როდესაც დაცვა, როგორიცაა verity გახდა Android-ის სტანდარტული ნაწილი, მან აიძულა ინოვაცია და უკეთესი გადაწყვეტილებები, როგორიცაა Chainfire-ის უსისტემო ფესვი და ახლა არის Magisk, რომელიც ყველანაირ საქმეს აკეთებს უსისტემოდ.

კიდევ ერთი დიდი არის SELinux, რამაც გამოიწვია ტონა აპლიკაციის მუშაობა. ბევრ მომხმარებელს სძულდა ეს და დღემდე არიან ადამიანები, რომლებიც SELinux-ით მუშაობენ დასაშვებ რეჟიმში, რაც ძალიან ცუდი იდეაა. მე ვიტყოდი, რომ SELinux არის Android-ის უსაფრთხოების ერთადერთი ყველაზე მნიშვნელოვანი ფუნქცია. SELinux-ის მნიშვნელობის მაგალითი რომ მოვიყვანოთ, როდესაც პირველად მივიღე Pixel XL, არ იყო ხელმისაწვდომი root, მაგრამ Dirty Cow ექსპლოიტი სიახლეებს ქმნიდა. დიდი სურვილი მქონდა დამეწყო ბირთვის განვითარება, რაც გულისხმობს sysfs ფაილების ძიებას ან შეცვლას, რაც მოითხოვს root-ს. მე შევადგინე ჭუჭყიანი ძროხის ერთ-ერთი დამადასტურებელი კონცეფცია და შევძელი ბრძანებების გაშვება root-ის სახით, მაგრამ SELinux-მა ხელი შემიშალა რაიმე საინტერესო გამეკეთებინა. მომიწია boot.img-ის შეცვლა, რომ SELinux ნებადართული ყოფილიყო. მე შეიძლება მივაღწიო სრულ წვდომას ბირთვის შეცვლის გარეშე, მაგრამ ამას ბევრი, ბევრი საათი დასჭირდებოდა. ეს ყველაფერი უნდა ითქვას, დატოვეთ SELinux-ის აღსრულება, ეს არის თავდაცვის მთავარი ხაზი მავნე პროგრამებისგან. ისწავლეთ sepolicy-inject-ის გამოყენება კონკრეტული პოლიტიკის საჭიროებისამებრ შესაცვლელად.

როდესაც Nougat გამოჩნდა, თავდაპირველად თითქმის ყველა /sys და /proc გახდა უხილავი მომხმარებლის აპებისთვის. Root ყოველთვის საჭირო იყო ცვლილებების შესატანად, მაგრამ მოულოდნელად root გახდა საჭირო უბრალოდ წასაკითხად /sys და /proc. ნამდვილად არის ინფორმაცია იმ ფაილურ სისტემაში, რომელიც შეიძლება გამოყენებულ იქნას მოწყობილობის ექსპლუატაციისთვის, ამიტომ საჭირო იყო შეზღუდვების დამატება. მაგრამ ასევე არის ბევრი ინფორმაცია, რომლის ნახვაც მომხმარებლებს უნდა შეეძლოთ. რატომ უნდა იყოს საჭირო root მიმდინარე i/o განრიგის, ან GPU სიხშირის, ან პანელის აპარატურის ტიპის სანახავად? მე მომიწია ბევრი ცვლილების შეტანა DevCheck-ში ამ პრობლემის მოსაგვარებლად და ბევრი მომხმარებელი იყო დაბნეული იმის შესახებ, თუ რატომ აღარ იყო ინფორმაცია Nougat-ზე განახლების შემდეგ. საბოლოოდ, ზოგიერთი შეზღუდვა sysfs ბილიკებზე მოიხსნა.

ამის გარდა, აპლიკაციის განვითარების პერსპექტივიდან, მე მომწონს Android-ის API ცვლილებების უმეტესობა, მიუხედავად იმისა, რომ ისინი მაიძულებენ ბევრი ცვლილება შევიტანო ჩემს აპებში. ეს ცვლილებები, როგორც წესი, უკეთესობისკენ არის მიმართული.


იხილეთ ამ ინტერვიუს მე-2 ნაწილი!