• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Coreboot

    Przeczytaj także...
    Rejestr – układ służący do przechowywania i odtwarzania informacji w postaci bitów. Na każdej pozycji rejestru przechowywany jest jeden bit informacji.Port szeregowy (ang. Serial Port) – port komputerowy, przez który dane są przekazywane w formie jednego ciągu bitów. Port ten jest zwykle zaopatrzony w specjalny układ o nazwie UART, który tłumaczy ciągi bitów na bajty i na odwrót.
    Pamięć podręczna procesora (ang. CPU cache) - jest pamięcią typu SRAM (pamięć statyczna) o krótkim czasie dostępu. Zlokalizowana jest często bezpośrednio w jądrze procesora. Zastosowanie wielopoziomowej hierarchii pamięci podręcznej pozwala, korzystając z zasady lokalności przestrzennej i czasowej na zapewnienie złudzenia posiadania szybkiej i pojemnej pamięci głównej, a więc zmniejsza średni czas dostępu do pamięci głównej.

    Coreboot (dawniej LinuxBIOS) jest projektem programistycznym mającym zastąpić tradycyjny BIOS lżejszym, otwartym oprogramowaniem. Coreboot jest w stanie ładować bezpośrednio jądro Linuxa oraz programy rozruchowe, implementację BIOS(SeaBIOS) oraz implementację UEFI(TianoCore). Coreboot nie obsługuje funkcji BIOS lub UEFI bez SeaBIOS lub TianoCore i nie może załadować systemów operacyjnych, które ich wymagają.

    EEPROM (ang. Electrically-Erasable Programmable Read-Only Memory) – rodzaj nieulotnej pamięci komputerowej. Oznaczana równeż jako E²PROM.Umowa poufności (ang. non-disclosure agreement NDA lub confidential disclosure agreement CDA) – legalnie zawarta umowa pomiędzy co najmniej dwiema stronami, które zobowiązują się do wymiany poufnych materiałów lub wiedzy z zastrzeżeniem ich dalszego nierozpowszechniania. Umowa taka tworzy pomiędzy stronami poufną więź mającą na celu dalszą ochronę przedmiotu wymiany.

    Projekt rozpoczął się podczas zimy 1999 roku w Los Alamos National Laboratory. Jest opublikowany na licencji GNU General Public License. Wsparcia udzielało między innymi LANL, AMD, coresystems GmbH oraz Linux Networx, Inc. Producenci płyt głównych, w tym MSI, Gigabyte oraz Tyan, dostarczyli dokumentacje sprzętu lub zaoferowali Coreboot jako zamiennik standardowego BIOSu.

    ELF, Executable and Linkable Format – format plików wykonywalnych, plików obiektowych, bibliotek współdzielonych oraz zrzutów pamięci, popularny na systemach uniksowych (używany m.in. w Linuksie, FreeBSD, BeOS, AmigaOS 4.0).Los Alamos National Laboratory - laboratorium naukowe położone w pobliżu miasteczka Los Alamos w amerykańskim stanie Nowy Meksyk. Organizacyjnie podlega Departamentowi Energii Stanów Zjednoczonych. W pracach badawczych współpracuje z Uniwersytetem Kalifornijskim. Zatrudnia ponad 9000 pracowników, a jego roczny budżet to około 2,2 mld dolarów. Ośrodek prowadzi badania nad wieloma dziedzinami nauki, między innymi nad wykorzystaniem energii słonecznej i jądrowej do celów pokojowych. Jego rola w badaniach nad bronią nuklearną skupia się głównie na przeprowadzaniu komputerowych symulacji wybuchów jądrowych. Znajduje się tu superkomputer Roadrunner, który w 2008 roku jako pierwszy superkomputer w historii osiągnął wydajność ponad 1 PFLOPS.

    Działanie[ | edytuj kod]

    Coreboot potrafi załadować jądro Linuksa lub plik ELF - w tym również Etherboot, pozwalający załadować jądro poprzez sieć, i SeaBIOS pozwalający załadować Windows 2000/XP/Vistę/7 oraz *BSD. Potrafi on załadować prawie każdy system operacyjny. Systemy korzystające z funkcji BIOS wymagają SeaBIOS.

    Pamięć dynamiczna, DRAM (ang. Dynamic Random Access Memory) – rodzaj ulotnej pamięci półprzewodnikowej RAM, która przechowuje każdy bit danych w oddzielnym kondensatorze wewnątrz układu scalonego. Poszczególne jej elementy zbudowane są z tranzystorów MOS, z których jeden pełni funkcję kondensatora, a drugi elementu separującego.Emulator – program komputerowy, który duplikuje funkcje jednego systemu informatycznego w innym, dzięki czemu ów drugi system zwraca te same rezultaty, co pierwszy. Mówimy wtedy, że pierwszy system jest emulowany przez drugi.

    Rozwijanie Coreboot[ | edytuj kod]

    Ponieważ Coreboot musi zainicjalizować sprzęt musi on być portowany na każdy chipset i płytę główną z osobna. Przed uruchomieniem pamięci RAM, inicjalizuje port szeregowy, aby móc przesyłać informacje o procesie uruchamiania do podłączonego terminala. Może on również wysyłać kody błędu do portu 0x80, aby były wyświetlone przez kartę. Przydatne przy portowaniu jest "RD1 BIOS Savior" łączący dwie pamięci zmieniane za pomocą przełącznika. Komputer może być uruchomiony z pomocą jednej z pamięci po czym druga pamięć może zostać zmieniona po przełączeniu. Inną metodą jest użycie zewnętrznego programatora EEPROM. Można skorzystać również z emulatora CPU, który zastępuje procesor lub łączy się przez port JTAG.

    Płyta główna (ang. motherboard, mainboard) – obwód drukowany urządzenia elektronicznego, na którym montuje się najważniejsze elementy, umożliwiając komunikację wszystkim pozostałym komponentom i modułom.Unified Extensible Firmware Interface (UEFI) – interfejs pomiędzy systemem operacyjnym a firmware, opracowywany jako następca BIOS-u w komputerach osobistych.

    Inicjalizacja pamięci dynamicznej[ | edytuj kod]

    Najtrudniejszym zadaniem wykonywanym przez Coreboot jest inicjalizacja kontrolera DRAM i DRAMu. W pewnych przypadkach dokumentacja techniczna jest chroniona przez tajemnicę handlową lub nie jest dostępna. Dodatkowym utrudnieniem jest to, że nie można użyć pamięci dynamicznej przed jej inicjalizacją – dlatego żeby uruchomić kontroler pamięci oraz RAM kod musi używać wyłącznie rejestrów procesora. Istnieje jednak kompilator C, romcc, który ułatwia to zadanie kompilując kod tak aby nie używał pamięci dynamicznej, w tym stosu. Względnie łatwo można uzyskać dostęp do ROMu SPD pamięci DIMM używając SMBus co pozwala na użycie RAMu. Na nowoczesnych procesorach x86 pamięć podręczna może być używana jako RAM dopóki DRAM nie jest uruchomiona. Wymaga to przestawienia jej w odpowiedni tryb – wymaga to mniejszej ilości instrukcji. O ile jest to zależne od architektury procesora to jest ogólniejsze od inicjalizacji DRAMu, która jest zależna od chipsetu i płyty głównej.

    Program rozruchowy (ang. boot loader) – działający na zasadzie bootstrapu (z ang. „pull oneself up by one’s bootstraps” – ruszać ciągnąc własne sznurowadła) program uruchamiany jako pierwszy po wykonaniu BIOS-u (lub EFI), służący do załadowania systemu operacyjnego do pamięci operacyjnej komputera.Jądro systemu operacyjnego (ang. kernel) – podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania.

    Przypisy[ | edytuj kod]

    1. https://www.seabios.org/SeaBIOS SeaBIOS] (ang.) – otwarta implementacja starych funkcji BIOS
    2. TianoCore (ang.) – otwarta implementacja UEFI
    3. https://www.seabios.org/SeaBIOS SeaBIOS] (ang.) – otwarta implementacja starych funkcji BIOS
    4. TianoCore (ang.) – otwarta implementacja UEFI
    5. Coreboot FAQ: Who is working on coreboot?
    Procesor (ang. processor), także CPU (ang. Central Processing Unit) – urządzenie cyfrowe sekwencyjne, które pobiera dane z pamięci, interpretuje je i wykonuje jako rozkazy. Wykonuje on ciąg prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych zazwyczaj przez producenta procesora jako lista rozkazów procesora.Terminal (ang. terminal – końcówka) to urządzenie pozwalające człowiekowi na pracę z komputerem lub systemem komputerowym. Terminal musi posiadać urządzenie wejściowe do wprowadzania instrukcji oraz urządzenie wyjściowe do przekazywania informacji operatorowi. Terminal jest stacją sieci komputerowej lub w systemie (np. w Internecie), służącą do wprowadzania lub odczytywania danych.



    w oparciu o Wikipedię (licencja GFDL, CC-BY-SA 3.0, autorzy, historia, edycja)

    Warto wiedzieć że... beta

    BIOS (akronim ang. Basic Input/Output System – podstawowy system wejścia-wyjścia) – zapisany w pamięci stałej zestaw podstawowych procedur pośredniczących pomiędzy systemem operacyjnym a sprzętem. Posiada on własną pamięć, w której znajdują się informacje dotyczące daty, czasu oraz danych na temat wszystkich urządzeń zainstalowanych na naszym komputerze. Jest to program zapisany w pamięci ROM płyty głównej oraz innych kart rozszerzeń takich jak np. karta graficzna.
    Advanced Micro Devices, Inc., AMD (NYSE; AMD) – amerykańskie przedsiębiorstwo produkujące procesory wraz z technologią towarzyszącą dla użytkowników domowych i firm. Do głównych produktów firmy należą mikroprocesory, chipsety do płyt głównych, systemy wbudowane oraz procesory graficzne dla serwerów, stacji roboczych i komputerów PC.
    Jądro Linux (ang. Linux kernel) – najważniejsza, wolna część uniksopodobnych systemów operacyjnych Linux napisana przez Linusa Torvaldsa w 1991 roku, a obecnie rozwijana przez licznych programistów z całego świata w ramach The Linux Foundation.
    Kompilator – program służący do automatycznego tłumaczenia kodu napisanego w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku wynikowym) . Proces ten nazywany jest kompilacją. W informatyce kompilatorem nazywa się najczęściej program do tłumaczenia kodu źródłowego w języku programowania na język maszynowy. Niektóre z nich tłumaczą najpierw do języka asemblera, a ten na język maszynowy jest tłumaczony przez asembler.
    JTAG (ang. Joint Test Action Group) to nazwa standardu IEEE 1149.1 definiującego protokół używany do testowania połączeń na płytkach drukowanych, stosowany także do uruchamiania i programowania układów programowalnych i systemów mikroprocesorowych. Żeby można było wykorzystywać JTAG do wymienionych celów układy scalone umieszczone w testowanym systemie muszą posiadać wewnątrz odpowiednią warstwę sprzętową tego interfejsu. Jednym z najważniejszych założeń standardu JTAG jest możliwość programowania układu w gotowym urządzeniu, bez konieczności odłączania (ang. In-System Programming, w skrócie ISP).
    Tyan Computer Corporation to międzynarodowa firma komputerowa, założona w 1989 przez dr T. Symona Changa, zajmująca się produkcją płyt głównych, kart peryferyjnych oraz podzespołów do zastosowań serwerowych.
    C – imperatywny, strukturalny język programowania wysokiego poziomu stworzony na początku lat siedemdziesiątych XX w. przez Dennisa Ritchiego do programowania systemów operacyjnych i innych zadań niskiego poziomu.

    Reklama

    Czas generowania strony: 0.029 sek.