Jakie są różnice między oprogramowaniem układowym a oprogramowaniem / systemem operacyjnym?

15
  1. Zastanawiałem się, jakie są różnice między oprogramowaniem układowym a oprogramowaniem?
  2. Jakie są różnice między oprogramowaniem układowym a systemem operacyjnym?
  3. Czy oprogramowanie ładujące rozruchu? Bios jest. Co powiesz na GNU Grub? Czy oprogramowanie GRUB lub firmware?
Tim
źródło

Odpowiedzi:

13

Tradycyjnie oprogramowanie układowe to kod procesora znajdujący się na niemodyfikowalnej pamięci ROM, która jest niezbędna do uruchomienia urządzenia i załadowania systemu operacyjnego lub wybranego pliku binarnego (oprogramowania). Czasami nie ma wyboru pliku binarnego i używany jest jeden dołączony do oprogramowania układowego części rozruchowej.

Wszystkie procesory mają klasyczny problem polegający na tym, że ponieważ pobierają instrukcje z pamięci, podczas programowania procesor musi istnieć pod ustalonym adresem pod ustalonym adresem, aby mógł zrobić coś automatycznie po uruchomieniu. W tym celu istnieje oprogramowanie układowe. Niektóre oprogramowanie układowe zawiera również kod, który późniejsze programy mogą wykorzystywać do usług. Oprogramowanie układowe BIOS udostępnia wiele funkcji używanych przez DOS do podstawowego wejścia i wyjścia (dlatego BIOS oznacza Basic Input Output System).

Rozróżnienie nie jest całkowicie jasne. Niektóre (większość) kart WLAN wymagają załadowania oprogramowania układowego, zanim zaczną działać. Zazwyczaj jednak na urządzeniu znajduje się małe oprogramowanie, którego zadaniem jest nic nie robić, ale zaakceptować główne „oprogramowanie” na magistrali USB, gdy urządzenie jest uruchamiane przez system operacyjny, i przekazać kontrolę, gdy jest załadowane. Większość ludzi powiedziałaby, że wszystko to jest oprogramowaniem układowym.

Ponieważ pamięci EEPROM i pamięć flash stały się bardziej powszechne, oprogramowanie układowe zwykle nie znajduje się już w niemożliwej do zapisania pamięci ROM, ale w pamięci flash i może być modyfikowane. Rozróżnienie między oprogramowaniem układowym a oprogramowaniem jest dziś rozmyte wraz z pojawieniem się pamięci flash. Jednak jedna rzecz się nie zmieniła na przestrzeni lat, a mianowicie procesory są nadal procesorami i wymagają kodu lub oprogramowania układowego, aby były widoczne podczas uruchamiania, no cóż, uruchamiania.

Procesory są w większej liczbie urządzeń niż kiedykolwiek wcześniej, dlatego tworzenie i umożliwianie aktualizacji oprogramowania układowego w przypadku błędów jest teraz wielką sprawą, a wiele urządzeń z procesorem ma interfejsy aktualizacji oprogramowania układowego, czasem nieudokumentowane.

Do załadowania systemu operacyjnego można użyć oprogramowania układowego. Może zawierać moduł ładujący lub kod ładujący moduł ładujący. Możliwe jest przechowywanie obrazu systemu operacyjnego w tej samej lokalizacji, co oprogramowanie układowe i pozwalanie, aby kod rozruchowy oprogramowania układowego ładował system operacyjny (telefony komórkowe to robią). BIOS-y PC z reguły nie zawierają programów ładujących. U-boot (nie na komputery PC) to przykład oprogramowania układowego obsługującego system plików, które bezpośrednio ładuje system operacyjny.

