Վերջին Linux միջուկը: Միջուկի կառուցում Ubuntu-ում: Քայլ առ քայլ հրահանգ. Որտեղ ներբեռնել Linux միջուկը

Ես վաղուց էի ուզում հոդված գրել, թե ինչպես կառուցել Linux միջուկը: Եվ հիմա եկել է այս պահը.

Իրականում, ինչու՞ կառուցել միջուկ, եթե բաշխումն ապահովում է կատարյալ օգտագործելի միջուկ:

Օրինակ՝ նոր միջուկում տրված վերջին դրայվերներն ու լուծումները օգտագործելու համար, երբ բաշխումից հասանելի է միայն հին ճյուղը։ Նաև, օրինակ, այն հարմարեցնել ձեր սարքավորման համար և մի փոքր արագացնել աշխատանքը։ Ես ինձ համար 3.11-ը պատրաստեցի, քանի որ այն պարունակում է ATI վիդեո քարտերի հետ աշխատանքը լավացնող patches-ի հավաքածու, և ես դրանցից մեկի սեփականատերն եմ։

Բազմաթիվ հոդվածներ են գրվել միջուկը հավաքելու մասին, ուստի ես չեմ մանրամասնի, այլ միայն կգրեմ, թե ինչպես եմ միջուկը հավաքում ինձ համար։

Առաջին հերթին, դուք պետք է ստանաք արխիվը Linux միջուկի ցանկալի տարբերակի սկզբնական կոդերով:

https://www.kernel.org/ կայքում կարող եք ներբեռնել ցանկալի տարբերակը։ Ես նկարագրելու եմ կառուցման և տեղադրման գործընթացը՝ օգտագործելով 3.11.0 տարբերակը որպես օրինակ:

Ցանկալի է միջուկը կառուցել հատուկ այդ նպատակով ստեղծված գրացուցակում, որը նախատեսված է ոչ արտոնյալ օգտվողի ներքո: Ես հավաքում եմ թղթապանակում ~src/linux/linux-տարբերակ

Կազմելուց առաջ դուք պետք է համոզվեք, որ կառուցման համար անհրաժեշտ բոլոր կախվածությունները տեղադրված են և մոտ 3 ԳԲ ազատ տարածք կոմպիլյատորների գրացուցակում:

Ահա փաթեթների ցանկը, որոնք պետք է հաջողությամբ կազմվեն (Debian/Ubuntu-ի համար).

gcc, դարձնել- Անհրաժեշտ հավաքման և կապող գործիքներ. Ցանկալի է հասանելի gcc-ի վերջին տարբերակներից մեկը:

libncurses5-dev- անհրաժեշտ է մենյուի կազմաձևման համար

ccache- թույլ է տալիս արագացնել վերահավաքումը

Եթե ​​ցանկանում եք օգտագործել գրաֆիկական միջուկի կոնֆիգուրատորը, ապա պետք է նաև տեղադրեք փաթեթներ QT մշակման համար, օրինակ. libqt4-dev, g++, pkg-config.

Լզոպ, lz4c- եթե հետաքրքրված եք միջուկի այլընտրանքային և initramfs սեղմման մեխանիզմներով:

Ենթադրվում է, որ ընթացիկ գրացուցակը չփաթեթավորված միջուկի գրացուցակն է:

Կառուցման միջավայրը պատրաստելուց հետո միջուկի կոնֆիգուրացիան պետք է ստեղծվի: Ընթացիկ կոնֆիգուրացիան կարելի է դիտել այսպես.

Cat /boot/config-`uname -r`

Zcat /proc/config.gz

Սկզբունքորեն, դուք կարող եք օգտագործել ընթացիկ կազմաձևը՝ այն խմբագրելով կազմաձևման ծրագրերից մեկում: Պատճենեք այն գրացուցակում, որտեղ միջուկով արխիվը բացված է և վերանվանեք այն որպես .config

cp /boot/config-`uname -r` .config

Ինձ դուր է գալիս xconfig-ը, դա ամենահարմարն եմ համարում:

Կատարեք xconfig

Նախկինում պատճենվածը ինքնաբերաբար բեռնվում է .config, որը ծառայում է որպես կոնֆիգուրացիայի մեր հիմքը: Միջուկը կարգավորելու համար շատ խորհուրդներ կան, ես միայն խորհուրդ եմ տալիս ընտրել պրոցեսորի ձեր տարբերակը, անջատել ապարատային դրայվերները, որոնք չկան, կարող եք նաև ընտրել լրացուցիչ մոդուլներ, ինչպիսիք են zram-ը և սեղմման ալգորիթմը, ես որպես lz4 ընտրեցի: ամենաարագ.

Կազմաձևը պահպանելուց հետո կարող եք սկսել կոմպիլյացիան:

Եթե ​​դուք չափազանց ծույլ եք միջուկը ձեռքով կարգավորելու համար, ապա հնարավոր է ավտոմատ կարգավորել՝ օգտագործելով բեռնված մոդուլների մասին տեղեկությունները. make localmodconfig:

Այժմ երկրորդ հիմնական քայլը միջուկի և մոդուլների կազմումն է։ Կատարվում է մեկ հրամանով.

Դարձնել -j4 CC="ccache gcc" bzImage մոդուլներ

Որտեղ -j4համապատասխանում է ձեր կոնֆիգուրացիայի պրոցեսորային միջուկների քանակին:

Կազմումը երկար չի տևի, եթե սարքավորումը բավականաչափ հզոր է, և բաշխման միջուկի կազմաձևը չի օգտագործվում: AMD Phenom P820 պրոցեսորով և վեց գիգաբայթ օպերատիվ հիշողությամբ նոութբուքիս վրա կոմպիլյացիան տևում է մոտ կես ժամ։

Վերջին քայլը միջուկի և մոդուլների տեղադրումն է:

Sudo sed -i.bak "s/MODULES=most/MODULES=dep/" /etc/initramfs-tools/initramfs.conf

Սա անհրաժեշտ է initrd ֆայլի չափը նվազեցնելու համար՝ ներառելով միայն բեռնման համար անհրաժեշտ մոդուլները:

Տեղադրումը կարող է իրականացվել նաև մեկ հրամանով.

sudo make modules_install install

Կամ ամեն ինչ ձեռքով տեղադրեք: Մոդուլներ Առաջին

sudo make modules_install

Հետո միջուկը

Տարբերակ=`awk «NR<=3 {printf "%s.",$NF}" < Makefile | sed "s/\.$//"`

այսպես մենք ստանում ենք միջուկի տարբերակը Makefile-ից

sudo cp arch/`uname -m`/boot/bzImage /boot/vmlinuz-$version sudo cp .config /boot/config-$version sudo cp System.map /boot/System.map-$version sudo update-initramfs - c -k $version sudo update-grub

Վերջապես, ես կցում եմ սցենար՝ գործընթացը ավտոմատացնելու համար:

Կազմաձևման ժամանակ նա կարող է մի քանի հարց տալ, որոնց լռելյայն պատասխանելու համար պարզապես անհրաժեշտ է սեղմել Enter:

Ուրախ հավաքում.

Ինչու՞ ինչ-որ մեկը ցանկանում է նոր միջուկ կազմել: Հաճախ դա անհրաժեշտ չէ, քանի որ Debian-ով առաքված լռելյայն միջուկը կարգավորում է կոնֆիգուրացիաների մեծ մասը: Բացի այդ, Debian-ը հաճախ առաջարկում է մի քանի այլընտրանքային միջուկներ: Այսպիսով, դուք կարող եք նախ ստուգել, ​​թե արդյոք կա միջուկի պատկերի այլընտրանքային փաթեթ, որն ավելի լավ է համապատասխանում ձեր սարքաշարին: Այնուամենայնիվ, կարող է օգտակար լինել նոր միջուկ կազմելը, որպեսզի.

Մի վախեցեք փորձել միջուկը կազմել: Դա զվարճալի է և շահավետ:

Միջուկը Debian եղանակով կազմելու համար ձեզ անհրաժեշտ են որոշ փաթեթներ՝ , և մի քանի այլ փաթեթներ, որոնք հավանաբար արդեն տեղադրված են (տե՛ս ամբողջական ցանկը):

Այս մեթոդը կդարձնի ձեր միջուկի աղբյուրի .deb, և եթե դուք ունեք ոչ ստանդարտ մոդուլներ, կստեղծեք դրանցից նաև համաժամանակացված կախված .deb: Դա միջուկի պատկերները կառավարելու ավելի լավ միջոց է. կպահի միջուկը, System.map-ը և build-ի ակտիվ կազմաձևման ֆայլի գրանցամատյանը:

Նկատի ունեցեք, որ դուք չեք ունենձեր միջուկը «Debian ճանապարհով» կազմելու համար; բայց մենք գտնում ենք, որ փաթեթավորման համակարգի օգտագործումը ձեր միջուկը կառավարելու համար իրականում ավելի անվտանգ և հեշտ է: Փաստորեն, դուք կարող եք ստանալ ձեր միջուկի աղբյուրները հենց Linus-ից, բայց դեռևս օգտագործել կոմպիլյացիայի մեթոդը:

Նկատի ունեցեք, որ դուք կգտնեք ամբողջական փաստաթղթեր օգտագործման վերաբերյալ ստորև: Այս բաժինը պարզապես պարունակում է կարճ ձեռնարկ:

Այսուհետ մենք կենթադրենք, որ դուք ազատորեն տիրապետում եք ձեր մեքենային և կհանենք ձեր միջուկի աղբյուրը ձեր հիմնական գրացուցակի որևէ տեղ: Մենք նաև կենթադրենք, որ ձեր միջուկի տարբերակը 3.16 է: Համոզվեք, որ դուք գտնվում եք գրացուցակում, որտեղ ցանկանում եք բացել միջուկի աղբյուրները, հանել դրանք և փոխել այն գրացուցակը, որը կստեղծվի:

Այժմ դուք կարող եք կարգավորել ձեր միջուկը: Գործարկել, եթե X11-ը տեղադրված է, կազմաձևված և գործարկվում է; գործարկել այլ կերպ (դուք պետք է տեղադրեք): Ժամանակ տրամադրեք առցանց օգնությունը կարդալու և ուշադիր ընտրելու համար: Կասկածների դեպքում սովորաբար ավելի լավ է ներառել սարքի դրայվերը (ծրագրակազմ, որը կառավարում է ապարատային ծայրամասային սարքերը, ինչպիսիք են Ethernet քարտերը, SCSI կարգավորիչները և այլն), որոնցում վստահ չեք: Զգույշ եղեք. մյուս տարբերակները, որոնք կապված չեն կոնկրետ սարքաշարի հետ, պետք է թողնել լռելյայն արժեքով, եթե դրանք չեք հասկանում: Չմոռանաք ընտրել «Kernel module loader» «Loadable module support»-ում (այն լռելյայն ընտրված չէ): Եթե ​​ներառված չէ, ձեր Debian-ի տեղադրումը խնդիրներ կունենա:

Մաքրել աղբյուրի ծառը և վերականգնել պարամետրերը: Դա անելու համար արա:

Այժմ կազմեք միջուկը՝ . «1.0» տարբերակի համարը կարող է փոխվել ըստ ցանկության. սա ընդամենը տարբերակի համար է, որը դուք կօգտագործեք ձեր միջուկի կառուցմանը հետևելու համար: Նմանապես, դուք կարող եք տեղադրել ցանկացած բառ, որը ձեզ դուր է գալիս «սովորույթի» փոխարեն (օրինակ՝ հյուրընկալողի անունը): Միջուկի հավաքումը կարող է բավականին երկար տևել՝ կախված ձեր մեքենայի հզորությունից:

