SamTouraz wrote:Schol-R-LEA wrote:It is always worth making this disclaimer, however, since we have had so many people come here expecting to Frankenstein together an OS from existing parts that we even have the
Duct von Tape archetype page to warn against it.
Duct von Tape? That's the stupidest name I've ever heard in my life. You mean duct tape?
Uhm... the
archetypes pages are intended to be amusing, and to point out common faults. The titles are silly names for putative 'developers', intended to satirize the approaches they epitomize. The 'von' in this case is supposed to evoke a mad scientist - Herr Doktor Duct von Tape, in his castle LaBORatory sewing (or duct-taping) together a monster of an operating system from pieces of other OS projects.
All of the archetypes are examples of things people
shouldn't do, describing bad habits and questionable focus, though that particular one is meant entirely as a warning. In this case, from things you have said, it doesn't apply, however the approach it describes comes up so frequently that I felt that making a disclaimer in that regard was necessary.
SamTouraz wrote:I want to make an operating system that runs on the Intel x86 architecture. I've checked out Ralf Brown's Interrupt List. That is better than what you suggest.
I am sort of at a loss as to what you mean by this. RBIL is a list of BIOS and MS-DOS interrupt routines; unless you are intending to write a real mode OS that uses the BIOS extensively for system services (something that is inadvisable, even for real mode, ~'s nonsense to the contrary), the only part of those which are applicable to you are the low-level disk and memory routines, and then only during the boot sequence.
SamTouraz wrote:The Intel manuals are just great. They're the best. However, they don't talk about how to print a string. 0xb800 is not mentioned in there.
Well, no, of course not. The Intel manuals only cover the CPUs themselves; they have nothing to say about the PC features which aren't part of the CPU, such as the bus, the video subsystem, the keyboard and mouse interface - all of these are facets of the motherboard, not the CPU, and while they are standardized (being rooted in the specific motherboard designs tracing back to the original IBM PC in 1981), they are outside the Intel manuals' scope.
Just to drive this point home: the way these features would work in a non-PC system that uses an x86 chip (a smartphone using an Atom processor, for example, or a
single-board computer such as the
MinnowBoard) would usually be entirely different, assuming they existed at all (which they often wouldn't in the case of an embedded SBC).
SamTouraz wrote:For a forum and wiki since August 2000, it doesn't really help. Why do you have so many developer archetypes hidden away? Alta Lang... Bossy Boots... Duct von Tape.
As I said, these are mainly meant as a diversion, not a guide. While they reflect the common behaviors of devs, they are for the most part negative - if you find yourself following one of those patterns, it is usually a sign that you are over-focusing on one aspect of OS development to the detriment of other facets of the system. Still, they are primarily meant to be humorous - a sardonic nod of self-awareness of our own mistakes and foibles - which is why they are out of the way. Of course, you could be asking why we have them at all, which is, to be fair, a good question; however, most technical sites do have some humorous sections, so... meh.
SamTouraz wrote:I don't want code by the way.
Good. That puts you in a minority of the new members, however, which is why we keep saying not to ask for any. It isn't really aimed at you, but a general warning to anyone looking to pursue the topic.
SamTouraz wrote:Stop misleading people. Why are you doing this?
I am unclear what you mean here. Please explain what you mean - if we are being unclear, we want to correct that.
SamTouraz wrote:The Wiki tutorials are bad.
The Bare Bones and Baby Steps tutorials are indeed flawed, and I am afraid we haven't put nearly enough effort into fixing them. However, that's in part because we aren't getting helpful feedback on them. We need people to tell us what problems they are having with them, so we can fix them.
The other pages aren't tutorials, and aren't meant to be tutorials. They are presenting information, which you then need to consider how to apply to your design. This is a common misunderstand, one which we keep trying to explain here and in the wiki:
tutorials are not possible for these topics, for the same reason example code isn't possible. The answers are simply too interwoven with the specifics of the OS being developed to provide any. We are focused on explaining the facts, and while some code examples and detailed directions are given, they are deliberately vague and incomplete because a complete answer would require us to know your OS.
SamTouraz wrote:Don't make excuses claiming your little community is esoteric.
I am sorry, what? The topic
is esoteric. Some of us - the more sensible ones, IMAO - are here
because it is esoteric. That's what most hobbies are.
If your goal is anything practical, you shouldn't be trying this; you won't accomplish anything useful from it, and will waste a lot of time on it if you try to, because frankly, it isn't a useful topic - there simply isn't any niche for new operating systems, or much demand for new OS devs, anywhere in the world.
It also won't teach you much; it is about as relevant to programming in general as Byzantine architecture is to industrial food production. This topic is an intellectual cul de sac, and while that isn't a reason not to enjoy doing it or having an interest in it, if you think it will get you anything other than ego satisfaction from it you are simply wrong.
If you think writing an OS is a way to prove your skill at programming, well... it won't, even (or especially) if you are successful at it. While it is incredibly difficult and demanding, most of the skills it demands have no practical use except in OS dev - don't let anyone tell you otherwise.
OK, so yes, I personally am in it for something else, but that something else is basically intellectual wanking of an academic stripe. I have enough sense to realize that that's just an excuse for the hobby, not a motivation for it. If your primary goal in OS dev isn't
ars gratia artis, you're Doing It Wrong.
I know of no online communities which don't have complaints like those. We have a lot of them, I know; honestly, we're abrasive, petty, and disputatious, and we know it. We
do get on people's nerves, but most of the people in question are ones who are doing what you keep saying you don't intend to do - asking for code.
SamTouraz wrote:I don't want trouble, OK? I want an answer to the question I posted.
You really didn't ask any questions, at least not ones which could be answered in a meaningful way. You asked for
general information, so we pointed you to the wiki. If you have more specific questions, ask away. We will be happy to answer them.
SamTouraz wrote:I don't want to be badmouthed. Don't go off the topic just because you don't know the answer.
OK. I don't know if this was directed at me, but if it was, I apologize for any slight you might have felt.
SamTouraz wrote:Most of the links on the Wiki don't work.
This is true, unfortunately, mainly because not enough time is spent on keeping links updated. We really can't excuse this, as it is simply a matter of lack of time to work on the wiki and the vagaries of volunteer projects, but we do ask that people fix broken links - or ask others to do so - when they are found.
SamTouraz wrote:You can't use MASM assembler (that is what Windows uses).
First off, this isn't true; a number of OS devs have used it, though we advise against it because it means the OS will never be self-hosting. Second, most of the references in question are to NASM (Netwide assembler), not MASM, though some refer to 'MASM' regarding syntax, as most other Intel-syntax assemblers (including NASM and FASM) base their specific syntax on the MASM dialect.