- Nov 26, 2019
- 16,799
- 9,007
- 51
- Country
- United States
- Gender
- Male
- Faith
- Generic Orthodox Christian
- Marital Status
- Celibate
Yes, but if you do systems programming, you won't need JS and Python.
Do you use C for systems programming?
For systems programming, primarily C with some use of D, which is a rather nice systems programming language that is underrated; Rust gets a lot of the attention I think D properly deserves (and before Rust stole D’s limelight, that attention was going to Go, a programming language written by Rob Pike’s group at Google, which is a good language, but among the people who tried getting into it when it was very much hyped up, it seems like most of them weren’t clever enough to take advantage of its unique features, which was also the case with the Plan 9 operating system and the conceptually related Inferno OS (which interestingly can run in a web browser as well as on bare metal, and which was intended for the Internet of Things before anyone knew what the Internet of Things was; for example, to justify its development to Bell Labs*, the Inferno developers suggested it could run on advanced desktop office phones allowing for a variety of sophisticated features, and such a phone running Inferno was sold; basically it was a landline smartphone (or technically, a wired smartphone - since IIRC it was not a PSTN phone but rather one that would either be behind a PBX or perhaps connected via some posh Centrex style service, perhaps using ISDN). Go at least has seen some use inside Google if memory serves. Also when doing actual development of embedded operating systems, which usually entails porting an existing open source operating system to a new device (although I do work with Wind River and QNX among other proprietary systems) there is often a need to work with assembler code for the platform, and when developing device drivers, sometimes one has to talk directly to the hardware in question (and since a lot of embedded real time OSes are by design, very simple, frequently they lack the facilities to help you do this that you get with a more fully featured OS like FreeBSD, NetBSD, OpenBSD, Linux, Illumos (formerly known as Solaris) or Microsoft Windows; indeed Windows has a highly developed driver framework which has become more restrictive because the massive crash that happened recently due to a buggy enterprise antivirus product, as documented in this article on ArsTechnica: Microsoft changes Windows in attempt to prevent next CrowdStrike-style catastrophe
Of course, with an embedded RTOS like eCos, there are fewer people trying to hack it, but given what such OSes are used for, security can be very high-stakes; indeed recall how the STUXNet OS was designed to infect Windows workstations in order to upload code to a Siemens industrial computer called a SCADA system that is used in many industries, but the code was specifically intended to change the RPMs in centrifuges being used by Iran’s nuclear project in such a way as to damage the centrifuges and slow down the project; many people regard the US-Israeli design to be the world’s first cyberweapon, but I rather doubt this; rather’ it was the first highly sophisticated attack of its sort which happened to be exposed, probably because getting it onto the computers in question involved, among other things, releasing the Windows malware component of it into the wild, which resulted in security professionals analyzing it and scrutinizing it and eventually the world learned of its true purpose.
*This was during an era when AT&T and then Lucent were increasingly demanding the research be aligned with immediate corporate objectives as the Labs continued their decline from an intellectual powerhouse like a combination of the RAND Corporation with MIT, a place where researchers could focus on research without needing to serve as professors. This decline is a shame, as it left the universities with a monopoly on that sort of innovation, and at its peak Bell Labs gave us much of the vital technology that enables our modern civilization, not just brilliant operating systems like UNIX or brilliant application software for various purposes, but transistors, and also many advances outside the field of telecom and computer science.
Upvote
0