მიმდინარე გვერდი: 1 (წიგნს აქვს სულ 30 გვერდი) [ხელმისაწვდომია საკითხავი პასაჟი: 17 გვერდი]

ბრაიან უორდი

Linux ინტერიერები

მთარგმნელი ს.ჩერნიკოვი

ტექნიკური რედაქტორი ნ.გრინჩიკი

ლიტერატურული რედაქტორი ო.ანდრიევიჩი

მხატვრები ა.ბარცევიჩი, ვ.შიმკევიჩი

კორექტორები ტ.კურიანოვიჩი, ე.პავლოვიჩი

განლაგება ა.ბარცევიჩი

ბრაიან უორდი

Linux ინტერიერები. – პეტერბურგი: პეტრე, 2015 წ.

ISBN 978-5-496-01952-1

© შპს გამომცემლობა „პიტერი“, 2015 წ

Ყველა უფლება დაცულია. ამ წიგნის არც ერთი ნაწილის რეპროდუცირება დაუშვებელია საავტორო უფლებების მფლობელების წერილობითი ნებართვის გარეშე.

Წინასიტყვაობა

მე დავწერე ეს წიგნი იმ რწმენით, რომ წარმატებული და ეფექტური რომ იყოთ, უნდა გესმოდეთ, როგორ მუშაობს და მუშაობს თქვენი კომპიუტერის პროგრამა.

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

Linux ოპერაციული სისტემის დიზაინისადმი ინტერესი შეიძლება გამოწვეული იყოს სხვადასხვა მიზეზით. ინფორმაციული ტექნოლოგიების პროფესიონალები და Linux პროგრამული უზრუნველყოფის შემქმნელები ამ წიგნში იპოვიან პრაქტიკულად ყველაფერს, რაც უნდა იცოდნენ ოპერაციული სისტემიდან მაქსიმალური სარგებლობის მისაღებად. მკვლევარები და სტუდენტები, რომლებსაც ხშირად უწევთ სისტემის მორგება საკუთარი თავისთვის, აქ იპოვიან პრაქტიკულ ახსნას, თუ რატომ მუშაობს ყველაფერი ისე, როგორც აკეთებს. ასევე არსებობენ „გასართობი“ - მომხმარებლები, რომლებსაც მოსწონთ დროის გატარება კომპიუტერზე გართობის, მოგების ან ორივესთვის.

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

აუცილებელი პირობები

თქვენ არ გჭირდებათ პროგრამისტი იყოთ ამ წიგნის წასაკითხად. თქვენ დაგჭირდებათ მხოლოდ კომპიუტერის მომხმარებლის ძირითადი უნარები: უნდა გქონდეთ ნავიგაცია გრაფიკულ ინტერფეისში (სისტემის ინტერფეისის ინსტალაციისა და კონფიგურაციისას), ასევე გქონდეთ ფაილების და დირექტორიების (საქაღალდეების) გაგება. თქვენ ასევე მზად უნდა იყოთ მოძებნოთ თქვენი სისტემა და ონლაინ დამატებითი დოკუმენტაციისთვის. როგორც ზემოთ აღინიშნა, ყველაზე მნიშვნელოვანი არის თქვენი კომპიუტერის შესწავლის სურვილი და სურვილი.

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

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

პრაქტიკული მიდგომა

სამუშაოდ დაგჭირდებათ კომპიუტერი Linux ოპერაციული სისტემით. თქვენ შეიძლება გირჩევნიათ ვირტუალური ინსტალაცია - მე გამოვიყენე VirtualBox ამ წიგნის მასალის უმეტესი ნაწილის შესამოწმებლად. თქვენ უნდა გქონდეთ სუპერმომხმარებლის (root) წვდომა, თუმცა უმეტეს დროს უნდა გამოიყენოთ სტანდარტული მომხმარებლის ანგარიში. თქვენ იმუშავებთ ძირითადად ბრძანების ხაზზე, ტერმინალის ფანჯარაში ან დისტანციურ სესიაზე. თუ ამ გარემოში ხშირად არ გიმუშავიათ, არა უშავს; ამის შესახებ მეტს შეიტყობთ მე-2 თავში.

როგორც წესი, ბრძანებები ასე გამოიყურება:

შეიყვანეთ ტექსტი, რომელიც მონიშნულია თამამად; პასუხის ტექსტი, რომელსაც მანქანა გამოიმუშავებს, ნაჩვენებია ნორმალური შრიფტით. $ სიმბოლო არის მოთხოვნა მომხმარებლისთვის, რომელსაც აქვს რეგულარული ანგარიში. თუ მოთხოვნაში # სიმბოლოს ხედავთ, უნდა გამოიყენოთ სუპერმომხმარებლის ანგარიში (დაწვრილებით ამის შესახებ მე-2 თავში).

როგორ არის ორგანიზებული ეს წიგნი?

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

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

მასალა წარმოდგენილია შეძლებისდაგვარად, სისტემური განაწილების მითითების გარეშე. მოსაწყენი იქნებოდა სისტემის ყველა ვარიანტის აღწერა, ამიტომ შევეცადე მესაუბრა განაწილების ორ მთავარ ოჯახზე: Debian (მათ შორის Ubuntu) და RHEL/Fedora/CentOS. აქცენტი კეთდება სერვერისა და სამუშაო სადგურის ვერსიებზე. ასევე წარმოდგენილია ჩაშენებული სისტემები, როგორიცაა Android და OpenWRT, მაგრამ ამ პლატფორმებს შორის განსხვავებების სწავლა თქვენზეა დამოკიდებული.

რა არის ახალი მეორე გამოცემაში

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

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

მე ასევე გადავწყვიტე წიგნის პრეზენტაცია დღევანდელი მკითხველის ინტერესებისა და საჭიროებების შესაბამისად. ერთადერთი, რაც არ შეცვლილა, არის წიგნის სიგრძე.