Կազմումն ավարտվելուց հետո դուք կարող եք տեղադրել ձեր հատուկ միջուկը, ինչպես ցանկացած փաթեթ: Որպես արմատ, արեք: Մասը կամընտիր ենթաճարտարապետություն է՝ կախված նրանից, թե միջուկի ինչ տարբերակներ եք սահմանել: կտեղադրի միջուկը մի քանի այլ գեղեցիկ օժանդակ ֆայլերի հետ միասին: Օրինակ, կամքը ճիշտ կտեղադրվի (օգտակար է միջուկի խնդիրների վրիպազերծման համար) և կտեղադրվի՝ պարունակելով ձեր ընթացիկ կազմաձևման հավաքածուն: Ձեր միջուկի նոր փաթեթը նաև բավականաչափ խելացի է, որպեսզի ավտոմատ կերպով թարմացվի ձեր boot loader-ը՝ նոր միջուկն օգտագործելու համար: Եթե ​​դուք ստեղծել եք մոդուլների փաթեթ, ապա ձեզ հարկավոր է նաև տեղադրել այդ փաթեթը:

Համակարգը վերագործարկելու ժամանակն է. ուշադիր կարդացեք ցանկացած նախազգուշացում, որ վերը նշված քայլը կարող է առաջացնել, ապա .

Debian միջուկների և միջուկի կազմման մասին լրացուցիչ տեղեկությունների համար տե՛ս Debian Linux միջուկի ձեռնարկը: Լրացուցիչ տեղեկությունների համար կարդացեք նուրբ փաստաթղթերը.

Եթե ​​հիշում եք, ոչ վաղ անցյալում մենք սովորեցինք, թե ինչպես կառուցել FreeBSD միջուկը աղբյուրից: Հարցն այն է, ինչո՞ւ չսովորել նույնն անել Linux միջուկի հետ: Linux միջուկը սկզբնաղբյուրից կառուցելու պատճառները, ընդհանուր առմամբ, նույնն են՝ ստանալ միջուկի վերջին տարբերակը, շտապ կիրառել անվտանգության patches, օպտիմիզացնել կոնկրետ առաջադրանքների և հատուկ սարքաշարի համար, ինչպես նաև միջուկի մշակմանը մասնակցելու ցանկությունը, նույնիսկ ՔԱ-ի դերում։

Կարևոր էԱյս գրառման հրահանգներին հետևելը կարող է հանգեցնել ձեր տվյալների կորստի: Կատարեք կրկնօրինակներ և հիշեք, որ ամեն ինչ անում եք ձեր վտանգի և ռիսկի տակ: Ստորև նկարագրված ամեն ինչ փորձարկվել է Ubuntu 14.04 LTS-ի վրա: Բայց Ubuntu-ի այլ տարբերակների, ինչպես նաև Linux-ի այլ բաշխումների դեպքում տարբերությունները պետք է լինեն նվազագույն:

Bootloader-ի կարգավորում

Խմբագրել /etc/default/grub այսպես.

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=10
#GRUB_HIDDEN_TIMEOUT_QUIET=ճշմարիտ
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i-s2>/dev/null ||echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="հանգիստ շաղ տալ"
GRUB_CMDLINE_LINUX=""

Խմբագրելուց հետո ասում ենք.

sudo update-grub

Արդյունքում, մինչ համակարգի բեռնումը, ձեզ կառաջարկվի 10 վայրկյան ընտրել միջուկը, որով ցանկանում եք բեռնել: Շատ հարմար է, եթե դուք խառնում եք ձեր միջուկի կոնֆիգուրացիան և ցանկանում եք բեռնել նախորդ տարբերակով:

Տեղադրեք կախվածությունները

Մեզ անհրաժեշտ կլինեն առնվազն հետևյալ փաթեթները.

sudoapt-get installgitgccmakebc fakeroot dpkg-dev\
libncurses5-dev libssl-dev

Շատ համակարգերում դրանք բոլորը, սակայն, արդեն ներկա կլինեն:

Ստանալով աղբյուրը

wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.4.tar.xz
tar-xz-xvf linux-4.6.4.tar.xz
cd linux-4.6.4

Կամ, եթե ցանկանում եք ամենավերջինը, կարող եք աղբյուրը վերցնել անմիջապես Git-ից.

# Հայելի՝ https://github.com/torvalds/linux
git clone'git://git.kernel.org/pub/scm/linux/kernel/git/'\
«torvalds/linux.git»
cd linux

Դատելով նրանից, որ ես չկարողացա գտնել v4.6.4 թեգը Git-ում, Linux միջուկի թողարկումները կատարվում են բացառապես սեղմված tar արխիվների տեսքով։

Եթե, վանիլային միջուկի փոխարեն, ցանկանում եք միջուկ կառուցել Canonical-ի կարկատաններով.

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-trusty.git
cd ubuntu-trusty
git tag|պակաս
git checkout Ubuntu-lts-4.4.0-31.50_14.04.1

Իմ սեփական փորձից ելնելով, եթե դուք օգտագործում եք Ubuntu, կարող եք ապահով օգտագործել վանիլի միջուկը: Դժվար թե դրա հետ կապված խնդիրներ ունենաք։

Նշում:Հետաքրքիր է, որ գոյություն ունեցող համեմատաբար հայտնի Linux բաշխումներից միայն Gentoo-ն, Slackware-ը և Arch Linux-ը կարծես օգտագործում են միջուկ՝ առանց իրենց սեփական patches-ի:

Ինչևէ, հիմա դուք ունեք սկզբնաղբյուրը:

Կազմել և տեղադրել միջուկը

Ընտրեք այն տարբերակները, որոնցով կկառուցվի միջուկը.

Անհրաժեշտության դեպքում փոխեք կարգավորումները, սեղմեք Save, ապա Exit: Արդյունքում կստեղծվի ֆայլ, որը պարունակում է մեր ընտրած պարամետրերը:

ժամը թարմացնելմիջուկը (միևնույն է, դուք արդեն օգտագործում եք ինչ-որ միջուկ): Հարմար է վերցնել ընթացիկ միջուկի կազմաձևը և նոր տարբերակները դնել իրենց լռելյայն արժեքներին.

zcat/proc/config.gz > ./.config
կատարել olddefconfig

Ի վերջո, մենք հավաքում ենք.

make-j4 bindeb-pkg LOCALVERSION=-մաքսային

Միջուկը հավաքվում է բավականին երկար ժամանակ։ Իմ նոութբուքի վրա հավաքը տևեց 1 ժամ 15 րոպե: Այնուամենայնիվ, այս ժամանակից մասինՄնացածը ծախսվում է վրիպազերծման նշաններով հսկա միջուկի փաթեթի կառուցման վրա:

Linux միջուկի ձեռքով կառուցում և կազմաձևում

Այս փաթեթի հավաքումը կարող է անջատվել՝ մեկնաբանելով կազմաձևում CONFIG_DEBUG_INFO պարամետրը: Պարզապես տեղյակ եղեք, որ այս փաթեթը պահանջվում է SystemTap-ի և այլ օգտակար գործիքների կողմից:

Բացի բուն միջուկից, կարող եք նաև փաստաթղթեր հավաքել.

# կա նաև «make pdfdocs» և այլն, տե՛ս «make help»:
պատրաստել html փաստաթղթեր
chromium-browser Documentation/DocBook/index.html

Հավաքման ավարտից հետո մասնաճյուղգրացուցակում մենք տեսնում ենք նման բան.

linux-firmware-image-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-headers-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-image-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-image-4.4.13-custom-dbg_4.4.13-custom-1_amd64.deb
linux-libc-dev_4.4.13-custom-1_amd64.deb

Մենք դնում ենք բոլոր deb-փաթեթները, բացառությամբ միջուկի dbg-տարբերակի՝ սովորականներով և վերագործարկում ենք։ Վերագործարկվելուց հետո մենք նայում ենք հրամանի ելքին: Մենք համոզված ենք, որ մենք իսկապես գործարկվել ենք նոր միջուկով: Եթե ​​նոր միջուկի հետ ինչ-որ բան այն չէ, ապա bootloader-ում մենք պարզապես ընտրում ենք այն մեկը, որով համակարգը նախկինում բեռնվել է: Հին միջուկով բեռնելուց հետո մենք արագ հեռացնում ենք նոր միջուկի փաթեթները, իսկ voila- համակարգը վերադարձավ իր նախկին վիճակին:

Բացի այդ, նոր միջուկը բեռնելուց հետո կարող եք դրա վրա թեստեր կատարել.

sudomake kselftest
sudomake kselftest-մաքուր

Շնորհավորում ենք, դուք հիմա գիտեք, թե ինչպես կառուցել Linux միջուկը:

Եզրակացություն

Նյութեր Linux միջուկի ներքին մասերի վրա.

  • KernelNewbies.org, Linux միջուկի նորեկների համար նախատեսված կայք՝ իր սեփական փոստային ցուցակով, IRC ալիքով, ֆորումով, վիքիով և այլն;
  • LKML.org՝ բրաուզերի միջոցով Linux միջուկի մշակողների փոստային ցուցակը հարմարավետ կարդալու համար: Զգույշ եղեք, դա հաճախ փչացնում է տառերի ֆորմատավորումը։ Այս առումով, marc.info-ում փոստային ցուցակի արխիվը շատ ավելի լավն է.
  • Linux Cross Reference, բրաուզերի միջոցով Linux միջուկի կոդի հարմարավետ ընթերցման կայք;
  • Linux Kernel Development, 3rd Edition գիրքը Linux միջուկի ամենաթարմ գիրքն է անգլերենով (2010 թ. միջուկ 2.6.x), կա թարգմանություն ռուսերեն;
  • Linux-Treiber entwickeln, 4th Edition գիրքը ավելի թարմ է (2015, kernel 4.x), բայց գրված է գերմաներեն և չունի թարգմանություն.
  • Ալեքսանդր Կուլեշովի անվճար Linux Insides գիրքը, որը կոչվում է @0xAX, ամենահասանելին ու արդիականն է, բայց դեռ գրման փուլում է.
  • Երբեմն դուք կարող եք ինչ-որ օգտակար բան գտնել Linux Kernel HTML Փաստաթղթում, Linux միջուկի աղբյուրների պաշտոնական փաստաթղթերում;
  • Օրինակներ գրքի համար Linux Device Drivers, 3rd Edition, որոնք փորձում են թարմացնել, գումարած աղբյուրներ 4-րդ հրատարակության համար, որը ներկայումս գրվում է.

Արդյո՞ք միջուկը կառուցում եք աղբյուրից, և եթե այո, ապա ինչու: 🙂

Հավելում:Ձեզ կարող է հետաքրքրել նաև «Սկանդալային ճշմարտությունը Linux-ում միջուկային կոդի վրիպազերծման մասին» հոդվածը:

Պիտակներ՝ Linux, Ring0.

Linux միջուկի կազմում


