Coreboot - Coreboot

негізгі жүктеу
Ақ-қара түсті жүгіретін қоянның суреті «sans-serif» шрифтімен «coreboot» мәтінінің үстінде
Түпнұсқа автор (лар)Рональд Миннич, Эрик Бидерман, Ли-Та (Олли) Ло, Стефан Рейнауэр және негізгі қоғам
Бастапқы шығарылым1999; 21 жыл бұрын (1999)
Тұрақты шығарылым
4.12 / 12 мамыр 2020; 6 ай бұрын (2020-05-12)[1]
Репозиторий Мұны Wikidata-да өңдеңіз
ЖазылғанКөбіне C, және шамамен 1% құрастыру. Таңдау бойынша Ада
ПлатформаIA-32, x86-64, ARMv7,[2] ARMv8, MIPS, RISC-V, POWER8
ТүріМикробағдарлама
ЛицензияGPLv2[3]
Веб-сайтwww.coreboot.org Мұны Wikidata-да өңдеңіз

негізгі жүктеу, бұрын белгілі LinuxBIOS,[4] - меншікті ауыстыруға бағытталған бағдарламалық жасақтама жобасы микробағдарлама (BIOS немесе UEFI ) көптеген компьютерлерде заманауи жүктеу және іске қосу үшін қажетті минималды тапсырмаларды орындауға арналған жеңіл микробағдарламалық жасақтама бар 32 бит немесе 64 бит операциялық жүйе.

Coreboot бос жабдықты баптандыратын болғандықтан, оны әрқайсысына тасымалдау керек чипсет және аналық плата ол қолдайды. Нәтижесінде coreboot тек шектеулі сандық аппараттық платформалар мен аналық платалар үшін қол жетімді.

Негізгі нұсқалардың бірі - болып табылады Libreboot, толығымен босатылуға бағытталған негізгі жүктеу нұсқасы меншіктік блоктар.

Тарих

Негізгі жүктеу жобасы 1999 жылдың қысында, жетілдірілген есептеу зертханасында басталды Лос-Аламос ұлттық зертханасы (LANL),[5]тез басталатын және қателіктерді ақылды түрде басқаратын BIOS құру мақсатында.[6] Шарттары бойынша лицензияланған GNU жалпыға ортақ лицензиясы (GPL). Негізгі салымшылар жатады LANL, SiS, AMD, Жүйелер және Linux Networx, Inc, сондай-ақ аналық платаларды сатушылар MSI, Гигабайт және Тян, стандартты BIOS-мен қатар негізгі жүктеуді ұсынады немесе кейбір аналық платаларға арналған жабдықтық интерфейстердің сипаттамаларын ұсынады. Google ішінара негізгі жүктеу жобасына демеушілік жасайды.[7] CME тобы, кластері фьючерстік биржалар, негізгі жүктеу жобасын 2009 жылы қолдай бастады.[8]

coreboot қатарынан жеті жылда қабылданды (2007–2014) Google Summer of Code.[9][10] Алғашқы үш модельден басқалары, барлығы Chromebooks coreboot іске қосыңыз.[11][12] Бастап код Das U-Boot негізіндегі процессорларға қолдау көрсету үшін ассимиляцияланған ARM нұсқаулар жинағы.[13]

2019 жылдың маусымында Coreboot қолданбасын қолдана бастады NSA бағдарламалық жасақтама Гидра ол үшін кері инженерия күш микробағдарламаға арналған келесі мәселелер ашық кодты шығару бағдарламалық жасақтама жиынтығы.[14]

Қолдау көрсетілетін платформалар

Негізгі жүктеу қолдайтын CPU архитектурасына кіреді IA-32, x86-64, ҚОЛ, ARM64, MIPS және RISC-V. Қолдау көрсетіледі чипке арналған жүйе (SOC) платформаларына AMD кіреді Геодезия, Geode GX процессорынан бастап OLPC. Artec Group Geode LX қолдауын қосты Жіңішке DBE61 моделі; бұл код AMD қабылдады және Geode LX платформасына жаңартылғаннан кейін OLPC үшін одан әрі жетілдірілді және басқа Geode нұсқаларын қолдау үшін негізгі жүктеу қауымдастығы одан әрі дамытады. Coreboot-ті Geode платформасында қолдануға болады Flashrom.