მინდოდა მოგაწოდოთ ინფორმაცია, რომელიც გჭირდებათ სწრაფად დასაწყებად. მათ გარკვეული ძალისხმევა დასჭირდებათ, რომ დაეუფლონ, მაგრამ მე არ ვაპირებ შენს „წონოსანად“ გაქცევას, რათა დაძლიო ეს წიგნი. მას შემდეგ რაც გაიგებთ აქ ჩამოთვლილ მნიშვნელოვან პუნქტებს, თქვენთვის ადვილი იქნება დეტალების მოძიება და მათი გაგება.

მე ამოვიღე რამდენიმე ისტორიული დეტალი, რომელიც იყო პირველ გამოცემაში, ძირითადად თქვენი ყურადღების ფოკუსირების მიზნით. თუ გაინტერესებთ Linux სისტემა და მისი კავშირი Unix სისტემის ისტორიასთან, ნახეთ პიტერ ჰ. სალუსის წიგნი. დემონი, გნუ და პინგვინი(Reed Media Services, 2008) - ის საუბრობს იმაზე, თუ როგორ განვითარდა პროგრამული უზრუნველყოფა, რომელსაც ჩვენ ვიყენებთ.

შენიშვნა ტერმინოლოგიაზე

ამჟამად მიმდინარეობს დებატები ოპერაციული სისტემების ზოგიერთი ელემენტის სახელზე. ლინუქსის სისტემის სახელიც კი არის ჩართული - უნდა ერქვას ლინუქსი თუ GNU/Linux (რომ ასახავდეს GNU პროექტის ზოგიერთი ელემენტის გამოყენებას)? წიგნში შევეცადე გამომეყენებინა ყველაზე გავრცელებული და ნაკლებად რთული სახელები.

მადლიერებები

მადლობას ვუხდი ყველას, ვინც დამეხმარა პირველ გამოცემაზე მუშაობაში. ესენი არიან ჯეიმს დუნკანი, დუგლას ნ. არნოლდი, ბილ ფენერი, კენ ჰორნშტეინი, სკოტ დიქსონი, დენ ერლიხი, ფელიქს ლი ფელიქს ლი, სკოტ შვარცი, გრეგორი პ. სმიტი, დენ სალი, კაროლ ჟურადო და ჯინა სტილი. ამ გამოცემისთვის განსაკუთრებულ მადლობას ვუხდი Jordi Gutiérrez Hermoso-ს შესანიშნავი ტექნიკური მიმოხილვისთვის; მისი წინადადებები და განმარტებები ფასდაუდებელია. ასევე მადლობა დომინიკ პულენსა და დონალდ კარონს ნაწარმოების ადრეულ ეტაპზე სწრაფი რეაგირებისთვის და ჰსინჯუ ჰსიეჰს, რომელიც მოთმინებით მუშაობდა ჩემთან ერთად ამ წიგნის გადასინჯვაზე.

მე ასევე მინდა მადლობა გადავუხადო ჩემს განვითარების რედაქტორს, ბილ პოლოკს და წარმოების რედაქტორს, ლორელ ჩუნს. სერენა იანგმა, ელისონ ლოუმ და ყველამ No Starch Press-ში, როგორც ყოველთვის, მშვენიერი სამუშაო გააკეთეს წიგნის ამ ახალი გამოცემის შესაქმნელად.

გამომცემლისგან

გთხოვთ, გამოაგზავნოთ თქვენი კომენტარები, წინადადებები და შეკითხვები ელექტრონული ფოსტით [ელფოსტა დაცულია](გამომცემლობა პეტრე, კომპიუტერული გამოცემა).

ჩვენ სიამოვნებით მოვისმენთ თქვენს აზრს!

გამომცემლობის ვებგვერდზე http://www.piter.com თქვენ იხილავთ დეტალურ ინფორმაციას ჩვენი წიგნების შესახებ.

1. დიდი სურათი

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

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

თუ მანქანას მართავთ, მეტი უნდა იცოდეთ. თქვენ უნდა გაეცნოთ სამართავებს (როგორიცაა საჭე და გაზის პედლები) და რა უნდა გააკეთოთ გაუმართაობის შემთხვევაში.

დავუშვათ, რომ მანქანა აჩქარებით მოძრაობს. თქვენ შეგიძლიათ დაყოთ „გზაზე მიმავალი მანქანის“ აბსტრაქცია სამ ნაწილად: მანქანა, გზა და თქვენი მართვის სტილი. ეს ხელს შეუწყობს მიზეზის დადგენას. თუ გზა დაბურულია, არც მანქანას უნდა დააბრალოთ და არც საკუთარ თავს. ამის ნაცვლად, შეგიძლიათ სცადოთ იმის გარკვევა, თუ რატომ გაუარესდა გზა, ან თუ გზა ახალია, რატომ გააკეთეს მისმა მშენებლებმა ასეთი საშინელი სამუშაო.

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

ეს თავი შეიცავს ზოგად მიმოხილვას იმ კომპონენტების შესახებ, რომლებიც ქმნიან Linux სისტემას. მიუხედავად იმისა, რომ თითოეულ მათგანს აქვს წარმოუდგენელი რაოდენობის ტექნიკური დეტალები, რომლებიც დაკავშირებულია შიდა სტრუქტურასთან, ჩვენ არ მივაქცევთ მათ ყურადღებას და ყურადღებას არ მივაქცევთ იმაზე, თუ რას აკეთებენ ეს კომპონენტები მთლიან სისტემასთან მიმართებაში.

1.1. აბსტრაქციის დონეები და შრეები Linux ოპერაციულ სისტემაში

აბსტრაქციების გამოყენება კომპიუტერული სისტემების კომპონენტებად დასაშლელად აადვილებს მათ გაგებას, მაგრამ არ არის კარგი, თუ სტრუქტურა არ არსებობს. კომპონენტებს ვაწყობთ ფენებად ან დონეებად. Ფენა,ან დონე,არის კომპონენტების კლასიფიკაციის (ან დაჯგუფების) გზა მომხმარებელსა და აპარატურას შორის მათი მდებარეობის მიხედვით. ზედა ფენაზე განთავსებულია ბრაუზერები, თამაშები და ა.შ. ქვედა ფენაზე ვხედავთ კომპიუტერის მეხსიერებას: ნულები და ერთეულები. ოპერაციული სისტემა იკავებს ფენების უდიდეს რაოდენობას ამ ორს შორის.

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

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

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

