With more than two decades of history, the Linux kernel is one of the biggest and fastest developing open source projects, with about 53,600 files and around 20 million lines of code. To understand the story of Linux better and to learn about future open source technologies, Ankita K.S. from OSFY interacted with Kaiwan N. Billimoria, proprietor of kaiwanTECH and author of the book, ‘Hands-On System Programming with Linux’.
Q What technologies are Indian developers focusing on?
Many developers are now diving into what is considered by pundits as the ‘hot and exciting’ technologies — machine learning (ML), artificial intelligence (AI), VR, and possibly, blockchain and industrial IoT, would top this list. However, in all the excitement over the ‘latest and greatest’, it should not be forgotten that certain fundamental ‘old’ technologies continue to be the ones critical for business and academia. To deviate a bit, I find that many freshers nowadays focus on Web technologies, Java, along with ML and AI to some extent. While this is good, especially for young talent, it is also important not to lose sight of the fundamentals of how computer and software engineering works at the ‘bare metal’ level, as it were. Focusing on infrastructure technologies, operating systems (OS), low-level and systems programming (and even the hardware, to some extent) is very important to ensure a strong career in technology.
Q Is industry welcoming open source with open arms?
Yes, of course. Open source is now no longer seen as something very new and radical. Industry acceptance is growing rapidly. Having said that, there are also players who delay and adopt a ‘let’s wait and watch’ approach, possibly analysing the risks. But most companies have already realised that open source is now a mature and key part of the software ecosystem. So adopting it, or perhaps gently phasing it in, is something that must occur.
Q Tell us about your journey with open source
I used to work on UNIX (as a developer) back in the early 90s. When I struck out on my own, a pain point (besides the usual suspects) was that I thought my days of enjoying the super powerful UNIX operating system were gone — obviously I couldn’t afford to purchase a UNIX system. Then, around 1997, I discovered this upstart new OS called Linux, and that I could purchase it for just the cost of the media it was on — floppy disks or CD-ROMs!
I’ve been hooked to Linux since then. Being a corporate trainer, I still teach, work on projects and write books. So, I quickly ramped up, teaching myself not just systems programming but also delving deep into the internals of the Linux kernel. This had me slowly teaching my hard-won skills — which led to me learning a lot more and doing so at a faster pace. I realised that a quick way to find out how much one knows about something is by trying to teach it. By 2007, I was able to contribute a couple of device drivers to the mainline kernel, and last year, helped with a script aimed at security. I remain very happy with the ability to contribute — it’s one of the best things about open source.
Q What is new with respect to Linux today?
Everything and nothing. Linux constantly evolves as an OS. There are no ‘road maps’ or rigid rules when it comes to Linux, to define what happens next. This, perhaps, is one of the reasons why it outpaces all others. To give a concrete example, while virtualisation is really nothing new, Linux’s take on very lightweight virtualisation (which is container technology, of course) is a relatively new and rapidly evolving space. Technically, at the level of the OS, containers are nothing but a marriage, and a brilliant one, of two Linux kernel technologies that have existed for many years – namespaces and control groups. The bringing together of cool tech to create something even better is a great example of how Linux just evolves.
Q What makes Linux technology better than various others in the market?
It comes down to how the open source model, in general, and the Linux kernel in particular, is developed. The kernel community is not inherently and even helplessly biased towards one or the other organisation’s goals or to any particular chipset or software design. It is a true meritocracy where good ideas and, more importantly, good code, can automatically move ahead and take their place in the mainline kernel. Not just that, the reality is that several Linux ‘distros’ out there serve as test beds for their enterprise cousins. Interested and motivated users test features and report bugs, which are then addressed. How many organisations can boast of a quality assurance team of thousands of people? Recall Linus’s Law, which is ‘given enough eyeballs, all bugs are shallow’ (Eric S. Raymond said that).
Q Can you briefly talk about coding for security?
Today, the industry is highly concerned with security. What many do not realise, perhaps, is that security issues are, at heart, nothing but bugs! Linus has himself written about this in the LKML or the Linux Kernel Mailing List (https://lkml.org/lkml/2017/, November 17, 2017: “As a security person, you need to repeat this mantra: ‘security problems are just bugs’, and you need to internalise it, instead of scoffing at it.”)
Nevertheless, learning to write not just code, but secure code, is a critical and required skill today.
Q Do you see India as a contributor or consumer of open source? And why?
India is both, of course. Really, the question isn’t ‘why’, but more about how competitive products and services cannot afford to stay away. Another thing is, it’s not just about India, or any nation; disruptive technology like Linux and the waves of AI that are to come are not localised, not for long at least — all these are very much global disruptors. To take a page from Yuval Noah Harari’s recent book, ‘21 Lessons for the 21st Century’, we today belong to one global civilisation.
Having said that, our country has been slow to contribute in the initial years to open source, but that has been slowly changing over the last few years. Most of the kernel contributors are employees of companies. Also, a lot of it is to do with passion at a personal level — the individual must want to give back, just want to ‘scratch an itch’. Doing this takes passion, and a willingness to put in a real effort at the level of the code.
Q Any other points that you would like to add?
A point I’d like to make is one that’s often swept under the proverbial rug — engineers should enjoy and do with their career what they set out to, not to mention the four to seven years spent studying. Unfortunately, in our country, there tends to be an unspoken negative bias towards that geeky engineer who is still cutting code after working for several years, and who is perceived as not having ‘evolved’ to managerial duties. This certainly is not true of all organisations but is for many. Hopefully, this attitude will change quickly.