Շատերը դա համարում են անիմաստ ժամանակի վատնում, որպեսզի իրեն դրսևորեն որպես խելացի և առաջադեմ «Linuxoid»։ Իրականում միջուկը կազմելը շատ կարևոր բան է։ Ենթադրենք, դուք գնել եք նոր նոութբուք, որը չունի աշխատող վեբ-տեսախցիկ: Ձեր գործողությունները. Դուք նայում եք որոնման համակարգին և լուծում եք փնտրում այս հարցի վերաբերյալ: Շատ հաճախ կարող է պարզվել, որ ձեր վեբ-տեսախցիկը աշխատում է միջուկի ավելի նոր տարբերակով, քան դուք ունեք: Եթե ​​չգիտեք, թե ինչ տարբերակ ունեք, ապա տերմինալում մուտքագրեք uname -r, արդյունքում կստանաք միջուկի տարբերակը (օրինակ՝ linux-2.6.31-10)։ Նաև միջուկի կոմպիլյացիան լայնորեն օգտագործվում է արդյունավետությունը բարձրացնելու համար. փաստն այն է, որ միջուկի բաշխումները լռելյայնորեն կազմվում են «բոլորի համար», դրա պատճառով այն ներառում է հսկայական թվով դրայվերներ, որոնք ձեզ կարող են անհրաժեշտ չլինել: Այսպիսով, եթե լավ գիտեք ձեր սարքաշարը, կարող եք անջատել անհարկի դրայվերները կազմաձևման փուլում: Հնարավոր է նաև միացնել 4 գիգաբայթից ավելի RAM-ի աջակցությունը՝ առանց համակարգի բիթային խորությունը փոխելու:

Ինչպե՞ս կառուցել Linux միջուկ: Linux միջուկի կառուցում

Այսպիսով, եթե դեռ պետք է ունենալ ձեր սեփական միջուկը, եկեք սկսենք կազմել:


Առաջին բանը, որ պետք է անել, ստանալ սկզբնական կոդը ցանկալի միջուկի տարբերակի համար: Սովորաբար դուք պետք է ստանաք նորագույն կայուն տարբերակը: Միջուկի բոլոր պաշտոնական տարբերակները հասանելի են kernel.org կայքում:

Եթե ​​դուք արդեն ունեք տեղադրված X սերվեր (տնային համակարգիչ), ապա կարող եք գնալ կայք ձեր սիրելի բրաուզերում և ներբեռնել ցանկալի տարբերակը tar.gz արխիվում (սեղմված gzip): Եթե ​​դուք աշխատում եք վահանակում (օրինակ, դեռ չեք տեղադրել X սերվերը կամ կարգավորում եք սերվերը), կարող եք օգտագործել տեքստային զննարկիչ (օրինակ՝ elinks):

Կարող եք նաև օգտագործել ստանդարտ wget ներբեռնման մենեջեր.


tar -zxvf path_to_archive

Միջուկի կոնֆիգուրացիա:

Կազմում.
կատարել && կատարել տեղադրել
Սպասում ենք 20 րոպեից մինչև մի քանի ժամ (կախված համակարգչի հզորությունից): Միջուկը տեղադրված է: Որպեսզի այն հայտնվի grub(2) ցուցակում, մուտքագրեք (որպես արմատ)
թարմացում-grub


Հոդվածների արխիվ.
2017 թվականի մայիս
2017 թվականի մարտ
2016 թվականի ապրիլ
2016 թվականի մարտ
Հոկտեմբեր 2013
սեպտեմբեր 2013
մայիս, 2013 թ
2013 թվականի մարտ
նոյեմբեր 2012
հուլիսի 2012թ
հունիսի 2012թ
2012 թվականի ապրիլ
2012 թվականի մարտ
2012 թվականի փետրվար
2011 թվականի ապրիլ
2011 թվականի մարտ
2011 թվականի փետրվար
2011 թվականի հունվար
Դեկտեմբեր 2010 թ
նոյեմբեր 2010 թ
Հոկտեմբեր 2010
սեպտեմբեր 2010 թ
օգոստոսի 2010թ
հուլիսի 2010թ
հունիսի 2010թ
մայիս 2010 թ
2010 թվականի ապրիլ
մարտ 2010 թ

Պատահական:

Stellarium վիրտուալ պլանետարիում. նոր հնարավորությունների ակնարկ

BOINC. հաշվարկներ գիտության համար

Գամբաս. Հիմնական զարգացում Linux-ում

SSH 2.0 Սերիական դիագրամներ

Linuxnow.ru. պլաններ ապագայի համար

Հանկարծ սպառե՞լ է սկավառակի ազատ տարածքը: Թերևս խնդիրը տեղեկամատյանների մեջ է։

Գործընկերներ՝ բոլորը
Linux բոլորի համար

Մեր պաստառները.


Տեղադրել դրոշակ

Linux միջուկի կազմաձևում

Աղբյուրի փաթեթների ստուգում

Միջուկը վերակազմավորելու համար անհրաժեշտ են դրա աղբյուրները:

Բլոգ համակարգի կառավարման մասին: Հոդվածներ Linux-ի, Windows-ի, NetApp-ի պահպանման և վիրտուալացման մասին։

Red Hat-ը միջուկի աղբյուրները տեղադրում է մեկ rpm փաթեթի մեջ, բայց լռելյայն տեղադրված չէ: Այս փաթեթի անվանումը.

kernel-source-2.4.2-2.1386.rpm

Բացի սկզբնական կոդից, միջուկը վերակազմավորելու համար անհրաժեշտ է կոմպիլյատոր, որը բաղկացած է երկու բաղադրիչից.

կատարել օգտակար;

C լեզվի կոմպիլյատորն ինքնին gcc կամ egcs է:

Ընթացիկ միջուկի կրկնօրինակի ստեղծումն իրականացվում է երեք փուլով.

1. Միջուկի աղբյուրների կրկնօրինակի ստեղծում, որը թույլ է տալիս վերականգնել այն, եթե կոնֆիգուրացիան վնասված է:

2. Ինքը՝ միջուկի կրկնօրինակի ստեղծումը՝ որպես համակարգի գործարկման հայտնի աշխատանքային միջոց:

3. Օպերացիոն համակարգի բեռնիչի համար նոր մուտքի ստեղծում, որը կարող է օգտագործվել միջուկի կրկնօրինակից բեռնաթափելու համար:

Աղբյուրի կրկնօրինակի ստեղծումը կատարվում է միջուկի աղբյուրի գրացուցակը սկավառակի վրա պատճենելու միջոցով: Վերականգնումը կատարվում է հակառակ ուղղությամբ պատճենահանման միջոցով։

Երբ միջուկը վերակոմպիլացվում է, հին միջուկը գրվում է .old ընդլայնմամբ ֆայլում: Այնուամենայնիվ, միջուկի այս պատճենը դեռ չի կարող օգտագործվել համակարգը բեռնելու համար: Սա բացատրում է վերը նշված գործողությունները կատարելու անհրաժեշտությունը:

LILO-ի տիպի օպերացիոն համակարգի բեռնիչը, որը սովորաբար օգտագործվում է Linux-ը բեռնելու համար, կազմաձևվում է՝ արմատային ֆայլային համակարգում միջուկի ֆայլի հղումը սահմանելով:

Միջուկը կրկնօրինակելուց հետո դուք պետք է ավելացնեք ևս մեկ մուտքագրում /etc/lilo.conf ֆայլում, որը թույլ կտա Ձեզ գործարկել Linux-ը հին միջուկով.

բաց ֆայլ /etc/lilo. conf տեքստային խմբագրիչում

ստեղծել ամբողջ բաժանման պատճենը;

կրկնօրինակում փոխել երկու դիրք.

փոխարինել միջուկի ֆայլի անունը դրա կրկնօրինակի անունով (ընդլայնման հետ միասին);

փոխարինել բաժանման պիտակը Linux-ի նման մի բանով: օրիգինալ (օրիգինալ Linux) կամ linux-նախորդ (հին Linux):

initrd-ով սկսվող տողերը պետք է փոխարինվեն համապատասխան հետադարձ հետքերով, օրինակ՝ initrd-2 .4.2-2: ծագում. img;

փոփոխություններ գրել /etc/lilo-ում: կոնֆ.

մուտքագրեք /sbin/lilo հրամանը՝ բեռնիչում նոր մուտքագրելու համար: Երբ գործարկում եք lilo հրամանը, էկրանին ցուցադրվում են օպերացիոն համակարգի բեռնիչ մուտքագրված պատկերների պիտակները:

Հաջորդ անգամ, երբ համակարգը կվերագործարկվի, նոր միջուկի ID-ն կցուցադրվի LILO boot loader-ի գործիքի հուշում:

Նոր միջուկի կարգավորում

Կազմաձևումը որոշում է, թե որ հատկանիշները ներառել միջուկում, որոնք չներառել և այլն: Դուք կարող եք ընտրել հին միջուկը կարգավորելու և նորը տեղադրելու/կարգավորելու միջև: Օրինակ, օգտագործելով Red Hat Linux 7.1-ը, կարող եք վերակազմավորել գոյություն ունեցող 2.4.2 միջուկը նոր տարբերակներով: Կարող եք նաև ներբեռնել և տեղադրել նոր 2.4.4 միջուկը։ Չնայած կազմաձևման մանրամասները տարբեր են երկու դեպքերում, օգտագործվող կոմունալ ծառայությունները և կազմաձևման մեթոդաբանությունը նույնն են:

Linux-ն ունի երեք առանձին կոնֆիգուրացիայի կոմունալ ծառայություններ, որոնցից յուրաքանչյուրն ունի իր առանձնահատկությունները:

Հրամանի տող ինտերֆեյսով կոմունալ ծրագիր: Օգտատերը հետևողականորեն պատասխանում է այն հատկանիշների մասին հարցերին, որոնք պետք է ներառվեն միջուկում: Այս օգտակար ծրագիրը օգտակար է նրանց համար, ովքեր գիտեն, թե ինչպես աշխատել միջուկի հետ, և նրանց համար, ովքեր ունեն այս օգտակար ծրագրի կազմաձևման սկրիպտներ:

Կոմունալ տեքստային ռեժիմի ընտրացանկով: Այս օգտակար ծրագրի բազմամակարդակ ընտրացանկը թույլ է տալիս սահմանել և նորից տեղադրել միջուկի պարամետրերը ցանկացած կարգով:

GUI կոմունալ. Սա ամենագրավիչ օգտակար ծրագիրն է, բայց այն աշխատում է միայն գրաֆիկական X Window System-ի վրա:

Թվարկված օգտակար ծրագրերը ստեղծում են նույն կազմաձևման ֆայլը, որն օգտագործվում է make utility-ի կողմից ամբողջական կամ մասնակի միջուկներ կազմելիս:

Միջուկի ընտրանքներ

Ցանկացած կազմաձևման ծրագրի կարգավորումները վերանայելիս (հրամանի տող, տեքստի վրա հիմնված կամ GUI), դուք պետք է հստակ իմանաք, թե ինչ ազդեցություն ունեն այս կարգավորումները միջուկի աշխատանքի վրա:

Պարամետրերի նույնականացումը յուրաքանչյուր ծրագրում տարբեր է, բայց երեքում էլ ներկայացված է դրանց նույն հավաքածուն։ Պարամետրերը բաժանված են երկու հիմնական խմբի.

մոդուլային;

ոչ մոդուլային.

Եթե ​​այս պարամետրին համապատասխան ծրագրի բլոկը բեռնված չէ որպես միջուկի մոդուլ, դա կարող է լինել երկու բաներից մեկը.

[*] միջուկի անբաժանելի մասը;

Միջուկի անբաժանելի մասը։

Քառակուսի փակագծերի նիշերը (փակագծերի հետ միասին) համապատասխանում են կազմաձևման ծրագրերի ընտրացանկի ընտրանքների պիտակներին (բացառությամբ հրամանի տողի օգտակար ծրագրի):

Մոդուլային պարամետրերի համար կան կարգավորելու երեք տարբերակ (ըստ դրանց ներկայացման կոնֆիգուրացիայի կոմունալ ծառայությունների ցանկում).