AMD Geode негізіндегі платформалардағы алғашқы дамудан бастап көптеген AMD процессорлары мен чипсеталарына негізгі жүктеуді қолдау кеңейтілді. Процессорлар тізіміне 0Fh және 10h (K8 негізгі), ал жақында 14 сағаттық отбасы (Бобкат негізгі, Біріктіру АПУ ). coreboot қолдауы AMD чипсеталарына де таралады: RS690, RS7xx, SB600, және SB8xx.

AMD Generic Encapsulated Бағдарламалық Архитектурасы (АГЕСА ) ‍ — ‌a жүктеу AMD64 платаларындағы жүйелік құрылғылар инициализацияланатын хаттама - 2011 жылдың басында AMD64 аппараттық құралында coreboot жүйесін инициализациялау үшін қажетті функционалдылықты қамтамасыз ету мақсатында ашылды.[15] Алайда, мұндай шығарылымдар ешқашан AMD дамуының негізі болмады және кейіннен тоқтатылды.[16]

Алдын ала coreboot немесе оның туындыларымен жүктелетін құрылғыларға x86 негізіндегі кейбір құрылғылар кіреді Chromebooks,[17][18] Libreboot X200 және T400 (сәйкесінше ThinkPad X200 және T400 брендтері өзгертілген, олар Minifree-ден бұрын Gluglug деп аталған),[19][20] OLPC XO бастап Бір балаға бір ноутбук бастама, Жіңішке DBE61, DBE62 және DBE63 модельдері және желдеткішсіз жасалған сервер / маршрутизатордың жабдықтары ДК қозғалтқыштары.[21] Барлық Либрем ноутбуктер coreboot-пен бірге жеткізіледі.[22] [23]

Кейбіреулер Жүйе76 Дербес компьютерлерде TianoCore бағдарламалық жасақтамасының негізгі көзі, соның ішінде ашық көзі қолданылады Кіріктірілген контроллер микробағдарлама.

Дизайн

coreboot әдетте жүктейді a Linux ядросы, бірақ ол кез келгенін жүктей алады дербес ELF сияқты орындалатын iPXE, gPXE немесе Linux ядросын жүктей алатын Etherboot желі арқылы, немесе SeaBIOS[24] Linux ядросын жүктей алатын, Microsoft Windows 2000 және одан кейінгі нұсқалар, және BSD (бұрын Windows 2000 / XP және OpenBSD қолдауы ADLO ұсынған[25][26]). coreboot сонымен қатар Myrinet, Quadrics немесе SCI сияқты кез-келген қолдайтын құрылғыдан ядро ​​жүктей алады кластер өзара байланысты. Басқа жүктеу ядролар тікелей мүмкін, мысалы, а Жоспар 9 ядро. Тікелей ядро ​​жүктеудің орнына coreboot басқаруды арнайы жүктеушіге бере алады, мысалы, coreboot қолданыстағы нұсқасы GNU GRUB 2.

coreboot бірінші кезекте жазылады C, аз мөлшерде құрастыру коды. Негізгі бағдарламалау тілі ретінде С-ны таңдау жеңілдетеді код аудиті жалпы жинақта жазылған заманауи компьютерлік BIOS-пен салыстырғанда,[27] нәтижесінде қауіпсіздік жақсарады. Негізгі жүктеудің бөліктерін жазуға арналған құрастыру және жұмыс уақыты қолдауы бар Ада[28] қауіпсіздік жолағын одан әрі көтеру үшін, бірақ ол қазіргі уақытта сирек қолданылады. Бастапқы код. Астында шығарылады GNU GPL нұсқасы 2 лицензия.

