Bir bilgisayarın neden BIOS'u olmalı?


35

BIOS yazılımı PC yerleşik ve ( 'önyükleme firmware') Açıldığında bir PC ile ilk kod çalıştırma mesafesindedir. PC başlatıldığında, BIOS için ilk iş, CPU, RAM, video ekran kartı, klavye ve fare, sabit disk sürücüsü, optik disk sürücüsü ve benzeri sistem aygıtlarını başlatan ve tanımlayan açılıştaki öz sınamadır. diğer donanım Daha sonra BIOS, sabit disk veya CD / DVD gibi çevresel bir aygıtta ('önyükleme aygıtı' olarak adlandırılır) tutulan önyükleyici yazılımı bulur ve bu yazılımı yükler ve yürütür ve PC'nin kontrolünü sağlar. [2] Bu işlem, önyükleme için kısa olan önyükleme veya önyükleme olarak bilinir.

Hangi şartlar, bir bilgisayar sisteminde bir BIOS yüklü olması gerektiğini belirler?

İşletim Sistemi neden tüm BIOS çalışmalarını gerçekleştiremiyor?


40
Bir araba motorunun neden marş motoru ihtiyacı var? Motor kendi kendine çalışacak kadar güçlü olmamalı mı?
Der Hochstapler

4
@OliverSalzburg bu yakın gelecekte, marşsız gaz motorlarında mümkün olacak. Doğrudan enjeksiyon ve bilgisayarlarla bir çırpıda.
Moab

2
Zaten kendi kendine çalışan motorları var, ancak çoğunlukla 12+ silindirli veya döner motorlu. Çoğu motor kendi kendine çalışmaya başlayamaz, çünkü eylemsizlik momentinin üstesinden gelmek için tek bir güç darbesinde yeterli güç üretemezler. Doğrudan enjeksiyon ve daha iyi zamanlama küçük bir yardım olabilir, ama gerçekten volan, krank mili, dişlileri vs. yarattığı intertia anına bir Powerstroke üretilen enerji arasındaki oranı artırmak için çakmak motorlarına ihtiyacımız
Lese majesté

5
Aslında, PC anlamında bir BIOS gerekli DEĞİLDİR. IBM System / 360 ve / 370 bilgisayarları (ve belki de daha yeni sürümleri), konsoldaki aramalar tarafından seçilen bir cihazdan tek bir kayıt okuyan tek bir kablolu talimatla başladı. Bu kayıt, işletim sistemini diskten yükleyen daha karmaşık bir önyükleme programı yükleyen bir önyükleme programı (80 bayt - bir delikli kart sığması gerekiyordu) içeriyordu. Sanırım 'BIOS', sağ düğmeye bastığınızda (IPL veya başlangıç ​​program yükü denir) uygulanacak tek bir komut oldu.
Ex Umbris

2
Sorunuzda "bilgisayar" ve "PC" yi karıştırıyorsunuz. Bu yüzden cevaplar kafa karıştırıcı ve bazen de çelişkili.
RDS

Yanıtlar:


41

BIOS, anakartta depolanan donanıma bağlı bir kod parçasıdır. Bir olması imkansız olurdu böylece her farklı anakart, bunun için yazılmış özel bir BIOS ihtiyacı jenerik BIOS / OS hepsi-bir-arada (bunu BIOS teknik olarak sadece kod saklandığı halde olabilir teorik olarak belirli bir anakart için bir işletim sistemi yazmak) . Bahsettiğiniz gibi, BIOS'un amacı aşağıdakileri yapmaktır:

PC başlatıldığında, BIOS için ilk iş, CPU, RAM, video ekran kartı, klavye ve fare, sabit disk sürücüsü, optik disk sürücüsü ve benzeri sistem aygıtlarını başlatan ve tanımlayan açılıştaki öz sınamadır. diğer donanım

Herhangi bir harici depolama alanı olmadan bir bilgisayarı hala başlatabileceğinizi unutmayın; bu nedenle BIOS bir bilgisayar için bir gerekliliktir. Başka bir deyişle, BIOS, depolanan bir bilgisayar programının ana karta bağlı çeşitli donanım cihazlarıyla iletişim kurmasını sağlamak için ortak bir yazılım arayüzü sağlar.