FIrmwares zwykle nie mają wszystkich funkcji pełnego systemu operacyjnego z powodu zasady, że prostsze jest bardziej niezawodne. Najprostsze oprogramowanie układowe po prostu inicjuje minimum sprzętu, ładuje sektor lub blokuje urządzenie pamięci i wykonuje na nim wykonanie. Jest to łatwe do zaprogramowania, a zatem łatwe do zweryfikowania jako wolne od błędów. Błędy w oprogramowaniu rozruchowym szczególnie mogą oznaczać katastrofę dla urządzenia.

LawrenceC
źródło
Dzięki! Czym różnią się oprogramowanie układowe i sterownik urządzenia, ponieważ oba urządzenia sterują?
Tim
W przypadku urządzeń takich jak karty WLAN: Sterowniki są zbudowane w celu połączenia między urządzeniem sprzętowym a samym systemem operacyjnym. Sterowniki działają na komputerze. Oprogramowanie wbudowane jest w interfejs między urządzeniem sprzętowym a sterownikiem za pośrednictwem magistrali (USB, IDE, PCI-E itp.). Oprogramowanie układowe działa na samym urządzeniu.
LawrenceC
5

Oprogramowanie układowe to oprogramowanie, z wyjątkiem tego, że zamiast przechowywać na dysku, jest ono przechowywane w pamięci EEPROM, którą zwykle można flashować, aby umożliwić aktualizacje.

Oprogramowanie układowe jest w pewnym sensie systemem operacyjnym, ale o wiele bardziej restrykcyjnym i przeznaczonym do jednego celu, ponieważ służy wyłącznie do kontrolowania tego urządzenia, podczas gdy system operacyjny to system ogólnego przeznaczenia, który pozwala na uruchamianie dowolnego oprogramowania na wielu urządzeniach.

Nie, programy ładujące nie są oprogramowaniem układowym, ponieważ są oprogramowaniem istniejącym na dysku. Tak, BIOS jest, ponieważ istnieje na (flashowalnym) układzie scalonym. Nie, GRUB również nie jest oprogramowaniem wewnętrznym, ponieważ, znowu, nie jest to oprogramowanie twarde (nie ma w nim żadnego komponentu sprzętowego), jest to oprogramowanie, które istnieje na dysku - chociaż może (i może) być zainstalowane na chipie, w takim przypadku byłoby być oprogramowaniem układowym.

Synetech
źródło
4
  1. Różnica polega zasadniczo na tym, gdzie znajduje się kod. Zasadniczo oprogramowanie wbudowane jest w jakąś pamięć EPROM lub wbudowaną pamięć flash, natomiast oprogramowanie jest przechowywane na urządzeniu pamięci masowej.

  2. System operacyjny urządzenia może znajdować się w oprogramowaniu układowym lub oprogramowaniu. Na komputerze PC oprogramowanie układowe (BIOS) zapewnia tylko usługi niskiego poziomu, z których może korzystać system operacyjny (Windows / Linux / itp.). W urządzeniach mobilnych system operacyjny Entie jest zazwyczaj w oprogramowaniu układowym.

  3. Zgodnie z definicją w (1) BIOS komputera jest oprogramowaniem układowym, ale programy ładujące, które znajdują się na dysku twardym, są oprogramowaniem.

Andrew Cooper
źródło
3

Granice mogą być trochę rozmyte.

Oprogramowanie to zazwyczaj wszelkie instrukcje lub procedury, które może wykonać komputer.

Oprogramowanie układowe to zazwyczaj określone instrukcje (oprogramowanie), które są ładowane do sprzętu w celu wykonania przez niego funkcji.

Powiedziałbym, że prawie każdy element sprzętu zawiera jakieś oprogramowanie układowe.

Ponownie nie sądzę, aby istniał ostateczny przewodnik określający, od którego miejsca zaczyna się i kończy - wszystko, co to jest oprogramowanie układowe, to oprogramowanie, które jest kompilowane dla dowolnego układu znajdującego się w urządzeniu.

Jeśli chodzi o twoje drugie pytanie na temat oprogramowania układowego, powiedziałbym, że programy ładujące nie są, ale BIOS jest, a grub nie.

Bardzo trudno jest wytyczyć granicę, ale ... patrzę na to, że BIOS (teraz EFI) jest oprogramowaniem układowym płyty głównej, a dysk twardy ma własne oprogramowanie układowe.

Tak więc bootloader / grub jest czystym oprogramowaniem - może wykonywać zadania na dysku twardym, ale nie kontroluje bezpośrednio żadnego sprzętu.

Jeśli weźmiesz urządzenie wbudowane, takie jak Iphone / Ipad, gdzie kończy się oprogramowanie układowe i zaczyna się oprogramowanie !? Jeśli uważasz IOS za oprogramowanie wewnętrzne, to dlaczego nie Windows lub podobny.

Dla mnie to pokazuje, że granice są tam, gdzie producenci lub sprzedawcy dowolnego urządzenia pozwalają ci przejąć kontrolę i nie jest to w rzeczywistości ustalona rzecz / nauka ścisła.

Na przykład,

  • Płyta główna służy do rozruchu - oprogramowanie układowe to BIOS, gdy przechodzi do następnej części
  • Dyski optyczne i dyski twarde są elementami do odczytu / zapisu danych, oprogramowanie wewnętrzne jest częścią, która wykonuje to zadanie na żądanie.
  • Karta graficzna jest elementem do wyświetlania grafiki, oprogramowanie układowe jest częścią, która na żądanie pobiera dane wyjściowe.

Aby jeszcze bardziej skomplikować - kiedy mówię na żądanie, może to pochodzić od sterownika w innym oprogramowaniu

Teraz iPad, iPhone lub inne urządzenie wbudowane ...

  • Urządzenie kupione z półki w celu wykonania ograniczonej funkcji (np. Uruchom IOS) to oprogramowanie wewnętrzne, ponieważ nie jest (lub nie powinno się) ręcznie go modyfikować. Może zawierać w sobie inne elementy sprzętu, ale jest prezentowane jako jedno urządzenie i nie kupujesz sprzętu osobno, dzięki temu każda dostępna aktualizacja zaktualizuje wszystko niewidocznie (np. Telefon, nie aktualizujesz ręcznie kontrolera GSM, zasilanie zmienne i więcej, po prostu masz aktualizację, która może modyfikować te rzeczy).

Więc by podsumować...

Dla mnie powiedziałbym, że oprogramowanie układowe = oprogramowanie, które jest dostarczane na urządzenia, na których równie czyste oprogramowanie jest kupowane jako dane, ale jestem pewien, że inni mogą powiedzieć inaczej!

William Hilsum
źródło
Mam nadzieję, że brzmi to ok ... Znalazłem bardzo ciekawy temat do napisania, ale zajęło mi to ponad pół godziny i jest bardzo wcześnie rano / Jestem bardzo zmęczony ... i nie zawsze jestem jasny Najlepszy czas! ... chętnie odpowiadam na pytania i mam nadzieję, że nie powtórzyłem się zbyt wiele!
William Hilsum,
0

Chcę odpowiedzieć tylko w kilku słowach. Oba oprogramowanie i system operacyjny są bardzo ważne, aby każdy system cyfrowy mógł się uruchomić i działać poprawnie, a my omówimy, jak oba działają. Załóżmy, że wyłączyliśmy nasz smartfon i włączamy się po włączeniu przycisku zasilania w naszym smartfonie, to polecenie przejdzie do układu BIOS, który jest pamięcią nieulotną i zawiera jakiś program oprogramowania układowego. To oprogramowanie układowe układu bios zaczyna działać, a oprogramowanie układowe wydaje polecenie w obu kierunkach do pamięci RAM i ROM daje ramowi polecenia usunięcie kodów systemu operacyjnego z Rom i kolejne polecenie do ROM, aby przekazać kopię swojego systemu operacyjnego do pamięci RAM, aby uaktywnić wszystkie pozostałe elementy tego systemu.

Hritik Nitish
źródło