Page 2 of 2

Re: Applications of OSDev

Posted: Tue Aug 22, 2017 10:36 am
by simeonz
Korona wrote:
simeonz wrote:Sure. System programming as an occupation will survive for some minority of engineers, like say, VLSI design. But there is no vendor variety for those products (databases, being still an exception, due to nosql and such.) For example, how many startups will create a full-blown compiler (i.e. not interpreter) as part of their product. There wont be many job positions created for those.
There are probably more maintained compilers than ever before. Granted, many of those are based on existing infrastructure like LLVM, but I do think that the usage of domain-specific languages is actually increasing.

For VMs there is a lot more variety.
May be I have the wrong impression then. When you say a lot of compilers, do you mean projects that can monetize, for the developers or for the users, or do you mean more of the research and hobby variety.

Thinking about it, even the compiler backends are not so few, all things considered. Especially if we include the Java and .NET JIT and embedded toolsets. For PC compiled language backends, there are LLVM, gcc, Intel's, and MS VS. At least those are the ones that pop into my head, and if it wasn't for LLVM, one could honestly say that this landscape was fully stagnated.

In terms of virtualization, for hypervisors, I can think of ESXi, KVM, Xen, and Hyper-V. Again, those pop into my head. There are several I/O virtualization servers around those.

I may be generalize too much. But my point was, that investments in those fields are isolated phenomena compared to commodity software companies.

Edit: I didn't mention Google's Go. I don't have experience with that, but Google managed to generate impact. Also, the D language has the Digital Mars D compiler, which is an interesting project, but I am not sure if it is impacting the industry much. Overall, I would be very surprised if any commercial enterprise of the type we were discussing originates from company other than Microsoft, Intel, Oracle, Google, Amazon... may be Red Hat, smth. This is pretty much the oligopoly for system development.

Re: Applications of OSDev

Posted: Thu Aug 24, 2017 1:18 am
by Solar
I know you said "compilers, not interpreters", and I am working on / with interpreters, not compilers.

But in the three software titles I am supporting 9-to-5, all three do source parsing (one homegrown, one Flex / Bison based, one Xerces-C / XML based), two do run the parsed source interpreter-like, and one actually supports three different DSL's. I'm in the process of tossing the Flex / Bison based cruft in favor of a Boost.Spirit implementation, and adding a fourth DSL (actually a rework / update of the one previously used).

None of which most end-users are actually aware of, as they get a nice Java-based GUI to click-select options in. The GUI then generates the source interpreted by the C++ backend(s).

And I'm getting payed for it.

8)

Re: Applications of OSDev

Posted: Fri Aug 25, 2017 11:41 am
by human00731582
Thanks so much for all of your responses!

What I'm gleaning from this is that I need to understand the principles of software development (such as collaboration and version-control) much better. Thus, I have officially signed up to GitHub, put a link in my signature, and updated my software license to the GNU GPL3 to make orchid open-source! I'm very nervous about putting my real identity and my work out there, but also very excited to learn from what others here (and on GitHub) can teach me.

Also, please go easy on me. I'm 100% self-taught, so I may be missing important concepts! :mrgreen:

As far as a portfolio goes, I've read that just having one puts you a whole mile ahead of people with even undergrad degrees, because it shows passion and persistence. In the same vein, I'm considering projects for an embedded systems portfolio as that's my primary interest; looking at things like ARM assembly and writing some kind of knockoff C compiler, or even a compiler for a newer language like Rust/Go.
I feel like breaking into embedded-systems development will be much harder without a degree than doing the same in webdev, which I'll never do seriously since I'm not the creative type. :)

I'll start at square one with my portfolio. Do any of you have any recommended readings about writing a compiler in C or ASM? Perhaps any open-source embedded systems you know of that are open-source (aside from Google's Android OS)?

-human