<>ներառված չէ միջուկում և չի ստեղծվում որպես մոդուլ, որը կարող է բեռնվել ավելի ուշ.

<*>ներառված է միջուկում, ուստի կարիք չկա այն ավելի ուշ բեռնել որպես մոդուլ.

<М>Ներառված է որպես մոդուլ, բայց ոչ որպես միջուկի մաս: Բլոկը կարող է տեղադրվել կամ հեռացվել միջուկից ցանկացած ժամանակ:

Երբեմն պարամետրի արժեքը չի կարող փոխվել, քանի դեռ մեկ այլ պարամետր չի սահմանվել: Օրինակ, դուք կարող եք տեղադրել աջակցություն կոնկրետ SCSI սարքի համար միայն այն բանից հետո, երբ միացնեք այդ սարքերի աջակցությունն ընդհանուր առմամբ:

Երբ համակարգում տեղադրվեն անհրաժեշտ գործիքները (make utility և gcc compiler) և սկզբնական տեքստերը, կարող եք գործարկել կազմաձևման կոմունալ ծառայություններից մեկը և սկսել միջուկի կազմաձևումը:

GUI կոնֆիգուրատոր

Կազմաձևման կոմունալ ծրագիրը գրաֆիկական ինտերֆեյսով գործարկելը կատարվում է հետևյալ հաջորդականությամբ.

Գործարկեք X Windows համակարգը (ցանկացած գրաֆիկական միջավայրով և աշխատասեղանով):

Բացեք տերմինալի էմուլյատորի պատուհանը (հրամանի տողի պատուհան):

Ինչպես նախորդ կոմունալ ծրագրի մեկնարկի դեպքում, էկրանին կհայտնվեն մի քանի հաղորդագրություններ կոմունալ ծրագրի կազմման մասին, և մի քանի րոպե անց կբացվի դրա հիմնական պատուհանը:

Բրինձ. 8. Միջուկի կոնֆիգուրացիայի օգտակար ծրագիր գրաֆիկական ինտերֆեյսով. մենյու-կոճակներ պարամետրերի արժեքները սահմանելու համար

Գրաֆիկական ծրագիրը շատ չի տարբերվում menuconf ig utility-ից: Այստեղ տարբերակները նույնպես դասակարգված են. Կոնկրետ կատեգորիայի վրա կտտացնելով երկխոսության տուփ է բացվում ընտրանքների ցանկով, որոնցից յուրաքանչյուրը կարող է սահմանվել մի արժեքով, որը որոշում է՝ արդյոք համապատասխան գործիքը պետք է օգտագործվի որպես միջուկի մաս, որպես բեռնվող մոդուլ, թե՞ ընդհանրապես չօգտագործվի:

Նման երկխոսության տուփը ներկայացված է Նկ.

Բրինձ. 9. Այսպիսի երկխոսության տուփերը սահմանում են միջուկի կազմաձևման տարբերակները

Red Hat Linux-ի 2.4.2 միջուկը լռելյայն աջակցում է սիմետրիկ բազմապրոցեսորային ճարտարապետությանը: Դուք պետք է համապատասխան ընտրանքը դնեք n-ի վրա, եթե ձեր համակարգիչը ունի միայն մեկ պրոցեսոր:

Յուրաքանչյուր տարբերակի աջ կողմում կա Օգնության կոճակ:

Գրաֆիկական կոնֆիգուրացիայի օգտակար ծրագրի մեծ առավելությունն այն է, որ մենյուն ցուցադրում է կախվածությունը տարբեր տարբերակների միջև: Օրինակ, Block Devices բաժնում դուք չեք կարող տեղադրել միջուկում ներկառուցված RAID աջակցություն, քանի դեռ միացված չէ Multiple Device Driver Support տարբերակը:

Եթե ​​menuconfig կոմունալում պարամետրերի կախվածությունը միմյանցից ցուցադրվում է մենյուում պարամետրերի անունների ներդիրով, ապա գրաֆիկական կոմունալում պարզապես անհնար է պարամետրերի անթույլատրելի համակցություններ սահմանել: Գրաֆիկական ծրագրի հետ աշխատելը օգնում է հասկանալ տարբեր մոդուլների միջև կախվածությունը:

Գրաֆիկական օգտակար ծրագրի հիմնական մենյուի վերջում կան տեքստային ռեժիմի ընտրացանկի համապատասխան օգտակար հրամաններին նման հրամաններ:

Պահպանել և դուրս գալ (Ելք խնայելով): Միջուկի կազմաձևման ֆայլի ստեղծում և կոմունալ ծրագրի անջատում:

Դուրս գալ առանց խնայելու: Կոմունալ ծրագրի անջատում առանց միջուկի կազմաձևման ֆայլ ստեղծելու:

Առանց միջուկի կազմաձևման ֆայլ ստեղծելու՝ օգտագործելով թվարկված կոմունալ ծառայություններից մեկը, միջուկի վերակոմպիլյացիա հնարավոր չէ:

Բեռնել կոնֆիգուրացիան ֆայլից: Բեռնվում է ավելի վաղ ստեղծված կազմաձևման ֆայլը:

Պահպանման կոնֆիգուրացիա դեպի ֆայլ: Կազմաձևման տվյալները նշված անունով ֆայլում գրելը (հետագա օգտագործման կամ գործընկերոջը փոխանցելու համար): Սա չի ազդում Save and Exit հրամանի կատարման անհրաժեշտության վրա, որը ստեղծում է կազմաձևման ֆայլ միջուկը վերակոմպիլյացիայի համար:

Նոր միջուկի կազմում և գործարկում

Կազմաձևման ավարտից հետո դուք պետք է ստուգեք նոր կազմաձևման ֆայլը (.config), որը գտնվում է /usr/src/linux-2 .4.2 գրացուցակում (կախված տարբերակի համարից): Եթե ​​.config կազմաձևման ֆայլը տեղում է, կարող եք օգտագործել make հրամանը միջուկը նորից կազմավորելու համար:

Սովորաբար, միջուկի վերակոմպիլյացիան տևում է 15 րոպեից մինչև մի քանի ժամ: Դա կախված է պրոցեսորի արագությունից, օպերատիվ հիշողության քանակից և մի շարք այլ գործոններից, ուստի հարմար է կոմպիլյացիայի ժամանակ մուտքագրված բոլոր հրամանները միավորել մեկում՝ բաժանված կետով, որպեսզի դրանք կատարվեն հաջորդաբար։

Վերակազմավորման գործընթացի սկիզբ

Ստորև բերված հրամանները նախատեսված են նոր միջուկ ստեղծելու համար՝ վերակազմավորելով դրա բոլոր մոդուլները և գրելով դրանք համապատասխան համակարգի գրացուցակներում: (Այնտեղ դրանք հասանելի կլինեն միջուկի հրամաններին):

Համակարգը վերակազմավորելու համար մուտքագրվելու են հետևյալ հրամանները.

# կատարել խոր. մաքրել; կատարել bzlmage; մոդուլներ պատրաստել; կատարել modules_install

Յուրաքանչյուր make հրաման կարող է մուտքագրվել առանձին՝ նախորդի ավարտից հետո:

Այս հրամանները մուտքագրելուց հետո էկրանին կթողնեն տողեր, որոնք նկարագրում են այն դիրեկտորիաները, որոնց մուտք է գործել make ծրագիրը, gcc կոմպիլյատորի գործարկումը: տարբեր սկզբնաղբյուր ֆայլեր կազմելու և տարբեր բլոկներ կապելու համար։ Այս հրամաններից յուրաքանչյուրի ավարտը մի քանի րոպե կպահանջի:

Այժմ դուք կարող եք ստեղծել բեռնման սկավառակ նոր միջուկի համար հրամանով

Նախքան այս հրամանը կատարելը, դուք պետք է տեղադրեք ֆորմատավորված անգործունյա սկավառակ սկավառակի մեջ: Պատրաստի բեռնման սկավառակը պետք է փորձարկվի: Վերագործարկեք ձեր համակարգիչը՝ առանց սկավառակը սկավառակից հեռացնելու:

Միջուկի կոմպիլյացիայի հրամանները կատարելուց և հրամանի տող վերադառնալուց հետո ստեղծվում է նոր միջուկ։ Համակարգը նոր միջուկով բեռնելու համար այն պետք է տեղափոխվի ստանդարտ գրացուցակ, որտեղից այն կաշխատի: Դա արվում է հրամանի մուտքագրմամբ

# cf /usr/src/linux-2.4.2/arch/i386/boot/bzlmage /boot/vmlinuz-2.4.2-2

Վերջապես, բեռնման քարտեզը թարմացնելու համար գործարկեք lilo հրամանը.

Կարող եք պատճենել միջուկի պատկերի անվանման տարբերակի համարը: Կարևոր է, որ այս ֆայլի անունը համապատասխանի /etc/lilo.conf ֆայլում նշված անվանմանը:

Նոր միջուկի փորձարկում

Նոր միջուկի ֆայլը լռելյայն գրացուցակ տեղափոխելուց հետո (նշված է lilo.conf ֆայլում), համակարգը կարող է վերագործարկվել այս միջուկով:

Վերագործարկումից անմիջապես հետո ստուգեք նոր գործիքների աշխատանքը, որոնց համար սկսվել է վերակազմավորումը: Դուք կարող եք անել հետեւյալը.

Հին և նոր միջուկների ծավալների համեմատություն. Դուք պետք է ստուգեք օպերացիոն համակարգի զբաղեցրած հիշողության քանակը՝ ազատ հրաման տալով։

Ֆայլային համակարգի տեղադրում կամ սարք մուտք գործելու փորձ՝ առանց միջուկի մոդուլ բեռնելու այն աջակցելու համար (եթե այդ սարքի աջակցությունը ներկառուցված է միջուկում):

Ցանցային ռեսուրսների օգտագործումը (օրինակ՝ IP կեղծանունները), որոնք առկա չէին հին միջուկում:

Հնարավոր է, որ անհրաժեշտ լինի ստուգել ընթացիկ միջուկի ֆայլի ժամանակի դրոշմը: Դա անելու համար մուտքագրեք uname հրամանը: Սա թույլ է տալիս համոզվել, որ համակարգը ներկայումս աշխատում է վերակոմպիլացված միջուկով: Միջուկի ժամադրոշմը և ամսաթիվը պետք է համընկնեն վերակազմավորման ժամանակի հետ:

Եթե ​​uname հրամանի պատասխանը ցույց է տալիս, որ համակարգը չի բեռնվել նոր միջուկով, նայեք LILO bootloader-ին: Ստուգեք, արդյոք bootable միջուկի անունը ճիշտ է /etc/lilo.conf ֆայլում:

ԴԻՏԵԼ ԱՎԵԼԻՆ:

Linux միջուկի կազմում և տեղադրում Source-ից Debian-ում

Նյութը Bryansk Linux Users Group-ից և www.rm.pp.ru-ից

Յուրաքանչյուր բաշխում ունի միջուկի կառուցման իր առանձնահատկությունները, և այս հոդվածը կենտրոնանում է այն բանի վրա, թե ինչպես դա անել Debian Etch-ում: Այն նաև բացահայտում է այն հարցը, թե ինչպես կիրառել այս կամ այն ​​պատչը միջուկում, երբ անհրաժեշտ է աջակցել ձեր համակարգում որոշակի ֆունկցիոնալությանը կամ նոր սարքին: Հոդվածը նախատեսված է հիմնականում ավելի առաջադեմ օգտատերերի համար, և երաշխիքներ չկան, որ այս մեթոդը կաշխատի այնպես, ինչպես պետք է, և նկարագրված բոլոր գործողություններն ու պատասխանատվությունը ընկնում են ձեր վրա:

  1. Նշում
  2. Մեթոդ առաջին. Միջուկի կառուցում .deb փաթեթներում
  3. Կարկատանների կիրառում
  4. Միջուկի կոնֆիգուրացիա
  5. Միջուկի կազմում
  6. Նոր միջուկի տեղադրում
  7. Մեթոդ երկու. «ավանդական» ձևով
  8. Խնդիրներ
  9. Հղումներ