შენიშვნა

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

არსებობს მნიშვნელოვანი განსხვავება, თუ როგორ იწყება ბირთვის პროცესები და მომხმარებლის პროცესები: ბირთვი იწყება ბირთვის რეჟიმი, და მომხმარებლის პროცესები - in მომხმარებლის რეჟიმი. ბირთვის რეჟიმში გაშვებულ კოდს აქვს შეუზღუდავი წვდომა პროცესორზე და RAM-ზე. ეს არის ძლიერი უპირატესობა, მაგრამ შეიძლება საშიში იყოს, რადგან ის საშუალებას აძლევს ბირთვის პროცესებს მარტივად დაარღვიოს მთელი სისტემა. ტერიტორია, რომელიც ხელმისაწვდომია მხოლოდ ბირთვისთვის, ეწოდება ძირითადი სივრცე.

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

ბრინჯი. 1.1. Linux ოპერაციული სისტემის ზოგადი სტრუქტურა

თეორიულად, მომხმარებლის უკონტროლო პროცესს არ შეუძლია მნიშვნელოვანი ზიანი მიაყენოს სისტემას. ეს ნამდვილად დამოკიდებულია იმაზე, თუ რას თვლით „არსებით ზიანს“ და ამ პროცესის განსაკუთრებულ პრივილეგიებზე, რადგან ზოგიერთ პროცესს სხვაზე მეტის გაკეთების უფლება აქვს. მაგალითად, შეუძლია თუ არა მომხმარებლის პროცესს მთლიანად გაანადგუროს მონაცემები მყარ დისკზე? თუ თქვენ სწორად დააკონფიგურირებთ ნებართვებს, ეს შეიძლება და ძალიან საშიში იქნება თქვენთვის. არსებობს გარანტიები ამის თავიდან ასაცილებლად და პროცესების უმეტესობა უბრალოდ არ იქნება დაშვებული ამ გზით ნგრევის გამოწვევა.

1.2. აპარატურა: ოპერატიული მეხსიერება

მთელი კომპიუტერული ტექნიკით ოპერატიული მეხსიერებაარის ალბათ ყველაზე მნიშვნელოვანი. მისი ყველაზე ნედლეული ფორმით, ოპერატიული მეხსიერება არის მხოლოდ ერთებისა და ნულების სტრიქონების უზარმაზარი საცავი. თითოეულ ნულს ან ერთს უწოდებენ ცოტა. აქ არის გაშვებული ბირთვი და პროცესები - ისინი მხოლოდ ბიტების დიდი კოლექციებია. ყველა შემავალი და გამომავალი მონაცემები პერიფერიული მოწყობილობებიდან გადის RAM-ში ასევე ბიტების ნაკრების სახით. CPU უბრალოდ მუშაობს მეხსიერებაზე: ის კითხულობს ინსტრუქციებს და მონაცემებს მისგან და შემდეგ იწერს მონაცემებს მეხსიერებაში.

ხშირად შეხვდებით ტერმინს "სახელმწიფო", რომელიც ეხება მეხსიერებას, პროცესებს, ბირთვს და კომპიუტერული სისტემის სხვა ნაწილებს. მკაცრად რომ ვთქვათ, მდგომარეობა არის ბიტების ნებისმიერი მოწესრიგებული განლაგება. მაგალითად, თუ მეხსიერებაში ოთხი ბიტია, მაშინ 0110, 0001 და 1011 თანმიმდევრობა წარმოადგენს სამ განსხვავებულ მდგომარეობას.

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

ᲨᲔᲜᲘᲨᲕᲜᲐ

იმის გამო, რომ მდგომარეობები, როგორც წესი, აღწერილია აბსტრაქტული ცნებების გამოყენებით და არა რეალური ბიტების გამოყენებით, ტერმინი "სურათი" გამოიყენება ბიტების ნებისმიერი ფიზიკური მოწყობის აღსანიშნავად.

1.3. ბირთვი

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

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

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

მეხსიერება.ბირთვს სჭირდება თვალყური ადევნოს მთელი მეხსიერების მდგომარეობას: რა ნაწილია ამჟამად გამოყოფილი გარკვეულ პროცესებზე, რა შეიძლება გამოიყოს პროცესებს შორის გაზიარებისთვის და რომელი ნაწილია უფასო.

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

სისტემური ზარებიდამხარდაჭერა.პროცესები, როგორც წესი, იყენებენ სისტემურ ზარებს ბირთვთან კომუნიკაციისთვის.

ჩვენ ახლა მოკლედ განვიხილავთ თითოეულ ამ სფეროს.

ᲨᲔᲜᲘᲨᲕᲜᲐ

დამატებითი ინფორმაციისთვის, თუ როგორ მუშაობს ბირთვი, იხილეთ ოპერაციული სისტემის ცნებები, მე-9 გამოცემა, აბრაამ სილბერშჩაცის, პიტერ ბ. გალვინისა და გრეგ განის. განე (Wiley, 2012) და თანამედროვე ოპერაციული სისტემები, მე-4 გამოცემა ენდრიუ ს. ტანენბაუმის და ჰერბერტის მიერ. ბოსი (Prentice Hall, 2014).

1.3.1. Პროცესის მართვა

Პროცესის მართვააღწერს პროცესების დაწყებას, შეჩერებას, განახლებას და დასრულებას. პროცესების დაწყებისა და შეჩერების ცნებები საკმაოდ მარტივია. ცოტა უფრო რთულია იმის აღწერა, თუ როგორ იყენებს პროცესი პროცესორს CPU-ს ნორმალური მუშაობის დროს.

ნებისმიერ თანამედროვე ოპერაციულ სისტემაში რამდენიმე პროცესი ფუნქციონირებს „ერთდროულად“. მაგალითად, შეგიძლიათ გაუშვათ ბრაუზერი თქვენს კომპიუტერში და გახსნათ ელცხრილი ერთდროულად. თუმცა, სინამდვილეში, ყველაფერი ისე არ არის, როგორც ჩანს: პროცესები, რომლებიც პასუხისმგებელნი არიან ამ აპლიკაციებზე, ჩვეულებრივ, არ იწყება სიზუსტედროის ერთ მომენტში.

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

