Alternative languages
Alternative languages
Schol-R-LEA, you mentioned you are using a Lisp-derivative for OS dev. I wonder if you are talking about Scheme? If not, which derivative is it, if I may ask?
And are there any other fans of "alternative" languages (=all except Asm, C, C++) in lowlevel OS dev?
Maybe anyone coding an OS in Prolog? (jk)
Happy hacking
Peter
And are there any other fans of "alternative" languages (=all except Asm, C, C++) in lowlevel OS dev?
Maybe anyone coding an OS in Prolog? (jk)
Happy hacking
Peter
Re: Alternative languages
I do believe we have a Wiki article on the subject.
Whether or not an OS can be written in a language depends primarily on whether the language can be made to run without a runtime support system, or whether such a system can be easily created on bare metal. Also, you are definitely going to need to link to assembly routines. For example, people have written OSes in Java by either only using Java 1.5 (before Generics), so you could still compile it with GCJ, or by writing a Java VM that runs on bare metal. YMMV if that counts as "OS written in Java", when the OS part is in fact a JVM, and the "OS" is an application running in it.
As to your question, I am not aware of an OS written in Prolog. Would be funny, though. If you want to do something, it probably won't work, but at least the OS will be able to explain to you why. LISP on the other hand... weren't there hardware implementations of it in the sixties? I seem to remember such a thing. Again, if you have a LISP compiler or interpreter that runs on bare metal, nothing should be able to stop you.
Whether or not an OS can be written in a language depends primarily on whether the language can be made to run without a runtime support system, or whether such a system can be easily created on bare metal. Also, you are definitely going to need to link to assembly routines. For example, people have written OSes in Java by either only using Java 1.5 (before Generics), so you could still compile it with GCJ, or by writing a Java VM that runs on bare metal. YMMV if that counts as "OS written in Java", when the OS part is in fact a JVM, and the "OS" is an application running in it.
As to your question, I am not aware of an OS written in Prolog. Would be funny, though. If you want to do something, it probably won't work, but at least the OS will be able to explain to you why. LISP on the other hand... weren't there hardware implementations of it in the sixties? I seem to remember such a thing. Again, if you have a LISP compiler or interpreter that runs on bare metal, nothing should be able to stop you.
Carpe diem!
- Schol-R-LEA
- Member
- Posts: 1925
- Joined: Fri Oct 27, 2006 9:42 am
- Location: Athens, GA, USA
Re: Alternative languages
While Scheme is the primary language I am drawing inspiration from, I am intending to develop a new language to fit my specific purposes. Progress on this has been slow, for reasons unrelated to technical matters.
However, I do know of a number of other Lisp-based OS projects; I am aware of two currently on GitHub called Mezzano (using standard Common Lisp) and Chrsyalisp (which uses a mix of C and Common Lisp, as far as I can determine).
Also, if you go through the Wiki (including the page Languages, naturally enough), you'll find a number of members past and present have used languages such as Ada, D, Rust, Go, Java, C#, FreeBasic, and Pascal - in addition to the inevitable Forth contingent, because Forth-based operating systems have had a quiet by highly developed following, especially in the embedded world, going back to the early 1970s. Some those of those languages have variant editions of the Bare Bones tutorials for those who want to use them.
There's even a developer archetype, Alta Lang, for OS devs who want to design their own language with which to implement their OS.
However, I do know of a number of other Lisp-based OS projects; I am aware of two currently on GitHub called Mezzano (using standard Common Lisp) and Chrsyalisp (which uses a mix of C and Common Lisp, as far as I can determine).
Also, if you go through the Wiki (including the page Languages, naturally enough), you'll find a number of members past and present have used languages such as Ada, D, Rust, Go, Java, C#, FreeBasic, and Pascal - in addition to the inevitable Forth contingent, because Forth-based operating systems have had a quiet by highly developed following, especially in the embedded world, going back to the early 1970s. Some those of those languages have variant editions of the Bare Bones tutorials for those who want to use them.
There's even a developer archetype, Alta Lang, for OS devs who want to design their own language with which to implement their OS.
Last edited by Schol-R-LEA on Sun Mar 01, 2020 10:23 am, edited 1 time in total.
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
Ordo OS Project
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.
Ordo OS Project
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.
- Schol-R-LEA
- Member
- Posts: 1925
- Joined: Fri Oct 27, 2006 9:42 am
- Location: Athens, GA, USA
Re: Alternative languages
Lisp Machines were in the 1970s and 1980s, with the last few even getting implemented as microprocessors, but they definitely were a thing. At least two startups - Lisp Machines Inc. and Symbolics - were founded to build them, and established companies such as Texas Instruments, Xerox, and Fujitsu tried their hands with them as well. Unfortunately, they ran into problems similar to those of the Xerox Star - with most of them built as handwrapped TTL systems which were both too bulky, too slow to construct, and too expensive both to buy and to maintain, while the microprocessor versions were on the bleeding edge, or even a bit past it, of the photolithographic processes of the time, and - like the Intel iAPX 432 from around the same time - they ended up with tons of hardware bugs and very low IC yields on a system that was all or-nothing, meaning they couldn't bin the partially working units as lower end parts. That, and they were simply promising more then the AI techniques could give when run on the hardware they could produce.nullplan wrote:weren't there hardware implementations of it in the sixties? I seem to remember such a thing. Again, if you have a LISP compiler or interpreter that runs on bare metal, nothing should be able to stop you.
I imagine that a lot of the things they had problems with at the time on both LispMs and on the 432 - such as the tagged memory, and the hardware-level capability addressing mechanisms used on the Intel chip - would be trivial to solve today, simply by throwing current-day processes at them. Hell, much of what went into those is already in the x86-64 chips, only they are using them for things like predictive branching and cache coherence rather than as language support.
Last edited by Schol-R-LEA on Sat Apr 25, 2020 5:17 pm, edited 2 times in total.
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
Ordo OS Project
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.
Ordo OS Project
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.
Re: Alternative languages
I have written some articles for the wiki about operating-system development in Ada. You can see some of them here: https://wiki.osdev.org/Category:Ada. There are a few osdev projects out there in the wild using Ada quite successfully, you can find a directory of them here: https://github.com/ohenley/awesome-ada#os-and-kernels
My own experiments using Ada for osdev can be seen here: https://github.com/ajxs/cxos.
My own experiments using Ada for osdev can be seen here: https://github.com/ajxs/cxos.
Re: Alternative languages
I'm a fan of Forth, personally. I started with the slightly insane goal of having one language from the lowest level of the kernel all the way up to the interactive prompt. Forth comes closer to this goal than any other language. Forth is so very flexible as to make it rather debatable whether it will be the same language all the way up, but I can at least acheive much deeper integration and flexibility than Unix-likes or even Plan 9.
I LOL'dPeterX wrote:Maybe anyone coding an OS in Prolog? (jk)
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
Re: Alternative languages
Forth is definitely cool. I've seen a ATA/IDE driver in Forth being only approx. 8 or 10 lines of code.eekee wrote:I'm a fan of Forth, personally. I started with the slightly insane goal of having one language from the lowest level of the kernel all the way up to the interactive prompt. Forth comes closer to this goal than any other language.
I once imagined having a Lisp kernel translating itself to a different platform. I then noticed that for lowlevel kernel and bootloader it is less pain to code in Assembler and C than in most other languages. But the main kernel is a different story: There are plenty of other languages. For example Oberon. And Ada looks interesting, especially the "newer" Ada dialects (So Ada95 isn't actually new.)
Greetings
Peter
Re: Alternative languages
C is exceptionally good at low-level work, yes. I'd like to say Forth is its equal, but I should hold that back until I've actually tried it. Forth 'should' be equal or better, its internals are more accessible and it's used for a lot of embedded work. The question rather depends on which Forth dialect & implementation because there are far more dialects of Forth than C, some tightly coupled to radically differing implementations with different intended uses.PeterX wrote:I once imagined having a Lisp kernel translating itself to a different platform. I then noticed that for lowlevel kernel and bootloader it is less pain to code in Assembler and C than in most other languages.
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
-
- Member
- Posts: 36
- Joined: Wed Sep 01, 2010 3:54 pm
Re: Alternative languages
I've noticed several projects using Rust. It doesn't seem bad at all.rkennedy9064 wrote:I'm a little late to the party, but Schol-R-LEA mentioned Rust and it's what I've been using to do OS development.
I'm looking into this Plain English Programming thing. I'm not quite ready to try OS dev with it yet though; still learning it but it looks like I'll get up to speed with it much faster than any other language.
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
Re: Alternative languages
BLISS which is popular in the VMS world, is a nice replacement to C. However it really did not catch on!.
--Thomas
--Thomas