coreboot аппараттық инициализацияның абсолютті минималды мөлшерін орындайды, содан кейін басқаруды операциялық жүйе. Нәтижесінде, амалдық жүйе бақылауды алғаннан кейін жұмыс істейтін негізгі код жоқ. Негізгі жүктеудің ерекшелігі мынада x86 нұсқасы іске қосылады 32 бит тек он нұсқауды орындағаннан кейінгі режим[29] (барлық дерлік x86 BIOS тек қана жұмыс істейді) 16 бит режимі). Бұл қазіргі заманға ұқсас UEFI микробағдарлама, ол жаңа компьютерлік жабдықта қолданылады.

Өздігінен, coreboot қамтамасыз етпейді BIOS қоңырауы қызметтер. ТеңізBIOS пайдалы жүктеме BIOS қоңырауларын қамтамасыз ету үшін қолданыла алады және осылайша coreboot жүктеуге мүмкіндік береді операциялық жүйелер Windows 2000 / XP / Vista / 7 және BSD сияқты қызметтер қажет. Алайда, қазіргі заманғы операциялық жүйелердің көпшілігі аппараттық құралдарға басқа тәсілмен қол жеткізеді және BIOS қоңырауларын тек ерте инициализация кезінде және резервтік механизм ретінде пайдаланады.

негізгі жүктеу кезеңдері

  1. Жүктеуді блоктау кезеңі: Flash-ке қол жеткізуге дайындалып, пайдалану үшін ROM кезеңін іздеңіз
  2. ROM кезеңі: жады және ерте чипсет иниті (UEFI-дегі PEI сияқты)
  3. ЖЖҚ кезеңі: Тамыр кешені немесе PCI хост көпірі init, PCI құрылғыларын санау және ресурстарды тағайындау, ACPI кестесін құру, SMM өңдегіші (UEFI-дегі DXE сатысы сияқты)
  4. Пайдалы жүктеме.

DRAM инициализациясы

Бастапқы жүктеуді іске қосатын ең қиын жабдық DRAM контроллері және DRAM. Кейбір жағдайларда, осы тақырып бойынша техникалық құжаттама болып табылады NDA шектеулі немесе қол жетімді емес. RAM-ті инициализациялау әсіресе қиын, себебі жедел жадты инициализацияламас бұрын оны пайдалану мүмкін емес. Сондықтан, DRAM контроллерлерін және DRAM-ді инициализациялау үшін инициализациялау кодында тек CPU процессорлары болуы мүмкін жалпы мақсаттағы регистрлер немесе жедел жад ретінде уақытша сақтау орны ретінде.

ромк, а C құрастырушы ЖЖҚ орнына регистрлерді қолданатын, тапсырманы жеңілдетеді. Romcc-ті қолдану салыстырмалы түрде оңай SMBus қол жетімділік SPD DRAM дискілері DIMM, бұл жедел жадты пайдалануға мүмкіндік береді.

Жаңа x86 процессорларымен процессордың кэшін DRAM инициализациясы болғанша жедел жад ретінде пайдалануға болады. Процессордың кэшін жедел жад ретінде жеделдету керек[30][31] режимі де, бірақ бұл DRAM инициализациясына қарағанда азырақ нұсқауларды қажет етеді. Сондай-ақ, жедел-жад режимінде инициализация процессордың архитектурасына тән, осылайша әр чипсет пен аналық платаға тән DRAM инициализациясына қарағанда жалпы.

Көптеген заманауи x86 платформаларында DRAM қондырғысы үшін жеткізуші ұсынатын тек жабық көзді екілік компоненттер қолданылады. Intel жүйелері үшін FSP-M қажет,[32] ал AMD-де қазіргі қолдау жоқ. Binary AGESA қазіргі уақытта AMD жүйелеріндегі меншікті UEFI микробағдарламасы үшін қолданылады және бұл модель болашақ AMD-мен байланысты кез келген негізгі жүктеу қолдауына өтеді деп күтілуде.[33]

Негізгі жүктеуді өңдеу және түзету

Денвер-2008 саммитіндегі негізгі жүктемені бұзу.

