Page 1 of 2
Homebrew IDE
Posted: Sat Apr 26, 2014 2:51 pm
by codertom
Hey everyone, I've developed an IDE specifically for Operating System development which allows you to quickly compile and run the operating system solution.
- It supports parsing the error messages from GCC/NASM/LD (GNU Linker) and displays them in the appropriate tabs as seen in the screenshot on the bottom left corner. Clicking on an error/warning takes you straight to the file, line and column that the error or warning is talking about.
As well as this, it runs Qemu as soon as it's finished building (only if you press "Run") so you can quickly see if the code runs as expected (however, there is no debugging features (yet?)).
The IDE uses it's own Solution/Project/Make system.
If anyone is interested in using this, then please let me know. Most of the behaviour is inspired by the Microsoft Visual Studio IDE for Windows and it uses it's icons because I have no talent when it comes to icons...
[EDIT]
I am now looking into Qemu's "QMP" to see if I can impliment a "break" function which halts the OS and gives you exactly where in the code it is (via the program counter register) and a few more interesting things
Re: Homebrew IDE
Posted: Sun Apr 27, 2014 8:02 am
by Rew
looks really nice. This is exactly what I was looking for when I started OSdev. I'm assuming it has mixed language support for c and asm files. Does it support any other languages? Does it have intellisense? What did you use for the parser, or is that homebrew as well?
as far as debugging, i have used gdb support in qemu to implement a debugger. You could in theory implement a full debugging experience. Atleast for the gcc compiled stuff. i'm not sure of the debug output available from nasm.
I had started on my own ide like you did and ended up doing the approach of prviding a visual sudio package for my "ide" environment. The leanring curve is fairly steep and the documentation is sparse, but I ended up with the ide experience I was looking for and can focus solely on the functional (not ui) aspects. The downside of this approach is it ultimately makes it more difficult to host in my os down the road.
Caution: it is easy to get tied up in ide/toolkit development. My os development has been on halt for over a year as I built an assembler, linker, and debugger to support the development experience I wanted
Re: Homebrew IDE
Posted: Sun Apr 27, 2014 8:56 am
by codertom
Rew wrote:looks really nice. This is exactly what I was looking for when I started OSdev. I'm assuming it has mixed language support for c and asm files. Does it support any other languages? Does it have intellisense? What did you use for the parser, or is that homebrew as well?
Thanks
It supports ASM/C/C Header (C Headers are treated as normal C code but compiled first) (right now though I'm having issues linking C/ASM together. It doesnt have intellisense.
As for the parser (if you mean syntax highlighter), I'm using SyntaxBox (
http://syntaxbox.codeplex.com/)
Rew wrote:
as far as debugging, i have used gdb support in qemu to implement a debugger. You could in theory implement a full debugging experience. Atleast for the gcc compiled stuff. i'm not sure of the debug output available from nasm.
I've an emulator class which exposes debugging like functions which interact with the GDP from Qemu (i'm still playing with it at the moment)
Rew wrote:
I had started on my own ide like you did and ended up doing the approach of prviding a visual sudio package for my "ide" environment. The leanring curve is fairly steep and the documentation is sparse, but I ended up with the ide experience I was looking for and can focus solely on the functional (not ui) aspects. The downside of this approach is it ultimately makes it more difficult to host in my os down the road.
What do you mean by VS package? if you mean like a plugin for VS, I won't be doing that. It's completely standalone (providing you have .Net 2.0 installed)
Rew wrote:
Caution: it is easy to get tied up in ide/toolkit development. My os development has been on halt for over a year as I built an assembler, linker, and debugger to support the development experience I wanted
Addicting right? I might just make it open source and let everyone contribute so I don't have to focus on it too much.
I'm not going in-depth with it and developing my own linker/compiler/debugger though, i'm using GCC/NASM for the compiler, GNU Linker (ld.exe) for the linker and Qemu for the emulator (possibly debugger)
Re: Homebrew IDE
Posted: Mon Apr 28, 2014 9:15 pm
by Lionel
One problem I foresee is that since this runs .NET, it won't be compatible with Linux.
Realise that 95%+ of the people who do OSDev use linux, and that maybe ~4% would be able to use it.
Not to put the project down or anything (it looks pretty good), how will you handle losing/not having access to the majority of your userbase?
Re: Homebrew IDE
Posted: Mon Apr 28, 2014 11:58 pm
by VolTeK
Lionel wrote:and that maybe ~4% would be able to use it.
I too, use symbols to sound smart
If people wanna use it, they'll get their act together and emulate windows.
Re: Homebrew IDE
Posted: Tue Apr 29, 2014 1:39 am
by Kevin
Might Mono work for using it on Linux?
Though I can't see a reason for using it anyway, judging from the original post it doesn't seem to add anything to what I already have.
Re: Homebrew IDE
Posted: Tue Apr 29, 2014 2:32 am
by codertom
Kevin wrote:Might Mono work for using it on Linux?
Mono works with linux yeah, however the IDE doesnt work with Mono since it's not 100% managed C#. There's a few P/invokes that the syntax highlighter uses which is locked to Windows however I'l see if I can change that.
Kevin wrote:Though I can't see a reason for using it anyway, judging from the original post it doesn't seem to add anything to what I already have.
Out of curiosity, what IDE/dev tools do you use?
Lionel wrote:how will you handle losing/not having access to the majority of your userbase?
The IDE isn't really intended for commercial use or any kind of distribution so i'm not really interested in the fact that most of the people here probably won't be able to run it. It was intended for my own personal use but I wanted to see if anyone here was interested in using it.
Re: Homebrew IDE
Posted: Tue Apr 29, 2014 3:01 am
by bwat
codertom wrote:The IDE isn't really intended for commercial use or any kind of distribution so i'm not really interested in the fact that most of the people here probably won't be able to run it. It was intended for my own personal use but I wanted to see if anyone here was interested in using it.
Quite right. All too often I read comments from people who think it's a popularity contest. Sometimes we've just got to do things for our own personal reasons.
Re: Homebrew IDE
Posted: Tue Apr 29, 2014 4:30 am
by Bender
btw let's leave Linux support for a while, I wonder if you've written that solution explorer yourself, the only possible method i remember was using UIhierarchy.something.SolutionExplorer, I don't know the exact name
.
edit: no it uihierarchy isn't the one, it manipulates the Visual Studio Solution Explorer.
Re: Homebrew IDE
Posted: Tue Apr 29, 2014 5:41 am
by Kevin
codertom wrote:Out of curiosity, what IDE/dev tools do you use?
Nothing fancy, just vim (with some cscope key mappings configured for source code navigation, but apart from that I didn't configure all that much) and a Makefile that has a target for starting qemu after having compiled everything (with serial console on stdio) and a second target that enables the gdb server and drops me to a gdb command line for the kernel binary.
Re: Homebrew IDE
Posted: Tue Apr 29, 2014 5:52 am
by codertom
Bender wrote:I wonder if you've written that solution explorer yourself, the only possible method i remember was using UIhierarchy.something.SolutionExplorer, I don't know the exact name
.
edit: no it uihierarchy isn't the one, it manipulates the Visual Studio Solution Explorer.
It's my own solution explorer with my own solution file format
. The icons though are ripped from VS's "Image Library" thing that comes with VS.
Kevin wrote:Nothing fancy, just vim (with some cscope key mappings configured for source code navigation, but apart from that I didn't configure all that much) and a Makefile that has a target for starting qemu after having compiled everything (with serial console on stdio) and a second target that enables the gdb server and drops me to a gdb command line for the kernel binary.
Ah, my IDE doesnt use Makefiles but manipulates the compiler/linker/qemu directly depending on what building configuration you have set. I'm thinking of making a Makefile generator though if people want a standard file that is "universal".
Re: Homebrew IDE
Posted: Tue Apr 29, 2014 6:21 am
by Kevin
codertom wrote:Ah, my IDE doesnt use Makefiles but manipulates the compiler/linker/qemu directly depending on what building configuration you have set. I'm thinking of making a Makefile generator though if people want a standard file that is "universal".
Probably a good idea, even if the IDE doesn't use the Makefile internally for building the project. But if you publish the source code of your OS, you'll want to include a Makefile so that everyone can build it with their standard system tools, without installing the IDE first.
Re: Homebrew IDE
Posted: Tue Apr 29, 2014 6:50 am
by codertom
Kevin wrote:codertom wrote:Ah, my IDE doesnt use Makefiles but manipulates the compiler/linker/qemu directly depending on what building configuration you have set. I'm thinking of making a Makefile generator though if people want a standard file that is "universal".
Probably a good idea, even if the IDE doesn't use the Makefile internally for building the project. But if you publish the source code of your OS, you'll want to include a Makefile so that everyone can build it with their standard system tools, without installing the IDE first.
Yeah
I may not make it open source because I don't know 100% what to do with e.g sell the OS or something. (Maybe just the kernel would be open source and licensed GNU and the rest would be commercial)
Re: Homebrew IDE
Posted: Tue Apr 29, 2014 7:18 am
by lexected
codertom wrote:
Mono works with linux yeah, however the IDE doesnt work with Mono since it's not 100% managed C#. There's a few P/invokes that the syntax highlighter uses which is locked to Windows however I'l see if I can change that.
syntaxbox.codeplex.com wrote:
Powerful Syntax Highlight Windows Forms Control for the Microsoft.NET Platform.
Written in 100% managed C#.
Hmm.
Re: Homebrew IDE
Posted: Tue Apr 29, 2014 7:24 am
by codertom
flipkrajnc wrote:codertom wrote:
Mono works with linux yeah, however the IDE doesnt work with Mono since it's not 100% managed C#. There's a few P/invokes that the syntax highlighter uses which is locked to Windows however I'l see if I can change that.
syntaxbox.codeplex.com wrote:
Powerful Syntax Highlight Windows Forms Control for the Microsoft.NET Platform.
Written in 100% managed C#.
Hmm.
I know that SyntaxBox says that. However, the source code tells otherwise. It uses P/invokes for GDI+ etc which is platform locked. 100% managed is EVERYTHING is using .Net framework calls and not native ones.
The Mono framework does not emulate kernel32,gdi+ or user32 libraries so it renders [DllImport(dll)] useless.