Linked by Conrad Voorsanger on Thu 2nd Jun 2011 16:28 UTC
Original OSNews Interviews OSNews sat down with Ian Seyler, the Founder and Lead Programmer at Return Infinity, the maker and sponsor of Baremetal OS, a 64-bit OS for x86-64 based computers written entirely in Assembly. Editor's note: We'd love to do similar interviews with the people behind other alternative or hobby OS projects. If there's a project that you'd like to learn more about, let us know.
Order by: Score:
Assembly
by ccraig13 on Thu 2nd Jun 2011 16:51 UTC
ccraig13
Member since:
2011-05-31

I remember writing a high-low game in Assembly for a class assignment. That was fun but obviously took a lot of code to get the job done. I think it would be fun to contribute to this project but I doubt I'd be any help

Reply Score: 1

RE: Assembly
by lucas_maximus on Thu 2nd Jun 2011 17:57 UTC in reply to "Assembly"
lucas_maximus Member since:
2009-08-18

If you would like to get involved, it maybe worth contacting the developers and offer to do bug fixes.

This can achieve two things ... you learn how the OS works and you gain trust with the developer/s (if your work is good) and you get to learn.

Reply Score: 2

RE: Assembly
by twitterfire on Thu 2nd Jun 2011 22:54 UTC in reply to "Assembly"
twitterfire Member since:
2008-09-11

I remember writing a high-low game in Assembly for a class assignment. That was fun but obviously took a lot of code to get the job done. I think it would be fun to contribute to this project but I doubt I'd be any help


I remember coding com and exe viruses for dos in assembler. Mhm, old days of MASM and TASM.

Reply Score: 2

good times
by poundsmack on Thu 2nd Jun 2011 17:19 UTC
poundsmack
Member since:
2005-07-13

I love reading about stories like this. I think it's pretty cool what he's doing there. I'll likely mess around with it myself once the C library is done. In the mean time, best of luck on your project.

Reply Score: 4

RE: good times
by Valhalla on Fri 3rd Jun 2011 14:20 UTC in reply to "good times"
Valhalla Member since:
2006-01-24

I haven't programmed in assembly for a very long time but I still have a longing for it due to the absolute control it offers. It's impressive seeing someone tackling huge projects like an OS in pure assembly, I sure couldn't see myself writing anything but small extremely time critical components in assembly these days, and only if it was to utilize special instructions which compilers still struggle with compared to hand-written assembly (such as sse).

One thing that programming in assembly teaches you is how the generated code actually work when you program in higher level languages. Also if you have ever programmed in assembly things like pointers (which seems to be so hard to grasp for those who has only worked in high level languages) is obvious.

I'd say the overall level of programming has gone down-hill during this past decade (if not longer), we've had people come in applying for writing code for embedded devices who can't even write a doubly linked list from scratch... yes, seriously.

Meanwhile we have this new breed of 'programmers' citing how 'productive' they are when they use these powerful frameworks where they are in principle doing extremely little programming at all and are just relying on existing framework functionality with ~1% (or less) of the code in their programs actually being written by themselves.

Certainly there's a place for this kind of 'rapid development' but I shudder to think that this is what the majority of programming will be about in the future since it not only abstracts away from hardware (which all high level languages does) but also in my opinion heavily abstracts away from problem solving, particularly in the realm of efficiency.

Ahwell, enough of my rant, get off my lawn and all that.

Reply Score: 2

GNUstep
by Hypnos on Thu 2nd Jun 2011 20:54 UTC
Hypnos
Member since:
2008-11-19

While it's a desktop toolkit project, and not an OS project, I think it would be useful for OSNews to interview GNUstep chief maintainer Gregory Casamento to learn about where the project is and where it's heading.

Edited 2011-06-02 20:56 UTC

Reply Score: 2

v RE: GNUstep
by twitterfire on Thu 2nd Jun 2011 22:52 UTC in reply to "GNUstep"
RE[2]: GNUstep
by Hypnos on Fri 3rd Jun 2011 02:05 UTC in reply to "RE: GNUstep"
Hypnos Member since:
2008-11-19

1) I believe that GNUstep has changed from reimplementing OpenStep to tracking OSX, so that one can write portable programs for both the Linux and Mac platforms. I think that's interesting.

2) By your logic, OSNews shouldn't cover any of the obscure OS projects either, such as BareMetal. If OSNews isn't doing that, then it has no reason to exist -- just read ArsTechnica.

Reply Score: 5

RE[3]: GNUstep
by twitterfire on Sat 4th Jun 2011 18:38 UTC in reply to "RE[2]: GNUstep"
twitterfire Member since:
2008-09-11

