ACPI Stuff (was PCI IRQs with I/O APIC)

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
embryo2
Member
Member
Posts: 397
Joined: Wed Jun 03, 2015 5:03 am

Re: PCI IRQs with I/O APIC

Post by embryo2 »

Schol-R-LEA wrote:Seriously, all of you need to rein in your egos a bit and start considering that maybe, just maybe, this should be about something other than proving that you're the smartest person in the room.
Ok, I'm the silliest man in the room. Is it enough to assure you about the irrelevance of my ego? Or what should I do to prove it? But don't tell me to stop having fun by posting here :) Because it's silly 8)
Schol-R-LEA wrote:Do you want to know why you cannot possibly succeed in what you are trying to accomplish?
But how do you know what exactly we are trying to accomplish? You are not as silly as I am! :)
Schol-R-LEA wrote:The economics dictate that the products that fulfill the job with the least cost and the highest generation of paid labor (e.g., require the most technical support, the most administration effort, the most paid effort to be kept working in general) are the ones that succeed.
I agree (despite of my silliness) :)
Schol-R-LEA wrote:Perfection is economically non-viable, because no one will be able to make a living from it - you simply will never get the necessary critical mass of experts who know the technology.
But my silliness just tells me about one simple thing - the perfection now is a mediocre trash in the future. And perfection in the past is... What is a stone axe for us today? Providing we are not a relic collectors.

It means - the situation changes. And people like Brendan push it forward. Even if they accomplish nothing at all.

And there is some optimum. When a perfection becomes possible in the time of imperfect competitors. Not often, by it happens.
Schol-R-LEA wrote:If you did succeed in doing what you mean to - and I have yet to see any indication that you are any further along in your system than I am in mine - you would be unable to get people behind you because it is too good.
In Brendan's case it's not too good, it's too complex for the majority of people. And Brendan refuses to be a bit simpler. And I try to convince him to be closer to the current people's needs. But he considers some irrelevant needs as too important for people. Or too important for his success. Or whatever excuse he can find to convince himself not to do it in a simple way.

But somebody should push it. Or who do you think will invent a time machine, for example?
My previous account (embryo) was accidentally deleted, so I have no chance but to use something new. But may be it was a good lesson about software reliability :)
User avatar
Schol-R-LEA
Member
Member
Posts: 1925
Joined: Fri Oct 27, 2006 9:42 am
Location: Athens, GA, USA

Re: PCI IRQs with I/O APIC

Post by Schol-R-LEA »

embryo2 wrote:But somebody should push [the state of the art]. Or who do you think will invent a time machine, for example?
I have no problem with that part; I agree entirely, in fact. It's when people start seeing disagreements over the merits of technical approaches as ad hominem attacks on themselves (or start replacing technical arguments with ad hominem attacks on others) that I think we need to step back and stop taking it all so personally.
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
Ordo OS Project
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.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: PCI IRQs with I/O APIC

Post by Brendan »

Hi,
embryo2 wrote:
Brendan wrote:It just means that the OS displays a message (like "Are you sure this computer is OK? [Yes][No]") when the OS is being installed, so that if the hardware is dodgy I can say "Hey, you said it was OK so don't blame me!".
It should be something like this - "Are you sure? Read here A LOT about why you shouldn't be so sure." [yes][no][read A LOT]

Because users often unaware about how secure your OS could be.
Yes - something like that.
embryo2 wrote:
Brendan wrote:Or, how about the OS does whatever it can with the hardware it's given (and if it's not secure, then that's the admin's fault and not the OS's fault because the admin said it was OK)?
I'm fine about the idea, but the time is crying. You can do it if your life is long enough and there will be no alternative solution, supported by big money.

Do you plan to finish it? Really?
How do you define "finished"?

What I'm planning to do (for 80x86 only) is the OS installer, boot code, micro-kernel, GUI, a small number of drivers, the IDE/toolchain, a few file systems, documentation/specifications, a game of some sort, a programming tutorial and some example code people can use/build on. For this I'm allowing about 10 years.