დროის ყოველი პერიოდი დროის კვანტური– აძლევს პროცესს საკმარის დროს მნიშვნელოვანი გამოთვლების შესასრულებლად (და, რა თქმა უნდა, პროცესი ხშირად ასრულებს თავის ამჟამინდელ ამოცანას ერთი კვანტური ფარგლებში). ვინაიდან დროის კვანტები ძალიან მცირეა, ადამიანი მათ არ აღიქვამს და მას ეჩვენება, რომ სისტემაში რამდენიმე პროცესი ერთდროულად მიმდინარეობს (ეს შესაძლებლობა ცნობილია როგორც "მრავალდავალება").

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

1. პროცესორი (რეალური აპარატურა) წყვეტს მიმდინარე პროცესს შიდა ტაიმერის გამოყენებით, გადადის ბირთვის რეჟიმში და უბრუნებს მას კონტროლს.

2. ბირთვი იწერს პროცესორის და მეხსიერების ამჟამინდელ მდგომარეობას, რომელიც საჭირო იქნება ახლახან შეწყვეტილი პროცესის გასაგრძელებლად.

3. ბირთვი ასრულებს ნებისმიერ დავალებას, რომელიც შეიძლება გამოჩენილიყო წინა დროის მონაკვეთის დროს (მაგალითად, მონაცემთა შეგროვება ან I/O ოპერაციები).

4. ბირთვი ახლა მზად არის სხვა პროცესის დასაწყებად. ის აანალიზებს გასაშვებად მზად პროცესების ჩამონათვალს და ირჩევს ერთ-ერთ მათგანს.

5. ბირთვი ამზადებს მეხსიერებას ახალი პროცესისთვის და შემდეგ ამზადებს პროცესორს.

6. ბირთვი ეუბნება პროცესორს რამდენ ხანს გაგრძელდება ახალი პროცესის დროის მონაკვეთი.

7. ბირთვი აყენებს პროცესორს მომხმარებლის რეჟიმში და კონტროლს გადასცემს პროცესორს.

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

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

1.3.2. მეხსიერების მართვა

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

ბირთვს უნდა ჰქონდეს საკუთარი მეხსიერების არეალი, რომელზე წვდომა შეუძლებელია მომხმარებლის პროცესებით;

თითოეულ მომხმარებლის პროცესს სჭირდება საკუთარი მეხსიერების არეალი;

მომხმარებლის ნებისმიერ პროცესს არ უნდა ჰქონდეს წვდომა სხვა პროცესზე გამოყოფილ მეხსიერებაზე;

მომხმარებლის პროცესებს შეუძლიათ მეხსიერების გაზიარება;

მომხმარებლის პროცესების ზოგიერთი მეხსიერება შეიძლება იყოს მხოლოდ წაკითხვადი;

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

ბირთვს ჰყავს დამხმარე. თანამედროვე პროცესორები შეიცავს მეხსიერების მართვის მოდული(MMU), რომელიც ააქტიურებს მეხსიერების წვდომის წრეს ე.წ "ვირტუალური მეხსიერება". ვირტუალური მეხსიერების გამოყენებისას, პროცესი არ წვდება მეხსიერებას უშუალოდ მისი ფიზიკური მდებარეობიდან აპარატურაში. ამის ნაცვლად, ბირთვი აკონფიგურირებს თითოეულ პროცესს, თითქოს მას აქვს კონტროლი მთელ მანქანაზე. როდესაც პროცესი წვდება მეხსიერებას, MMU წყვეტს მოთხოვნას და იყენებს მეხსიერების მისამართების რუკას, რათა გადათარგმნოს პროცესიდან მიღებული მეხსიერების მდებარეობა კომპიუტერის მეხსიერების ფიზიკურ მდებარეობაზე. თუმცა, ბირთვმა მაინც უნდა მოახდინოს ამ მისამართის რუკის ინიციალიზაცია, მუდმივად შენარჩუნება და შეცვლა. მაგალითად, კონტექსტური გადართვის დროს, ბირთვმა უნდა შეცვალოს რუკა გამგზავრების პროცესის შემდეგ და მოამზადოს იგი მომავალი პროცესისთვის.

შენიშვნა

მეხსიერების მისამართის რუკის განხორციელებას გვერდის ცხრილი ეწოდება.

მე-8 თავში შეისწავლით მეხსიერების მუშაობის მონიტორინგს.

1.3.3. მოწყობილობის დრაივერები და მენეჯმენტი

ბირთვის სამუშაო მოწყობილობებთან მიმართებაში საკმაოდ მარტივია. როგორც წესი, მოწყობილობებზე წვდომა შესაძლებელია მხოლოდ ბირთვის რეჟიმში, რადგან არასწორი წვდომა (მაგალითად, როდესაც მომხმარებლის პროცესი ცდილობს კვების გამორთვას) შეიძლება გამოიწვიოს კომპიუტერის ავარია. კიდევ ერთი პრობლემა ის არის, რომ სხვადასხვა მოწყობილობებს იშვიათად აქვთ ერთი და იგივე პროგრამული ინტერფეისი, მაშინაც კი, თუ ისინი ასრულებენ ერთსა და იმავე ამოცანას: მაგალითად, ორი განსხვავებული ქსელის ბარათი. ამ მიზეზით, მოწყობილობის დრაივერები ტრადიციულად ბირთვის ნაწილია და ცდილობენ უზრუნველყონ ერთიანი ინტერფეისი მომხმარებლის პროცესებისთვის, რათა გააადვილონ პროგრამული უზრუნველყოფის შემქმნელების მუშაობა.

1.3.4. სისტემური ზარები და მხარდაჭერა

არსებობს სხვა ტიპის ბირთვის ფუნქციები, რომლებიც ხელმისაწვდომია მომხმარებლის პროცესებისთვის. Მაგალითად, სისტემური ზარებიშეასრულოს სპეციალური დავალებები, რომლებსაც მომხმარებლის პროცესი ვერ ასრულებს კარგად ან საერთოდ დამოუკიდებლად. ამრიგად, ფაილების გახსნასთან, კითხვასა და ჩაწერასთან დაკავშირებული ყველა მოქმედება მოიცავს სისტემურ ზარებს.