By your logic, OSNews shouldn't cover any of the obscure OS projects either, such as BareMetal. If OSNews isn't doing that, then it has no reason to exist -- just read ArsTechnica.


That's exactly my point. I had a fair portion of obscure and non obscure operating systems, during my studies at the Univesity.

I would understand the emphasis of some obscure operating system, given two conditions:

1. the said obscure operating systems have technical merits
2. the articles on the site are presented from a scientific point of view and targeted towards OS programmers and OS architects

The typical article on OSnews is targeted to masses and hordes. Is trying to popularize operating systems science like Popular Science is trying to popularize science.

Physicists and mathematicians generally despise Popular Science because it trivializes the science.

OSnews isn't targeted to specialists and the articles are written by guys who don't have a clue about Operating Systems.

I respect Thom Holverda, but he doesn't have a clue about the inner works of operating systems.

He can write about GUI, feature X, feature Y and so on. Which is alright if you are targeting the masses like OSnews.

I think is ok and OSnews should resume on the general points of view about Apple, Windows, Linux, Haiku, Reactos, Syllable and gadgets and H264 vs VP8, and Internet Freedom and Sony.

You know, light talk about Operating Systems and Internet and gadgets.

However, when you try to cross the line and talk about obscure operating systems, you shoud at least have a clue about what an OS really is. Not the case here. I this was targeted about specialists, we wouldn't talk about every guy who pulled another os written in asm from his ass.

We would talk about serious business like monolithic kernel versus micro kernel, we would talk about L4 and L4/Fiasco, we would talk about UNIX, Plan 9, Inferno, distributed operating systems, NT architecture, BSD architecture.

We would interview guys like Andy Tanenbaum, Donald Knuth, scientists from MIT, the guys from L4, someone from FreeBSD or NetBSD kernel team, Theo de Raadt from OpenBSD and a lot of scientists from Windows Team @ Microsoft. And some from former Bell Labs and some from IBM and some from former SUN.

Brian Kernighan, Donald Knuth and Andy Tanenbaum would laugh about operating systems written in assembler pulled from someone's ass. I mean, is great that some guy has a passion and he writes a kernel and a cli. As I forgot a lot of things from my operating system design classes, and I forgot coding in ASM, I can write a functional kernel&cli in less than a month in C. It's a trivial task. In fact me and my colleagues were asked to write a trivial OS for our exams 10 years ago. So we did.

So OSnews, either you are light and talk about mainstream OSes and general usability, either you talk about serious business, but please interview and ask people who know and can give a qualified answer. Not yet just another ASM os.

Reply Score: 2

RE[4]: GNUstep
by M.Onty on Sun 5th Jun 2011 20:29 UTC in reply to "RE[3]: GNUstep"
M.Onty Member since:
2009-10-23

I get the impression this post has been modded heavily up and down in near equal measure.

An interview with Knuth would be great, mind.

Reply Score: 1

RE[5]: GNUstep
by Neolander on Sun 5th Jun 2011 20:38 UTC in reply to "RE[4]: GNUstep"
Neolander Member since:
2010-03-08

"This comment has not been moderated."

My editor superpowers have spoken.

Reply Score: 1

Business model.
by Alfman on Fri 3rd Jun 2011 03:00 UTC
Alfman
Member since:
2011-01-28

This is going to sound extremely selfish (and it is) but if you ever do get a viable business model and can afford a team, look me up!

I'm not afraid of assembly. I know a thing or two about using the right structures for scalability. I'm fairly proficient in the math department. I have experience developing for multiple operating systems. I've got notches on my belt for implementing network protocols. I've implemented graphics rendering engines, PKI and async libraries. Oh I have a keen eye for security too.

:)

Alternatively, is anyone else in suffolk county NY hiring? I could really use a worthy tech job. Under employment is no fun.

Reply Score: 3

RE: Business model.
by iseyler on Fri 3rd Jun 2011 13:57 UTC in reply to "Business model."
iseyler Member since:
2008-11-15

I have been approached about possible funding. The only issue is that they want to see a proof of concept and my time is limited.

Reply Score: 1

RE[2]: Business model.
by Alfman on Fri 3rd Jun 2011 23:32 UTC in reply to "RE: Business model."
Alfman Member since:
2011-01-28

iseyler,

"I have been approached about possible funding. The only issue is that they want to see a proof of concept and my time is limited."

I'm not sure if you'd be better off marketing the OS by itself as a high performance clustering solution in general, or trying to focus on some kind of niche.


You and I both know that a baremetal cluster could solve almost any computational problem clients wanted to throw at it, but my gut feeling is that you might get more traction if you emphasize a specific problem domain.

