LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   General (https://www.linuxquestions.org/questions/general-10/)
-   -   good riddance BIOS, when can be trash you finally? rant (https://www.linuxquestions.org/questions/general-10/good-riddance-bios-when-can-be-trash-you-finally-rant-729774/)

onebuck 06-08-2009 07:25 PM

Hi,

BIOS (Basic Input/Output System), please note the word 'BASIC'.

This system firmware is used to allow the hardware to have the means of boot strapping a kernel that will hopefully support the hardware on the system board. This firmware will contain the means to handle the IPL then hopefully passing to the SPL.

Most system manufactures will specify their needs to the BIOS creators. Sadly not all things are tested thoroughly. That's one of the best arguments about the open source community. Things are written for a project and open to the community to test and contribute. Thus things do have a better turn around.

I too agree that assembly would be the best but the reason for high level languages was 'laziness' not efficiency in coding. I can remember coding in a 256B environment in machine code. When I moved to a larger machine with 16MB and assembly, I was in heaven.

I remember having to use re-entrant code just to utilize my code base. Now programmers don't really care with all the memory available along with the processors.

Please don't mis-understand me, it's just that bloat is a disease. One that has gotten to the point of a epidemic. I look at people like 'Steve Gibson' who is a very good asm coder. He's developed loads of apps and they were all written in assembly. Assembly is a viable language with today's newer hardware but you had better have a great toolbox or access to one. :)

My point is that early BIOS was written in assembly by tight and great coders. Newer BIOS is actually synthesized with high level language from previous versions. It's rare to have a new completely re-written BIOS from scratch. Most evolves from or builds on a previous version. Sure when the new mega bit wide system is here then things will really change. :) maybe :jawa:

browny_amiga 06-09-2009 09:46 PM

Quote:

Originally Posted by ProtoformX (Post 3567258)
Either you are a complete noob or just completely unintelligent
I can think of a very good reason why the BIOS should never touch the internet with a 328947328463254324 foot poll, Trojans and virii come to mind, what is easy for the user is not always the best way, the hard it is to do things the more likely it is that it is harder to attack

The BIOS is doing its job, let the kernel fix or detect the hardware,

I gladly give back the rude insult and am amazed at your own lack of intellience and lack of skill in networking. All or nothing, is that what you propose? Are you among the people that thing win 3.11 is so clever, because it is often isolated from the internet or any network for the matter?

What about updates? Patches? The bios is extremely static, there are no updates a short time after the mobo is out and it will never see any anymore. There are no ways to update the BIOS automatically over the net and neither will there ever be thanks to people like you.
Some of them offer automatic updating when you shove in a USB stick with the bios on it, but direct download? Wow, that seems impossible. Is it really so complicated? Everything else is already there and patching is best done frequently. There is no other way to close exploits.
I am not advocating a BIOS with all bells and whistles, just the basic stuff that it does not have.

But I know that nothing will change, it will stay pathetic and old and insufficent, the oldest crappyest part of any PC and the reason why it looks like a dinosaur.

Coreboot looks so promising, too bad the industry usually does not touch anything that makes that much sense with a 27384734 foot pole. They just don't get it. There are actually people that want to solve this problem, non-profit, for them, yet they don't care. I guess it is the old "oh gosh, these open source hippies are going to steal our precious hardware specs"

I will see that I get one of the supported boards and see some real sweet magic in action.

And see the future, as it will be in 10 years, when finally, this old garbage cannot be cooked and recooked up anymore.

Markus

browny_amiga 06-09-2009 10:10 PM

Quote:

Originally Posted by ProtoformX (Post 3567265)

Also back then they used a lot of assembly, it doesn't matter what people think ASM is much much faster at everything it does, C/C++ is much easier to work with but nothing can compare to assembler if written properly. The past is 100% proof of this.

I am absolutely a fan of ASM, but as of my own experience, code can be much more readable if you maintain it in a higher language, for you and others and bugs can be avoided. There are many ways that you can structure code logically, as might be much harder in ASM. Especially large complex projects will safe time in a higher language, because although it will run faster in ASM, debugging it and maintaining the code give you much more work in ASM. Source code mobility is another point, try porting direct ASM from one CPU to another. I wonder if Gibsons programs run on PPCs.

The bios of course is tiny and has always been like this (that is why it does so little and has little automatic control and flexibility). We can easily afford the BIOS a little bigger and in a higher language than ASM, since it would still work faster, stabler and more functional. CoreBoot for example uses 2 CPUs when available to test the RAM, a thing that makes so much sense, but that no other BIOS currently does.

Higher languages often are an excuse for bloat, yes. Efficient coding does not get old, in any language, high or low level.

But would you admit that it requires more skill to pull off bug free structured code in ASM than in a high language? I think so. So forcing less talented programmers to have to code in ASM will actually worse code quality in many cases.

Then there is of course again the question if a programmer that can only code in a cushion high level IDE environment shoud be coding at all and is not just annoying the rest of the worlds with his buggy code. Especially some corporate proprietary software comes to mind, which is obfuscated from prying (and would be laughing on the floor) eyes. In the OpenSource world, nobody would much use their codebase due to poor quality.

Markus

ProtoformX 06-09-2009 11:04 PM

Quote:

Originally Posted by browny_amiga (Post 3568658)
I gladly give back the rude insult and am amazed at your own lack of intellience and lack of skill in networking. All or nothing, is that what you propose? Are you among the people that thing win 3.11 is so clever, because it is often isolated from the internet or any network for the matter?

What about updates? Patches? The bios is extremely static, there are no updates a short time after the mobo is out and it will never see any anymore. There are no ways to update the BIOS automatically over the net and neither will there ever be thanks to people like you.
Some of them offer automatic updating when you shove in a USB stick with the bios on it, but direct download? Wow, that seems impossible. Is it really so complicated? Everything else is already there and patching is best done frequently. There is no other way to close exploits.
I am not advocating a BIOS with all bells and whistles, just the basic stuff that it does not have.

But I know that nothing will change, it will stay pathetic and old and insufficent, the oldest crappyest part of any PC and the reason why it looks like a dinosaur.

Coreboot looks so promising, too bad the industry usually does not touch anything that makes that much sense with a 27384734 foot pole. They just don't get it. There are actually people that want to solve this problem, non-profit, for them, yet they don't care. I guess it is the old "oh gosh, these open source hippies are going to steal our precious hardware specs"

I will see that I get one of the supported boards and see some real sweet magic in action.

And see the future, as it will be in 10 years, when finally, this old garbage cannot be cooked and recooked up anymore.

Markus

I think that's funny and very very amusing, you tell me I have a lack of understanding of how networks work, yet you propose to allow automatic updates, and flashing of the bios from the web? You are either kidding me or have no experience in IT security fields, because that is the dumbest thing i have ever heard of... yes lets allow the attack not only to comprise the whole system, but lets make it easy for him to keep his code around after you have wiped out all the media devices in your computer... you cant be serious!

The less you give to the attacker the less he has to work with, by allowing auto updates and flashed via web.. why don't you just invite the crackers in to your home and allow them to collect all the information they want and do what they want to your computer? because if there are auto updates to the bios (which is not protected by anything and has direct access to the hardware at all times) what is the difference?

browny_amiga 06-10-2009 01:56 AM

Quote:

Originally Posted by ProtoformX (Post 3568700)
I think that's funny and very very amusing, you tell me I have a lack of understanding of how networks work, yet you propose to allow automatic updates, and flashing of the bios from the web? You are either kidding me or have no experience in IT security fields, because that is the dumbest thing i have ever heard of... yes lets allow the attack not only to comprise the whole system, but lets make it easy for him to keep his code around after you have wiped out all the media devices in your computer... you cant be serious!

You might have misunderstood me: With automatic I mean: User can update BIOS with one command or keystroke. Not as in: system does it automatically, without user consent or interaction.
Right now, BIOS upgrades are so incredible work intensive to do and dumb that automatic already means what I propose. Automatic as in "save a bunch of time".

And no, the OS is not the place to do this, the BIOS must be independent updatable from the OS. What if your mobo does not recognize your HD and cannot boot the OS?

The google talk about Coreboot are a real relieve: they show that coreboot (aka Linux BIOS) does everything better than normal BIOSes and there is no valid reason why it should not be used:

http://www.youtube.com/watch?v=X72LgcMpM9k

He mentions something that really is dumb and has bugged me time and time again: boot from a flash mass storage device or usb stick. Try that with a 3 or 4 year old Laptop and it will not work.
But there is no reason why it should not work.

The google talk is a very interesting watch, for all doubters out there.

Markus

onebuck 06-10-2009 07:41 AM

Hi,
Quote:

Originally Posted by browny_amiga (Post 3568672)
I am absolutely a fan of ASM, but as of my own experience, code can be much more readable if you maintain it in a higher language, for you and others and bugs can be avoided. There are many ways that you can structure code logically, as might be much harder in ASM. Especially large complex projects will safe time in a higher language, because although it will run faster in ASM, debugging it and maintaining the code give you much more work in ASM. Source code mobility is another point, try porting direct ASM from one CPU to another. I wonder if Gibsons programs run on PPCs.

The bios of course is tiny and has always been like this (that is why it does so little and has little automatic control and flexibility). We can easily afford the BIOS a little bigger and in a higher language than ASM, since it would still work faster, stabler and more functional. CoreBoot for example uses 2 CPUs when available to test the RAM, a thing that makes so much sense, but that no other BIOS currently does.

Higher languages often are an excuse for bloat, yes. Efficient coding does not get old, in any language, high or low level.

But would you admit that it requires more skill to pull off bug free structured code in ASM than in a high language? I think so. So forcing less talented programmers to have to code in ASM will actually worse code quality in many cases.

Then there is of course again the question if a programmer that can only code in a cushion high level IDE environment shoud be coding at all and is not just annoying the rest of the worlds with his buggy code. Especially some corporate proprietary software comes to mind, which is obfuscated from prying (and would be laughing on the floor) eyes. In the OpenSource world, nobody would much use their codebase due to poor quality.

Markus

Boy, you have a lot to learn. Writing or even extending something will cause undue errors if not thoroughly tested. Bloating a BIOS won't increase nor provide efficiency if it's written in a higher language. The code base will still be in machine code. Until the populace accepts the change in the way machines are initialized we will have a BIOS based IPL. Some will call it something different but still a boot of some sort will occur via a pathway from a IPL to SPL.

ASM is a step above machine code therefore in a sense a means to write code in a easier understood fashion (a higher level). ASM can be coded along with comments to aid the author or others to understand the code. One must learn the semantics along with the syntax to write in any language, be it ASM, C or whatever. If you write in 'C' you had better comment so you can get back into the code days later to understand the code not just to provide someone else with the means to understand.

As to the efficiency of a coder, remember the verse 'garbage in, garbage out' if that coder doesn't think out or reason well the needs of the program then the verse stands. Someone who just sits down at a terminal and starts pounding code will be pounding their head at some point in time.

Any language has it's own problems as for efficiency. By writing in one and translating to another then some problems can be induced or even introduced. The big problem with BIOS is the restrictions or limitations of the size of the window of the map. I for one would not want a BIOS that would get on the net to update at the leisure or conditions of the machine without intervention. One has the choice to select the hardware along with the firmware. That's why there are so many different brands but notice the number of BIOS providers to the hardware industry. $$

V!NCENT 06-10-2009 04:14 PM

Quote:

Originally Posted by onebuck (Post 3569101)
Writing or even extending something will cause undue errors if not thoroughly tested.

It seems you have a lot to learn as well... Proprietary BIOSes are not tested thoroughly and are continuesly extended. Open source/bazaar is the ultimate testing field.


Quote:

Bloating a BIOS won't increase nor provide efficiency if it's written in a higher language.
What the fsck are you talking about? Coreboot boots much faster and is much cleaner. Efficiency? Check.

Quote:

The code base will still be in machine code.
Just a few lines of assembly...

Quote:

If you write in 'C' you had better comment so you can get back into the code days later to understand the code not just to provide someone else with the means to understand.
Yeah, right... Ever heared what documentation is invented for? But it's not like you have the source code with comments from the BIOS's out there, or do you? So what's your point anyway?

Quote:

I for one would not want a BIOS that would get on the net to update at the leisure or conditions of the machine without intervention.
You either manually go to the ASUS website or let your BIOS do it, who cares? Either way a cracker has to crack the ASUS server anyway...

onebuck 06-10-2009 06:14 PM

Hi,
Quote:

Originally Posted by V!NCENT (Post 3569678)
It seems you have a lot to learn as well... Proprietary BIOSes are not tested thoroughly and are continuesly extended. Open source/bazaar is the ultimate testing field.

Grow up. The BIOS for any machine is benched as best as they can with known hardware. And yes there are simulators. Open source is great but it will not replace all the present BIOS for systems. Sure you can use the IPL to your wisely invented SPL that is the GNU/YourBIOS but that is going to be tested initially. But it to will have problems that must be corrected to allow evolution. So now we use a current BIOS that yes is proprietary but who cares since after the kernel is loaded to avail your system to function.

Quote:

Originally Posted by V!NCENT (Post 3569678)
What the fsck are you talking about? Coreboot boots much faster and is much cleaner. Efficiency? Check.

Look I don't think you understand how the IPL works with a SPL. I don't care it's still a BIOS yet in another form by being open source. 'Coreboot' is still a 'BIOS' that relies on the IPL to SPL pathway.

Quote:

Originally Posted by V!NCENT (Post 3569678)
Just a few lines of assembly...

Obviously you don't understand how the BIOS or the system functions with the code. The CPU understands MACHINE CODE, you easily understand what I'm writing now (that's text) which is represented binary so the machine can read it too. Your high level language is for your understanding which must be translated to machine code so the CPU can perform the code.

Quote:

Originally Posted by V!NCENT (Post 3569678)
Yeah, right... Ever heared what documentation is invented for? But it's not like you have the source code with comments from the BIOS's out there, or do you? So what's your point anyway?

How much code have you written without comments? If that code was laid days or even years ago it had better be commented which is a form of documentation. Documentation for any program is for the end user to understand how to utilize the program not how the program functions intrinsically.

Quote:

Originally Posted by V!NCENT (Post 3569678)
You either manually go to the ASUS website or let your BIOS do it, who cares? Either way a cracker has to crack the ASUS server anyway...

I care for how my BIOS is updated. You obviously don't care about how secure your systems are if you would allow someone else to take care of such an important part of your system. Manufactures have made every means to allow a user to update their BIOS in a safe manner. Yet some still fail the system. Laziness will bite you!

Plus you preach Coreboot and in the same state it's OK to let another take care of your BIOS. :rolleyes:

ProtoformX 06-10-2009 10:19 PM

Quote:

Originally Posted by browny_amiga (Post 3568847)
You might have misunderstood me: With automatic I mean: User can update BIOS with one command or keystroke. Not as in: system does it automatically, without user consent or interaction.
Right now, BIOS upgrades are so incredible work intensive to do and dumb that automatic already means what I propose. Automatic as in "save a bunch of time".

And no, the OS is not the place to do this, the BIOS must be independent updatable from the OS. What if your mobo does not recognize your HD and cannot boot the OS?

The google talk about Coreboot are a real relieve: they show that coreboot (aka Linux BIOS) does everything better than normal BIOSes and there is no valid reason why it should not be used:

http://www.youtube.com/watch?v=X72LgcMpM9k

He mentions something that really is dumb and has bugged me time and time again: boot from a flash mass storage device or usb stick. Try that with a 3 or 4 year old Laptop and it will not work.
But there is no reason why it should not work.

The google talk is a very interesting watch, for all doubters out there.

Markus

It's easy to flash your BIOS the way it is, it doesn't matter if it's open or not, you are still going to have to boot into 16bit realmode to do it anyways, if not I'm never installing coreboot (32bit protected mode will miss some hardware, that's why the a20 gate is not opened by the bios, because it needs it to init the hardware and for 8086 compatibility mode.)

Insert Flash drive or floppy disk, format, copy BIOS update, flash.exe and flash.bat on to the media then reboot with media in the drive/usb slot... after it reboots and you have a prompt type "flash.bat" and your done... reset the CMOS data and power the system back on. It's not hard, maybe I am getting old but I think all the newbs want everything too fast, they want everything done within a blink of an eye yet do not want to understand how or why it works... you want it to be known as the magic box that could

V!NCENT 06-11-2009 01:08 AM

Quote:

Originally Posted by onebuck (Post 3569773)
Grow up. The BIOS for any machine is benched as best as they can with known hardware.

Benchmarked? Rofl.

Quote:

Open source is great but it will not replace all the present BIOS for systems.
Because?

Quote:

Sure you can use the IPL to your wisely invented SPL that is the GNU/YourBIOS but that is going to be tested initially. But it to will have problems that must be corrected to allow evolution. So now we use a current BIOS that yes is proprietary but who cares since after the kernel is loaded to avail your system to function.
There is no SPL. Instead of dropping to a OS kernel after doing a lot of unnecessary work, it just does so earlier on. And it does work on supported hardware, so your point? Not ready for primetime? Ok we allready knew that, next...

Quote:

Look I don't think you understand how the IPL works with a SPL.
Initial Program Load -> Second Program Load... in other words Coreboot (IPL) drops a payload (SPL) and a kernel boots. Whoohoo! Boy that was hard...

Quote:

I don't care it's still a BIOS yet in another form by being open source. 'Coreboot' is still a 'BIOS' that relies on the IPL to SPL pathway.
Seriously, what did you expect? Coreboot is meant to be an Open Source BIOS with all the crap no OS needs removed.

Quote:

Obviously you don't understand how the BIOS or the system functions with the code. The CPU understands MACHINE CODE, you easily understand what I'm writing now (that's text) which is represented binary so the machine can read it too.
You meant object code? Oh so you think you're so fscking smart by explaining that everything in the end needs to be compiled in object code? Oooooooohhhhh rrreeeeaaaaallllly? You're sooooo smaaaaaarrttttt! Happy now?

Quote:

Your high level language is for your understanding which must be translated to machine code so the CPU can perform the code.
Quote:

// Simple C++ program
// (c) 2009 Vincent Weber
// GPLv2 License

#include <iostream>

void MessageForPrivateDipshit()
{
using namespace std;
cout << "Please tell me mooooore about these high level languages pleaaaassseeee\n" << endl;
}

int main()
{
MessageForPrivateDipshit();
return 0;
}

Quote:

I care for how my BIOS is updated. You obviously don't care about how secure your systems are if you would allow someone else to take care of such an important part of your system.
Indeed; I have a motherboard with two BIOS's. Too bad, eh?

Quote:

Manufactures have made every means to allow a user to update their BIOS in a safe manner. Yet some still fail the system. Laziness will bite you!
Yeah whatever... Bla bla bla... There is a Coreboot flash utility now that flashes your BIOS from withing Linux.

Quote:

Plus you preach Coreboot and in the same state it's OK to let another take care of your BIOS. :rolleyes:
Yes, just as the free software community took care of my OS.

ProtoformX 06-11-2009 04:37 AM

Quote:

Originally Posted by V!NCENT (Post 3570068)
Benchmarked? Rofl.


Because?


There is no SPL. Instead of dropping to a OS kernel after doing a lot of unnecessary work, it just does so earlier on. And it does work on supported hardware, so your point? Not ready for primetime? Ok we allready knew that, next...


Initial Program Load -> Second Program Load... in other words Coreboot (IPL) drops a payload (SPL) and a kernel boots. Whoohoo! Boy that was hard...


Seriously, what did you expect? Coreboot is meant to be an Open Source BIOS with all the crap no OS needs removed.


You meant object code? Oh so you think you're so fscking smart by explaining that everything in the end needs to be compiled in object code? Oooooooohhhhh rrreeeeaaaaallllly? You're sooooo smaaaaaarrttttt! Happy now?





Indeed; I have a motherboard with two BIOS's. Too bad, eh?


Yeah whatever... Bla bla bla... There is a Coreboot flash utility now that flashes your BIOS from withing Linux.


Yes, just as the free software community took care of my OS.

Hehe, i see you have a little ignorance as well, okay, so now that you have ALL machines running coreboot tell me, how does one use 16bit real mode now? (some embedded systems rely on 16bit calls), I also notice coreboot requires a huge flash chip... ahh the beauty of assembler :) Embedded systems are suppose to be SMALL! Not that i wouldn't support an open BIOS, but it should be an option like most opensource software, they day is rammed down my throat is the day I make my own BIOS and overwrite any nonsense, I don't have to run anything if i don't wish!

I say keep the BIOS the way it is, if people want to flash an openBIOS its in there hands, this way you can't cry there is no support and people like me, who like there system just the way it is can have it the way we want it.


Code:

section .text
global _start

_start:

        mov    edx,len
        mov    ecx,msg
        mov    ebx,1 
        mov    eax,4 
        int    0x80       

;and exit

        mov        ebx,0       
        mov    eax,1 
        int    0x80       

section .data                       

msg    db  "I'm special too! I can be just like V!NCENT, yay look at meeeeeee ",0xa       
len    equ    $ - msg


onebuck 06-11-2009 07:07 AM

Hi,

Vincent, your an idiot! Nobody was talking about a benchmark comparison. Apparently you've never written a valid piece of code. If you don't understand the term benched when speaking about code.

I'm not going to waste my time any longer with this since you really don't understand how the system functions nor why or when the machine is fist powered how things are initialized. Let alone know anything about machine code which is object code that is produced from the compilation of the higher level language; be it ASM, C or whatever. Or God forbid hand coded. Understand this, the CPU does not utilize anything but machine code which is the binary representation of the code.

I'm through with this as you know nothing about the subject but continuing your inane banter. The link is so you can understand clearly my use of the language. That is if you really can read for understanding.

BTW, your code snippet is worthless.

V!NCENT 06-11-2009 11:50 AM

Quote:

Originally Posted by onebuck (Post 3570317)
Apparently you've never written a valid piece of code. If you don't understand the term benched when speaking about code.

Rofl again. Maybe you should say that to Bjarne Stroustrup's face for not including the term benchmarking in his C++ book...

Quote:

I'm not going to waste my time any longer with this since you really don't understand how the system functions nor why or when the machine is fist powered how things are initialized.
Yeah I totally didn't read the Coreboot wiki...

Quote:

Let alone know anything about machine code which is object code that is produced from the compilation of the higher level language; be it ASM, C or whatever. Or God forbid hand coded. Understand this, the CPU does not utilize anything but machine code which is the binary representation of the code.
What is there to know about object code? Dude, stop being such an idiot. Everybody knows you need to compile whatever it is that is coded in order for it to run so I'll ask you again: WHAT IS YOUR FSCKING POINT?!

Quote:

I'm through with this[...]
Ok kthnxbye ttyn, whatever...

Quote:

[...]as you know nothing about the subject
Yeah I know nothing about hardware. I don't know how to code in C++. I don't know how to compile with G++. I don't know the instruction set for Intel Larabee and I never read through the OpenSparc documentation... rofl...

Quote:

[...] but continuing your inane banter. The link is so you can understand clearly my use of the language. That is if you really can read for understanding.
Ow wow that makes you so smart, please keep informing me pleaaaassse! -_-'

Quote:

BTW, your code snippet is worthless.
No it's actually the best, because a) it shows you to stop pretending that nobody but you has ever programmed and b) it is telling you to stop being such a know-it-all when you're clearly not. You are probably the guy who everyone hated at school because in spite of that you thought you were such a smartass, you actually weren't.

ProtoformX 06-11-2009 09:04 PM

Quote:

Originally Posted by V!NCENT (Post 3570647)
What is there to know about object code? Dude, stop being such an idiot. Everybody knows you need to compile whatever it is that is coded in order for it to run so I'll ask you again: WHAT IS YOUR FSCKING POINT?!

You can stop being a retard! You don't compile ASM you assemble it, you are not translating ASM to something the computer can read, you are using the CPU's instructions directly! When you assemble the ASM code you are converting it to machine code, ASM is machine code only human readable so there is no compiling of any sort, ASM is a direct mnemonic to machine language!!!! there are no optimizations or ticks the assembler does for you!!!


This right here proves you no nothing about programming, a compiler can give you the output (in asm) an assembler can't because it already is in assembly! if you are going to call someone an idiot get your facts straight, also "mr. everyone knows" interpreted languages aren't compiled either! so I'll ask you again get your facts straight!!!!

V!NCENT 06-12-2009 10:46 AM

Quote:

Originally Posted by ProtoformX (Post 3571176)
You don't compile ASM you assemble it, you are not translating ASM to something the computer can read, you are using the CPU's instructions directly!

Rofl again, since when did CPU's lose their NAND gates? Rofl rofl rofl...
The only thing that a CPU does is 1, 0, 1, 0, 1, 0, 1, 0...
Getting my facts straight? Rofl. I have never ever met somebody as stupid as you

PS: hand over you IT card at the logout counter


All times are GMT -5. The time now is 06:34 AM.