Oops, thank you for the correction. Could you tell us which document would be the most relevant, please?

PI is not part of the UEFI specification. I think, that for familiarizing osdev hobbyists with UEFI, and how it interacts with OSs, the UEFI specification will be the most relevant, surprise! I told, chapters 1-3 are a good starting point. The chapter numbers are for v2.4 at least. Of course, there is a lot of resources on the web, and maybe among the bashing UEFI, there is even a useful reading on it. but I didn't do that, I read the specification and asked questions on the EDK mailing list. They answer! This mailing list (edk2-devel-01) is about the UEFI itself. there is another one, dedicated to solving problems with the UEFI<->OS interaction. Less active. it's called fw_os_forum.

Quote:

I quite agree, but I'm not the one you need to tell that to. It is companies such as Microsoft, Apple, HP, and Acer who are bending the rules to make running other OSes on their hardware difficult. It is because they aren't implementing UEFI according to the spec that it is a problem.

By all rights, installing other OSes on their systems should be the same as with any other UEFI system, but they - especially Apple, recently, with the introduction of the 'security' chip which allows MacOS and (through Boot Camp) Windows to be installed but bricks the system for anything else - have taken steps to prevent 'unsupported' OSes from working correctly. always with the argument that they are a security risk.

It is of little immediate consequence to me - I wouldn't buy the products for those companies anyway (I always get Lenovo for laptops, and do component builds for desktops), but it means that a lot of systems out there won't run or even install Linux, or any other 'unsupported' OS.

There is nothing to argue with here, but this is an implementations' fault, not the standard's. which is open for implementing by anyone willing. to bring that freedom. of course, if they will be able to get all the information on the hardware they target. on the other hand, on mobile systems, it's clearly impossible to install anything else other than what the vendor permitted. and this fact doesn't prevent people of using these devices. they are locked and nobody argues. nobody demands the ability to install Linux on iphone. And by the way, those companies, except apple, do sell Linux PCs. I bought such a laptop. HP one. It had Linux and UEFI. And I easily installed Windows on it. So at least if their firmwares behave crappily, Linux fans still have a chance to pick a PC for their OS. Somehow I'm more inclined to believe these quirks are due to laziness, rather that the "anti-Linux conspiracy", ruled by Microsoft, of course.

I agree with most but never disrespect DOS. It was a thin layer on top of the hardware. Some hobby OS's started on it. TAsm rules. If you're nice you get to use use BIOS and DOS calls while doing your own thing. If UEFI can't "emulate" that I'm reading some other specs.

Now, to "emulating" the environment for the OS. What exactly in its specification did you read, that inspired you to think it does provide such things? I didn't see that. Because well, switching graphics modes is waaay not everything we are used to think about when thinking about OS.

I need to apologize here. Calling you disrespectful was very disrespectful of me. It was late a reply with a few to many glasses of port. And I had to defend DOS to many times in the past. It was a stupid thing to write.

What I should have said was that UEFI can be used as the same stepping stone to get started like you could with DOS. At some point leaving it behind becoming a real independent OS. And that it isn't a bad thing to use a miniOS like DOS or UEFI as such, now and in the past.

zaval wrote:

Of course, it all boils down to what one sees as "fun". If using wrong tools for accomplishing a goal is "fun" for someone, then fine, why not. By the way, then writing an "OS" as a Windows application (or any other OS's application), will give more possibilities compared to the "UEFI application as an OS" one. Without even virtualization involved!

What makes osdev fun to begin with? For me mostly the wealth of things you learn from doing it, having low level access to a machine like I had as a child and creating a bootdisk and see a machine boot running code you wrote. I get the toung-in-cheek comment about just writing a windows program but it's an unfair comparison, got me smiling but no. Where is the low level access then?

What makes osdev annoying at times. For me atleast, not being able to run on realistic hardware. Allmost like building a hackintosh, If you only have a driver for a NE2000 network card you can only just use that. That makes (mis)using the drivers/protocols presented by uefi very tempting.

Yeah, fun is personal. I read a few days ago how Linus started developing what would be the Linux kernel in a clutched way on Minix. I would call that a fun thing to do. Trying to get gccgo compiled x86_64 code to run on bare metal was very fun to do for me last time I was here. Porting the runtime wasn't something I wanted or had the time to do... so failed project. But it was nice to see a language not designed to do such a thing, run in a meaningful way on real hardware.

Writing some bastard-OS that is run by uefi, takes over without calling exitbootservices, stuffs it in a box and opens it sometimes to get access to some basic hardware devices like graphics and networking ' easily' ?That sounds like fun.

_________________"Always code as if the guy who ends up maintaining it will be a violent psychopath who knows where you live." - John F. Woods

Somehow I'm more inclined to believe these quirks are due to laziness, rather that the "anti-Linux conspiracy"

Who said conspiracy? It's about basic economics - it is vastly less expensive if they only have to support their pre-installed configuration. It isn't laziness per se, as the effort put into initially is about equal, but the effect is the same.

So I won't say 'conspiracy'. 'Anti-consumer practices', maybe, but not 'conspiracy'. And as I said earlier, it does seem to be disappearing, as it is proving less effective as a cost-cutting measure than it had been expected to be (though someone needs to tell Apple that part, I guess.)

But you are right that it is no reflection on the standard itself - that was actually my point. The standard itself isn't at fault for most of the things people here complain about regarding UEFI (actually, most of those complaints seem to come from lack of information about the standard, as you yourself keep saying). My statements were aimed more at Glaux et al than at you.

IOW, we're violently agreeing. I think we can drop it.

As for mobile, well, they already have Linux - or at least a Linux derivative - on Android phones, though good luck getting it to work like a desktop The real difference there has more to do with the lack of a single, legacy hardware platform with a consistent ABI for most major components; the chances of such a standard arising in the mobile sphere is exactly zero, for the same reason such will never quite arise for laptop PCs separate from that of desktops (i.e., the requirements of it being mobile, regarding ruggedness, power consumption, heat dissipation, etc) plus the added limits of the user interface (e.g., no physical keyboard or a very rudimentary one).

The desktop PC, for all its flaws (and there are a great many) is at least amazingly consistent across dozens if not hundreds of hardware vendors, mostly without formal standards other than 'can it run Windows?'. I may despise the x86 platform, but I do want to give it credit for that much.

But none of this addresses what I was actually talking about, namely a) whether this group can remain civil in its discussions, and whether the forum still serves a purpose even if it can; b) whether this hobby is worth pursuing any more, even just for fun; and c) whether OS-dev will even be possible any more if desktops themselves become uncommon, specialist devices, getting replaced by mobile and Smart TV type devices for everyone who can live without a physical keyboard and pointing device. The whole UEFI thing was topic drift from the outset - of a post that could be argued to be topic drift already.

_________________Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTFμή εἶναι βασιλικήν ἀτραπόν ἐπί γεωμετρίανLisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.

But none of this addresses what I was actually talking about, namely a) whether this group can remain civil in its discussions, and whether the forum still serves a purpose even if it can; b) whether this hobby is worth pursuing any more, even just for fun; and c) whether OS-dev will even be possible any more if desktops themselves become uncommon, specialist devices, getting replaced by mobile and Smart TV type devices for everyone who can live without a physical keyboard and pointing device. The whole UEFI thing was topic drift from the outset - of a post that could be argued to be topic drift already.