Would you have any in mind?

Edited 2011-06-03 23:34 UTC

Reply Score: 2

Locking threads?
by joshv on Fri 3rd Jun 2011 16:03 UTC
joshv
Member since:
2006-03-18

Since I can't respond in the Windows 8 thread I will put my protest here. WTF Thom - locking the entire thread because people are arguing about modding? That's what moddings for - to downmod offtopic crap.

Regardless, I am perfectly capable of ignoring such crap, and would love to continue to debating the actual issue - were the thread not locked.

But I guess you win the argument now don't you, because nobody can respond. Tricky.

Reply Score: 1

RE: Locking threads?
by Neolander on Fri 3rd Jun 2011 16:34 UTC in reply to "Locking threads?"
Neolander Member since:
2010-03-08

Please send your complaints to thomholwerda AT osnews DOT com instead of polluting this innocent topic with issues that have nothing to do with it. Thanks in advance.

Edited 2011-06-03 16:35 UTC

Reply Score: 3

RE[2]: Locking threads?
by joshv on Fri 3rd Jun 2011 18:49 UTC in reply to "RE: Locking threads?"
joshv Member since:
2006-03-18

I'd pollute the thread it belongs on, were it not locked - and I assume appealing to the guy who locked the thread will accomplish nothing.

Reply Score: 2

RE[3]: Locking threads?
by Valhalla on Fri 3rd Jun 2011 19:29 UTC in reply to "RE[2]: Locking threads?"
Valhalla Member since:
2006-01-24

I'd pollute the thread it belongs on, were it not locked - and I assume appealing to the guy who locked the thread will accomplish nothing.

And then you assume that polluting this thread will accomplish something? Your sense of logic escapes me.

Reply Score: 3

RE[4]: Locking threads?
by Dr.Mabuse on Sat 4th Jun 2011 02:25 UTC in reply to "RE[3]: Locking threads?"
Dr.Mabuse Member since:
2009-05-19

"I'd pollute the thread it belongs on, were it not locked - and I assume appealing to the guy who locked the thread will accomplish nothing.

And then you assume that polluting this thread will accomplish something? Your sense of logic escapes me.
"

The site doesn't have a forum. You have no way to gauge how many people feel the same way as you with a single e-mail. Perhaps if enough people voice their concern, our esteemed editor may see the error in his ways.

I appreciate your efforts Thom - I love this site, but that was not one of your finest moments.

Reply Score: 1

RE[3]: Locking threads?
by Neolander on Fri 3rd Jun 2011 19:49 UTC in reply to "RE[2]: Locking threads?"
Neolander Member since:
2010-03-08

I'd pollute the thread it belongs on, were it not locked - and I assume appealing to the guy who locked the thread will accomplish nothing.

That would not count as pollution in my view, since you'd be in the right discussion topic ;)

But something bugs me : if you have the feeling that discussion will accomplish nothing, why did you post your comment here at all ?

EDIT : Valhalla beats me there.

Edited 2011-06-03 19:56 UTC

Reply Score: 1

RE[4]: Locking threads?
by Megol on Mon 6th Jun 2011 10:14 UTC in reply to "RE[3]: Locking threads?"
Megol Member since:
2011-04-11

To do a public protest? Hard to do it any other way.

Reply Score: 1

RE[5]: Locking threads?
by Neolander on Mon 6th Jun 2011 10:37 UTC in reply to "RE[4]: Locking threads?"
Neolander Member since:
2010-03-08

Ah, talking about public protests with me is unfairly making use of my patriotic feelings towards them... How could a French guy be against that ? ;)

Edited 2011-06-06 10:37 UTC

Reply Score: 1

Why not in Forth?
by Zbigniew on Fri 3rd Jun 2011 20:27 UTC
Zbigniew
Member since:
2008-08-28

Being written in Forth, it could be more easily portable.

Reply Score: 1

RE: Why not in Forth?
by Alfman on Fri 3rd Jun 2011 23:55 UTC in reply to "Why not in Forth?"
Alfman Member since:
2011-01-28

You know there are so many languages these days, it's become difficult to keep track of them.

For example, I already have trouble remembering the substring functions between javascript, c, php, perl, .net, mysql, plsql... very rarely do I use others.

What does forth offer as a compelling reason to learn/use it?

It may be good, but these days languages have way too much overlap and the choice is seemingly arbitrary.

Reply Score: 2

RE[2]: Why not in Forth?
by Zbigniew on Sat 4th Jun 2011 11:52 UTC in reply to "RE: Why not in Forth?"
Zbigniew Member since:
2008-08-28

> What does forth offer as a compelling reason to learn/use it?