ორი სისტემური ზარი, fork() და exec(), მნიშვნელოვანია პროცესების გაშვების გასაგებად:

ჩანგალი (). როდესაც პროცესი მოუწოდებს fork(), ბირთვი ქმნის პროცესის თითქმის იდენტურ ასლს;

Exec(). როდესაც პროცესი იწვევს exec( პროგრამა), ბირთვი აწარმოებს პროგრამას პროგრამა, რომელიც ცვლის მიმდინარე პროცესს.

დაწყების პროცესის გარდა (თავი 6), ყველამომხმარებლის პროცესები Linux სისტემაში იწყება fork() ზარის შედეგად და უმეტეს შემთხვევაში exec() ზარი კეთდება ახალი პროგრამის დასაწყებად, ვიდრე არსებული პროცესის ასლი. მარტივი მაგალითია ნებისმიერი პროგრამა, რომელსაც აწარმოებთ ბრძანების სტრიქონიდან, მაგალითად, ls ბრძანება, რომელიც აჩვენებს დირექტორიაში არსებულ შინაარსს. როდესაც ტერმინალის ფანჯარაში შედიხართ ls ბრძანებას, ტერმინალის ფანჯრის შიგნით გაშვებული ჭურვი იძახებს fork()-ს ჭურვის ასლის შესაქმნელად, შემდეგ კი ჭურვის ახალი ასლი მოუწოდებს exec(ls)-ს ls ბრძანების გასაშვებად. ნახ. სურათი 1.2 გვიჩვენებს პროცესებისა და სისტემური ზარების თანმიმდევრობას ისეთი პროგრამების გასაშვებად, როგორიცაა ls.

ბრინჯი. 1.2.ახალი პროცესის დაწყება

ᲨᲔᲜᲘᲨᲕᲜᲐ

სისტემური ზარები ჩვეულებრივ აღინიშნება ფრჩხილების გამოყენებით. ნახ. 1.2, პროცესმა, რომელიც ითხოვს ბირთვს სხვა პროცესის შექმნას, უნდა გამოსცეს fork() სისტემის გამოძახება. ეს აღნიშვნა მოდის C პროგრამირების ენაზე ზარების დაწერის გზით. ამ წიგნის გასაგებად არ გჭირდებათ C ცოდნა. უბრალოდ გახსოვდეთ, რომ სისტემური ზარი არის ურთიერთქმედება პროცესსა და ბირთვს შორის. უფრო მეტიც, ეს წიგნი ამარტივებს სისტემური ზარების ზოგიერთ ჯგუფს. მაგალითად, exec() ზარი აღნიშნავს სისტემური ზარების მთელ ოჯახს, რომლებიც ასრულებენ მსგავს ამოცანას, მაგრამ განსხვავდებიან პროგრამული უზრუნველყოფის დანერგვით.

ბირთვი ასევე მხარს უჭერს მომხმარებლის პროცესებს, რომელთა ფუნქციები განსხვავდება ტრადიციული სისტემური ზარებისგან. მათგან ყველაზე ცნობილია ფსევდო მოწყობილობები. მომხმარებლის პროცესების თვალსაზრისით, ფსევდო-მოწყობილობები ჩვეულებრივ მოწყობილობებს ჰგავს, მაგრამ ისინი მთლიანად დანერგილია პროგრამულ უზრუნველყოფაში. ფაქტობრივად, ისინი ფორმალურად არ უნდა იყვნენ ბირთვში, მაგრამ ისინი მაინც იმყოფებიან მასში პრაქტიკული მიზეზების გამო. მაგალითად, მოწყობილობა, რომელიც წარმოქმნის შემთხვევით რიცხვებს (/dev/შემთხვევითი) რთული იქნება უსაფრთხოების საჭირო ხარისხით მომხმარებლის პროცესის გამოყენებით.

შენიშვნა

ტექნიკურად, მომხმარებლის პროცესი, რომელიც წვდება ფსევდო მოწყობილობას, კვლავ იძულებულია განახორციელოს სისტემური ზარი ამ მოწყობილობის გასახსნელად. ამრიგად, პროცესები სრულად ვერ აიცილებენ სისტემურ ზარებს.

1.4. მომხმარებლის სივრცე

ოპერატიული მეხსიერების ფართობი, რომელსაც ბირთვი გამოყოფს მომხმარებლის პროცესებისთვის, ეწოდება მომხმარებლის სივრცე. ვინაიდან პროცესი არის მხოლოდ მდგომარეობა (ან სურათი) მეხსიერებაში, მომხმარებლის სივრცე ასევე წვდება მიმდინარე პროცესების მთელი კოლექციის მეხსიერებას. თქვენ ასევე შეიძლება შეხვდეთ ტერმინს "მომხმარებლის ქვეყანა", რომელიც გამოიყენება მომხმარებლის სივრცის ნაცვლად.

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

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

სურათი 1.3 მხოლოდ უხეშად აჩვენებს მომხმარებლის სივრცის განლაგებას. სინამდვილეში, მომხმარებლის სივრცეში წესები არ არსებობს. მაგალითად, აპლიკაციებისა და სერვისების უმეტესობა იწერს დიაგნოსტიკურ შეტყობინებებს ჟურნალები. პროგრამების უმეტესობა იყენებს სტანდარტულ syslog სერვისს შეტყობინებების ჩასაწერად, მაგრამ ზოგი ირჩევს თავად განახორციელოს ჟურნალი.

ბრინჯი. 1.3.პროცესების სახეები და ურთიერთქმედებები

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

1.5. მომხმარებლები