Նշում

Կնկարագրվեն միջուկը կառուցելու երկու եղանակ: Սկզբում նկարագրվելու է .deb փաթեթների կառուցման տարբերակը, որը կարող է տեղադրվել ձեր կամ մեկ այլ համակարգում:

Երկրորդ մեթոդը այսպես կոչված «ավանդական» ճանապարհն է։

Մեթոդ առաջին. Միջուկի կառուցում .deb փաթեթներում

Միջուկի կազմման համար անհրաժեշտ փաթեթների տեղադրում

Նախ, եկեք թարմացնենք փաթեթների ցուցակները.

# apt-get թարմացում

Տեղադրեք մեզ անհրաժեշտ փաթեթները.

# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

Ներբեռնում է միջուկի աղբյուրները

Գնացեք /usr/src գրացուցակ, այցելեք www.kernel.org և ընտրեք միջուկի ցանկալի տարբերակը: Այս դեպքում դիտարկվելու է linux-2.6.23.1.tar.bz2 տարբերակը։ Ներբեռնում:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2

Բացեք աղբյուրները և ստեղծեք խորհրդանշական հղում.

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (հեռացնել նախորդ սիմհղումը) # ln -s linux-2.6.23.1 linux # cd /usr/src/linux

Կարկատանների կիրառում

Ընտրովի և անհարկի մի արեք սա:

Երբեմն պահանջվում են դրայվերներ կամ գործառույթներ, որոնք չեն աջակցվում ընթացիկ միջուկում, օրինակ՝ վիրտուալացման տեխնոլոգիան կամ այլ առանձնահատկություններ, որոնք ներկա թողարկումում չկան: Ամեն դեպքում, դա ուղղվում է այսպես կոչված patches (եթե այդպիսիք կան) կիրառելով։

Այսպիսով, ենթադրենք, որ դուք ներբեռնել եք անհրաժեշտ պատչը (օրինակ, այն անվանենք patch.bz2) դեպի /usr/src: Կիրառեք ներբեռնված պատչը մեր աղբյուրներին (Դուք դեռ պետք է լինեք /usr/src/linux գրացուցակում).

# bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch.bz2 | patch-p1

Առաջին հրամանը պարզապես թեստ է, և աղբյուրների վրա փոփոխություններ չեն կիրառվի: Եթե ​​առաջին հրամանից հետո սխալներ չեն վերադարձվել, կարող եք գործարկել երկրորդ հրամանը՝ կարկատելը կիրառելու համար: Ոչ մի դեպքում մի կատարեք երկրորդ հրամանը, եթե սխալները տրվել են առաջինից հետո:

Այս կերպ Դուք կարող եք patches կիրառել միջուկի աղբյուրներում: Օրինակ, կան որոշ գործառույթներ, որոնք հասանելի են միայն 2.6.23.8 միջուկում, և աղբյուրները չեն պարունակում անհրաժեշտ ֆունկցիոնալությունը, սակայն թողարկվել է patch-2.6.23.8.bz2: Դուք կարող եք կիրառել այս կարկատումը 2.6.23 միջուկի աղբյուրների վրա, բայց ոչ 2.6.23.1 կամ 2.6.23.3 և այլն: Այս մասին ավելին կարող եք կարդալ հետևյալ հասցեով՝

Նախածանցներ (prepatches) - համարժեք ալֆա թողարկումներին; patches-ը պետք է կիրառվի եռանիշ տարբերակով ամբողջական նախորդ թողարկման աղբյուրների վրա (օրինակ, 2.6.12-rc4-ը կարող է կիրառվել 2.6.11 տարբերակի աղբյուրների վրա, բայց ոչ 2.6.11.10 տարբերակի վրա):

Սա նշանակում է, որ եթե մենք ցանկանում ենք կառուցել 2.6.23.8 միջուկը, մենք պետք է ներբեռնենք 2.6.23 տարբերակի աղբյուրները (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6: 23.tar.gz) կիրառվել է երկրորդ եղանակով «ավանդական» եղանակով։

Կիրառել patch-2.6.23.8.bz2 միջուկը 2.6.23:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.22.8.bz2 # cd /usr/src/linux # bzip2 -dc /usr/ src/patch-2.6.23.8.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | patch-p1

Միջուկի կոնֆիգուրացիա

Լավ գաղափար է, որ օգտագործեք գործող միջուկի գոյություն ունեցող կազմաձևման ֆայլը նաև նորի համար: Հետևաբար, մենք պատճենում ենք գոյություն ունեցող կոնֆիգուրացիան /usr/src/linux:

# մաքրել && կատարել mrproper # cp /boot/config-`uname -r` ./.config

# make menuconfig

որից հետո կբեռնվի գրաֆիկական միջուկի կազմաձևման ընտրացանկը: Կազմաձևողի ընտրացանկում ընտրեք «Բեռնել այլընտրանքային կազմաձևման ֆայլը» և սեղմեք «OK»: Այնուհետև (անհրաժեշտության դեպքում) կատարեք անհրաժեշտ փոփոխությունները միջուկի կազմաձևում՝ նավարկելով ընտրացանկերի միջով (միջուկի կազմաձևման մանրամասները կարող եք գտնել www.google.com կայքում): Երբ ավարտեք և սեղմեք «Ելք», կառաջարկվի «Ցանկանու՞մ եք պահպանել ձեր նոր միջուկի կոնֆիգուրացիան» հարցը, մենք դրական պատասխանում ենք «Այո»:

Linux միջուկի կառուցում

Միջուկի կազմում

Միջուկի կառուցումը կատարվում է ընդամենը երկու հրամանով.

# make-kpkg մաքուր # fakeroot make-kpkg --initrd --append-to-version=-cybermind kernel_image kernel_headers

--append-to-version=-ից հետո կարող եք գրել ինչ անուն եք ուզում, բայց այն պետք է սկսվի մինուս նշանով (-) և չունենա բացատներ։

.deb փաթեթների կազմման և կառուցման գործընթացը կարող է բավականին երկար տևել։ Ամեն ինչ կախված կլինի միջուկի կոնֆիգուրացիայից և ձեր պրոցեսորի հնարավորություններից:

Խնդրի լուծում՝ initrd.img ստեղծելով

Վերջերս Debian-ում հայտնվեց սխալ, որը բաղկացած էր նրանից, որ այստեղ նկարագրված ձևով կառուցված միջուկներով փաթեթներ տեղադրելուց հետո դրանց համապատասխանող /boot/initrd.img ֆայլը չի ​​ստեղծվում։ Արդեն տեղադրված միջուկը շտկելու համար դուք պետք է ձեռքով ստեղծեք initrd.img.

թարմացում-initramfs -c -k<полная-версия-ядра>

«Ապագայի համար» խնդիրը լուծելու համար մեկնաբանեք, ինչպես ցույց է տրված, ստորև բերված տողերից երկրորդը /etc/kernel/postinst.d/initramfs-tools ֆայլում.

# միջուկ-փաթեթն անցնում է լրացուցիչ արգասիք; կոտրել, որպեսզի չգործարկվի միջուկի փաթեթի տակ #[ -z «$2» ] || ելք 0

Նոր միջուկի տեղադրում

Երբ միջուկի կառուցումը հաջողությամբ ավարտվի, երկու .deb փաթեթներ կստեղծվեն /usr/src գրացուցակում.

# cd /usr/src # ls -l

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - բուն միջուկը և linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind_2.6.23.1-cybermind.6.8ersnel-10. անհրաժեշտ է այլ մոդուլներ ստեղծելու համար (օրինակ՝ nVidia վարորդի մոդուլներ կառուցելիս): Դրանց տեղադրում.

# dpkg -i linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb # dpkg -i linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind_2.6.20.201.00.00.00.

(Այս փաթեթներն այժմ կարող են տեղադրվել մեկ այլ համակարգում՝ առանց դրանք նորից ստեղծելու անհրաժեշտության:)

Ամեն ինչ, տեղադրումն ավարտված է, bootloader մենյուը, նոր RAM սկավառակի տեղադրումը և միջուկը կկատարվեն ավտոմատ կերպով: Մնում է միայն վերագործարկել.

Մեթոդ երկու. «ավանդական» ձևով

Վերը նկարագրված բոլոր կետերն իրականացնում ենք «Միջուկը կազմելը» կետից առաջ։

# make all # make modules_install # make install

Ինչպես սովորաբար, կառուցումը կարող է երկար տևել՝ կախված միջուկի կազմաձևից և պրոցեսորի հնարավորություններից:

Այս մեթոդի հիմնական թերությունն այն է, որ եթե դուք հաճախակի թարմացնում եք միջուկները, ապա որոշ ժամանակ անց դրանց մեծ քանակություն կկուտակվի, և դուք կցանկանաք հեռացնել չօգտագործվածները։ Դա հեշտացնելու համար դուք կարող եք համակարգում տեղադրված միջուկը և այլ ֆայլեր օգտագործելով «make modules_install» և «make install» հրամանները deb փաթեթի մեջ (ավելի ճիշտ՝ երկուսը սկսած միջուկից 2.6.27), ինչպես առաջինը: մեթոդ, բայց մենք այստեղ կօգտագործենք միջուկի սցենարներով.

# make all # make deb-pkg

Երկու .deb ֆայլեր կհայտնվեն գրացուցակում սկզբնաղբյուր գրացուցակից մեկ մակարդակից բարձր: Ես միջուկը հավաքեցի /usr/src/linux-2.6.27.10 գրացուցակում և ստացա ֆայլեր /usr/src/ գրացուցակում:

# linux-2.6.27.10_2.6.27.10-1_amd64.deb # linux-firmware-image_2.6.27.10-1_all.deb

Միջուկը տեղադրվում է հրամանով

# dpkg -i linux-2.6.27.10_2.6.27.10-1_amd64.deb

Հին միջուկները կարելի է հեռացնել, օրինակ, սինապտիկից

Հաջորդ քայլերը

Միջուկը կառուցված և տեղադրվել է, բայց հիմա դուք պետք է ստեղծեք RAM սկավառակ (առանց որի միջուկը պարզապես չի բեռնվի) և պետք է թարմացնեք GRUB bootloader-ը: Դա անելու համար կատարեք հետևյալը.

# depmod 2.6.23.1 # apt-get install yaird

Տեղադրեք RAM սկավառակը.

# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1

Եկեք թարմացնենք bootloader-ը հեշտությամբ և առանց ցավի.

Ամեն ինչ, bootloader-ը և նոր միջուկը պատրաստ են, մնում է միայն վերագործարկել.

Խնդիրներ

Եթե ​​վերաբեռնումից հետո ձեր ընտրած նոր միջուկը չի բեռնվում, վերագործարկեք և ընտրեք ձեր նախորդ միջուկը և կարող եք նորից փորձել ամբողջ գործընթացը կատարել՝ աշխատանքային միջուկ ստեղծելու համար: Այս դեպքում մի մոռացեք ջնջել չաշխատող միջուկի տողերը /boot/grub/menu.lst-ում։

Linux միջուկի կազմում