You didn't read anything like "Starting Forth"? OK, here you go:

Forth is fast. High-level Forth executes as fast as other high-level languages and between 20 to 75% slower than equivalent assembly-language programs, while time-critical code may be written in assembler to run at full processor speed. Without a traditional operating system, Forth eliminates redundancy and needless run-time error checking.

Forth compiled code is compact. Forth applications require less memory than their equivalent assembly-language programs and consume less power (important for hand-helds and portable gadgets!) Written in Forth, the entire operating system and its standard word set reside in less than 8K bytes. Support for a target application may require less than 1K bytes.

Forth is transportable. It has been implemented on just about every mini- and microcomputer known to the industry. Most microcontrollers and DSPs, even tiny ones, also have a Forth implementation.

Forth has been known to cut program development time by a factor of ten for equivalent assembly-language programming and by a factor of two for equivalent high-level programming in C or Java. Productivity increases because Forth epitomizes "structured programming" and because it is interactive and modular.

Reply Score: 1

RE[3]: Why not in Forth?
by Alfman on Sat 4th Jun 2011 20:53 UTC in reply to "RE[2]: Why not in Forth?"
Alfman Member since:
2011-01-28

Zbigniew,

"You didn't read anything like "Starting Forth"? OK, here you go:"

No, I never had reason to before. I am looking at it now. It'd take me a while to get used to, but I can see how the stack based approach translates very easily to CPU stack.

"Forth compiled code is compact. Forth applications require less memory than their equivalent assembly-language programs and consume less power (important for hand-helds and portable gadgets!)"

Something doesn't seem right about this. Either forth is emulating a more compact byte code than x86, or it's executing native x86 code. I don't understand how it can be both smaller and as efficient as assembly, can you elaborate?


"Forth is transportable. It has been implemented on just about every mini- and microcomputer known to the industry. Most microcontrollers and DSPs, even tiny ones, also have a Forth implementation."

Portability is huge, however in my experience platform specific APIs hinder portability more so than the language itself. Does forth have a standard API for things like networking, name resolution, databases, threading, graphics, etc?

From my initial reading, the forth language doesn't specify these things but I could be wrong.

"Forth has been known to cut program development time...for equivalent high-level programming in C or Java."

I'm sure this is true for many cases. But what about compared against ruby, or python, C#, or even something like haskell?

The question is difficult to answer (at least for me) because I don't have the time to implement the same program in a dozen different languages to compare the relative difficulty.

Haskell/Prolog have a very unique capability to run many functions backwards (given the output, it will enumerate all possible inputs).

Forth's reverse polish notation stands out, but it's not immediately obvious to me that it's a better way of thinking about code. If I had more experience with it, maybe I'd change my mind.

In terms of simplicity, there is no contest, the trivial nature of RPN blows everything else out of the water.

In terms of technical superiority, I don't know so much. Java also uses a similar stack driven implementation under the hood.

I might like it once I got used to it. But, realistically it's difficult to justify spending time to become fluent in forth when employers aren't asking for it.


Edit: I wanted to say that I do agree with you that it looks like it would be a natural fit in an operating system context. It does does seem more suitable than the other languages I brought up. Particularly for algorithms.

Edited 2011-06-04 21:01 UTC

Reply Score: 2

RE[4]: Why not in Forth?
by Zbigniew on Sat 4th Jun 2011 21:13 UTC in reply to "RE[3]: Why not in Forth?"
Zbigniew Member since:
2008-08-28

"Forth compiled code is compact. Forth applications require less memory than their equivalent assembly-language programs and consume less power (important for hand-helds and portable gadgets!)"

Something doesn't seem right about this. Either forth is emulating a more compact byte code than x86, or it's executing native x86 code. I don't understand how it can be both smaller and as efficient as assembly, can you elaborate?

But while reading "Starting Forth" you surely noticed, where I copy the above from? ;)
I understand that statement, that using Forth words, instead of coding in assembly, usually overall size of your code is smaller, when programming in Forth. I think, it depends on quality of macroassembler you can use, quality of Forth compiler, which you're comparing to - and, of course, on your skills both as assembler- and Forth-coder.

Portability is huge, however in my experience platform specific APIs hinder portability more so than the language itself. Does forth have a standard API for things like networking, name resolution, databases, threading, graphics, etc?