Linux-ის ბირთვი მხარს უჭერს Unix სისტემის მომხმარებლის ტრადიციულ კონცეფციას. მომხმარებელიარის ერთეული, რომელსაც შეუძლია პროცესების გაშვება და საკუთარი ფაილები. დაკავშირებულია მომხმარებელთან მომხმარებლის სახელი. მაგალითად, სისტემას შეიძლება ჰყავდეს მომხმარებელი, სახელად billyjoe. თუმცა, ბირთვი არ მუშაობს მომხმარებლის სახელებთან, სამაგიეროდ ის ახდენს მომხმარებლის იდენტიფიცირებას მარტივი ციფრული რიცხვის გამოყენებით მომხმარებლის იდენტიფიკაცია(თავი 7 საუბრობს იმაზე, თუ როგორ აისახება ID-ები მომხმარებლის სახელებთან).

ბრაიან უორდი

Linux ინტერიერები

მთარგმნელი ს.ჩერნიკოვი

ტექნიკური რედაქტორი ნ.გრინჩიკი

ლიტერატურული რედაქტორი ო.ანდრიევიჩი

მხატვრები ა.ბარცევიჩი, ვ.შიმკევიჩი

კორექტორები ტ.კურიანოვიჩი, ე.პავლოვიჩი

განლაგება ა.ბარცევიჩი

ბრაიან უორდი

Linux ინტერიერები. - პეტერბურგი: პეტრე, 2015 წ.

ISBN 978-5-496-01952-1

© შპს გამომცემლობა „პიტერი“, 2015 წ

Ყველა უფლება დაცულია. ამ წიგნის არც ერთი ნაწილის რეპროდუცირება დაუშვებელია საავტორო უფლებების მფლობელების წერილობითი ნებართვის გარეშე.

Წინასიტყვაობა

მე დავწერე ეს წიგნი იმ რწმენით, რომ წარმატებული და ეფექტური რომ იყოთ, უნდა გესმოდეთ, როგორ მუშაობს და მუშაობს თქვენი კომპიუტერის პროგრამა.

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

Linux ოპერაციული სისტემის დიზაინისადმი ინტერესი შეიძლება გამოწვეული იყოს სხვადასხვა მიზეზით. ინფორმაციული ტექნოლოგიების პროფესიონალები და Linux პროგრამული უზრუნველყოფის შემქმნელები ამ წიგნში იპოვიან პრაქტიკულად ყველაფერს, რაც უნდა იცოდნენ ოპერაციული სისტემიდან მაქსიმალური სარგებლობის მისაღებად. მკვლევარები და სტუდენტები, რომლებსაც ხშირად უწევთ სისტემის მორგება საკუთარი თავისთვის, აქ იპოვიან პრაქტიკულ ახსნას, თუ რატომ მუშაობს ყველაფერი ისე, როგორც აკეთებს. ასევე არსებობენ „გასართობი“ - მომხმარებლები, რომლებსაც მოსწონთ დროის გატარება კომპიუტერზე გართობის, მოგების ან ორივესთვის.

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

აუცილებელი პირობები

თქვენ არ გჭირდებათ პროგრამისტი იყოთ ამ წიგნის წასაკითხად. თქვენ დაგჭირდებათ მხოლოდ კომპიუტერის მომხმარებლის ძირითადი უნარები: უნდა გქონდეთ ნავიგაცია გრაფიკულ ინტერფეისში (სისტემის ინტერფეისის ინსტალაციისა და კონფიგურაციისას), ასევე გქონდეთ ფაილების და დირექტორიების (საქაღალდეების) გაგება. თქვენ ასევე მზად უნდა იყოთ მოძებნოთ თქვენი სისტემა და ონლაინ დამატებითი დოკუმენტაციისთვის. როგორც ზემოთ აღინიშნა, ყველაზე მნიშვნელოვანი არის თქვენი კომპიუტერის შესწავლის სურვილი და სურვილი.

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

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

პრაქტიკული მიდგომა

სამუშაოდ დაგჭირდებათ კომპიუტერი Linux ოპერაციული სისტემით. თქვენ შეიძლება გირჩევნიათ ვირტუალური ინსტალაცია - მე გამოვიყენე VirtualBox ამ წიგნის მასალის უმეტესი ნაწილის შესამოწმებლად. თქვენ უნდა გქონდეთ სუპერმომხმარებლის (root) წვდომა, თუმცა უმეტეს დროს უნდა გამოიყენოთ სტანდარტული მომხმარებლის ანგარიში. თქვენ იმუშავებთ ძირითადად ბრძანების ხაზზე, ტერმინალის ფანჯარაში ან დისტანციურ სესიაზე. თუ ამ გარემოში ხშირად არ გიმუშავიათ, არა უშავს; ამის შესახებ მეტს შეიტყობთ მე-2 თავში.

როგორც წესი, ბრძანებები ასე გამოიყურება:

შეიყვანეთ ტექსტი, რომელიც მონიშნულია თამამად; პასუხის ტექსტი, რომელსაც მანქანა გამოიმუშავებს, ნაჩვენებია ნორმალური შრიფტით. $ სიმბოლო არის მოთხოვნა მომხმარებლისთვის, რომელსაც აქვს რეგულარული ანგარიში. თუ თქვენ ხედავთ # სიმბოლოს მოთხოვნაში, უნდა იყოთ შესული, როგორც სუპერმომხმარებელი (დაწვრილებით ამის შესახებ მე-2 თავში).

როგორ არის ორგანიზებული ეს წიგნი?

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

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

მასალა წარმოდგენილია შეძლებისდაგვარად, სისტემური განაწილების მითითების გარეშე. მოსაწყენი იქნებოდა სისტემის ყველა ვარიანტის აღწერა, ამიტომ შევეცადე მესაუბრა განაწილების ორ მთავარ ოჯახზე: Debian (მათ შორის Ubuntu) და RHEL/Fedora/CentOS. აქცენტი კეთდება სერვერისა და სამუშაო სადგურის ვერსიებზე. ასევე წარმოდგენილია ჩაშენებული სისტემები, როგორიცაა Android და OpenWRT, მაგრამ ამ პლატფორმებს შორის განსხვავებების სწავლა თქვენზეა დამოკიდებული.

რა არის ახალი მეორე გამოცემაში

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

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

მე ასევე გადავწყვიტე წიგნის პრეზენტაცია დღევანდელი მკითხველის ინტერესებისა და საჭიროებების შესაბამისად. ერთადერთი, რაც არ შეცვლილა, არის წიგნის სიგრძე.