The majority of the work (writing applications, writing all the drivers, adding decent optimisation and support for other CPUs to the compiler, porting the OS to other architectures, etc) are things that are never finished. I'll be hoping that the OS is "impressive enough" to attract volunteers (and maybe companies eventually) to do almost all of this.
embryo2 wrote:
Brendan wrote:Do you still think that normal users (who aren't OS developers like us) are able to figure out if the ASL on their computer is/isn't secure?
Do you still think that normal users (who aren't OS developers like us) are able to figure out if your OS is really so secure? They can trust you or they can buy an anti-virus that claims it is ready for your OS (while does absolutely nothing except showing some attractive UI). Do you see the problem here? It's the trust. They should see your OS everywhere and hear comments from everywhere about your OS's highest possible security. And in turn it means there should be a market for your OS. A big market. And not a bunch of youtube videos.
The problem I see is that you think "security" is the only feature my OS will have; when the reality is that it's not a major feature and is only a minor requirement (probably not even worth mentioning in marketing material/advertisements).
embryo2 wrote:
Brendan wrote:It depends what the system is being used for. You don't buy a 16-core Opteron server when you want a thin client, or a small NAS for your lounge room, or a small device you can plug into your laptop to get a little more processing power while you're travelling on a train.
The niche for the travel time performance booster is too small. And if it would be big enough there will be a lot of variants, supported by big money (in contrast with your project).
The main point here is that those Atom boards (or maybe any of Intel's NUCs) are relatively inexpensive; and I'd be able to adapt the software and hardware to cover multiple different niches (anything where "cheap with low processing power" is suitable). A large server that's only really useful for heavy processing (and has a $2000+ price) is something far fewer people will be willing to try.
embryo2 wrote:
Brendan wrote:After doing (inexpensive/versatile) little machines, if they sell reasonably well, high powered servers would probably be a logical next step.
It's better to look at the server market now.
It's not really worth looking at anything until the OS is usable; and even then servers are less problematic (no video and sound to worry about) so people are more likely to reuse existing server hardware than to buy anything.


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
embryo2
Member
Member
Posts: 397
Joined: Wed Jun 03, 2015 5:03 am

Re: PCI IRQs with I/O APIC

Post by embryo2 »

Brendan wrote:How do you define "finished"?
Something one can download and try. It should work somehow (not hang at least) and demonstrate the achievements of it's developer (prove the concepts are feasible).
Brendan wrote:What I'm planning to do (for 80x86 only) is the OS installer, boot code, micro-kernel, GUI, a small number of drivers, the IDE/toolchain, a few file systems, documentation/specifications, a game of some sort, a programming tutorial and some example code people can use/build on. For this I'm allowing about 10 years.
Why not to split it in parts? First boot code (with all safety checks an other features like GUI selection of boot variants), next micro kernel with a few simple demo-programs, next some drivers and file systems, next full GUI, next IDE, next the game. And ongoing documentation updates, of course.
Brendan wrote:I'll be hoping that the OS is "impressive enough" to attract volunteers (and maybe companies eventually) to do almost all of this.
Impressive bootloader can bootstrap your project on earlier stages.
Brendan wrote:The problem I see is that you think "security" is the only feature my OS will have
Ok, there's more of it, in the dreams and fairy tales. Or what I can download and try?
Brendan wrote:The main point here is that those Atom boards (or maybe any of Intel's NUCs) are relatively inexpensive; and I'd be able to adapt the software and hardware to cover multiple different niches (anything where "cheap with low processing power" is suitable).
Who will sell your adapted software and hardware? It's harder for tech people (like you) to sell than to create an OS.
My previous account (embryo) was accidentally deleted, so I have no chance but to use something new. But may be it was a good lesson about software reliability :)
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: PCI IRQs with I/O APIC

Post by Brendan »

Hi,
embryo2 wrote:
Brendan wrote:How do you define "finished"?
Something one can download and try. It should work somehow (not hang at least) and demonstrate the achievements of it's developer (prove the concepts are feasible).
Brendan wrote:What I'm planning to do (for 80x86 only) is the OS installer, boot code, micro-kernel, GUI, a small number of drivers, the IDE/toolchain, a few file systems, documentation/specifications, a game of some sort, a programming tutorial and some example code people can use/build on. For this I'm allowing about 10 years.
Why not to split it in parts? First boot code (with all safety checks an other features like GUI selection of boot variants), next micro kernel with a few simple demo-programs, next some drivers and file systems, next full GUI, next IDE, next the game. And ongoing documentation updates, of course.
Brendan wrote:I'll be hoping that the OS is "impressive enough" to attract volunteers (and maybe companies eventually) to do almost all of this.
Impressive bootloader can bootstrap your project on earlier stages.
You only get one first impression; and one of the worst things you can do is release it too early and ensure people's first impression of the OS is bad (unstable, no drivers, no apps, etc). Until it can be used for programming there's no point trying to attract volunteers/programmers (and therefore no point releasing it at all); and for it to be usable for programming I need almost everything on that list (everything except "some sort of game").

Mostly I'd want to release the OS and flood news sites with articles about it to create a "wave of interest" (where everywhere is talking about the radically different and interesting new OS), and then ride that wave. For this to work the OS needs to get a better reaction than "Meh, seems like it might be cool one day I guess". For this to work you'd want people to be amazed.
embryo2 wrote:
Brendan wrote:The main point here is that those Atom boards (or maybe any of Intel's NUCs) are relatively inexpensive; and I'd be able to adapt the software and hardware to cover multiple different niches (anything where "cheap with low processing power" is suitable).
Who will sell your adapted software and hardware? It's harder for tech people (like you) to sell than to create an OS.
I doubt it'd be hard to convince any of the many different online computer hardware shops to add a few items to their catalogue; but if I have to sell them through eBay or create an online shop it's not that hard to do it myself. It's also not something that matters until the OS is ready for release - it's just an idea for some point in the distant future.


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Antti
Member
Member
Posts: 923
Joined: Thu Jul 05, 2012 5:12 am
Location: Finland

Re: PCI IRQs with I/O APIC

Post by Antti »

Brendan wrote:You only get one first impression; and one of the worst things you can do is release it too early and ensure people's first impression of the OS is bad (unstable, no drivers, no apps, etc). Until it can be used for programming there's no point trying to attract volunteers/programmers (and therefore no point releasing it at all)
I used to agree on all of this but now the validity of "one of the worst things you can do" starts to be open to doubt. It is true that a perfect system would give the best first impression. If you succeed in creating everything you mentioned before releasing anything, that would be an impressive achievement. It would definitely strengthen the wave of interest. However, the alternative way is not that bad (i.e. "one of the worst things you can do") but can be more realistic.

What I try to say is that you should not state "one of the worst things you can do" because that may not be true. It is more a comparison between a normal way and perfect way. You prefer the latter and accept the extra challenge but it does not make the normal way so bad that has been implied. Really successful systems can be created without relying too much on the one-shot chance, i.e. the moment of releasing it. Ten annual releases could compete evenly with a "one-decade" release. Even if the latter were much better when it comes to the first impression, would it be worth the extra difficulties? An impressive system will find its way anyway so is it really necessary to put so much attention to the first impression?

Anyway, it is interesting to see what happens.
embryo2
Member
Member
Posts: 397
Joined: Wed Jun 03, 2015 5:03 am

Re: PCI IRQs with I/O APIC

Post by embryo2 »

Brendan wrote:Until it can be used for programming there's no point trying to attract volunteers/programmers
First you can ask for their opinions. And without it the released "full blown" OS can gather a bad reputation (unless it targets the dumbest part of the society with flashing buttons and sliding images).
Brendan wrote:Mostly I'd want to release the OS and flood news sites with articles about it to create a "wave of interest" (where everywhere is talking about the radically different and interesting new OS), and then ride that wave. For this to work the OS needs to get a better reaction than "Meh, seems like it might be cool one day I guess". For this to work you'd want people to be amazed.
It's the fancy buttons you need to amaze a lot of people. And good funding for advertising.
My previous account (embryo) was accidentally deleted, so I have no chance but to use something new. But may be it was a good lesson about software reliability :)
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: PCI IRQs with I/O APIC

Post by Brendan »

Hi,
Antti wrote:
Brendan wrote:You only get one first impression; and one of the worst things you can do is release it too early and ensure people's first impression of the OS is bad (unstable, no drivers, no apps, etc). Until it can be used for programming there's no point trying to attract volunteers/programmers (and therefore no point releasing it at all)
I used to agree on all of this but now the validity of "one of the worst things you can do" starts to be open to doubt. It is true that a perfect system would give the best first impression. If you succeed in creating everything you mentioned before releasing anything, that would be an impressive achievement. It would definitely strengthen the wave of interest. However, the alternative way is not that bad (i.e. "one of the worst things you can do") but can be more realistic.
There's 3 parts to this..

If a normal person on the other side of the world gets murdered, is that news? Of course not - it's too small and too far away to matter. If a normal person in the building next to your house gets murdered, that's news because it's close to you. If a large number of people get murdered (or someone important like the country's leader or the pope or something) on the other side of the world, that's news because its much larger.

As a general rule of thumb, it's like "newsworthiness = importance / distance".

For the release of something on the internet, "distance" isn't geographical distance - it's more like the distance between the subject and the news site's focus. For the release of an OS on the internet, it doesn't really need to be that important to get picked up by sites like OSnews (which mainly only deal with OS related things), but for a site like Ars Technica (which covers technology in general) it'd need to be more important. How important/impressive would the OS need to be to get mentioned on news sites that have nothing at all to do with OSs or technology? How important/impressive would the OS need to be to get mentioned on your country's national TV news?

For a series of small/incremental releases; that "newsworthiness = importance / distance" still applies at each release, but the "importance" is too small so it's not newsworthy for most sites. It's "series of whimpers (each inaudible from 100 meters)" vs. "single loud bang (that can be heard from 200 Km away)".

The second part is first impressions. The first time I see an article about an OS somewhere I wonder what's different about it - I'm curious, so I look into it a little; but after that I'm not curious any more. An example of this is Haiku. I downloaded it and installed it on a computer ages ago (because it was new/different to me at the time); and now when I see articles about Haiku sometimes I don't even bother to see what the article says because it's old news. It's not that it's a bad OS (I was fairly impressed with how snappy/responsive the GUI was), and it's not that I'm not interested in OSs, it's just that I've formed my first impression already.

The third part is that my OS isn't like anything else. This can be good (in terms of "newsworthiness"), but it's also bad because it takes more effort for people to understand it properly. They need to be shown the benefits. They need to be able to quickly see (e.g.) the load of a single game being distributed across a LAN. They need to see running applications being transferred between different users in different locations. They need to see the "cluster maintenance" tool. If they can't/don't see things like this quickly, then they'll just assume it's the same tired old crud almost every OS has done for the last 30 years and forget about the OS before they've had a chance to understand its benefits.


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
User avatar
Rusky
Member
Member
Posts: 792
Joined: Wed Jan 06, 2010 7:07 pm

Re: PCI IRQs with I/O APIC

Post by Rusky »

One recent counterexample to an early release being a bad idea is the Rust programming language. It was open sourced as an incomplete project several years before version 1.0, and the teams and projects that built up around it made it far, far better than what it would have been without them.

Not only did its design and standard library improve directly, but Mozilla got behind it and started writing a browser engine with it to evaluate how well it accomplished its goals. That browser engine, Servo, provided a lot of good test cases and even helped Rust's goals align more closely with the reality of writing actual software.

There were, of course, some downsides to an open development process like that- early tutorials and documentation got out of date quickly as things changed, and Rust got a reputation for instability, but those have been more than offset since the 1.0 release- the larger community has provided better documentation than would have been possible if only the original creator had worked on the language, and the larger collection of libraries and applications has enabled a huge automated test suite to ensure backwards compatibility with any changes post-1.0.

But people forming a first impression of Rust 0.4 and then never looking at it again... hasn't really been one of those downsides.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: PCI IRQs with I/O APIC

Post by Brendan »

Hi,
embryo2 wrote:
Brendan wrote:Until it can be used for programming there's no point trying to attract volunteers/programmers
First you can ask for their opinions. And without it the released "full blown" OS can gather a bad reputation (unless it targets the dumbest part of the society with flashing buttons and sliding images).
I can do that without having an official release.
embryo2 wrote:
Brendan wrote:Mostly I'd want to release the OS and flood news sites with articles about it to create a "wave of interest" (where everywhere is talking about the radically different and interesting new OS), and then ride that wave. For this to work the OS needs to get a better reaction than "Meh, seems like it might be cool one day I guess". For this to work you'd want people to be amazed.
It's the fancy buttons you need to amaze a lot of people. And good funding for advertising.
The point of "create a wave of interest, then ride the wave" is to avoid the need for funding for advertising (more specifically, to make the most of free advertising from things like news sites and word of mouth).


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
rdos
Member
Member
Posts: 3303
Joined: Wed Oct 01, 2008 1:55 pm

Re: ACPI Stuff (was PCI IRQs with I/O APIC)

Post by rdos »

Brendan, let me know when you have 1,000 machines running your OS. (the current number of running installations of RDOS). :mrgreen:

Because I assume you will finish your project this time, and not restart it again half-way through?

As for PCI IRQs, I think the best way to solve that is to use ACPI, even if it is a very complex piece of software with only a tiny bit of usefulness. I'd use ACPICA from Intel, and create the OS-specific stubs it requires. To write your own ACPI is not something I'd recommend. I'd also use MSI or MSI-X whenever that is possible as it makes it possible to route interrupts to any IRQ without going through the I/O APIC.
User avatar
Schol-R-LEA
Member
Member
Posts: 1925
Joined: Fri Oct 27, 2006 9:42 am
Location: Athens, GA, USA

Re: ACPI Stuff (was PCI IRQs with I/O APIC)

Post by Schol-R-LEA »

rdos wrote:Brendan, let me know when you have 1,000 machines running your OS. (the current number of running installations of RDOS).
That's a rather astonishing claim.

Specifically, it is astonishing that you think anyone here is stupid enough to believe it.

If you were to tell me that there is even one project OS being discussed in this group that is installed on any live hardware other than the systems it is being developed on, I would call you a liar. Not even SkyOS had a hundred installations, never mind a thousand, and to the best of my knowledge every installation of it was by someone collaborating or planning to collaborate on the development of the OS.

Hell, I doubt even Haiku or ReactOS have a thousand live installations. I don't care how long you say you have been working on rdos, the claim is preposterous.
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
Ordo OS Project
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.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: ACPI Stuff (was PCI IRQs with I/O APIC)

Post by Brendan »

Hi,
rdos wrote:Brendan, let me know when you have 1,000 machines running your OS. (the current number of running installations of RDOS). :mrgreen:

Because I assume you will finish your project this time, and not restart it again half-way through?
It's been the same project for almost 2 decades - the only thing I restart is the implementation as the design (and occasionally the hardware) evolves.

I can't guarantee I won't restart the implementation again, because I do care about the quality of the final product (which is an OS) and would rather restart the implementation than to be stuck with earlier bad design decisions; and because the last thing I want is something so crappy (due to earlier bad decisions that weren't fixed in time) that it's only used in 1000 machines and only because a company scammed suckers by hiding the OS under the actual product (which is an embedded application and not the OS at all).


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: ACPI Stuff (was PCI IRQs with I/O APIC)

Post by Brendan »

HI,
Schol-R-LEA wrote:
rdos wrote:Brendan, let me know when you have 1,000 machines running your OS. (the current number of running installations of RDOS).
That's a rather astonishing claim.
It is astonishing without context, but I suspect it's true.

As far as I know; RDOS is used for a few petrol/gas pumps and ATM machines. It's not a general purpose OS.

I'd guess that what happens is one company (the "customer") asks another company to design an embedded system under contract, and that company (which I suspect rdos is directly involved with in some way) builds the embedded system on top of RDOS without the customer having any idea what the OS is, without the customer choosing the OS, and without the customer caring about the OS at all (as long as the application they wanted works), and without anyone ever asking why a better/more suitable OS (e.g. QNX, Linux, ...) wasn't used.


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
User avatar
Schol-R-LEA
Member
Member
Posts: 1925
Joined: Fri Oct 27, 2006 9:42 am
Location: Athens, GA, USA

Re: ACPI Stuff (was PCI IRQs with I/O APIC)

Post by Schol-R-LEA »

Brendan wrote:HI,
Schol-R-LEA wrote:
rdos wrote:Brendan, let me know when you have 1,000 machines running your OS. (the current number of running installations of RDOS).
That's a rather astonishing claim.
It is astonishing without context, but I suspect it's true.

As far as I know; RDOS is used for a few petrol/gas pumps and ATM machines. It's not a general purpose OS.
Ah, so it's a case of 'technically correct is the best kind of correct', then? That's rather misleading and disingenuous, at the very least. Comparing a real-time OS to a desktop OS, or a desktop OS to a mobile OS, or an embedded-system RTOS to a user-facing mobile RTOS, or even a server OS with a given kernel to a desktop OS with the same kernel, is not even close to being a reasonable comparison, especially if the RTOS is a commercial project (or has been used in one) and the desktop OS is a hobby project. It's like comparing a passenger bus to a combine harvester, or a limousine to a Formula One racer.
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
Ordo OS Project
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.
Post Reply