No. Actually, programming in Forth is rather "designing one's own problem-specific language". Forth is the basis. Then instead of using ready-available high-level function (which you'll find in langs like Python), you're designing your own higher-level language using Forth words.

I'm sure this is true for many cases. But what about compared against ruby, or python, C#, or even something like haskell?

The question is difficult to answer (at least for me) because I don't have the time to implement the same program in a dozen different languages to compare the relative difficulty.

Of course, it's not that easy to measure it. Since I'm Forth-newbie (learning it about year for now), you may be interested in asking these questions on comp.lang.forth, where you'll meet several experienced Forth-programmers, coding in Forth more than 20 years.

Reply Score: 1

RE[5]: Why not in Forth?
by Alfman on Sat 4th Jun 2011 23:36 UTC in reply to "RE[4]: Why not in Forth?"
Alfman Member since:
2011-01-28

"But while reading 'Starting Forth' you surely noticed, where I copy the above from? ;) "

Yes.

"...using Forth words, instead of coding in assembly, usually overall size of your code is smaller, when programming in Forth."

We're still talking about compiled x86 code? Honestly I don't understand the logic, but no matter.


"No. Actually, programming in Forth is rather 'designing one's own problem-specific language'...instead of using ready-available high-level function"

This is fine for programming algorithms, and it's probably fine for OS work. However I'd be worried about leaving typical web developers to write their own functions. I imagine this results in a lot of duplicate code between libraries.


"Since I'm Forth-newbie (learning it about year for now), you may be interested in asking these questions on comp.lang.forth, where you'll meet several experienced Forth-programmers"


Thank you for answering my questions. The language seems to have an almost universal quality to it - I think you'll know what I mean by that.

Reply Score: 2

RE[6]: Why not in Forth?
by Zbigniew on Sun 5th Jun 2011 13:06 UTC in reply to "RE[5]: Why not in Forth?"
Zbigniew Member since:
2008-08-28

"...using Forth words, instead of coding in assembly, usually overall size of your code is smaller, when programming in Forth."

We're still talking about compiled x86 code? Honestly I don't understand the logic, but no matter.

If I'm correct, there have been studies into that (Like can an Assembler programmer outperform an optimizing C compiler). Result: Only about 10 percent of programmers can outperform an optimizer.
Ans so I guess, that something similar to the above is behind the logic: Forth makes "dirty work" for you.

"No. Actually, programming in Forth is rather 'designing one's own problem-specific language'...instead of using ready-available high-level function"

This is fine for programming algorithms, and it's probably fine for OS work. However I'd be worried about leaving typical web developers to write their own functions. I imagine this results in a lot of duplicate code between libraries.

Nobody said, that Forth is going to replace HTML. Regarding the libraries: Forth programmers often prefer to "reinvent the wheel" - and to implement the things own way - instead of relying on old, fatty, buggy, and (still more and more) bloated libraries.

Thank you for answering my questions.

You're welcome.

Reply Score: 1

RE[6]: Why not in Forth?
by AndrewZ on Mon 6th Jun 2011 20:56 UTC in reply to "RE[5]: Why not in Forth?"
AndrewZ Member since:
2005-11-15

"..using Forth words, instead of coding in assembly, usually overall size of your code is smaller, when programming in Forth."

We're still talking about compiled x86 code? Honestly I don't understand the logic, but no matter.

It's been a while since I thought of Forth but from my long term storage...
Technically speaking Forth is a compiled language, but technically speaking Forth is not compiled like other high level languages. Forth has no real syntax, it is mostly code 'words' and data on a stack. As such it is already very compact. Forth is very close to the metal, so it is also very optimal. Forth is not for everyone. But if you like it, you love it. If it is for you, you become a Forth zealot and you try to convert all your friends. And of course they become annoyed, because they have never heard of Forth.

Reply Score: 2

RE: Why not in Forth?
by charles on Sat 4th Jun 2011 16:01 UTC in reply to "Why not in Forth?"
charles Member since:
2005-06-30

Can you point to any examples of an easily portable OS or kernel written in Forth? Or a Forth suitable for writing an OS kernel for x86/x86-64 hardware?

Reply Score: 1

RE[2]: Why not in Forth?
by Zbigniew on Sat 4th Jun 2011 17:45 UTC in reply to "RE: Why not in Forth?"
Zbigniew Member since:
2008-08-28

If you mean something "bigger" - try ForthOS ( http://www.forthos.org/ ). The "smaller things" - e.g. for microcontrollers - are obvious (CamelForth, cforth etc.), since Forth "likes to be an OS".

The biggest sense in using Forth is using it "standalone" - I mean: with NO control of any underlying "external" OS.

Oh, I forgot: http://www.openfirmware.info/Open_Firmware - here you are: "easily portable OS or kernel written in Forth; Forth suitable for writing an OS kernel for x86/x86-64 hardware" - everything you requested in just one software package.

Edited 2011-06-04 17:52 UTC

Reply Score: 1