Linux іске қосу процесі - Linux startup process

Linux іске қосу процесі кезінде орындалатын көп сатылы инициализация процесі жүктеу а Linux орнату. Бұл көптеген жағынан ұқсас BSD және басқа да Unix -стиль жүктеу процестері, олардан шығады.

Linux қондырғысын жүктеу бірнеше кезеңдер мен бағдарламалық жасақтама компоненттерін қамтиды, соның ішінде микробағдарлама инициализация, орындау а жүктеуші жүктеу және іске қосу Linux ядросы кескін, және әр түрлі орындау сценарийлер және демондар. Осы кезеңдер мен компоненттердің әрқайсысы үшін әртүрлі вариациялар мен тәсілдер бар; Мысалға, GRUB, негізгі жүктеу немесе Das U-Boot жүктеуші ретінде пайдалануға болады (тарихи мысалдар ЛИЛО, SYSLINUX немесе Loadlin ), ал сценарийлер дәстүрлі болуы мүмкін ішінде -стиль, немесе жүйенің конфигурациясы сияқты заманауи баламалар арқылы орындалуы мүмкін жүйелік немесе Іске қосу.

Шолу

Linux-ті іске қосу процесінің алғашқы кезеңдері компьютер архитектурасына байланысты. IBM PC үйлесімді аппараттық құрал - бұл Linux әдетте қолданылатын бір архитектура; осы жүйелерде BIOS басқа жүйелерде дәл аналогтары болмауы мүмкін маңызды рөл атқарады. Келесі мысалда IBM PC үйлесімді аппаратурасы қарастырылған:

  1. BIOS нақты іске қосу тапсырмаларын орындайды жабдық платформа. Аппараттық құрал болғаннан кейін санамаланған және жүктеуге қажет жабдық дұрыс инициализацияланған, BIOS жүктелген кодты конфигурацияланған жүктеу құрылғысынан жүктейді және орындайды.
  2. Жүктеуші жиі пайдаланушыға жүктеудің мүмкін болатын мәзірін ұсынады және әдепкі параметрге ие, ол біраз уақыт өткеннен кейін таңдалады. Таңдау жасалғаннан кейін, жүктеуші ядроға жадты жүктейді, оны кейбір параметрлермен қамтамасыз етеді және басқаруды береді.
  3. Ядро, егер ол сығылған болса, өзін-өзі ашады. Содан кейін ол маңызды аппараттық және жадтық пейджинг, қоңыраулар сияқты жүйелік функцияларды орнатады start_kernel () ол жүйені орнатудың көп бөлігін орындайды (үзілістер, қалған жадыны басқару, құрылғы мен драйверді инициализациялау және т.б.). Содан кейін ол бөлек басталады бос процесс, жоспарлаушы және init процесі, ол орындалады пайдаланушы кеңістігі.
  4. Init қабықпен орындалатын сценарийлерден (sysv, bsd, runit) немесе екілік компоненттермен (systemd, upstart) орындалатын конфигурация файлдарынан тұрады. Init белгілі деңгейлерге (sysv, bsd) немесе мақсаттарға (systemd) ие, олардың әрқайсысы белгілі бір қызметтер жиынтығынан (демондардан) тұрады. Бұлар әр түрлі жұмыс істемейтін жүйелік қызметтер мен құрылымдарды ұсынады және пайдаланушы ортасын қалыптастырады. Әдеттегі сервер ортасы веб-серверді, мәліметтер базасының қызметтерін және желіні бастайды.
  5. Типтік жұмыс үстелі ортасы дисплей менеджері деп аталатын демонтпен басталады, ол графикалық серверден тұрады, ол графикалық серверден тұрады, ол негізгі графикалық стек пен тіркелгі деректерін енгізу және сеансты таңдау мүмкіндігін қамтамасыз ететін кіру менеджерінен тұрады. Пайдаланушы дұрыс тіркелгі деректерін енгізгеннен кейін сессия менеджері сессияны бастайды. Сеанс дегеніміз - интерфейстің элементтері (панельдер, жұмыс үстелдері, апплеттер және т.б.) сияқты жұмыс үстелінің толық ортасын құра алатын бағдарламалар жиынтығы.

Өшіру кезінде init барлық пайдаланушы кеңістігінің функциясын басқарылатын әдіспен жабуға шақырылады. Барлық басқа процестер аяқталғаннан кейін, init а жасайды жүйелік қоңырау жүйені өшіруді бұйыратын ядроға дейін.

Жүктеуші фазасы

Жүктеуші кезеңі компьютер архитектурасына байланысты өзгереді. Алдыңғы фазалар операциялық жүйеге тән болмағандықтан, BIOS-қа негізделген жүктеу процесі x86 және x86-64 сәулет өнері басталған болып саналады негізгі жүктеу жазбасы (MBR) коды орындалады нақты режим және бірінші кезең жүктеуші жүктелді. Жылы UEFI жүйелер, Linux ядросы UEFI микробағдарламасымен тікелей EFISTUB арқылы орындалуы мүмкін[1], бірақ әдетте қолданыңыз GRUB 2 жүктеуші ретінде. Төменде кейбір танымал жүктеушілердің қысқаша мазмұны келтірілген:

  • GRUB 2 GRUB 1-ден әртүрлі операциялық жүйелерді автоматты түрде анықтауға және автоматты конфигурациялауға қабілеттілігімен ерекшеленеді. 1-кезең жүктеліп, орындалады BIOS бастап Негізгі жүктеу жазбасы (MBR). Аралық сатылы тиегіш (кезең1.5, әдетте Бөлімді жүктеу жазбасы немесе PBR) 1-ші жүктеуші арқылы жүктеледі және орындалады. Екінші сатыдағы жүктеуші (кезең2, / жүктеу / grub / файлдар) кезең1.5 жүктеледі және GRUB іске қосу мәзірін көрсетеді, бұл пайдаланушыға операциялық жүйені таңдауға немесе іске қосу параметрлерін тексеруге және өңдеуге мүмкіндік береді. Мәзір жазбасы таңдалғаннан кейін және қосымша параметрлер берілгеннен кейін GRUB ядроны жадқа жүктейді және оған басқаруды береді. GRUB 2 сонымен қатар басқа жүктеушіге тізбектей жүктеуге қабілетті. Жылы UEFI жүйелер, кезең1 және кезең1.5 әдетте бірдей UEFI қолданба файлы болып табылады (мысалы, grubx64.efi үшін x64 UEFI жүйелері).
  • SYSLINUX / ISOLINUX - бұл FAT файлдық жүйелерінен толық Linux қондырғыларын жүктеуге мамандандырылған жүктеуші. Ол көбінесе дискеттерді жүктеу немесе құтқару үшін қолданылады, тірі USB, және басқа жеңіл жүктеу жүйелері. ISOLINUX әдетте Linux-те қолданылады тірі CD және жүктелетін компакт-дискілер.
  • rEFInd, жүктеуші UEFI жүйелер.
  • негізгі жүктеу бағдарламасын еркін жүзеге асыру болып табылады UEFI немесе BIOS және әдетте жүйелік тақта, егер қажет болса, жеткізуші ұсынған өрісті жаңарту. Негізгі жүктеудің бөліктері BIOS жүйесіне айналады және жүктелгеннен кейін жадта тұрақты болып қалады.
  • Das U-Boot кіріктірілген жүйелер үшін жүктеуші болып табылады. Бұл BIOS / UEFI жоқ жүйелерде қолданылады, бірақ жүктеушіні жадқа оқып, оны орындау үшін арнайы әдістер қолданылады.