მინდოდა მოგაწოდოთ ინფორმაცია, რომელიც გჭირდებათ სწრაფად დასაწყებად. მათ გარკვეული ძალისხმევა დასჭირდებათ, რომ დაეუფლონ, მაგრამ მე არ ვაპირებ შენს „წონოსანად“ გაქცევას, რათა დაძლიო ეს წიგნი. მას შემდეგ რაც გაიგებთ აქ ჩამოთვლილ მნიშვნელოვან პუნქტებს, თქვენთვის ადვილი იქნება დეტალების მოძიება და მათი გაგება.

მე ამოვიღე რამდენიმე ისტორიული დეტალი, რომელიც იყო პირველ გამოცემაში, ძირითადად თქვენი ყურადღების ფოკუსირების მიზნით. თუ გაინტერესებთ Linux სისტემა და მისი კავშირი Unix სისტემის ისტორიასთან, ნახეთ პიტერ ჰ. სალუსის წიგნი. დემონი, გნუ და პინგვინი(Reed Media Services, 2008) - ის საუბრობს იმაზე, თუ როგორ განვითარდა პროგრამული უზრუნველყოფა, რომელსაც ჩვენ ვიყენებთ.

Linux ინტერიერებიბრაიან უორდი

(ჯერ არ არის რეიტინგები)

სათაური: Linux Internals

ბრაიან უორდის წიგნის Linux Internals-ის შესახებ

Linux ოპერაციული სისტემა Windows-ის ღირსეული ალტერნატივაა, რომლის ზოგიერთი ვერსია არც თუ ისე მოსახერხებელია და ძალიან "მძიმეა" კომპიუტერული რესურსებისთვის. ბრაიან უორდმა დაწერა საოცარი თვითდახმარების წიგნი, რომელიც შესაფერისია მათთვის, ვისაც სურს გაეცნოს ამ სისტემას და მის მდიდარ შესაძლებლობებს თითქმის ნულიდან. წიგნის „Linux Internals“ წაკითხვა რეკომენდებულია მათთვის, ვისაც სურს ჩაუღრმავდეს Linux-ის ბირთვის ყველა მექანიზმს, გაიგოს მისი შიდა სტრუქტურა და ფილოსოფია. ეს ნამუშევარი არ არის შესაფერისი ოპერაციული პრინციპების ზედაპირული შესწავლისა და შაბლონების სქემების ერთი ოპერაციული სისტემიდან მეორეზე გადასატანად.

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

კომპიუტერული სამუშაო „Linux Internals“ ძალიან დეტალურია და დაყოფილია 17 თავად. პირველ ოთხ ნაწილში ავტორი საუბრობს ამ სისტემის ზოგად ცნებებზე და მისი მოქმედების პრინციპზე: ბირთვისა და გარსის სტრუქტურაზე, ძირითად ბრძანებებსა და დირექტორიაში სტრუქტურაზე, ფაილური და დისკის სისტემების ფუნქციონალურობაზე. შემდეგ მოდის მეტი ინფორმაცია ამ სისტემის დაწყების შესახებ: როგორ ჩატვირთოთ Linux ბირთვი და დაიწყოთ მომხმარებლის სივრცე. მომდევნო თავები უფრო ღრმად იკვლევენ Linux-ის სამუშაო პროცესებსა და რესურსების გამოყენებას. გარდა ამისა, ბრაიან უორდი შეეხო shell სკრიპტის პროგრამირებისა და C ენაზე მუშაობის საკითხებს. ზოგადი მასალისგან ავტორი თანდათან ღრმავდება დეტალებში, რომლებიც აინტერესებს პროგრამული უზრუნველყოფის შემქმნელებს.

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

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

ჩვენს ვებსაიტზე წიგნების შესახებ შეგიძლიათ ჩამოტვირთოთ საიტი უფასოდ რეგისტრაციის გარეშე ან წაიკითხოთ ბრაიან უორდის წიგნი „Linux Internals“ epub, fb2, txt, rtf, pdf ფორმატებში iPad, iPhone, Android და Kindle. წიგნი მოგანიჭებთ უამრავ სასიამოვნო მომენტს და რეალურ სიამოვნებას კითხვით. სრული ვერსია შეგიძლიათ შეიძინოთ ჩვენი პარტნიორისგან. ასევე, აქ ნახავთ უახლეს ამბებს ლიტერატურული სამყაროდან, შეიტყობთ თქვენი საყვარელი ავტორების ბიოგრაფიას. დამწყები მწერლებისთვის არის ცალკე განყოფილება სასარგებლო რჩევებითა და ხრიკებით, საინტერესო სტატიებით, რომლის წყალობითაც თქვენ თავად შეგიძლიათ სცადოთ ხელი ლიტერატურულ ხელნაკეთობებში.

ჩამოტვირთეთ ბრაიან უორდის წიგნი "Linux Internals" უფასოდ

ფორმატში fb2: ჩამოტვირთეთ
ფორმატში rtf: ჩამოტვირთეთ
ფორმატში epub: ჩამოტვირთეთ
ფორმატში ტექსტი:

ჩვენ ვიღებთ გათავისუფლების ჯგუფს ჩვენი ტრეკერისთვის .
გადახდა შეთანხმებით.
განაცხადები მიიღება ფოსტით [email protected], შესაძლებელია უკუკავშირის საშუალებით
გთხოვთ, მოკლედ გვითხრათ თქვენს შესახებ, რამდენი დრო შეგიძლიათ დაუთმოთ ჩვენს საიტს და თქვენს მოსალოდნელ შემოსავალს.

ბანდიკამისაშუალებას გაძლევთ ჩაწეროთ კონკრეტული ტერიტორია კომპიუტერის ეკრანზე, ან პროგრამაში, რომელიც იყენებს DirectX/OpenGL გრაფიკულ ტექნოლოგიებს. Bandicam გეხმარებათ ჩაწეროთ ძალიან შეკუმშული ვიდეო....


