Do you implement user-space programs yourselves?
Posted: Sun Sep 25, 2016 10:51 am
Or do you're writing a "STANDARD"(POSIX, WIN32) compatible kernel, and you just import existing user-space executables?
The Place to Start for Operating System Developers
http://f.osdev.org/
Side note: yourselves -> yourselfSourcer wrote:Or do you're writing a "STANDARD"(POSIX, WIN32) compatible kernel, and you just import existing user-space executables?
When you follow POSIX you can import existing executables with minor changes, you don't need to rewrite the whole thing(Like when you're importing bash from linux, for example)octacone wrote:Side note: yourselves -> yourselfSourcer wrote:Or do you're writing a "STANDARD"(POSIX, WIN32) compatible kernel, and you just import existing user-space executables?
User space programs are meant to be ran in user space. They are specific to your OS. Win32 and Posix have nothing to do with your operating system at the moment. Posix is a standard you choose to follow or you don't. Win32 executables are specific to windows only, there is a way of running Win32 applications on your OS, but that is very hard (see React OS for more info). There is no such thing as importing existing user space executables, you have to make them yourself, to be your OS specific. You could in theory make cross compatible apps that could run on every OS, but that is just a theory.
octacone wrote:...There is no such thing as importing existing user space executables....
"Yourselves" is the fully valid plural of "yourself" and is fine in the thread title, but "yourself" would work there too.octacone wrote:Side note: yourselves -> yourself
Did not know you could say "Do you like coding yourselves". That sounds weird in my opinion. Never heard of somebody saying it that way.DavidCooper wrote:I have no desire to support any programs not designed specifically to run on my OS. Most of them are piles of bloated, bug-ridden crap which need to be improved in too many ways for me to care about supporting them, but they're also a security risk. I will focus on building sufficient intelligence into my OS to enable it to write its own apps in direct response to the user's requirements.
Side note:-
"Yourselves" is the fully valid plural of "yourself" and is fine in the thread title, but "yourself" would work there too.octacone wrote:Side note: yourselves -> yourself
DavidCooper wrote: "Yourselves" is the fully valid plural of "yourself" and is fine in the thread title, but "yourself" would work there too.
The second example, though grammatically coorect, sounds wrong, because in this example 'yourselves' is used as a direct object and imples that the individuals specified by the initial (plural) you should design their own DNA. A diifcult undertaking even for those good at developing operating systems.octacone wrote: Did not know you could say "Do you like coding yourselves". That sounds weird in my opinion. Never heard of somebody saying it that way.
+1 for that post.
Ideally, neither.Sourcer wrote:Or do you're writing a "STANDARD"(POSIX, WIN32) compatible kernel, and you just import existing user-space executables?
For real? Is this sarcasm? I would really like to see that. If it is going to be more secure than Windows, why wouldn't we use it? Really looking forward to it.Brendan wrote:Hi,
Ideally, neither.Sourcer wrote:Or do you're writing a "STANDARD"(POSIX, WIN32) compatible kernel, and you just import existing user-space executables?
My plan is make the OS so impressive (compared to existing OSs) that people will want to write native applications (and drivers) designed specifically for it (that take advantage of whatever features made the OS impressive and help to make the OS even more impressive); so that (eventually, hopefully) I won't have to write applications (or drivers) myself.
Cheers,
Brendan
An interesting viewpoint. If we evaluated security, should we first define the requirements for the OS? To maximize security, just have an OS that does nothing or does not exist at all. Apologies for being a little bit negative but security in general seems to carry so much weight that we forget its role of being just a part of the whole. If someone is going to develop a modern OS, taking security into account is so obvious that it should not be "the feature" on the features list. If a boat manufacturer is selling new boats, is it specifically mentioned that those boats are floatable?octacone wrote:If it is going to be more secure than Windows, why wouldn't we use it?
Please tell me you are joking here, because that is pure insanity talking otherwise. It combines a level of hubris that would make Stephen Wolfram pause, with a a degree of self-indulgent fantasy that makes my expectation of users putting up with Lisp as part of the system look well grounded in reality.Brendan wrote:Hi,
Ideally, neither.Sourcer wrote:Or do you're writing a "STANDARD"(POSIX, WIN32) compatible kernel, and you just import existing user-space executables?
My plan is make the OS so impressive (compared to existing OSs) that people will want to write native applications (and drivers) designed specifically for it (that take advantage of whatever features made the OS impressive and help to make the OS even more impressive); so that (eventually, hopefully) I won't have to write applications (or drivers) myself.
I am entirely serious (including the part about "eventually, hopefully").Schol-R-LEA wrote:Please tell me you are joking here, because that is pure insanity talking otherwise. It combines a level of hubris that would make Stephen Wolfram pause, with a a degree of self-indulgent fantasy that makes my expectation of users putting up with Lisp as part of the system look well grounded in reality.Brendan wrote:Ideally, neither.Sourcer wrote:Or do you're writing a "STANDARD"(POSIX, WIN32) compatible kernel, and you just import existing user-space executables?
My plan is make the OS so impressive (compared to existing OSs) that people will want to write native applications (and drivers) designed specifically for it (that take advantage of whatever features made the OS impressive and help to make the OS even more impressive); so that (eventually, hopefully) I won't have to write applications (or drivers) myself.
This isn't just wrong, it indicates a significant amount of ignorance.Schol-R-LEA wrote:Here's a clue for you, Brendan: operating systems are not, cannot ever be, a killer app. No one chooses an OS based on the OS itself. Period. Most don't choose one at all, but just use whatever one comes with their computer - the majority of users don't know what an OS is, or the differences between them - or the one that their company uses, and never consider the question at all. Of those who do, most go with the one that gives them the tool they need, and if the tool they need is on all the available platforms, they fall back to the greatest convenience at the moment.
Yes.Schol-R-LEA wrote:Some aspects of an OS may make it more likely that people would adopt it, but unless they have something they can do on it that they can't do as easily with their competitors. - say, PhotoShop on the early Macs - or some personal or political reason for doing so (the combination of low TCO, programmer friendliness, and FOSS good-feelz that drives the Linux world), they won't even notice it.
Win9x replaced MS-DOS because it was technically superior, and the NT kernel (e.g. WinXP) replaced Win9x because it was technically superior. QNX dominates an entire market because it's technically superior for that market. The entire "game consoles" market exists because it's technically superior (in the "zero compatibility problems" way and in the "less bloat, hassles and cost because its designed for a specific purpose" way) to PCs. The entire smartphone industry (and OSs like Andriod, etc) exist because they're technically superior to the "dumb phones" that they replaced.Schol-R-LEA wrote:TECHNICAL SUPERIORITY IS NOT ENOUGH. None of the systems in widespread use today got to their positions through technical prowess.
Unix caught on (originally) because there were multiple competing commercial vendors marketing it to companies, and because it was technically superior to other OSs at the time.Schol-R-LEA wrote:Unix caught on because it was the first portable system that was available with source code for a reasonable license, making it suitable for study by universities.
MS-DOS's success was historical happen-stance (or clever management by Microsoft vs. mismanagement by IBM), but Windows is not MS-DOS and is an entirely different OS. Both OS/2 and Windows replaced MS-DOS because they were both technically superior, but OS/2 lost to Windows (because of more "clever management vs. mismanagement").Schol-R-LEA wrote:Windows' success developed through a historical happenstance of Microsoft hooking their star to IBM, and then knowing when to jump ship as Big Blue started to drop the ball.
MacOS caught on initially because it was technically superior (the first OS to provide a GUI).Schol-R-LEA wrote:MacOS caught on because a) Apple was already popular for their earlier systems, b) they were leapfrogging other systems with having a GUI at a semi-affordable price, and c) they had better graphics than PCs did (even with the smaller, B&W screens).
While "backlash against Windows (and Macs)" might have influenced an insignificant number of people, for the desktop market, Linux never caught on (always was, and always will be, an irrelevant joke). For the server market, you're right (Linux built its success on backlash against the same expensive commercial Unix clones that were responsible for the success of Unix, combined with "fortunate timing" for the FreeBSD legal dispute).Schol-R-LEA wrote:Linux caught on because of the backlash against Windows and Macs, and because it built on the previous success of Unix at a time when everyone else doing Unix were busy in court slitting each others' throats.
I have no idea what Genera is. Smalltalk-80 is a programming language and not an OS. For home computers, Amiga (and AmigaOS) were successful originally, but Amiga (the hardware) got killed by superior (cheaper, faster) "PC hardware" and the entire company (Commodore) died (taking AmigaOS with it). BeOS was technically superior software running on inferior hardware until they switched to 80x86, but by then Windows9x was out and it was technically inferior software running on the same hardware.Schol-R-LEA wrote:Technically superior systems such as Genera, Smalltalk-80, AmigaOS, and BeOS never got any traction, because they didn't really offer anything that people actually needed - and if the Internet has shown anything, it is that security and reliability come dead last in the list of concerns people have when choosing software, especially for those businesses where those should be the primary concern - and if you think you can cure the world of that sort of stupidity, then you are engaging in a higher-order stupidity of your own.
A lot more than you probably think. Most, I would say. But then again, most of them don't know that that is what they need, so...Brendan wrote:How many people that need "hard real time" choose an OS that wasn't designed for it (like QNX)?
Far too many. Almost all, in fact. There are a vast number - thousands, maybe tens of thousands - of 'enterprise datacenters' that under-perform because they are running stock Windows or Linux without even the most basic tuning, never mind choosing a more suitable OS when they should. Furthermore, if you ask the managers of these centers why they don't fix this, they say 'it works well enough and fixing it would cost too much' - and if you then point out the c/b on fixing it, they will kick you out cursing at you, because whether they are willing to admit it to themselves or not, their jobs, status, and operating budgets depend on the datacenter under-performing (ie.g., if it worked correctly, they'd make themselves redundant). As do those of their own managers, so going over their heads won't work either.Brendan wrote:How many people that need high availability enterprise servers choose an OS designed that wasn't designed for that (like NonStop OS or HP UX)?
Quite a few, admittedly, especially in the past. I would say more - at a ratio of 10 to 1, roughly - chose it for it's mystique or because "that's what artists use", though.Brendan wrote:How many people chose Mac OS or OS X because they preferred the GUI?
Most people don't choose their OS based on gaming, and those who do... well, there is only one game in town for that, isn't there? But it is the killer app (gaming) that is deciding the OS choice, not the other way around.Brendan wrote:How many people chose Windows because of DirectX/gaming?
Uh, I remember that period quite well, actually, and the answer is "almost no one". They went to Windows because that was what new systems were sold with, and what new software ran on, and because it was 'the new thing'. While few actually complained (more than you'd expect, but not all that many really), I know of pretty much no one who used Windows 3.1 or Windows 95 because it was a GUI system. I do know many, many offices that only upgraded their DOS boxes because they were told that they would turn to dust on 1 Jan 2000, however. I was still doing those upgrades at one place I worked when I left them - on 25 February 2000. I wish I were joking about this.Brendan wrote:How many people switched from MS-DOS to Windows because of the "killer GUI feature"?
You are still assuming that people choose systems on a rational basis. This simply isn't true for most individuals, nor for most corporations, NPOs, or government agencies. Not even close.Brendan wrote:Out of all the hobbyist OS projects I've seen, if I had to choose the one that has the highest chance of (commercial) success, I'd choose BareMetal OS. Do you know why? It provides something that other/existing OSs don't that makes it attractive for a niche market (a "lean and mean" environment for HPC).
This is so wrong it is hilarious to me. They were technically superior, yes, but that fact had almost no impact on the replacement of the MS-DOS by Windows 95; and while the NT/XP kernel replaced the 9x kernel for solid technical reasons, they were reasons related to Microsoft's ability to fix and maintain the OS - to the users, the different was invisible.Brendan wrote:Win9x replaced MS-DOS because it was technically superior, and the NT kernel (e.g. WinXP) replaced Win9x because it was technically superior.Schol-R-LEA wrote:TECHNICAL SUPERIORITY IS NOT ENOUGH. None of the systems in widespread use today got to their positions through technical prowess.
Yes, but the operating systems themselves are not a significant factor; the significant factor was the touchscreen interface and other hardware, and the ecosystem of user apps. iOS and Android are necessary support for the smartphones, but the OSes themselves were and remain pretty nearly irrelevant (which one could argue is what a good OS should be, just like a good manager or administrator), and the decision to choose one over the other is generally based on one's opinions of Apple and Google as companies, and on the cost of the phones, not the technical qualities of the OS.Brendan wrote:The entire smartphone industry (and OSs like Andriod, etc) exist because they're technically superior to the "dumb phones" that they replaced.
That came later, much later. The groundwork for Unix's success was in the mid-1970s, when AT&T were legally enjoined from selling computer hardware, and required to offer the source code for any software they sold. This led to them selling the PDP-11 version of V6 and V7 to customers, mainly universities, who then used it as the basis for both general operations and their OS courses - hence the famous Lions book. Unix was never common in the business world, but it dominated the academic world from 1976 to the mid-1990s (pretty much any VAX cluster that wasn't running VMS ran either Ultrix or BSD), and when start-ups like Sun and Apollo started making the first non-LispM workstations, they licensed Unix as a way to get a cheap OS which they were already familiar with going fast. Unix's success in the workstation arena (not, I repeat, business use, because it was almost unknown there) was entirely built on its use in the academic world.Brendan wrote:Unix caught on (originally) because there were multiple competing commercial vendors marketing it to companies, and because it was technically superior to other OSs at the time.Schol-R-LEA wrote:Unix caught on because it was the first portable system that was available with source code for a reasonable license, making it suitable for study by universities.
Well, first commercially viable one, at any rate; the Lisa was too expensive, as were the Xerox Star and the various LispMs. Still, your point is valid, with one caveat: it succeeded because of what people did with that GUI, not the GUI itself. The Mac was a flop outside of a small circle of diehard Apple fans until Adobe Illustrator came along.Brendan wrote:MacOS caught on initially because it was technically superior (the first OS to provide a GUI).Schol-R-LEA wrote:MacOS caught on because a) Apple was already popular for their earlier systems, b) they were leapfrogging other systems with having a GUI at a semi-affordable price, and c) they had better graphics than PCs did (even with the smaller, B&W screens).
I didn't even consider the Linux desktop market. While I use it myself, I don't see it as significant. When you are talking the decision to use Linux, you really are talking system admins (or their managers, but managers choose systems based on fads, rumors, and bad assumptions, primarily), and they were the ones I was talking about.Brendan wrote:While "backlash against Windows (and Macs)" might have influenced an insignificant number of people, for the desktop market, Linux never caught on (always was, and always will be, an irrelevant joke). For the server market, you're right (Linux built its success on backlash against the same expensive commercial Unix clones that were responsible for the success of Unix, combined with "fortunate timing" for the FreeBSD legal dispute).Schol-R-LEA wrote:Linux caught on because of the backlash against Windows and Macs, and because it built on the previous success of Unix at a time when everyone else doing Unix were busy in court slitting each others' throats.
Genera was the Symbolics OS; most of the other LispM companies copy it pretty closely. It was rather sophisticated for the time, far more so than most Lisp environments today really. However, the LispMs were not practical commercial systems, for the most part, even those by established firms like TI and Xerox. Both Xerox (for their LispMs as well as the Smalltalk workstations) and the LispM companies like LMI and Symbolics dawdled in getting microprocessor implementations out the door because it wasn't as much fun as hand-wrapping a custom system - IRC, the only VLSI LispM chip ever actually sold was by Texas Instruments, and hit the market after interest in LispMs had died.Brendan wrote:I have no idea what Genera is.Schol-R-LEA wrote:Technically superior systems such as Genera, Smalltalk-80, AmigaOS, and BeOS never got any traction, because they didn't really offer anything that people actually needed - and if the Internet has shown anything, it is that security and reliability come dead last in the list of concerns people have when choosing software, especially for those businesses where those should be the primary concern - and if you think you can cure the world of that sort of stupidity, then you are engaging in a higher-order stupidity of your own.
It was also what most users called the OS and the user environment, because the name originally applied to the Alto's user environment, not the language or the OS. The language now called Smalltalk-72 didn't have a name of its own, nor did the original BCPL-based OS (the replacement, written in Mesa, was called Pilot OS, but that was because it was originally a separate project experimenting in distributed processing and only rolled into Smalltalk-80 when the Star was developed for sale). Even today, there are ex-PARCies who say that text-based implementations of the language without the environment, such as GNU Smalltalk, aren't really Smalltalk at all, because the language was only part of a larger system.Brendan wrote:Smalltalk-80 is a programming language and not an OS.
Actually, it was a flop in the US, which was the primary market they were aiming at, and mainly because they marketed the 500 as a game console and competed with the NES. In Europe, where it was marketed as a computer and was mainly going up against the Acorn, the BBC Micro, the Sinclair series, and various systems by small companies who have since vanished, it did much better, but not enough to pull CBM out of the dive it was in after Jack Tramiel left them to take over Atari, because without Tramiel, CBM couldn't market free gold.Brendan wrote:For home computers, Amiga (and AmigaOS) were successful originally, but Amiga (the hardware) got killed by superior (cheaper, faster) "PC hardware" and the entire company (Commodore) died (taking AmigaOS with it).
That's not even close to correct, unless you count "vastly less expensive due to economies of scale" as technical excellence. No one, then or now, would claim that two PowerPC CPUs are less powerful than a single Pentium at a comparable clock speed, especially if they had to write system software for both. The BeBox failed for the same reason workstations in general failed: because most people needed a cheap system that could run a word processor that used a commonly shareable document format and could run Minesweeper when the boss wasn't looking more than they needed faster hardware and a better OS. It was doomed from the start, but for reasons that had absolutely nothing to do with it's technical merits - those merits never really even got tested, because no one bought the BeBox. Price, and poor management, were to blame.Brendan wrote:BeOS was technically superior software running on inferior hardware until they switched to 80x86, but by then Windows9x was out and it was technically inferior software running on the same hardware.
I would do what I am doing now: enjoy working on my hobby, and focusing on improving the state of the art, in the hope that I can come up with something good enough that the one or more of the mainstream systems pick the idea up (not likely, as all the things I am doing would require a radical redesign of the core system - hence the need for it to be an OS of its own - but stranger things have happened). I don't aim at getting people to use my OS - that's absolutely not going to happen except unless something unpredictable occurs, in which case the technical merits of it are irrelevant - but at getting OS developers interested in the ideas it brings to the table. So no, I don't see any reason to deliberately slack off on the design, especially since the unexpected can indeed happen and my goal is entirely predicated on technical superiority - but I have no illusions as to the idea that technical merit has any bearing on success in the marketplace, save for the negative ones of either being too poor to be even minimally acceptable, or so good that it doesn't garner enough technical support work to sustain a minimum base of experts.Brendan wrote:Now tell me; what do you think the alternative is? Assuming you want to maximise the chance of an OS succeeding (which is always going to be extremely difficult regardless of what you do); would you:
- A) Deliberately make the OS technically inferior, because some deluded fool said "technical superiority doesn't help".
B) Spend a decade developing an OS, and hope that the OS will eventually be so good that people assume it's just a worse than normal Linux distro (because it was easier to port everything and end users can't tell the difference).
C) Try to make it technically superior in some way, for some purpose.