Тарихи жүктеушілер, қазіргі кезде ескі жүйелерден басқа кең таралған емес

  • ЛИЛО файл жүйесінің орналасуын түсінбейді немесе талдамайды. Оның орнына конфигурация файлы (/etc/lilo.conf) тірі жүйеде құрылады, ол ядро ​​мен қошқар дискілерінің (initrd немесе initramfs) орналасуы туралы шикі офсеттік ақпаратты (карта құралы) бейнелейді. Жүктеу сияқты деректерді қамтитын конфигурация файлы бөлім және ядро әрқайсысына арналған жол атауы, сонымен қатар қажет болса, теңшелген параметрлер де жүктеуші кодымен бірге MBR Bootsector-де жазылады. Бұл жүктегіш BIOS арқылы оқылғанда және оған басқару берілгенде, LILO мәзір кодын жүктейді және оны сызады, содан кейін Linux ядросын есептеу және жүктеу үшін пайдаланушының енгізуімен бірге сақталған мәндерді пайдаланады немесе тізбекті жүктеме кез келген басқа жүктеуші.
  • GRUB 1 өзінің конфигурация файлына қол жеткізу үшін жалпы файлдық жүйелерді жұмыс уақытында оқудың логикасын қамтиды.[2] Бұл GRUB 1-ге оның конфигурация файлын MBR-ге енгізілгеннен гөрі файлды оқуға мүмкіндік береді, бұл оған конфигурацияны жұмыс уақытында өзгертуге мүмкіндік береді және дискілер мен бөлімдерді ығысуларға сүйенбей, адам оқитын форматта көрсетеді. Оның құрамында а командалық интерфейс, бұл GRUB қате конфигурацияланған немесе бүлінген болса, оны түзетуді немесе өзгертуді жеңілдетеді.[3]
  • Loadlin жұмыс істеп тұрғанды ​​ауыстыра алатын жүктеуші DOS немесе Windows 9x жұмыс уақытында Linux ядросымен бірге ядро. Бұл бағдарламалық жасақтама арқылы қосылуы қажет және мұндай конфигурация бағдарламалары меншікті болып табылатын және тек DOS үшін қол жетімді болатын аппараттық құралдар үшін пайдалы болуы мүмкін. Қазіргі уақытта бұл жүктеу әдісі онша қажет емес, өйткені Linux-те көптеген аппараттық құрылғылардың драйверлері бар, бірақ ол кейбір қолданыста болған мобильді құрылғылар. Басқа жағдай - Linux жүктеу үшін BIOS үшін қол жетімді емес сақтау құрылғысында орналасқан: DOS немесе Windows BIOS шектеулерін өтеу үшін тиісті драйверлерді жүктей алады және Linux-ты сол жерден жүктей алады.

Ядро фазасы

The ядро сияқты операциялық жүйенің барлық процестерін басқарады, мысалы жадыны басқару, міндет жоспарлау, Енгізу / шығару, процессаралық байланыс және жалпы жүйені басқару. Бұл екі кезеңде жүктеледі - бірінші кезеңде ядро ​​(қысылған кескін файлы ретінде) жадқа жүктеліп, декомпрессияланады және негізгі жадыны басқару сияқты бірнеше іргелі функциялар орнатылады. Содан кейін басқару ядролардың басталу процесіне соңғы рет ауыстырылады. Ядро толық іске қосылғаннан кейін - және оны іске қосу шеңберінде, жүктеу және орындау кезінде ядро ​​оны іздейді init процесі (бөлек) пайдаланушы кеңістігін және пайдаланушы ортасы мен соңғы кіруге қажетті процестерді орнататын іске қосу үшін. Содан кейін ядроның өзі басқа процестердің қоңырауларына байланысты бос жүруге рұқсат етіледі.

Кейбір платформалар үшін (мысалы, ARM 64-биттік) ядро ​​декомпрессиясын жүктеуші жүктеуші орындауы керек.

Ядроны жүктеу кезеңі

Ядро әдетте екеуіне де қысылған кескін файлы ретінде жүктеледі zImage немесе bzImage форматтары zlib. Оның басындағы күнделікті жұмыс аппараттық құралдарды орнатудың минималды мөлшерін жасайды, кескінді толықтай декомпрессиялайды жоғары жады, және кез келгенін ескереді ЖЖҚ дискісі егер конфигурацияланған болса.[4] Содан кейін ол арқылы ядро ​​іске қосылады ./arch/i386/boot/head және startup_32 () (x86 негізделген процессорлар үшін) процесс.

Ядроны іске қосу кезеңі

Ядроға арналған іске қосу функциясы орнатылады (свопер немесе 0 процесі деп те аталады) жадыны басқару (пейджингтік кестелер және жадтық пейджинг), типін анықтайды Орталық Есептеуіш Бөлім сияқты кез-келген қосымша функционалдылық өзгермелі нүкте мүмкіндіктері бар, содан кейін қоңырау арқылы архитектуралық емес Linux ядросының функционалдығына ауысады start_kernel ().[5]

start_kernel инициализация функциясының кең ауқымын орындайды. Ол орнатады үзілістерді өңдеу (IRQ ), одан әрі жадты конфигурациялайды, Init процесін бастайды (бірінші пайдаланушы кеңістігі процесі), содан кейін бос тапсырманы бастайды cpu_idle (). Ядроны іске қосу процесі де орнатылады бастапқы RAM дискісі («initrd») жүктеу кезеңінде уақытша түбірлік файл жүйесі ретінде бұрын жүктелген. Initrd драйвер модульдерін басқа құрылғыларға (мысалы, қатты дискке) және оларға қол жеткізу үшін қажетті драйверлерге (мысалы, SATA драйвері) сенім артпай, жадтан тікелей жүктеуге мүмкіндік береді. Кейбір драйверлердің ядроларға статикалық түрде жинақталған бөлінуі және initrd-ден жүктелген басқа драйверлер кішірек ядроға мүмкіндік береді. Түбірлік файлдық жүйе кейінірек қоңырау арқылы ауысады pivot_root () ол уақытша түбірлік файлдық жүйені ажыратады және оны шынымен қолдана алады, соңғысы қол жетімді болғаннан кейін. Содан кейін уақытша түбірлік файлдық жүйеде қолданылатын жады қалпына келтіріледі.

Осылайша, ядро ​​құрылғыларды инициализациялайды, жүктеу жүктеушісі көрсеткен түбірлік файл жүйесін орнатады тек оқу, және жүгіреді Ішінде (/ sbin / init) жүйемен басқарылатын бірінші процесс ретінде белгіленеді (PID = 1).[6] Хабар файлдық жүйені орнатқаннан кейін ядро ​​арқылы және Init процесін бастағаннан кейін Init арқылы басылады. Ол сонымен қатар қалауы бойынша іске қосылуы мүмкін Initrd[түсіндіру қажет ] орнату және құрылғыға қатысты мәселелерге рұқсат беру (ЖЖҚ дискісі немесе ұқсас) түбірлік файлдық жүйе орнатылмай тұрып өңделуі керек.[6]

Сәйкес Қызыл қалпақ, осы кезеңде ядроның егжей-тегжейлі процесі келесідей қорытылады:[2]

«Ядро жүктелген кезде ол дереу компьютердің жадын инициализациялайды және конфигурациялайды және жүйеге бекітілген әр түрлі жабдықты, соның ішінде барлық процессорларды, енгізу-шығару ішкі жүйелерін және сақтау құрылғыларын конфигурациялайды. Содан кейін алдын-ала анықталған жерден қысылған инитрд суретін іздейді жадында, оны босатады, орнатады және барлық қажетті драйверлерді жүктейді, содан кейін файлдық жүйеге қатысты виртуалды құрылғыларды іске қосады, мысалы. LVM немесе бағдарламалық жасақтама RAID initrd ажыратпас бұрын диск кескіні және дискінің кескінін жадыдан босату. Содан кейін ядро ​​түбірлік құрылғы жасайды,[түсіндіру қажет ] тек оқуға арналған түбірлік бөлімді орнатады және пайдаланылмаған жадты босатады. Осы кезде ядро ​​жадқа жүктеледі және жұмыс істейді. Алайда жүйеге мағыналы енгізуге мүмкіндік беретін қолданушы қосымшалары болмағандықтан, онымен көп нәрсе істеу мүмкін емес. «Initramfs стиліндегі жүктеу сипатталған initrd жүктеуімен ұқсас, бірақ ұқсас емес.

Осы сәтте үзілістер қосылып, жоспарлаушы жүйенің жалпы басқаруын басқара алады, алдын-ала бірнеше тапсырмаларды қамтамасыз етеді және инициативті процесс пайдаланушы кеңістігінде пайдаланушы ортасын жүктеуді жалғастырады.

Ерте пайдаланушы кеңістігі

initramfs, сондай-ақ ерте пайдаланушы кеңістігі, Linux ядросының 2.5.46 нұсқасынан бастап қол жетімді,[7] бұрын ядро ​​іске қосу процесінде орындайтын мүмкіндігінше көп функцияларды ауыстыру мақсатында. Ерте пайдаланушы кеңістігін типтік қолдану нені анықтау болып табылады құрылғы драйверлері негізгі пайдаланушы кеңістігінің файлдық жүйесін жүктеу және оларды a-дан жүктеу үшін қажет уақытша файлдар жүйесі. Көптеген таратылымдар қолданылады дракут initramfs кескінін қалыптастыру және қолдау.

Бастау процесі

Ядро іске қосылғаннан кейін, ол бастау процесін бастайды. Тарихи тұрғыдан бұл «инит» деп аталған «SysV init» болды. Жақында Linux дистрибутивтері «systemd» сияқты қазіргі заманғы баламалардың бірін қолдануы мүмкін.

Негізінен, бұлар ретінде топтастырылған операциялық жүйені сервистік басқару.

SysV бастамасы

init - жүйедегі барлық процестердің ата-анасы, оны ядро ​​орындайды және барлық басқа процестерді бастауға жауап береді; бұл ата-анасы қайтыс болған барлық процестердің ата-анасы және олар қайтыс болғаннан кейін оны жинауға жауапты. Init басқаратын процестер жұмыс деп аталады және файлдармен анықталады / etc / init анықтамалық.

— Init арналған нұсқаулық беті[8]

Иниттің міндеті - «бәрін сол күйінде жүргізу»[9] ядро толық іске қосылғаннан кейін. Негізінде ол тұтасты орнатады және жұмыс істейді пайдаланушы кеңістігі. Бұған тексеру және монтаждау кіреді файлдық жүйелер, қажетті пайдаланушы қызметтерін іске қосу және ақыр соңында жүйені іске қосу аяқталғаннан кейін пайдаланушы ортасына ауысу. Бұл ұқсас Unix және BSD init процестері, олардан шыққан, бірақ кейбір жағдайларда әр түрлі немесе теңшелген. Стандартты Linux жүйесінде Init а деп аталатын параметрмен орындалады деңгей, бұл 0-ден 6-ға дейінгі мәнді қабылдайды және қандай ішкі жүйелерді жұмыс істеуге болатындығын анықтайды. Әр деңгейдің өз деңгейлері бар сценарийлер берілген деңгейді орнатуға немесе қалдыруға байланысты әр түрлі процестерді кодтайтын және жүктеу процесінде осы сценарийлерге сілтеме жасалады. Init сценарийлері әдетте атаулары бар каталогтарда сақталады «/ etc / rc ...». Init үшін ең жоғары деңгейлі конфигурация файлы / etc / inittab.[9]

Жүйені жүктеу кезінде ол әдепкі деңгейдің / etc / inittab-де көрсетілгендігін тексереді және іске қосу деңгейіне кіруді сұрайды жүйелік консоль Егер болмаса. Содан кейін жүктеуді қоса, берілген деңгейге арналған барлық тиісті жүктеу сценарийлері іске қосылады модульдер, түбірлік файлдық жүйенің тұтастығын тексеріп (тек оқу үшін орнатылған), содан кейін оны оқуға-жазуға толық қол жетімділік үшін қайта санап, желі.[6]

Ол көрсетілген процестердің барлығын тудырғаннан кейін, ұйықтап қалады және үш оқиғаның біреуінің болуын күтеді: аяқталу немесе өлу процестері, электр қуатының өшуі туралы сигнал,[түсіндіру қажет ] немесе арқылы сұрау / sbin / telinit деңгейлерді одан әрі өзгерту үшін.[8]

Бұл қатысты SysV -style init.

жүйелік

Systemd-ді жасаушылар UNIX System V және Berkeley Software Distribution (BSD) операциялық жүйелерінен мұраға қалған Linux init жүйесін ауыстыруды мақсат етті. Init сияқты, systemd - бұл басқа демондарды басқаратын демон. Барлық демондар, соның ішінде systemd, болып табылады фондық процестер. Systemd - бірінші басталатын демонс (жүктеу кезінде) және аяқталатын соңғы демон (ішінде) жабу ).

Ленарт Потеринг және Кей Сиверс, бастапқыда systemd дамыған бағдарламалық жасақтама инженерлері,[10] инициондық демонның тиімділігін бірнеше жолмен асыруға ұмтылды. Олар тәуелділікті білдіруге арналған бағдарламалық жасақтаманы жетілдіріп, көбірек өңдеуге мүмкіндік беруді қалады параллель жүйені жүктеу кезінде және азайту үшін есептеу үстеме ақысы туралы қабық.

Әр демонға арналған Systemd инициализациясы нұсқаулары қабықшалы сценарийге емес, декларативті конфигурация файлына жазылады. Үшін процесаралық байланыс, systemd жасайды Unix домен ұялары және D-автобус жұмыс істеп тұрған демондарға қол жетімді. Systemd сонымен қатар агрессивті параллелизацияға қабілетті.

Іске қосу

Дәстүрлі init процесі бастапқыда компьютерді қосқаннан кейін қалыпты жұмыс күйіне келтіруге немесе өшірілмес бұрын қызметтерді өшіруге ғана жауапты болды. Нәтижесінде дизайн қатаң синхронды, бұғаттау ағымдағы аяқталғанға дейінгі болашақ міндеттер. Оның міндеттері де алдын-ала анықталуы керек, өйткені олар осы дайындық немесе тазарту функциясымен шектеледі. Бұл оны заманауи жүйеде әртүрлі стартап емес тапсырмаларды орындай алмауына әкеледі жұмыс үстелі.

Upstart асинхронды түрде жұмыс істейді; ол жүктеу кезінде тапсырмалар мен қызметтердің басталуын және оларды өшіру кезінде тоқтатуды басқарады, сонымен қатар жүйе жұмыс істеп тұрған кезде тапсырмалар мен қызметтерді бақылайды.

Жеңіл өту және мінсіз кері үйлесімділік сисвинитпен жобалаудың айқын мақсаттары болды;[11] сәйкесінше, Upstart өзгертілмеген ссвиниттік сценарийлерді іске қосуы мүмкін. Осылайша, ол көптеген басқа ауыстырулардан ерекшеленеді (systemd және OpenRC ), олар әдетте дұрыс жұмыс істеуге толық ауысуды болжайды және талап етеді және дәстүрлі және жаңа іске қосу әдістерінің аралас ортасын қолдамайды.[12]

Upstart көптеген немесе күрделі оқиғаларды біріктіру үшін қолданушы, жалғыз оқиғалар немесе оқиға көпірлерін енгізу үшін initctl көмегімен оқиға моделін кеңейтуге мүмкіндік береді.[13] Әдепкі бойынша, Upstart socket, dbus, udev, file және dconf оқиғаларына арналған көпірлерді қамтиды; қосымша, көпірлер (мысалы, а Мах порт көпірі немесе девд (табылған FreeBSD жүйелер) көпір) мүмкін.[14]

рунит

Runit - бұл іске қосатын Unix тәрізді операциялық жүйелерге арналған схема, жетекшілік етеді, және бүкіл операциялық жүйеде процестерді аяқтайды. Бұл демонт[15] Linux, Mac OS X, * BSD және Solaris операциялық жүйелерінде жұмыс істейтін процедураларды бақылау құралдары. Runit операциялық жүйенің жүктелу уақытын жеделдете алатын жүйелік қызметтерді іске қосудың параллельдеуімен ерекшеленеді.[16]

Рунит - инит демоны, сондықтан ол тікелей немесе жанама арғы ата барлық басқа процестер. Бұл жүктеу кезінде басталған бірінші процесс және жүйе өшірілгенге дейін жұмысын жалғастырады.

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «EFI түпнұсқасы - Gentoo Wiki». wiki.gentoo.org. Алынған 2020-11-02.
  2. ^ а б «Өнім туралы құжаттама». Redhat.com. 2013-09-30. Алынған 2014-01-22.
  3. ^ «Өнім туралы құжаттама». Redhat.com. 2013-09-30. Алынған 2014-01-22.
  4. ^ «IBM Linux жүктеу процесінің сипаттамасы». Түпнұсқадан мұрағатталған 31 мамыр 2008 ж. Алынған 2007-04-03.CS1 maint: BOT: түпнұсқа-url күйі белгісіз (сілтеме)
  5. ^ «Linux жүктеу процесінің ішінде». www.ibm.com. 31 мамыр 2006 ж.
  6. ^ а б c http://oldfield.wattle.id.au/luv/boot.html Linux жүктеу процесі - Ким Олдфилд (2001)
  7. ^ «Инитрамфтар келеді». Алынған 14 қараша 2011.
  8. ^ а б «ішінде». man.he.net.
  9. ^ а б «Қуаттан бастап жедел шақыруға: бастам». пайдаланушылар.cecs.anu.edu.au.
  10. ^ «systemd README». freedesktop.org. Алынған 2012-09-09.
  11. ^ «Іске қосу», Падты іске қосыңыз, Ubuntu
  12. ^ «Upstart жобасын және іске асыруды талқылау», Ubuntu Wiki, Canonical
  13. ^ «initctl шығаруы». The Upstart Cookbook. Канондық. Алынған 26 қаңтар 2014.
  14. ^ «Көпірлер». The Upstart Cookbook. Канондық. Алынған 26 қаңтар 2014.
  15. ^ Purcell, Стив (2007-11-11). «Сценарийлер зиянды деп саналады». sanityinc.com. Алынған 12 желтоқсан 2013.
  16. ^ Пейп, Геррит. «рунит - артықшылықтар». Алынған 23 сәуір 2013.

Сыртқы сілтемелер