Негізгі жүктеу бос жабдықты баптандыруы керек болғандықтан, оны әрқайсысына тасымалдау керек чипсет және аналық плата ол қолдайды. Инициализациядан бұрын Жедел Жадтау Құрылғысы, coreboot инициализациялайды сериялық порт (тек кэш пен регистрлердің мекен-жайы), сондықтан ол мәтінді жалғанғанға жібере алады Терминал. Сондай-ақ, ол 0x80 портына байт кодтарын жібере алады, олар жалғанған екі алтылық санды дисплейде көрсетіледі Пошта картасы.

Тасымалдаудың тағы бір құралы www.ioss.com.tw сайтынан алынған коммерциялық «RD1 BIOS Savior» өнімі болды (АҚШ-тың ОСЭК-тің ведомствоаралық қолдау қызметімен www.iad.gov/ioss/ мекен-жайы бойынша шатастыруға болмайды), ол екі жүктеу жадының тіркесімі болды. жүктеу жадының ұясына қосылатын және екі құрылғы арасында таңдау үшін қолмен қосқышы бар құрылғылар. Компьютер бір құрылғыдан жүктелуі мүмкін, содан кейін ауыстырғышты ауыстырып қосуға болады, бұл компьютерге қайта бағдарламалауға немесе екінші құрылғыны «жыпылықтауға» мүмкіндік береді. Неғұрлым қымбат балама сыртқы болып табылады EEPROM /NOR жарқылы бағдарламашы.

Сондай-ақ, процессор бар эмуляторлар ауыстырады Орталық Есептеуіш Бөлім немесе a арқылы қосылыңыз JTAG Sage SmartProbe көмегімен порт[34] үлгі болу. Кодты BIOS құрылғысын жыпылықтаудан гөрі, эмуляторларға орнатуға немесе жүктеуге болады.

Пайдалы жүктемелер

Lenovo-да жұмыс жасайтын SeaBIOS пайдалы жүктемесі ThinkPad X60

coreboot пайдалы жүктемені жүктей алады, оны қолдану арқылы жазылуы мүмкін lipaypayload көмекші кітапхана. Қолданыстағы пайдалы жүктемелерге мыналар жатады:

  • SeaBIOS, x86 BIOS-тің кішкентай орындалуы, негізінен 16 биттік түрінде жазылған C пайдаланып GNU C компиляторы
  • TianoCore, ақысыз және ашық көзді іске асыру UEFI[35]
  • OpenBIOS, ақысыз және ашық көзді жүзеге асыру Микробағдарламаны ашыңыз
  • GNU GRUB, жүктеуші
  • USB жүктеуді қолдайтын GRUB-қа ұқсас жүктеуші - FILO
  • Etherboot, ол амалдық жүйені желі арқылы жүктей алады
  • gPXE /iPXE, Etherboot мұрагері SeaBIOS немесе TianoCore астында жұмыс жасағанда жұмыс істейді
  • Depthcharge Google үшін қолданылады Chrome OS[36]
  • Тармақ Das U-Boot үшін Google қолданды Chromium OS баяғыда[37]

Coreboot Еуропалық конференциясы

Бір физикалық кездесу - 2017 жылдың қазан айында ұйымдастырылған және 3 күнге созылған Еуропалық Coreboot конференциясы.

Конференция тарихы

Іс-шара және жылКүніҚабылдаушы қалаӨтетін орныРесурстарТақырыптар
ECC201726.10. – 29.10Бохум, ГерманияRUB Конгресс орталығыhttps://ecc2017.coreboot.org/

Нұсқалар

coreboot-тың бастапқы кодтық базасынан бірнеше нұсқалары бар, олардың әрқайсысы әр түрлі мақсаттарға ие:

  • librecore - көп назар аударатын нұсқа Бостандық, x86 емес нұсқаулар жинағы компьютерлер және микробағдарламалық жасақтама құрылымы.
  • Libreboot - Барлық екілік блоктарды жоюға арналған негізгі фокусты нұсқа.

