

Assumptions  and  Operating Systems - dasmithii

While undertaking a somewhat substantial project on the systems level, I&#x27;ve become uncertain about standards of operating systems. For example, almost every OS provides a C compile (if they don&#x27;t, I won&#x27;t bother). However, other language interpreters&#x2F;compilers aren&#x27;t nearly as ubiquitous. Python has become popular, and large projects such as Red Hat have embraced it, but can I assume its presence while designing cross platform software?<p>What about other languages and libraries? Considering all mainstream platforms (Unix, Linux, Windows, OSX, Android, iOS), what compilers and libraries are found within each?<p>Forgive me if I&#x27;ve neglected literature. My knowledge on this front is fairly limited. Links for further study are welcome.
======
CyberFonic
At the systems level, C compiler and POSIX API are pretty much a given. Once
you venture beyond that the platforms start becoming very different. But you
could note that except for Microsoft Windows, all the other environments you
mention are basically variants of Unix. So you will find pretty much the same
facilities if you stay close to the hardware level - which in my lexicon is
what systems level is all about.

If you need a GUI, you could consider that HTML5 compliant browsers are
everywhere. You would only need to write a minimalist web server (there are
hundreds of examples around) to interface your systems level stuff to a user
interface.

Perhaps if you gave some more information you'd get more pertinent
suggestions. Why neglect the literature? How can you expect to write systems
level stuff without a solid foundation of knowledge????

------
caitp
While I haven't used it personally, I've heard of people shipping Node.js as
part of iOS apps (and, for that matter, as part of Firefox extensions), but
even without Node.js, most of these devices will have some JS runtime, in or
outside of a browser/webview.

As for Python, I would be less hopeful about the presence of Python on smart
phones and tablets, although I suppose anything is possible.

Usually you are cross-compiling to target mobile platforms, so you don't
generally need to worry about a given toolchain being present on the device
itself.

~~~
CyberFonic
I doubt you would be able to do "systems" level programming in either
JavaScript or Python.

If you are thinking of cross-compiling, then you could look at Go from Google
- it has many of the advantages of C, yet a lot of conveniences afforded by
Python and similar languages.

~~~
caitp
I'm fairly sure they're not writing device drivers or TCP/IP stacks, so they
likely don't depend on a systems level language. A lot of work has gone into
enabling people to write their apps using these interpreted languages, but the
availability of one particular language or runtime on a mobile device is not
always guaranteed.

I think they're asking what their options are, really.

