Availability of compilers was also a factor in both cases. He needed something free that compiled to native code on the vanilla not-particularly-fast hardware he had in front of him.
That meant assembly which he did use Write A Kernel For Motorola 68000 some placesC, or a few versions of Pascal.
For the particular kind of work he needed to do, which included things like pointer arithmetic and structures defined to match hardware definitions, C was a pretty logical choice. A lot of this had to do with the time. Newer, better languages have been invented since then.
Faster interpreters and just-in-time compilers now provide alternatives to pure ahead-of-time compilation for more kinds of programming. Free compilers have become more readily available and better even for languages that already existed when Linux was created. If you wanted to write a from-scratch operating system todayC would be a poor choice. Back thenthere weren't really any viable alternatives.
Whether it could pass Write A Kernel For Motorola 68000 one, then or now, is a discussion for another time. Actually, the programming language should not have mattered much but C was very, very standardised so you could compile C applications on basically all platforms.
Assembly would have restricted Linux to a specific platform and other programming languages had incompatibilities amongst the various platforms. There have been operating systems written in other programming languages.
Apple, for example, had created an operating system based on Pascal and called it Apple Pascal. So he used a C compiler to create his own operating system. He asked support from the community to make a complete operating system and he got it and the result was Linux, written mostly in C. But it was not open source before Aprilso it's availability for the generic public was very limited.
In the late 's, the only compiler that was mature and available on a wide range of hardware IBM,Motorolaetc more info GNU C.
Right from the beginning, GCC allowed you to embed assembly directly into your C code.
This was absolutely essential when Linux first arrived so you could write code below the API level which was often necessary since manufacturers often were slow or antagonistic to supporting Linux, AKA "opposing" Windows. Device drivers and Write A Kernel For Motorola 68000 also required assembly level access, something that no other language's implementation supported that was also portable and had active community support.
GCC also was the first compiler to produce useful error messages that actually identified which individual tokens caused the error message.
When developing a large code base esp. Likewise, designing GCC to maintain support for the GDB symbolic debugger was a major boon to the compiler's interoperability across hardwares, since it forced implementors to think about symbols and data probes all the way down to the metal.
The Motorola ("'sixty-eight making it feasible to write software that would take full advantage of later bit implementations of being kernel. Apr 30, · Linux/m68k: Linux on Motorola's Processor. The “m68k” stands for the Motorola series of Even the kernel can be compiled to run on. What made C the most suitable language to write Linux kernel? Update Cancel. , , , Motorola , What is it like to write Linux kernel code?. Programming Environment for a Motorola he doesn't really care what I use as long as I can test what I write unless you're writing code in kernel. What does it take to build a little based protoboard The heart of the system is a Motorola The ROM chip has a read/write input pin just.
No other language than C and no other compiler but GCC could have acccomplished this. C is a simple language that gives you bit level control if you need it. It is like a high level assembler. We had our own compiler though. Also, OS programming is "all about pointers" C is can be "all about pointers". So C was simple, like assembler sort ofwas pointer centric, and had a good free compiler GNU. It was a good choice. I also know a bunch of more trendy languages so I have evolved somewhat.
This page may be out of date. Save your draft before refreshing this page. Submit any pending changes before refreshing this page. Ask New Question Sign In. What made C the most suitable language to write Linux kernel? Save time with code generation and ensure top code quality with CLion's code analysis and refactorings.
How do I write an OS in C? What exactly is Linux kernel "plumbing"? Does Linux kernel 4. What languages were Windows and This web page made from?
Use scrum poker for effective sprint planning with your team. Confluence application that facilitates project estimates using the Write A Kernel For Motorola 68000 poker technique.
Related Questions How was C made? How were the very first compilers made before C?
For writing the code in C, they require IDE. On which language was that IDE How many lines of code are in the Linux kernel?
Why is the C language so hard to write? What is it like to write Linux kernel code? Why is Linux so buggy? Why do nearly all supercomputers run Linux? Is Linux Kernel Developing dying? What do the Windows Kernel team think of Linux?
The truth about the Motorola 68000! 0001
What is a kernel in Linux? How do I patch a Linux kernel? Still have a question? How was C made?