Glossary of a software engineer’s language - part four of four
Want to read this article later?
Just tap MyLCN+ to save it to your account
Welcome to the last part of the glossary series.There are just a few more terms you should know to gain a basic understanding of a software engineer’s knowledge. Let’s go!
Terminal aka Command Line – is a text interface for a computer. Imagine the typical hacker in a Hollywood film typing in front of a computer screen with a dark background and green words on the screen. That screen is Terminal, though the text may not be always green. Initially in the early days of computing, Terminal was all people had in order to interact with a computer program, literally by typing commands into the computer. Although every application had a graphical interface nowadays, Terminal is still incredibly important to developers and system administrators as users can execute commands or access programs that are not available through a graphical interface. If you own a Mac laptop, try typing in the commands “pwd” to know where in the filesystem you are located and “ls” to list all the files and folders in the current filesystem location.
Virtual machine –is an emulation of a computer system (eg, operating system or application) to provide the same functionality as a physical computer. Why is there a need for such machines? First, some applications can only run on Windows and not Mac or Linux (as I introduced in the last post). Instead of splitting the hard drive into two operating systems (also known as duel-booting), having a virtual machine saves space and avoid the potential system clashes when splitting up the hard drive. Having a Windows virtual machine on a Linux laptop will then allow a user to use Microsoft Words on the laptop without having to log out of Linux, restart computer and log into Windows, which is a big bulky operating system itself. Secondly, having a virtual machine encapsulates the things on the virtual area and avoid any real interaction with the physical computer components. This means playing around with dangerous software on the virtual machine will not harm the actual computer. In fact, this is the way how cybersecurity researchers understand malware: by experimenting and observing the malware’s behaviour on the virtual machine.
XML (Extensible Markup Language) – is a simple mark-up language for encoding documents in a way that both humans and machines understand. Similar to HTML, the language has tags looking like this: <section>text</section>. Although embedded in many systems nowadays, few developers actually code in XML because it is tedious. Rather, APIs (introduced in the first post of the series) are written to access the data within XML tags. Then why do we need to know XML? Because Office Open XML, developed by Microsoft, is the underlying mark-up of all spreadsheets, word documents and presentations! How Microsoft Word plugins work is actually by traversing the XML markup and amending it when commanded to do so. So whenever you open a Word file, remember underneath that clean interface you are actually writing and accessing XML mark-up.
Zero-day – refers to a software vulnerability that is unknown to those would be victims or would be interested in mitigating it. It is called zero day because the vulnerability is only known for less than a day. When such a vulnerability is discovered, researchers and software vendors would immediately investigate and try to fix it. When they find the solution, they would publish a “patch” as a software update. When you see your application updates that are called “security updates”, those may be patches to zero-day vulnerabilities. However, not everyone updates their computers quickly enough. Zero-day attacks that exploit such vulnerabilities can be very damaging and severely threatening. So note to all future lawyers: understand software updates and always update them when it comes to security issues.