Libreboot меншікті жүктеуді тарату ретінде орнатылған екілік блоктар.[38][39] Libreboot тікелей емес шанышқы негізгі жүктеу; орнына, бұл параллель күш болып табылады және тығыз жұмыс істейді қайта негіздер мүмкіндігінше ағынға дейін біріктірілген патчтармен, соңғы ағынмен жеткізуші ретінде жиі. Libbreboot меншікті бағдарламалық жасақтаманы алып тастаумен қатар, құрастыру және орнату процестерін автоматтандыру арқылы coreboot-ті қолдануға ыңғайлы етуге тырысады.[40]

Libreboot жобасы кейбіреулерінің толық нұсқаларына қажетті өзгертулер енгізуге мүмкіндік берді ThinkPad, MacBook және ARM Chromebook ноутбуктер.[41][42]

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

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

  1. ^ «Шығарылымдар». негізгі жүктеу. нд
  2. ^ «ҚОЛ». негізгі жүктеу. 15 қазан 2013 ж. Алынған 1 ақпан 2014.
  3. ^ «coreboot лицензиясы». github.com. 1991. Алынған 13 қазан 2018.
  4. ^ «[LinuxBIOS] coreboot-қа қош келдіңіз». 12 қаңтар 2008 ж.
  5. ^ негізгі жүктеу туралы сұрақтар: Негізгі жүктеуде кім жұмыс істейді?
  6. ^ Антон Борисов: Ашық кодты BIOS - бұл ондық. Негізгі жүктеушілермен сұхбат Мұрағатталды 16 қыркүйек 2012 ж Wayback Machine. H, 2009.
  7. ^ Google LinuxBIOS жобасына демеушілік жасайды
  8. ^ «CME тобы Coreboot және басқа Linux ашық кодтық жобаларына сүңгу». Wall Street & Technology. Архивтелген түпнұсқа 12 тамызда 2010 ж. Алынған 23 қыркүйек 2015.
  9. ^ «GSoC». coreboot.org. Алынған 1 ақпан 2014.
  10. ^ «Алдыңғы GSoC жобалары». coreboot.org. Алынған 1 ақпан 2014.
  11. ^ Ларабел, Майкл (22 сәуір 2012). «FSF-тің көптеген басым жобалары әлі де алға жылжымайды». Phoronix. Алынған 29 желтоқсан 2014. Жақында Coreboot-тің жетістігі - Google Coreboot үшін Sandy / Ivy Bridge қолдауын ұсынады. Google Coreboot пайдаланатын жаңа Intel «Chromebooks» жеткізуді бастауды жоспарлап отыр. Басқа артықшылықтармен қатар, Google Coreboot-ті тезірек іске қосу үшін ұнатады.
  12. ^ «Chromebooks». негізгі жүктеу. 16 қаңтар 2014. мұрағатталған түпнұсқа 2016 жылғы 8 мамырда. Алынған 17 ақпан 2014.
  13. ^ «GSoC2011 (1-апта): U-boot ARM жүктеу кодын талдау | coreboot әзірлеушілерінің блогтары». Алынған 12 сәуір 2014.
  14. ^ «Coreboot жобасы бағдарламалық жасақтаманың кері инженериясына көмектесетін NSA бағдарламалық жасақтамасын қолданады».
  15. ^ «AMD-тің бастапқы жүктелуінің бастапқы кодының техникалық мәліметтері». AMD. 28 ақпан 2011. мұрағатталған түпнұсқа 25 наурыз 2014 ж. Алынған 1 ақпан 2016.
  16. ^ Гриффит, Брюс (5 қараша 2014). «AMD екілік-тек AGESA кітапханалары». Алынған 8 мамыр 2017.
  17. ^ «Қолданылатын аналық платалар - негізгі жүктеме». www.coreboot.org. Алынған 3 сәуір 2017.
  18. ^ «FSF-тің көптеген басым жобалары әлі де алға жылжымайды». Фороникс. 22 сәуір 2012. Алынған 22 қыркүйек 2015.
  19. ^ «Минифри». Алынған 24 қыркүйек 2015.
  20. ^ «Глуглуг». fsf.org. Архивтелген түпнұсқа 23 қыркүйек 2015 ж. Алынған 23 қыркүйек 2015.
  21. ^ «pcengines / coreboot». Алынған 16 қыркүйек 2019.
  22. ^ «Purism Librem құрылғыларындағы негізгі бағдарламалық жасақтама». Алынған 19 маусым 2020.
  23. ^ «Руткиттерден қорғану үшін» бастардың «микробағдарламасын қолдануға арналған пуризм ноутбуктары, бұрмалаушылық (жаңартылған)». Алынған 19 маусым 2020.
  24. ^ SeaBIOS (бұрын LegacyBIOS деген атпен белгілі) - бұл ашық бастапқы коды бар BIOS ендіру
  25. ^ негізгі жүктеу қондырмасы (ADLO) Мұрағатталды 25 қараша 2010 ж Wayback Machine
  26. ^ SEBOS, операциялық жүйелер үшін қауіпсіздікті жақсартылған жүктеуші, 2-кезең Мұрағатталды 19 маусым 2007 ж Wayback Machine, Bochs BIOS арқылы негізгі жүктеуге PC BIOS қызметтерін қосу (сілтеме 2008 жылдың 18 шілдесінде тоқтатылатыны айтылды. қараңыз)
  27. ^ UEFI мен бұрынғы BIOS-ті салыстыру, UEFI үшін дәл осындай артықшылығы бар
  28. ^ міндеттеме бұл қолдауды қосу
  29. ^ «coreboot v3 ерте іске қосу коды». Архивтелген түпнұсқа 2012 жылғы 10 шілдеде. Алынған 17 тамыз 2008.
  30. ^ Инхай Лу; Ли-Та Ло; Уотсон; Григорий Р. Роналд Г. Миннич (15 қаңтар 2009). «CAR: Linux BIOS-та жедел жад ретінде кэшті пайдалану» (PDF). qmqm.pl. Архивтелген түпнұсқа (PDF) 2016 жылғы 3 наурызда. Алынған 25 ақпан 2014.
  31. ^ Процессордың кэшін жедел жад ретінде (CAR) пайдалануға арналған негіз
  32. ^ «Coreboot миссиясы - бұл ашық қайнар көзмен бе немесе жабдық сатушыларын қуанту туралы ма?». Phoronix форумдары. Алынған 8 қыркүйек 2019.
  33. ^ Гриффит, Брюс (5 қараша 2014). «[coreboot] AMD екілік-тек AGESA кітапханалары». Алынған 8 қыркүйек 2019.
  34. ^ Sage Engineering Мұрағатталды 15 наурыз 2011 ж Wayback Machine
  35. ^ «Google Pushes» жобасы PIANO «Into Coreboot - Phoronix». phoronix.com. Алынған 23 қыркүйек 2015.
  36. ^ «Терең заряд: ChromeOS жүктеушісі». docs.google.com. Алынған 26 қазан 2015.
  37. ^ «Негізгі жүктеу жүктемесін құруға мүмкіндік беру үшін u-жүктеу кодын өзгертіңіз. [Chromiumos / third_party / u-boot-next: chromeos-v2011.03]». 24 шілде 2011 жыл.
  38. ^ «Libreboot». Тегін бағдарламалық қамтамасыз ету қоры. Алынған 31 шілде 2014.
  39. ^ «Libreboot». libreboot.org. Алынған 31 шілде 2014.
  40. ^ «Libreboot жобасы туралы». libreboot.org. Алынған 25 сәуір 2015.
  41. ^ Гей, Джошуа (9 қазан 2012). «Сіздің еркіндігіңіздің аппараттық өнім сертификатын құрметтейді». Тегін бағдарламалық қамтамасыз ету қоры. Алынған 25 ақпан 2015.
  42. ^ «Жабдықтың үйлесімділік тізімі». libreboot.org. Алынған 25 ақпан 2015.

Әрі қарай оқу

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