Ինչու՞ ընդհանրապես միջուկը կազմել ինքներդ:
Թերևս հիմնական հարցը, որ տրվում է միջուկը կազմելու վերաբերյալ, հետևյալն է. «Ինչու՞ պետք է դա անեմ»:
Շատերը դա համարում են անիմաստ ժամանակի վատնում, որպեսզի իրեն դրսևորեն որպես խելացի և առաջադեմ «Linuxoid»։ Իրականում միջուկը կազմելը շատ կարևոր բան է։ Ենթադրենք, դուք գնել եք նոր նոութբուք, որը չունի աշխատող վեբ-տեսախցիկ: Ձեր գործողությունները. Դուք նայում եք որոնման համակարգին և լուծում եք փնտրում այս հարցի վերաբերյալ: Շատ հաճախ կարող է պարզվել, որ ձեր վեբ-տեսախցիկը աշխատում է միջուկի ավելի նոր տարբերակով, քան դուք ունեք: Եթե ​​չգիտեք, թե ինչ տարբերակ ունեք, ապա տերմինալում մուտքագրեք uname -r, արդյունքում կստանաք միջուկի տարբերակը (օրինակ՝ linux-2.6.31-10)։ Նաև միջուկի կոմպիլյացիան լայնորեն օգտագործվում է արդյունավետությունը բարձրացնելու համար. փաստն այն է, որ միջուկի բաշխումները լռելյայնորեն կազմվում են «բոլորի համար», դրա պատճառով այն ներառում է հսկայական թվով դրայվերներ, որոնք ձեզ կարող են անհրաժեշտ չլինել: Այսպիսով, եթե լավ գիտեք ձեր սարքաշարը, կարող եք անջատել անհարկի դրայվերները կազմաձևման փուլում:

Հնարավոր է նաև միացնել 4 գիգաբայթից ավելի RAM-ի աջակցությունը՝ առանց համակարգի բիթային խորությունը փոխելու: Այսպիսով, եթե դեռ պետք է ունենալ ձեր սեփական միջուկը, եկեք սկսենք կազմել:

Ստանալով միջուկի սկզբնական կոդը:
Առաջին բանը, որ պետք է անել, ստանալ սկզբնական կոդը ցանկալի միջուկի տարբերակի համար: Սովորաբար դուք պետք է ստանաք նորագույն կայուն տարբերակը: Միջուկի բոլոր պաշտոնական տարբերակները հասանելի են kernel.org կայքում: Եթե ​​դուք արդեն ունեք տեղադրված X սերվեր (տնային համակարգիչ), ապա կարող եք գնալ կայք ձեր սիրելի բրաուզերում և ներբեռնել ցանկալի տարբերակը tar.gz արխիվում (սեղմված gzip): Եթե ​​դուք աշխատում եք վահանակում (օրինակ, դեռ չեք տեղադրել X սերվերը կամ կարգավորում եք սերվերը), կարող եք օգտագործել տեքստային զննարկիչ (օրինակ՝ elinks): Կարող եք նաև օգտագործել ստանդարտ wget ներբեռնման մենեջեր.
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.1.tar.gz
Բայց նկատի ունեցեք, որ դուք պետք է իմանաք ձեզ անհրաժեշտ տարբերակի ճշգրիտ համարը:

Աղբյուրի կոդի արխիվի բացում:
Արխիվը սկզբնական կոդով ստանալուց հետո դուք պետք է ապափաթեթավորեք արխիվը թղթապանակում: Դա կարելի է անել գրաֆիկական ֆայլերի կառավարիչներից (դելֆին, նաուտիլուս և այլն) կամ mc-ի միջոցով: Կամ օգտագործեք ավանդական tar հրամանը.
tar -zxvf path_to_archive
Այժմ դուք ունեք աղբյուրի թղթապանակ, մտեք դրա մեջ՝ օգտագործելով cd kernel_source_directory (թղթապանակի դիրեկտորիաները ցուցակագրելու համար օգտագործեք ls հրամանը):

Միջուկի կոնֆիգուրացիա:
Երբ դուք փոխվել եք միջուկի աղբյուրի գրացուցակին, դուք պետք է կատարեք «20 րոպե» միջուկի կոնֆիգուրացիա: Դրա նպատակն է թողնել միայն անհրաժեշտ դրայվերներն ու գործառույթները։ Բոլոր հրամաններն արդեն պետք է կատարվեն գերօգտագործողի անունից:

make config - կոնֆիգուրատորի կոնսոլային ռեժիմ:

կատարել menuconfig - վահանակի ռեժիմը որպես ցուցակ:

կատարել xconfig - գրաֆիկական ռեժիմ:

Անհրաժեշտ փոփոխությունները կատարելուց հետո պահպանեք կարգավորումները և դուրս եկեք կազմաձևիչից:

Կազմում.
Ժամանակն է հավաքի վերջնական փուլի՝ կազմման։ Սա կատարվում է երկու հրամանով.
կատարել && կատարել տեղադրել
Առաջին հրամանը կկազմի բոլոր ֆայլերը մեքենայի կոդի մեջ, իսկ երկրորդը կտեղադրի նոր միջուկը ձեր համակարգում:
Սպասում ենք 20 րոպեից մինչև մի քանի ժամ (կախված համակարգչի հզորությունից):

Linux միջուկի կազմաձևում և կազմավորում

Միջուկը տեղադրված է: Որպեսզի այն հայտնվի grub(2) ցուցակում, մուտքագրեք (որպես արմատ)
թարմացում-grub
Այժմ վերաբեռնումից հետո սեղմեք «Escape» և կտեսնեք նոր միջուկը ցանկում: Եթե ​​միջուկը չի միանում, ապա պարզապես բեռնեք հին միջուկով և ավելի ուշադիր կարգավորեք:

KernelCheck - միջուկի հավաքում առանց կոնսոլ մտնելու:
KernelCheck-ը թույլ է տալիս կառուցել միջուկը լիովին գրաֆիկական ռեժիմով Debian-ի և դրա վրա հիմնված բաշխումների համար. Գործարկվելուց հետո KernelCheck-ը կառաջարկի միջուկի վերջին տարբերակներն ու պատչերը, և ձեր համաձայնությունից հետո ներբեռնեք աղբյուրի կոդը, գործարկեք գրաֆիկական կոնֆիգուրատորը: Ծրագիրը միջուկը կկառուցի .deb փաթեթների մեջ և կտեղադրի դրանք: Պարզապես պետք է վերագործարկեք:

Հոդվածների արխիվ.
2017 թվականի մայիս
2017 թվականի մարտ
2016 թվականի ապրիլ
2016 թվականի մարտ
Հոկտեմբեր 2013
սեպտեմբեր 2013
մայիս, 2013 թ
2013 թվականի մարտ
նոյեմբեր 2012
հուլիսի 2012թ
հունիսի 2012թ
2012 թվականի ապրիլ
2012 թվականի մարտ
2012 թվականի փետրվար
2011 թվականի ապրիլ
2011 թվականի մարտ
2011 թվականի փետրվար
2011 թվականի հունվար
Դեկտեմբեր 2010 թ
նոյեմբեր 2010 թ
Հոկտեմբեր 2010
սեպտեմբեր 2010 թ
օգոստոսի 2010թ
հուլիսի 2010թ
հունիսի 2010թ
մայիս 2010 թ
2010 թվականի ապրիլ
մարտ 2010 թ

Պատահական:

Aurorae. պատուհանի ձևավորման շարժիչ KDE-ի համար

Sblog-ը կվերագրվի .NET-ում

Linuxnow.ru. պլաններ ապագայի համար

Բոլգենոս. Telecon-ի հերքումը

GRUB 2 Արագ վերականգնում

Free Software Foundation և copyleft:

Գործընկերներ՝ բոլորը
Linux բոլորի համար

Մեր պաստառները.


Տեղադրել դրոշակ

Հարցն այն է, ինչո՞ւ չսովորել նույնն անել Linux միջուկի հետ: Linux միջուկը սկզբնաղբյուրից կառուցելու պատճառները, ընդհանուր առմամբ, նույնն են՝ ստանալ միջուկի վերջին տարբերակը, շտապ կիրառել անվտանգության patches, օպտիմիզացնել կոնկրետ առաջադրանքների և հատուկ սարքաշարի համար, ինչպես նաև միջուկի մշակմանը մասնակցելու ցանկությունը, նույնիսկ ՔԱ-ի դերում։

Կարևոր էԱյս գրառման հրահանգներին հետևելը կարող է հանգեցնել ձեր տվյալների կորստի: Կատարեք կրկնօրինակներ և հիշեք, որ ամեն ինչ անում եք ձեր վտանգի և ռիսկի տակ: Ստորև նկարագրված ամեն ինչ փորձարկվել է Ubuntu 14.04 LTS-ի վրա: Բայց Ubuntu-ի այլ տարբերակների, ինչպես նաև Linux-ի այլ բաշխումների դեպքում տարբերությունները պետք է լինեն նվազագույն:

Bootloader-ի կարգավորում