Örneğin, iki farklı SATA denetleyicisine sahip iki farklı anakartım varsa, BIOS, anakartın SATA aygıtına gerçekte nasıl komutlar gönderdiğini bilmeden, her ikisiyle de çalışabilecek bir kod yazmamı sağlıyor. Bilgisayarıma "bu SATA cihazından X sektörünü oku" demeliyim ve BIOS bu komutları donanıma göndermekten gerçekten sorumlu.

Aslında "X okuma sektörü" bilgisinin nereden alındığı, BIOS'ta bulunan ve genellikle bilgisayarı, ortak bir yerde depolanan bir önyükleyiciden okumaya başlamaya yönlendiren kayıtlı bir programdır. Bu ortak konumlar çeşitli yazılım ve donanım geliştiricileri tarafından kararlaştırılır ve genellikle sistemler arasında daha fazla uyumluluk sağlamak için halka sunulur.

Temel bir arabirim seviyesi (tekrar, yazılım aracılığıyla mantıksal arabirim) kurulduktan sonra, işletim sisteminin kendisi çeşitli donanım aygıtlarınızla (genellikle "aygıt sürücüleri" kullanarak) ortak bir arabirim oluşturur ve işletim sistemi donanımı kontrol edebilir.


Son olarak, BIOS'un aynı zamanda bilgisayarın donanım yapılandırmalarında değişiklik yapmak ve bunları yerleşik EEPROM'da saklamak için de kullanıldığına dikkat edilmelidir (bu nedenle bilgisayarınız bir daha başlattığınızda değişiklikleri hatırlar). Ancak, daha önce de belirttiğim gibi, işletim sistemi yüklendikten sonra, bilgisayarı tam olarak kontrol edebiliyor.

Bu, anakart üreticilerinin BIOS'ta yeniden başlatmak zorunda kalmanın aksine, işletim sisteminizden bu değişiklikleri yapmanıza izin veren bir yazılım geliştirmesini sağlar. Yine, bu çok donanıma ve yazılıma bağımlıdır, ancak tüm bilgisayar arayüzlerinin göreceli olduğunu göstermektedir. BIOS, adından da anlaşılacağı gibi - daha gelişmiş bir programın ("işletim sistemi") makinenin kontrolünü ele geçirmesi için ortak bir yazılım arayüzüne izin veren temel bir giriş / çıkış sistemi.


2
Bilgisayarı başlattığınızda, BIOS işlemcide makine kodu olarak çalışıyor. Bunu böyle düşünebilirsiniz, ancak bir anlamda gerçekten "kapatılmadı" değil - sadece işletim sistemini çalıştırmak için geçiş yapar. Bilgisayarı başlattığınızda, BIOS bilgisayara X konumunda depolanan makine kodunu çalıştırmaya başlamasını söyler. Daha genel bir ifadeyle, BIOS sadece donanımınızı başlatır ve bilgisayarı kodun çalıştırılacağı yere yönlendirir.
Atılım

13
BIOS / OS hepsi bir arada aygıtı mümkün değildir. Neden buradaki herkesin bunu söyleyip durduğunu bilmiyorum. Her parçanın ayrı cihazlarda / depoda olması aynı mantıksal varlığın parçası olmadığı anlamına gelmez. IBM PC'sinin hepsi bir arada olan bilgisayarları, yani BIOS, işletim sistemi çekirdeğini geliştiren kişi tarafından üretildi ve geliştirildi. Aslında işletim sistemi güncellemeleri bazen BIOS güncellemelerini de içeriyordu.
m0skit0

3
@Oliver Aslında, ACPI'de, BIOS işlevleri OS önyüklemesinden sonra rutin olarak kullanılır.
derobert,

1
BIOS, işletim sisteminin (yazılım katmanı) donanım ile etkileşime girmesini sağlar. BIOS ve işletim sistemi farklı amaçlara hizmet eder. Onlar bir bütünün iki parçasıdır. Biri diğerinin yerini almaz.
Ben Richards,

1
@Breakthrough: donanımı kimin ürettiğine bağlıdır;) IBM PC'lerde, mantıksal evrim, çok sayıda donanım türü nedeniyle bağımsız BIOS ve işletim sistemi üreticisiydi. Bu eski zamanlarda olmadı. Bu nedenle PC, bilgisayar pazarını değiştiren hiçbir sebep olmadan M $ olması dışında, şanslıydı.
m0skit0