აღწერა:Wondershare Filmora არის მოსახერხებელი ვიდეო რედაქტორი, რომელიც შეიცავს ყველა საჭირო ინსტრუმენტს ვიდეო რედაქტირებისთვის. თქვენ შეგიძლიათ შექმნათ მაღალი ხარისხის ფილმები სათაურებით, ...


პროფესიონალი რედაქტორი- ძლიერი ტექსტური რედაქტორის პროფესიონალური ვერსია პროგრამისტებისთვის, ვებ დეველოპერებისთვის და ჩვეულებრივი მომხმარებლებისთვის სინტაქსის ხაზგასმით და უნიკოდის მხარდაჭერით. რედაქტორს აქვს...

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


სკაიპი- უფასო პროგრამა ტექსტური, ხმოვანი და ვიდეო კომუნიკაციისთვის მეგობრებთან მთელს მსოფლიოში. Skype ქსელი იყენებს P2P ტექნოლოგიას სხვა მომხმარებლებთან დასაკავშირებლად და არის მაღალი ხარისხის....


ბანდიზიპიარის სწრაფი და საიმედო პროგრამა, რომელიც მხარს უჭერს WinZip, 7-Zip, და WinRAR ფორმატებთან მუშაობას და სხვა მსგავს არქივებს. ის იყენებს ძალიან სწრაფ ალგორითმს შეკუმშვისა და დეკომპრესიისთვის....

ოპერაარის ახალი Chromium ბრაუზერი Opera Software-ისგან. Opera-მ მიატოვა კლასიკური ბრაუზერი და ახლა ავითარებს ახალ ბრაუზერს Google-ის Chromium პროექტზე დაყრდნობით.

აღწერა: პროგრამა PDF დოკუმენტებთან მუშაობისთვის, რომელიც უზრუნველყოფს ინსტრუმენტებისა და კომუნალური საშუალებების კრებულს PDF ფაილების და მათი შინაარსის შესაცვლელად და ოპტიმიზაციისთვის. მადლობა...


Snappy Driver Installer (SDI) არის პორტატული პროგრამა დრაივერების ინსტალაციისა და განახლებისთვის, რომელიც არ საჭიროებს ინტერნეტ კავშირს. ეს არის ორიგინალური SDIO პროგრამის გადამუშავება გლენ დელაჰოისგან....

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

ბრაიან უორდის წიგნი, რომელიც უკვე ბესტსელერი გახდა დასავლეთში. იგი აღწერს Linux OS-თან მუშაობის ყველა სირთულეს, სისტემის ადმინისტრირებას და ღრმა მექანიზმებს, რომლებიც უზრუნველყოფენ Linux-ის დაბალი დონის ფუნქციონირებას. სახელმძღვანელოს გვერდებზე თქვენ მიიღებთ საბაზისო ცოდნას Linux-ის ბირთვთან მუშაობისა და კომპიუტერული ქსელების გამართული მუშაობის პრინციპების შესახებ, არა მხოლოდ ღია კოდის გადაწყვეტილებების საფუძველზე. წიგნი ასევე ეხება სკრიპტის პროგრამირებისა და C ენის დამუშავების საკითხებს, მოიცავს ინფორმაციული უსაფრთხოების, ვირტუალიზაციის და სხვა შეუცვლელ საკითხებს.
ვინ უნდა წაიკითხოს წიგნი:
Linux ოპერაციული სისტემის დიზაინისადმი ინტერესი შეიძლება გამოწვეული იყოს სხვადასხვა მიზეზით. ინფორმაციული ტექნოლოგიების პროფესიონალები და Linux პროგრამული უზრუნველყოფის შემქმნელები ამ წიგნში იპოვიან პრაქტიკულად ყველაფერს, რაც უნდა იცოდნენ ოპერაციული სისტემიდან მაქსიმალური სარგებლობის მისაღებად. მკვლევარები და სტუდენტები, რომლებსაც ხშირად უწევთ სისტემის მორგება საკუთარი თავისთვის, აქ იპოვიან პრაქტიკულ ახსნას, თუ რატომ მუშაობს ყველაფერი ისე, როგორც აკეთებს. ასევე არსებობენ „გასართობი“ - მომხმარებლები, რომლებსაც მოსწონთ დროის გატარება კომპიუტერზე გართობის, მოგების ან ორივესთვის. გსურთ იცოდეთ, რატომ მუშაობს ზოგიერთი რამ და სხვები არა? გაინტერესებთ რა მოხდება, თუ რამეს შეცვლით? მაშინ შენ ხარ ერთ-ერთი "გასართობი".
აუცილებელი პირობები:
თქვენ არ გჭირდებათ პროგრამისტი იყოთ ამ წიგნის წასაკითხად. საჭიროა მხოლოდ კომპიუტერის მომხმარებლის საბაზისო უნარები: თქვენ უნდა ნავიგაცია გრაფიკულ ინტერფეისში (სისტემის ინტერფეისის ინსტალაციისა და კონფიგურაციისას), ასევე გქონდეთ გაგება ფაილების და დირექტორიების (საქაღალდეების) შესახებ. თქვენ ასევე მზად უნდა იყოთ ინტერნეტში დამატებითი დოკუმენტაციის მოსაძებნად. მთავარია თქვენი კომპიუტერის შესწავლის სურვილი და სურვილი.

სათაური: Linux Internals
ავტორი: ბრაიან უორდი
გამომცემელი: პეტრე
წელი: 2016 წელი
ფორმატი: PDF, FB2, EPUB
რუსული ენა
გვერდები: 384
ზომა: 12.9 MB

Linux Internals / Brian Ward / 2016. ჩამოტვირთეთ უფასოდ რეგისტრაციის გარეშე

2016-07-24T17:16:55+00:00 ადმინისტრატორიადმინისტრაციალიტერატურის სახელმძღვანელო Linux, ადმინისტრაცია, უსაფრთხოება, ბრაიან უორდი, წიგნები, ლიტერატურა, სახელმძღვანელოები, სისტემის ადმინისტრირება, სკრიპტები, ბრძანების მითითებები

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

[ელფოსტა დაცულია]ადმინისტრატორის LINUX გაკვეთილი

დახურვა