I don't think this group will ever be "civil" if by that you mean everybody will respect each others opinions. We are all passionate, prideful people, we'd have to be to spend the amount of time we do on something so unnecessary and difficult! Disagreements will always come up, and the act of disagreeing on technical subjects is in it's nature a hair's breadth away from insulting each other's intelligence.I think vigorous disagreement is actually useful too. We shouldn't be afraid to call Geri's branching nightmare SUBLEQ OS silly, or ~'s insistence that DOS was the height of design elegance weird. I don't think they're bad people though, I don't even think they're stupid.The problem comes in assuming bad faith, attacking each other's personal traits and deliberately disrupting the rest of the board because of disagreements. These things are not necessary to have a free and open discussion on OS design and development in addition, they actively hamper it, in multiple ways. In this sense moderators should be functionaries, enabling, not restricting the discussions that come up.I still have fun making and talking about OSes. So I think; yeah, it is still worth it. Hardware and software are more free now than at any time in the past. Sure maybe Joe Blow in the street only has a smartphone, but he was never going to care about independent OSes anyway. Servers, desktop PCs, workstations and the hundreds of other industrial uses for component PC hardware aren't going anywhere fast either. Additionally gaming is still a PC mainstay, it's not dead yet! If anything I think it's going through a renaissance with simulation and strategy games as well as FPS streaming blowing up. Maybe these things don't require new OSes, but they do encourage hardware companies to provide flexible hardware and standardised software interfaces.I think that there isn't cause to be too pessimistic about OSdev. It's been a tiny niche for more than a decade, but I don't see it going away entirely.

Nowadays, it's probably only about 40-50 people visiting these forums daily. Four years ago when I joined, I'd suppose there were about 100 or so. We are indeed shrinking, but we are not dying. Schol-R-LEA mentioned some reasons for this. I was a bit passionate in my original reply to them, but I can see their point.

Indeed, I haven't done any OSDev (besides attempting to start doing a bootloader twice) since more than two years for several reasons that Schol-R-LEA stated and several more, personal ones:

Two years ago, I had to study more than in earlier years in order to enter the university. Unfortunately, having everyone tell me to wait with my projects until I start my university studies didn't help either.

Now, I'm a university student. I was thinking it would be easy for me, but it turned out we have lots of maths that can be quite difficult for me. It took me some time to get myself used to the reality.

During the year when I did almost no programming at all, I got used to that and now it seems normal to me to just browse the Internet instead of programming whenever I'm sitting at my computer. (It's what most people in my age are doing.)

I have too many project ideas flowing around; they proliferate like a fork bomb. We all know what a fork bomb does.

I'm starting to think I'm not qualified to do any "serious programming" because I still lack a lot of knowledge and will still lack a lot of knowledge for years to come. (By "serious programming", I mean any projects whose source code is releasable and actually useful.)

I got more interested in music during the last year, so I'm learning a musical instrument in addition to my university studies. This is probably the only reason about which I'm not mad.

In my eyes, "not being able to program" is a serious bug. Any ideas to resolve this?

I'm starting to think I'm not qualified to do any "serious programming"

At least you wrote a message that is very good for a general discussion. Based on your post history, I would say that you should try an "agile" way of programming. It seems that there were too much design and requests for feedback than actual hacking and experiments. The waterfall-like model with thorough design might work in theory but in this case it could be blocking the progress.

Why those boot loader attempts failed? Were those throwaway projects to begin with? If so, perhaps that is the problem. What if you write some code that is meant to be the "final" version?

Fair enough. Pessimism is unfortunately one of the results of chronic depression, and sometimes it gets the better of me.

I feel ya there, I have a depressive disorder also and I hope you don't think I was having a go at you. I can't speak for you, but it helps me to remember that the world isn't all as dark as it seems in my head.

Glaux - have you heard of "Impostor Syndrome"? Basically it's the phenomenon, particularly in fields like ours where the more we learn and the more capable we become, the more convinced we are that we aren't good enough to fit in with our peers*. I think we're our own worst critics because the more we learn, the more we see that we don't know, but the fact is you are vastly more skilled, knowledgeable, and capable in this particular niche field than 99.99% of people! The only code you can't write, is the code you convince yourself you can't. I mean look at Linux 1.0! It's a mess, but what really mattered was just that it existed, and it worked.

*The same seems true in reverse, where someone with very little experience may assume themselves to be masters, when in reality they have only a surface understanding of a topic. I reckon we've all seen that before on this very forum!

I'm starting to think I'm not qualified to do any "serious programming"

At least you wrote a message that is very good for a general discussion. Based on your post history, I would say that you should try an "agile" way of programming. It seems that there were too much design and requests for feedback than actual hacking and experiments. The waterfall-like model with thorough design might work in theory but in this case it could be blocking the progress.