7

İşletim sisteminiz sabit diskinizde, bilgisayarınızı açarsanız sihirli bir şekilde o sabit diskten okumaya başlamaz. Önyükleme yükleyicisini sabit diskten yükleyen ve bazı testler yapan ve BIOS'un belirli ayarlarını yapılandırabilen BIOS.

İşletim sisteminiz bunu yapamaz çünkü sabit diskte ve ROM'unuzda değil.

Bu nedenle, bir BIOS'a veya EFI gibi benzer (ancak farklı) bir teknolojiye ihtiyacınız var ...

Üretici tarafından işletim sisteminin bir bölümünü ROM'a (işletim sisteminin önyükleme yükleyicisini yüklemekle sorumlu) koymak mümkündür; Ancak, bu yaygın olarak uygulanabilir değildir ve yine de bir BIOS veya EFI mevcuttur.


1
İki farklı konsepti karıştırıyorsunuz. BIOS, işletim sisteminden bağımsızdır, yani, BIOS işletim sisteminin bir parçası olabilir. Örneğin, aynı üretici tarafından üretildiyse ve yalnızca bu işletim sistemiyle çalışıyorsa, oyun konsolu önyükleyicileri gibi.
m0skit0

5
"BIOS, işletim sisteminden bağımsız, yani, işletim sisteminin bir parçası olabilir." Ha? Çelişki çok çelişkilidir, lol.
Atılım

2
Oyun konsolları bilgisayardır, Atari, Amiga ve eski Mac'ler de kesinlikle geçerli. @Breakthrough: Bu çelişkili değil. Bu, BIOS'un işletim sistemi ile ilgisi olmadığı anlamına gelir ve bu nedenle bunun bir parçası olabilir veya olmayabilir.
m0skit0

@TomWijsman Burada trolling yapan tek kişi sizsiniz. Oyun konsolları bir bilgisayar alt kümesidir. Bazı konsolların bunu yapması mümkün ise, bazı bilgisayarlar için de mümkündür. Ayrıca, aynı şekilde kalın kullanmayın. Uygunsuz.
luiscubal

1
@TomWijsman'ın bir amacı var, eğer oyun konsolları yapabilirse , o zaman bilgisayarlar da yapabilir. Ayrıca, soru ya da cevap olmadığı sürece, konuyla ilgili bir sorun görmüyorum. Yorumlar, sonuçta yorumlardır; ne fazla ne eksik. (Kalın konu hakkında yorum yok - her biri kendi başına, bunun terminolojiyle daha fazla uğraşsa da.)
Atılım

6

Mantıklı bir sebep yok. Daha çok miras ve tarih meselesi.

  1. Bir bilgisayarda yüklü bir BIOS olması gerekmez. IBM PC'den gelen miras. Bu iyi bir fikir olduğu kanıtlanmış olmasına rağmen

  2. İşletim Sisteminin bunu yapması gerçekten hiçbir şeyi değiştirmez, çünkü yine de BIOS gibi bir şey yapacaktır. Tabii ki işletim sisteminin bir I / O cihazında değil bir ROM'da olması gerekir. Bir işletim sistemi kurucusu, işletim sistemi BIOS'unu diğer işletim sistemleriyle uyumlu hale getirmeye karar verdiğinde tekel sorunları ortaya çıkabilir. BIOS üreticilerinin işletim sistemlerinden ayrı olması, hangi yazılımın çalışabileceği konusunda özgürlüğü artırır.


1
Neden bir BIOS işlevi göremiyor? Neden hakkında bir açıklama yapın. Sadece bir ROM'a bootstrapper koymak zorundasınız ve bitirdiniz. Tamamen ROM'a sahip olmak istemiyorum ve ROM yeterince büyükse işe yarar (elbette çalıştırmak için RAM'e parça yüklemeniz gerekecek, ancak bu da mevcut BIOS tarafından yapıldı).
m0skit0

3
PC değil, "bilgisayar" dedi. Ve evet uygulanabilir. Aslında, IBM PC'den önce bu şekilde oldu (Atari, Amiga ... BIOS, işletim sisteminin bir parçasıdır).
m0skit0

2
Aptal, ben BIOS veya işletim sistemi olmayan gömülü bilgisayarlar için sadece uygulama kodu yazıyordum. Yoksa tüm bilgisayarlardan bahsetmiyoruz , çoğu insanın düşündüğü olanlar hakkında mı?
jwernerny,

2
Büyük ölçekte geçerli değil mi? PC'den önce kaç tane Ataris, Amigas ve Mac bulunduğunu kontrol edin.
m0skit0

2
IPhone bir bilgisayar ve bir BIOS olduğuna inanmıyorum. Dijital çağdan önce bile ... bir bilgisayar, işlemleri gerçekleştiren ve aynı sonuçları belirli bir giriş için veren programlanabilir bir makinedir, değil mi? Jakarlı dokuma tezgâhı bir bilgisayardır ve kesinlikle bir BIOS’u yoktur (işletim sistemi bile yoktur).
RDS

5

İşletim Sistemini başlatmak için bir şey gerekiyor. İşletim sistemi geçici olmayan bazı belleğe sığabilirse, doğrudan başlatılabilir, ancak Windows, OSX veya Linux gibi tam özellikli işletim sistemlerinde bu mümkün değildir.

İhtiyaç duyulan şey, bellek ve disk erişimi gibi temel işlemleri yapan ve ardından İşletim Sistemini yükleyen açılışta yüklenebilen küçük bir hafif işletim sistemidir. Bu işletim sisteminin kendisinin bir parçası olabilir ve ayrı bir varlık olmasa da, başka bir işlemin ilk önce başlamasını isteyebileceğiniz başka nedenler de var:

  1. Güncellemeler - İşletim sistemi bu şekilde düzeltildiyse, herhangi bir güvenlik yaması gerektiğinde güncellemesi zorlaşacaktır. Bu yapılabilir - ürün yazılımı güncellemeleri yönlendiriciler vb. Cihazlara her zaman olur, ancak bunlar nispeten basit işletim sistemlerine sahiptir.
  2. Esneklik - bilgisayar genel amaçlı bir makinedir ve aynı donanım birkaç farklı işletim sistemini çalıştırabilir. Daha sonra işletim sistemini diskten yükleyen bir BIOS'a sahip olmak, hangisini çalıştıracağınızı seçebileceğiniz anlamına gelir - birkaç yan yana kurulu olduğu sürece bile gidebilirsiniz.

İşlem bootstrapping olarak bilinir .


1
Yani cevap, çok fazla farklı işletim sistemimiz olduğu için mi? Yani, belirli bir donanım için sadece bir işletim sistemi modelimiz varsa, BIOS ihtiyacını ortadan kaldırabilir miyiz?
Diogo

1
Microsoft'un bir BIOS yapmasının neden mümkün olmadığını
anlamıyorum

1
Tüm işletim sistemi kalıcı belleğe sığması gerekmez (btw, sadece yeterli ROM: P gerekir). Orada olmak için sadece bootstrapper'a ihtiyacınız var.
m0skit0

1
@ m0skit0 Microsoft, BIOS'un çalışmasını istediği her bir anakart için farklı bir BIOS yapmak zorunda kalacağı için bir BIOS yapamaz. :)
Etkileme

1
Ayrıca, bir işletim sistemini ROM'a yerleştirmek @ChrisF, bir işletim sisteminin tüm noktasını ilk etapta baltalar. İşlemcide depolanan bazı programları doğrudan işlemcide yürütmek için ROM'u kullanmak mantıklı olabilir (bu, daha iyi performans sağlar), ancak işletim sisteminin amacı, bu tür işlemlere açıkça izin vermemek ve ortak bir yazılım arayüzü sağlamaktır. böyle yap.
Atılım

4

PC BIOS konsepti, IBM PC devralmadan önce 8-bit Z-80 "S-100" veriyolu tabanlı bilgisayarlarda popüler olan bir işletim sistemi olan CP / M'den gelmektedir.

CP / M, donanıma bağlı fonksiyonların bir ROM'da (BIOS) olmasını bekliyordu. Diskten bootloader tarafından yüklenen bir diğer kısım ise CP / M dosya sistemini (BDOS) destekleyen ve ardından komut işlemcisi veya "kabuk" (CCP) olan yazılımdı. CP / M tarafından desteklenmesi beklenen donanım çok fazla değildi: bir disk sürücüsü, bir ekran, bir seri bağlantı noktası ya da iki (COM ya da AUX bağlantı noktası) yazıcıları ya da modemleri takmış olabilir.

PC BIOS, CP / M'nin yaptığına benzer bir temel önyükleme işlevi gerçekleştirmiştir ve DOS, istendiği gibi temel giriş ve çıkış yapmak için BIOS işlevlerini kullanmıştır. Programcılar yavaş yavaş bu işlevleri atlayarak sona erdi. Bu, 80'li yılların ortalarında PC klon üreticilerinin platformu bir bütün olarak yeniden yaratmalarına neden oldu (IBM'in orijinal PC'yi çok iyi bir şekilde içte ve dışta belgelemesi kolaydı), yalnızca uyumlu arayüzlere sahip bir BIOS sağlamak yerine, bunu da yapmak zorunda kaldılar.

Bu noktada, modern bir işletim sistemi için, BIOS sisteminin başlatılmasının ötesinde gerçekten gerekli olmadığını söyleyebiliriz. Ancak ...

90'lı yılların başından itibaren, güç yönetimi kavramı yerini aldı ve bununla BIOS görevlendirildi. APM, DOS gibi tek görevli bir işletim sistemiyle iyi çalışır, ancak Windows veya Linux gibi gerçek çoklu görev işletim sistemlerinde çalışmaz. Bu süre zarfında 386 tam güçlüydü, gerçek çoklu görev destekli Intel CPU. DOS ve BIOS bu CPU'nun yeni özelliklerine cevap olarak güncellenmedi, çünkü tüm Intel CPU'ları hala orijinal PC-BIOS'un tasarlandığı eski 16 bit uyumluluk modunda çalışacak. Bu yüzden modern işletim sistemleri, muhtemelen ilk önyükleme aşamaları haricinde, BIOS'un tüm CP / M benzeri giriş / çıkış fonksiyonlarını yok sayıyor / atlıyor.

Sonunda, ACPI, çoğu BIOS'un bir parçası olup, platforma özgü şeylerin güç yönetimi ve yapılandırmasını (çoğunlukla dizüstü bilgisayar) desteklemiştir. ACPI ayrıca hazırda bekletme, uyku veya kapanma durumundaki son güç değiştirme durumunu da işler.

Bu yüzden bugünlerde ACPI ve halefi olan EFI, BIOS gibi bir şeyi PC'nin bir zorunluluğu haline getiriyor. Genel kavram ACPI'nin platform veya ana kart ile işletim sistemi arasında özel bir şeyler yapması değil, böylece işletim sistemi için ayrı bir yapı yok. Her çeşit anakart için yapılmalı.

Linux çalıştıran ARM CPU'ları (aynı zamanda cep telefonu donanımını) barındıran geliştirme panoları bu konuda var. Tipik olarak U-boot gibi sadece bootloader-firmware ile gelirler, fakat hemen hemen OS her kartı ayrı bir platform olarak desteklemelidir.


3

Bir anlamda haklısın. BIOS ve işletim sistemi kısmen aynı şeyleri yapıyor. BIOS ve işletim sistemindeki ayrım yalnızca esneklik içindir.

BIOS, genellikle bir donanım üreticisi tarafından oluşturulur. Donanım, örneğin bir disk sürücünün okunabileceği ve arıza teşhisi ve hataları için temel bir göstergenin gösterilebileceğinden, temel bir işlevsellik olmasını sağlamalıdır . Böylece “Temel Giriş Çıkış Sistemi” adı verilir.

Bu, bir dereceye kadar, belirli bir sistemde gerçekten mevcut olan gerçek bileşenler hakkında daha fazla bilgi sahibi olmadan yapılabilir, çünkü hepsinin belirli bir küçük BIOS standardını desteklemesi gerekir. Bu, üreticilerin özel bir sistem oluşturmasını sağlar. BIOS'un işletim sistemini başlatmak için yeterli yapması gerekir. Bu başlangıç ​​noktalarının nerede olduğu konusunda bazı sözleşmeler var, bu yüzden birbiri ardına deniyor. Bu, aynı donanım üzerinde farklı işletim sistemlerinin kullanılmasını da sağlar. (yine esneklik var)

İşletim sistemi (veya en azından bootloader'ı) BIOS tarafından bulunup başlatıldığında, BIOS'un kendisi büyük ölçüde eski hale gelir. Modern işletim sistemi, yüklendikten sonra işlevsel olarak BIOS'un hiçbir şeyinden çok azını kullanır.

İşletim sistemini tüm işleri yapmak istiyorsanız, işletim sistemini bir yazılım ön yardımı olmadan donanımın erişebileceği bir yere koymak zorunda kalacaksınız (ROM). Bu, esnekliğin kaygı duymadığı bazı kapalı sistemler için mümkün olabilir. Başka bir donanıma donanım desteği inşa etmeyi düşünüyorsanız, temel olarak bir çeşit BIOS geliştiriyorsunuz ...

Diğer bir endişe hafıza boyutu ve maliyetidir. Tam özellikli işletim sistemleri geniştir ve çok gigabaytlık bir işletim sistemini ROM'a dahil etmeye çalışmak, yama ekleme ve güncelleme sorunlarının yanı sıra pahalıdır.

Yani hayır, teknik bir sebep yok ama özellikle esnek PC platformu için pek çok pratik sebep var.


3

Bir programı modern bir bilgisayarda çalıştırmak için, donanımı çalıştırmayı ve programları belleğe nasıl yükleyeceğini bilen bir programınız olmalıdır. Bu tavuk ve yumurta problemi, donanımın kendisine temel bir programın yerleştirilmesiyle çözülür.

Bu temel giriş / çıkış sistemi (BIOS) çok küçüktür ve kapsamı oldukça sınırlıdır, ancak GRUB veya NTLDR gibi ikinci kademe boot yükleyicilerin yüklenip çalıştırılabileceği bir temel sağlar. Bu ikinci kademe yükleyiciler, işletim sistemi için kontrol etmeye ve kontrol etmeye uygun işletim sistemi için daha sağlam bir temel sağlamalarını sağlayan BIOS programından daha karmaşıktır.


Teknik olmayan iyi bir açıklama.
Mekanik salyangoz

1

Bir CPU, bir sabit diski doğrudan BIOS'a veya ROM'daki EFI'ye veya diğer kodlara (veya NVRAM'a veya sizin sahip olduğunuza) güvenmeden hitap etme yeteneğine sahipse, teorik olarak böyle bir CPU bir işletim sistemini diskten RAM'e yükleyebilir ve başlayabilir. yürütme.

Aslında, teorik olarak, böyle bir işlemci bile komut çalıştırabilir olmadan RAM onları yükleniyor. Bir bilgisayarın sabit diski birincil depolama olarak kullanamamasına dair teorik bir neden yoktur. Ancak bu çok yavaş olacaktır.

Bu, işlemcide diske erişmek için fazladan bir kodun olması ve disklerle ilgili bazı kavramların bölüm tabloları ve dosya sistemleri gibi CPU'ya bağlanması anlamına gelir. Bugünlerde CPU'lar bunu yapacak kadar büyük, ancak bir CPU tasarımı için çok esnek veya verimli bir yaklaşım olmaz.


Eskiden bilgisayarlar, doğrudan RAM / drum kullanmıyordu, önemli miktarda RAM yoktu.
Daniel R Hicks

-1

İhtiyacı yok!

Genellikle BIOS denilen şey 3 şeydir.

  • Bir önyükleyici
  • Bir yapılandırma aracı: şimdi önyükleme sırası ve saat hariç, artık kullanılmıyor. Gerisinin çoğu üretici tarafından otomatik veya ayarlanmış olmalıdır.
  • BIOS: işletim sisteminin donanım ile iletişim kurmasına yardımcı olmak için bir giriş çıkış yordamları kütüphanesi. Maalesef, biyografiler 16 bit, eski ve modern işletim sistemleri tarafından kullanılamıyor, bu nedenle büyük ölçüde göz ardı ediliyor.

Önyükleyici, BIOS'un bir parçasıdır.
Daniel R Hicks,

@Daniel Daha net yapmak için yeniden yazdım, teşekkürler.
ctrl-alt-delor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.