Խմբագրել /etc/default/grub այսպես.

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=10
#GRUB_HIDDEN_TIMEOUT_QUIET=ճշմարիտ
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR =` lsb_release -i -s 2 > /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="հանգիստ շաղ տալ"
GRUB_CMDLINE_LINUX=""

Խմբագրելուց հետո ասում ենք.

sudo update-grub

Արդյունքում, մինչ համակարգի բեռնումը, ձեզ կառաջարկվի 10 վայրկյան ընտրել միջուկը, որով ցանկանում եք բեռնել: Շատ հարմար է, եթե դուք խառնում եք ձեր միջուկի կոնֆիգուրացիան և ցանկանում եք բեռնել նախորդ տարբերակով:

Տեղադրեք կախվածությունները

Մեզ անհրաժեշտ կլինեն առնվազն հետևյալ փաթեթները.

sudo apt-get install git gcc make bc fakeroot dpkg-dev \
libncurses5-dev libssl-dev

Շատ համակարգերում դրանք բոլորը, սակայն, արդեն ներկա կլինեն:

Ստանալով աղբյուրը

wget https:// www.kernel.org/ pub/ linux/ kernel/ v4.x/ linux-4.6.4.tar.xz
tar --xz -xvf linux-4.6.4.tar.xz
cd linux-4.6.4

Կամ, եթե ցանկանում եք ամենավերջինը, կարող եք աղբյուրը վերցնել անմիջապես Git-ից.

# Հայելի՝ https://github.com/torvalds/linux
git clone «git://git.kernel.org/pub/scm/linux/kernel/git/»\
«torvalds/linux.git»
cd linux

Դատելով նրանից, որ ես չկարողացա գտնել v4.6.4 թեգը Git-ում, Linux միջուկի թողարկումները կատարվում են բացառապես սեղմված tar արխիվների տեսքով։

Եթե, վանիլային միջուկի փոխարեն, ցանկանում եք միջուկ կառուցել Canonical-ի կարկատաններով.

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-trusty.git
cd ubuntu-trusty
git tag | ավելի քիչ
git checkout Ubuntu-lts-4.4.0-31.50_14.04.1

Իմ սեփական փորձից ելնելով, եթե դուք օգտագործում եք Ubuntu, կարող եք ապահով օգտագործել վանիլի միջուկը: Դժվար թե դրա հետ կապված խնդիրներ ունենաք։

Նշում:Հետաքրքիր է, որ գոյություն ունեցող համեմատաբար հայտնի Linux բաշխումներից միայն Gentoo-ն, Slackware-ը և Arch Linux-ը կարծես օգտագործում են միջուկ՝ առանց իրենց սեփական patches-ի:

Ինչևէ, հիմա դուք ունեք սկզբնաղբյուրը:

Կազմել և տեղադրել միջուկը

Ընտրեք այն տարբերակները, որոնցով կկառուցվի միջուկը.

կատարել menuconfig

Անհրաժեշտության դեպքում փոխեք կարգավորումները, սեղմեք Save, ապա Exit: Սա կստեղծի .config ֆայլ, որը պարունակում է մեր ընտրած տարբերակները:

ժամը թարմացնելմիջուկը (միևնույն է, դուք արդեն օգտագործում եք ինչ-որ միջուկ): Հարմար է վերցնել ընթացիկ միջուկի կազմաձևը և նոր տարբերակները դնել իրենց լռելյայն արժեքներին.

zcat /proc/config.gz > ./.config
կատարել olddefconfig

Ի վերջո, մենք հավաքում ենք.

make -j4 bindeb-pkg LOCALVERSION=-մաքսային

Միջուկը հավաքվում է բավականին երկար ժամանակ։ Իմ նոութբուքի վրա հավաքը տևեց 1 ժամ 15 րոպե: Այնուամենայնիվ, այս ժամանակից մասինՄնացածը ծախսվում է վրիպազերծման նշաններով հսկա միջուկի փաթեթի կառուցման վրա: Այս փաթեթի հավաքումը կարող է անջատվել՝ մեկնաբանելով կազմաձևում CONFIG_DEBUG_INFO պարամետրը: Պարզապես տեղյակ եղեք, որ այս փաթեթը պահանջվում է SystemTap-ի և այլ օգտակար գործիքների կողմից:

Բացի բուն միջուկից, կարող եք նաև փաստաթղթեր հավաքել.

# կա նաև «make pdfdocs» և այլն, տե՛ս «make help»:
պատրաստել html փաստաթղթեր
chromium-browser Documentation/ DocBook/ index.html

Հավաքման ավարտից հետո մասնաճյուղգրացուցակում մենք տեսնում ենք նման բան.

linux-firmware-image-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-headers-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-image-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-image-4.4.13-custom-dbg_4.4.13-custom-1_amd64.deb
linux-libc-dev_4.4.13-custom-1_amd64.deb

Մենք դնում ենք բոլոր դեբ-փաթեթները, բացառությամբ միջուկի dbg-տարբերակի սովորականով սուդո դփկգ -իև վերագործարկեք: Վերագործարկելուց հետո նայեք հրամանի ելքին անուն-ա. Մենք համոզված ենք, որ մենք իսկապես գործարկվել ենք նոր միջուկով: Եթե ​​նոր միջուկի հետ ինչ-որ բան այն չէ, ապա bootloader-ում մենք պարզապես ընտրում ենք այն մեկը, որով համակարգը նախկինում բեռնվել է: Հին միջուկով բեռնելուց հետո մենք արագ հեռացնում ենք նոր միջուկի փաթեթները, իսկ voila- համակարգը վերադարձավ իր նախկին վիճակին:

Մարտի կեսերին, գրեթե երկու ամիս մշակումից և թողարկման յոթ թեկնածուներից հետո, Լինուս Տորվալդսը ներկայացրեց 4.5 միջուկի նոր տարբերակը: Բացի ուղղումներից, թողարկումում իսկապես շատ նոր բաներ կան: Փոփոխություններն ազդել են բոլոր ենթահամակարգերի վրա՝ սկավառակ, հիշողություն, համակարգային և ցանցային ծառայություններ, անվտանգություն և, իհարկե, ավելացվել են նոր սարքերի դրայվերներ։ Փորձենք զբաղվել ամենահետաքրքիրներից մի քանիսի հետ:

Ազատման մասին

4.4 միջուկի թողարկումը թողարկվել է համեմատաբար վերջերս՝ 2016 թվականի հունվարի սկզբին, սակայն այս կարճ ժամանակում մեծ թվով հավելումներ են կուտակվել։ Եվ չնայած Լինուսը նոր թողարկումն անվանեց «նորմալ», դուք կարող եք տեսնել, որ 4.4 տարբերակի համեմատ, կարկատակի չափն աճել է գրեթե մեկ երրորդով՝ 70 ՄԲ՝ 49 ՄԲ-ի դիմաց: Մշակմանը մասնակցել է մոտ 1528 մարդ, ովքեր կատարել են մոտ 13 հազար ուղղումներ։ Ավելի քան 11 հազար ֆայլերում ավելացվել է 1,146,727, հեռացվել է կոդերի 854,589 տող։ 4.4-ում եղել է համապատասխանաբար 714106 և 471010 գիծ։ Բոլոր փոփոխությունների գրեթե կեսը (45%) կապված է սարքի դրայվերների հետ, 17%-ը ազդում է ապարատային ճարտարապետության կոդի վրա, 14%-ը վերաբերում է ցանցային ստեկին, 4%-ը՝ ֆայլային համակարգերին, և 3%-ը ազդում է միջուկի ներքին ենթահամակարգերի վրա: Լավագույն ներդրողները Red Hat-ից Դագ Լեդֆորդն են, ով կատարել է մաքրման աշխատանքների մեծ մասը (7,7%), Տոմի Վալքեյնենը Texas Instruments-ից, ով աշխատել է OMAP ենթաճարտարապետության աջակցության վրա (5,3%), երեք ծրագրավորողներ, որոնք կենտրոնացել են AMD գրաֆիկայի դրայվերների վրա՝ Էրիկ: Huang՝ 3,3%, Alex Deucher՝ 2,4% եւ yayang1՝ 1,6%։ Փոփոխությունների խմբի առաջնորդներ. Լինուս Վալեյջը Լինարոյից, ով իրականացրել է ցածր մակարդակի բազմաթիվ փոփոխություններ, այդ թվում՝ GPIO-ում, որին նա աջակցում է (2,0%), Արնդ Բերգմանը, ով մեծ աշխատանք է կատարել ARM-ին աջակցելու համար (1,9%) և Լեո Քիմը, ով աշխատել է: wilc1000 վարորդի վրա (1,7%): Ինչպես նախկինում, բազմաթիվ կորպորացիաներ շահագրգռված են միջուկի զարգացմամբ: 4.5 տարբերակի վրա աշխատանքը աջակցում էին ավելի քան 200 ընկերություններ, այդ թվում՝ Red Hat, Intel, AMD, Texas Instruments, Linaro, Linux Foundation, Samsung, IBM, Google: Նրանցից շատերը զարգացնում են իրենց սարքերի և հարակից ենթահամակարգերի ու գործիքների աջակցությունը, սակայն, օրինակ, Google-ը ավանդաբար շատ փոփոխություններ է կատարում Linux ցանցային ենթահամակարգում:

Kernel և Drivers

Համալիրում (x86/asm) գրված բարդ և վատ պահպանված կոդի տեղափոխումը C շարունակվեց 4.0-ում: Այժմ միջուկը կարող է կառուցվել -fsanitize=undefined տարբերակով: Պարամետրն ինքնին հայտնվել է երկու տարի առաջ GCC 4.9+-ում և ակտիվացնում է UBSan (Undefined Behavior Sanitizer) կարգաբերման ռեժիմը, որը հայտնաբերում է C և C ++ լեզուներին բնորոշ չսահմանված վարքագիծը. ամբողջ թվերի արտահոսք և այլն: Կոմպիլյատորը սովորաբար ենթադրում է, որ նման գործողություններ երբեք չեն լինի, և եթե դրանք տեղի ունենան, արդյունքը կարող է լինել ցանկացած բան և կախված է հենց կոմպիլյատորից: Այժմ կոմպիլյատորը հայտնաբերում է նման իրավիճակներ, թողարկում է «runtime error:» (կարող եք անջատել -fno-sanitize-recover) և շարունակում է կատարումը: Լռելյայնորեն, յուրաքանչյուր OS ժողովում բոլոր գրադարանները բեռնված են որոշակի հասցեներով, ինչը հեշտացնում է հարձակումը: Անվտանգությունը բարձրացնելու համար օգտագործվում են մի շարք տեխնոլոգիաներ, որոնցից մեկը պատահական օֆսեթ է mmap () կանչելիս, որն իրականացվում է ASLR (Address Space Layout Randomization) տեսքով: ASLR տեխնոլոգիան առաջին անգամ հայտնվեց Linux-ում 2005 թվականին 2.6 միջուկում և տվեց 8-բիթանոց օֆսեթ 32-բիթանոց համակարգերի համար (այսինքն՝ 256 հասցեի տարբերակ, թեև իրականում ավելի քիչ), իսկ x64-ի համար օֆսեթն արդեն 28 բիթ է: x64-ի համար բավականաչափ տարբերակներ կան, բայց 32-բիթանոց համակարգերի համար, ներառյալ Android-ը, այսօր դա ակնհայտորեն բավարար չէ: Արդեն հայտնի են շահագործումներ, որոնք կարող են հասցե վերցնել: Խնդրի լուծման որոնման արդյունքում գրվել է մի կարկատել, որը թույլ է տալիս ASLR-ի համար ավելի շատ պատահականություն սահմանել՝ /proc/sys/vm/mmap_rnd_bits և /proc/sys/vm/mmap_rnd_compat_bits (x64 համակարգերի վրա) միջոցով: x86 գործընթացների համար): Յուրաքանչյուր ճարտարապետության համար նշվում են նվազագույն և առավելագույն արժեքները՝ հաշվի առնելով հասանելի հասցեների տարածքը: x86-ի համար արժեքը կարող է տատանվել 8-ից 16 բիթ կամ 28-ից 32 (x64 տարբերակի համար): Լռելյայն ընտրանքներ կարող են սահմանվել միջուկը կառուցելիս:
ASLR-ի կարգավորում նոր միջուկում DRM դրայվերի ընդլայնված հնարավորությունները NVIDIA (Nouveau) և Intel վիդեո քարտերի համար (աջակցություն Kaby Lake չիպերի ապագա սերնդին), ավելացվել է նոր ձայնային քարտերի, USB կարգավորիչների և կրիպտո արագացուցիչների աջակցություն: Գրաֆիկական քարտեր արտադրողներ Intel-ը և NVIDIA-ն վաղուց հրաժարվել են UMS-ի օգտագործումից (Userspace Mode Setting) իրենց բաց կոդով դրայվերներում՝ հօգուտ KMS-ի (Kernel Mode Setting), այժմ հերթը հասել է ATI Radeon դրայվերին, որը հանել է UMS ռեժիմի կոդը: 3.9-ից այն հնարավոր էր միացնել DRM_RADEON_UMS պարամետրով կամ GRUB-ում radeon.modeset=0 դնելով: Այժմ մնացել է միայն KMS-ը (միջուկի ռեժիմի կարգավորում): Սա պետք է հաշվի առնել, եթե դուք պետք է օգտագործեք ավելի հին վարորդներ կամ UMS ռեժիմ (UMS-ը երբեմն ավելի լավ կատարում է ցույց տալիս): PowerPlay-ի դինամիկ էներգիայի կառավարման տեխնոլոգիայի փորձնական աջակցություն է ավելացվել AMDGPU դրայվերին՝ բարելավելու GPU-ի աշխատանքը Տոնգայի և Ֆիջիի GPU-ների և ինտեգրված Carrizo-ի և Stoney-ի համար: PowerPlay ռեժիմում GPU-ն սկսվում է ցածր էներգիայի ռեժիմով, բայց եթե գրաֆիկական ենթահամակարգի ծանրաբեռնվածությունը մեծանում է, այն ավտոմատ կերպով մեծացնում է հաճախականությունը: Լռելյայնորեն PowerPlay-ն անջատված է, այն միացնելու համար միջուկին փոխանցեք amdgpu.powerplay=1 պարամետրը: Media controller API-ի նոր տարբերակը ընդլայնում է Video4Linux սարքերի աջակցությունը և թույլ է տալիս օգտագործել մուլտիմեդիա կարգավորիչի գործառույթը այլ ենթահամակարգերում, ինչպիսիք են DVB, ALSA և IIO: Շատ բան է արվել KVM-ում (միջուկի վրա հիմնված վիրտուալ մեքենա)՝ աջակցելու s390 ճարտարապետությանը (այժմ այն ​​կարող է օգտագործել մինչև 248 vCPU), ARM/ARM64 և բարելավել x86 կատարումը Hyper-V-ում:

Kernel 4.5-ի տեղադրում Ubuntu-ում

Նոր միջուկին ծանոթանալու ամենադյուրին ճանապարհը Ubuntu Kernel Team-ի կառուցվածքն օգտագործելն է: Լայնածավալ փորձարկումից հետո նոր միջուկը հայտնվում է ppa:canonical-kernel-team/ppa-ում, բայց դա սովորաբար ժամանակ է պահանջում: $ wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.5-wily/linux-headers-4.5.0-040500-generic_4.5.0-040500.201603140130_amd64.deb http://kernel .ubuntu.com/~kernel-ppa/mainline/v4.5-wily/linux-headers-4.5.0-040500_4.5.0-040500.201603140130_all.deb http://kernel.ubuntu.com/~kernel-ppa/main /v4.5-wily/linux-image-4.5.0-040500-generic_4.5.0-040500.201603140130_amd64.deb $ sudo dpkg -i linux*.deb Մենք կարող ենք աշխատել վերաբեռնումից հետո:

ARM աջակցություն

ARM համակարգիչները օգտագործվում են որպես մինի-սերվերներ որոշակի առաջադրանքների համար կամ որպես ավտոմատացման կարգավորիչներ, ինչը նրանց դարձնում է շատ տարածված և պահանջված: Linux ARM համայնքը դարձել է ամենաակտիվներից մեկը վերջին հինգ տարիների ընթացքում՝ հսկայական աշխատանք կատարելով 32-բիթանոց ARM պլատֆորմներին աջակցելու համար, որոնք զբաղեցնում են շուկայի զգալի մասնաբաժինը, և այս աշխատանքը, ընդհանուր առմամբ, ավարտվեց 4.5-ի թողարկմամբ։ մասնաճյուղ. Նախկինում յուրաքանչյուր ARM սարքի համար անհրաժեշտ էր կառուցել իր միջուկը՝ ապահովելով միայն որոշակի սարքերի աջակցություն։ Բայց խնդիրն այն է, որ սարքերը բարդացան, հնարավոր եղավ փոխել կոնֆիգուրացիան, իսկ ARM սարքերի օգտատերերն իրենք ցանկանում էին սովորական բաշխումներ օգտագործել՝ առանց ավելորդ ժեստերի։ Բայց ի վերջո մենք ունեինք միջուկը կառուցելու մի քանի հարյուր տարբերակ, ինչը շատ դժվարացնում է Linux-ի օգտագործումը։ Մեծ քանակությամբ կոդի մաքրման և վերամշակման արդյունքում հնարավոր դարձավ միջուկում ներառել ARMv6 և ARMv7 աջակցության կոդը, այսինքն՝ այժմ մենք կարող ենք կառուցել ունիվերսալ միջուկ, որը կարող է բեռնել երկու համակարգերում։ Այստեղ, հավանաբար, պետք է հիշել վերջերս առաջ մղված Device Tree-ի հստակեցումը, որն առաջացել է Open Firmware-ի մշակման շրջանակներում: Device Tree-ը թույլ է տալիս կարգավորել ապարատը բեռնման ժամանակ՝ օգտագործելով /boot/dtbs-ում պահվող հատուկ dts ֆայլեր և փոխել կարգավորումները՝ առանց միջուկը վերակառուցելու: Սարքի ծառի օգտագործումը պարտադիր է դառնում ARM-ի բոլոր նոր մշակումների համար և ոչ միայն սարքերի համար: Այս ամենը միասին վստահություն է տալիս, որ Linux բաշխումները ապագայում կարող են ապահով գործարկվել ցանկացած ARM սարքի վրա: Զուգահեռաբար, Գրեգ Քրոահ-Հարթմանը Linux Foundation-ից թողարկեց մի կարկատել, որն իրականացնում է նմանատիպ հնարավորություն միջուկի վաղ տարբերակների համար: arch/arm64-ում մենք գտնում ենք կոդը, որն ապահովում է նոր 64-բիթանոց ARM ճարտարապետության (ARMv8) աջակցությունը: Ավելացվել են նոր հնարավորություններ բոլոր հայտնի ARM ճարտարապետությունների համար՝ Allwinner, Amlogic, Samsung, Qualcomm և տարբեր մշակողների կողմից նոր ARM տախտակների աջակցություն:

Համակարգային ծառայություններ

Linux-ում UEFI (Unified Extensible Firmware Interface) որոնվածը մուտք գործելու համար օգտագործվում է հատուկ efivars կեղծ ֆայլային համակարգ (կարգավորելի EFIVAR_FS-ի կողմից), որը տեղադրված է /sys/firmware/efi/efivars-ում: Որոշ իրականացումներում rm -rf /* հրամանը կատարելիս ջնջվել է նաև այս գրացուցակի պարունակությունը, ինչը հանգեցրել է որոնվածի ոչնչացմանը։ Ընկերություններ - սարքերի մշակողները սա լուրջ թերություն չեն համարում, քանի որ իրավիճակը, իհարկե, ամենատարածվածը չէ, և դժվար թե որևէ օգտվող մտածի դա ստուգել: Այնուամենայնիվ, խնդիր կա, և վիրուս գրողները իսկապես կարող են օգտվել այս հնարավորությունից։ Kernel 4.5-ն այժմ հատուկ պաշտպանություն է ավելացնում /sys/firmware/efi/efivars գրացուցակին՝ ներսում ֆայլերի ջնջումը կանխելու համար:

Շարունակությունը հասանելի է միայն անդամների համար

Տարբերակ 1. Միացեք «կայքի» համայնքին՝ կայքի բոլոր նյութերը կարդալու համար

Նշված ժամանակահատվածում համայնքին անդամակցելը ձեզ հնարավորություն կտա մուտք գործել ԲՈԼՈՐ Հաքերային նյութերը, կավելացնի ձեր անձնական կուտակային զեղչը և թույլ կտա ձեզ կուտակել պրոֆեսիոնալ Xakep Score վարկանիշ:

Հիմնական(անգլերեն) միջուկ) այն է, ինչի շուրջ կառուցված է մնացած ամեն ինչ: Դա այն է, ինչ կոչվում է Linux: Այժմ Linux բառը առօրյա կյանքում կոչվում է դրա վրա կառուցված օպերացիոն համակարգ, թեև լավ իմաստով այն կոչվում է GNU / Linux (Լինուքսի միջուկը և ծրագրակազմը GNU նախագծից, որը մշակվում է շատ տասնամյակներ շարունակ):

Ubuntu-ն օգտագործում է միջուկ՝ մեծ թվով patches-ներով, որոնցից մի քանիսն ավելացնում են անկայուն և փորձնական առանձնահատկություններ։

Ubuntu-ի յուրաքանչյուր թողարկում ունի իր միջուկի տարբերակը: LTS-ի թողարկումները 10.04-ից ի վեր կարողացել են թարմացնել միջուկը նոր թողարկումներում ներառված տարբերակներին:

Ubuntu տարբերակKernel տարբերակը
4.10 2.6.9
5.04 2.6.11
5.10 2.6.13
6.06LTS 2.6.15
6.10 2.6.18
7.04 2.6.19
7.10 2.6.20
8.04LTS 2.6.24
8.10 2.6.27
9.04 2.6.28
9.10 2.6.31
10.04LTS 2.6.32
10.10 2.6.35
11.04 2.6.38
11.10 3.0.4
12.04LTS 3.2
12.10 3.5
13.04 3.8
13.10 3.11
14.04LTS 3.13
14.10 3.16
15.04 3.19

պատառաքաղներ

Ubuntu միջուկի և kernel.org կայքի տարբերակների համարակալումը չեն համընկնում, քանի որ Canonical-ի մշակողները ավելացնում են միկրո տարբերակ՝ ավելացված պատչերը նշելու համար: Օրինակ՝ 3.2.0-23 տարբերակը կնշանակի, որ միջուկը հիմնված է 3.2 ճյուղի վրա, որն ունի 23 patches։

Ubuntu-ի պահոցում աջակցվում են միջուկների հետևյալ տեսակները.

generic-pae միջուկը թույլ է տալիս 32-բիթանոց համակարգին օգտագործել մինչև 64 ԳԲ ընդհանուր RAM՝ հատկացնելով ոչ ավելի, քան 4 ԳԲ որոշակի գործընթացի կարիքների համար, մինչդեռ պարզ ընդհանուր միջուկն աշխատում է 4 ԳԲ-ից ոչ ավելի օպերատիվ հիշողությամբ:

64-բիթանոց միջուկը թույլ է տալիս հասցեագրել մինչև 1TB հիշողության, որը սպառվում է գործընթացների կողմից:

Եթե ​​Ձեզ անհրաժեշտ է թարմացնել միջուկը ավելի նոր հիմնական տարբերակով (սովորաբար դա պայմանավորված է նրանով, որ նոր տարբերակներն ավելացնում են աջակցություն նոր սարքավորումների համար, վերացնում ռեգրեսիաները), կարող եք օգտագործել պաշտոնական աջակցվող արխիվը՝ http://kernel.ubuntu.com/: ~kernel-ppa/mainline/ .

Միջուկի կազմում

Միջուկը աղբյուրից կառուցելը պահանջում է որոշակի հմտություններ և գիտելիքներ այն մասին, թե ինչպես է աշխատում ՕՀ-ն:

Նախքան միջուկը կառուցելը, դուք պետք է տեղադրեք հետևյալ փաթեթները.

Build-Essential fakeroot ncurses-dev libssl-dev

Բոլոր հետագա գործողությունները պետք է կատարվեն գերօգտագործողի անունից.

sudo su

Ստանալով աղբյուրի կոդը

Ubuntu-ի կողմից օգտագործվող միջուկի սկզբնական կոդը կարելի է ստանալ՝ տեղադրելով linux-source փաթեթը.

apt-get տեղադրել Linux աղբյուրը

Տեղադրվելուց հետո գրացուցակում /usr/srcկլինի արխիվ, որը կոչվում է linux-source-verify_kernels.tar.bz2.

Կարող եք նաև ներբեռնել արխիվը միջուկի սկզբնական կոդով kernel.org կայքից:

Երբ ներբեռնում եք միջուկը kernel.org կայքից, դուք պետք է դրա վրա patches կիրառեք

Կոնֆիգուրացիա

Բացեք ստացված արխիվը և հարմարության համար ստեղծեք խորհրդանշական հղում դեպի ստացված գրացուցակը.

cd / usr/ src tar xjf ./ linux-source-3.2.0.tar.bz2 ln -s ./ linux-source-3.2.0 ./ linux cd ./ linux

Միջուկի կազմաձևման գործընթացը պարզեցնելու համար կարող եք պատճենել ընթացիկի կարգավորումները:

Հարցեր ունե՞ք

Հաղորդել տպագրական սխալի մասին

Տեքստը, որը պետք է ուղարկվի մեր խմբագիրներին.