Yes, that's definitely true. I should probably get some more experience in actual coding, even if it's simple stuff. I should probably do some userspace programming before re-attempting doing an OS/compiler/anything.

Quote:

Why those boot loader attempts failed? Were those throwaway projects to begin with? If so, perhaps that is the problem. What if you write some code that is meant to be the "final" version?

If it is meant to be the "final" version, progress is further blocked because I start acting like Mr. Perfect.

StudlyCaps wrote:

Glaux - have you heard of "Impostor Syndrome"? Basically it's the phenomenon, particularly in fields like ours where the more we learn and the more capable we become, the more convinced we are that we aren't good enough to fit in with our peers*. I think we're our own worst critics because the more we learn, the more we see that we don't know, but the fact is you are vastly more skilled, knowledgeable, and capable in this particular niche field than 99.99% of people! The only code you can't write, is the code you convince yourself you can't. I mean look at Linux 1.0! It's a mess, but what really mattered was just that it existed, and it worked.

I don't think it's the Impostor Syndrome. I haven't studied/encountered a lot of basic CS stuff yet, which doesn't make me exactly knowledgeable. I've struggled with some arithmetic expression evaluators several times already, without managing to do a working implementation (couldn't go past lexing). I was struggling with mutexes several days ago in a standard producer-consumer problem. I'm now struggling with a data structures and multisets university assignment in Java (even though I can probably say I know data structures well).

I should probably find some interesting projects to do in order to teach me stuff. What kind of projects did you find to have taught you most of the stuff?

I haven't studied/encountered a lot of basic CS stuff yet, which doesn't make me exactly knowledgeable.

I'm largely self-taught. My professional computer job is far more business oriented. My computer hobbies are more CS oriented. But I also have no problem taking on a technical manual for "a little light reading."

_________________Adam

The name is fitting: Century Hobby OS -- At this rate, it's gonna take me that long!Read about my mistakes and missteps with this iteration: Journal

"Sometimes things just don't make sense until you figure them out." -- Phil Stahlheber

By "encountered", I mean not only in the university, but also in the rest of my (quite limited) programming experience. For example, I hadn't even encountered a case for sorting until a few months ago.

I don't think it's the Impostor Syndrome. I haven't studied/encountered a lot of basic CS stuff yet, which doesn't make me exactly knowledgeable. I've struggled with some arithmetic expression evaluators several times already, without managing to do a working implementation (couldn't go past lexing). I was struggling with mutexes several days ago in a standard producer-consumer problem. I'm now struggling with a data structures and multisets university assignment in Java (even though I can probably say I know data structures well).

I should probably find some interesting projects to do in order to teach me stuff. What kind of projects did you find to have taught you most of the stuff?

I completed my bachelor's in Sw.Eng. a few years back, and I'm not blowing smoke when I say a majority of my fellow grads, would also struggle to put these patterns into practice. I think the purpose of academic education is to introduce all these topics, to add them to your toolbox so to speak. It's through use that you develop your own ability to apply the techniques to actual problems.

I personally think I chose all the wrong ways when I taught myself, if anything, what I've learnt is a testament to the fact that doing the wrong things will teach you more than trying to find the right things to learn will.

The most education projects for myself though - Half a dozen aborted 3D game engines taught me about data structures, algorithmic complexity and API design, I never even got close to finishing one, but each was better than the last.Emulators for the NES and Gameboy, never got a playable game, but I got graphics and sound. Taught me about simple bare metal systems design.Servers and website for Minecraft groups, taught me about automating backend systems.I did 6 months contract work for the uni making a data collection tool for embedded environmental sensors (honestly the most important thing I did at uni) learned how to actually make a thing that works, rather than trying to make a thing that's perfect. Also taught me how to design tools from hardware specs and how to make functional UIs.Final year project at uni - wrote a AR rendering engine which streamed geometry from sketchup. Learned about jury rigging systems that hate each other into something that does what it's supposed to. Learned how to design a network protocol.

Again I don't know if I'd recommend any of these projects to someone else though!

Who is online

Users browsing this forum: No registered users and 2 guests

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum