Page 1 of 2

Special IDE specially designed for OS Developers!

Posted: Thu May 17, 2012 6:41 am
by LindusSystem
What do you think is missing in most IDEs?
What must a typical IDE designed for OS Developers must have?

What features do you recommend for a IDE which is designed for OS Development?

Re: Special IDE specially designed for OS Developers!

Posted: Thu May 17, 2012 7:00 am
by bluemoon
At first I thought you come up weird idea of designed new harddisk interface #-o

I think it's good if IDE of OS development:
1. support syntax highlighting for revalant file types: asm, c, c++, Makefile, sh, ld-scripts
2. support make or custom build system specified by os developer.
3. easy to switch between writing code and test bed. Either easily switch between multiple targets with one of them "test", so a one-click "make test" launch a VM. XCODE is poor at this aspect as you need to go thru' a popup list to switch target, result in a few click-count; using "Build&Run button" you need to pull down the list, which is slow too.
4. support workspace (multiple projects)
5. Link to wiki.osdev.org in the HELP menu :lol:
6. Not necessary, but it's nice to have an optional companion package that bundle/download/setup a bare-bone environment, with VM, toolchain and hello-world kernel, so user can do File > New Project > Kernel Wizard and generate a blank kernel for starter.

Re: Special IDE specially designed for OS Developers!

Posted: Thu May 17, 2012 8:19 am
by Griwes
In addition to syntax highlight, the editor should provide code hints while you are typing - autocompletion on KDevelop's level is perfect.

Re: Special IDE specially designed for OS Developers!

Posted: Thu May 17, 2012 8:39 am
by Firestryke31
bluemoon wrote:At first I thought you come up weird idea of designed new harddisk interface #-o

I think it's good if IDE of OS development:
1. support syntax highlighting for revalant file types: asm, c, c++, Makefile, sh, ld-scripts
2. support make or custom build system specified by os developer.
3. easy to switch between writing code and test bed. Either easily switch between multiple targets with one of them "test", so a one-click "make test" launch a VM. XCODE is poor at this aspect as you need to go thru' a popup list to switch target, result in a few click-count; using "Build&Run button" you need to pull down the list, which is slow too.
4. support workspace (multiple projects)
5. Link to wiki.osdev.org in the HELP menu :lol:
6. Not necessary, but it's nice to have an optional companion package that bundle/download/setup a bare-bone environment, with VM, toolchain and hello-world kernel, so user can do File > New Project > Kernel Wizard and generate a blank kernel for starter.
Although last I saw it was Windows only, Programmer's Notepad 2 does all but the last 2. You can bind "make test" to a hotkey (I use F5 because that's what Visual Studio uses). If the editor doesn't support a language you use you can add your own scheme to it. Plus you can customize the syntax highlight coloring.

All I think it would need is a port to Linux/Mac and it would probably be pretty competitive.

Re: Special IDE specially designed for OS Developers!

Posted: Thu May 17, 2012 8:58 am
by iansjack
You all seem to be describing Eclipse. Works for me.

Re: Special IDE specially designed for OS Developers!

Posted: Thu May 17, 2012 10:43 am
by Combuster
1. Fast and memory-efficient (GTFO, Eclipse)
2. Does not keep you from making it do what you want (GTFO, Visual Studio)
3. Does not require an OS upgrade for each new version (GTFO, Xcode).
</rant>

Re: Special IDE specially designed for OS Developers!

Posted: Thu May 17, 2012 12:17 pm
by Combuster
berkus wrote:</pant>
:lol:

Re: Special IDE specially designed for OS Developers!

Posted: Thu May 17, 2012 12:21 pm
by AndrewAPrice
There is really nothing unique about an IDE for osdev'ers vs an IDE for anything else. People have suggested Kernel Project Types, wizards and templates for interrupts, etc, but those things are boilerplate parts that once are mature you never touch again and make up very small part of your overall kernel.

If you're using C, use a mature C IDE. You get syntax errors underlined, possible function/variables names listed as you type, easy re-factoring of names, jumping to declarations/definitions, etc.

Me? I use Visual Studio and UltraEdit for nearly everything.

The debug/beta builds of Visual Studio are slow. Because of it's plugin architecture, I suspect every keystroke is sent through about 100 .Net subsystems until it figures out what to do, and there is a noticeable typing lag. The release buildings are a lot faster.

Re: Special IDE specially designed for OS Developers!

Posted: Thu May 17, 2012 7:51 pm
by TylerH
Anything with make integration will do. Geany is my favorite for Linux because it has customizable buttons for executing make or arbitrary commands. I don't actually use IDEs too much though.

Re: Special IDE specially designed for OS Developers!

Posted: Thu May 17, 2012 7:59 pm
by NickJohnson
I really don't see the point of having a single button that does the whole build process. Using gvim in one virtual desktop and xterm in the other, I only have to do Alt-F2,<up arrow>,<enter> (4 keystrokes) to re-run my make command. With muscle memory, I'm pretty sure this is faster than one mouse seek and click. Both are smaller than the combined make+QEMU+guest OS startup time anyway.

Re: Special IDE specially designed for OS Developers!

Posted: Fri May 18, 2012 6:29 am
by JuEeHa
I think biggest problem with IDEs is that they are so bloated. I use gnu screen running ed on lower region and build/test shell on upper region. If someone made IDE like Python IDLE I would probably at least try it and see is it worth enought to justify running X all the time and not just when I want to lauch qemu.

Re: Special IDE specially designed for OS Developers!

Posted: Fri May 18, 2012 8:25 am
by gravaera
Tbh, I don't think there are any requirements that really differ for a general application dev IDE and a kernel dev IDE :|

Re: Special IDE specially designed for OS Developers!

Posted: Fri May 18, 2012 1:37 pm
by Kevin
And most of my OS development isn't kernel development anyway.

Re: Special IDE specially designed for OS Developers!

Posted: Fri May 18, 2012 2:54 pm
by AndrewAPrice
I see some people are anti-IDE. There are two reason why I like to use an IDE (can apply to any at all - Eclipse, NetBeans, Emacs, UltraEdit, etc):
  • File management. I love having all of my files in a tree-view on one side of the screen. If I wanted to quickly reference a header file without this feature I would either frustratingly:
    • Keep ALT+TAB'ing to find the right file manager window out of 10 open windows, go up 3 levels of directories then down a level just to open a specific file.
    • Do "cd.. cd.. cd.. cd include" at the command line to find my file then "cd .. cd src cd kernel cd processes" to go back too where I was.
  • The editor knows the overall scope of the code. I love being able to right click a function and "Go to definition". Bring up the "Find in Files" dialogue with a quick keystroke. Ctrl+Space and see a list of suggested functions/variables/classes - along with a tooltip showing the function's prototype or the variable's type.
I keep the Windows command prompt open in the background. I also do the ALT+TAB, UP, ENTER trick to compile because it gives me the flexibility to change the command - "make kernel" "make tools" "make iso", etc.

IDEs can't do everything, but Visual Studio + CMD + Virtual Box is more productive for me than Alt+tabbing between 20 text editors + 10 folders + CMD + VirtualBox.

Re: Special IDE specially designed for OS Developers!

Posted: Fri May 18, 2012 4:21 pm
by Creature
I agree with almost all of the standpoints previously mentioned in this topic. I too like to use an IDE, just because it's simple, but the currently available ones just don't cut it for me (note that I'm talking about real IDE's here, not plain text editors possibly supplied with some possibility to invoke make, cause that's not an IDE). IMO it's like all of the IDE's that come with upsides also come with major downsides:
  • Eclipse - Mostly the reasons Combuster mentioned.
  • NetBeans - Offers great functionality, but doesn't feel native (Swing?), even slower and more of a resource-hog than Eclipse.
  • Visual Studio - Offers great functionality and integration, but comes with a buttload of extra packages that you don't necessarily want (or need for that matter, Compact SQL Server, anyone?) for plain C++ development. Also what Combuster mentioned: always wants to put itself partially on your Windows drive, takes way too long to install, and so on.
  • Qt Creator - Entirely different way of developing than most IDE's and specifically aimed at Qt (IMO not very suitable for other C++-related tasks).
  • Code::Blocks and CodeLite - Don't even get me started on these.
And these are only the ones on Windows, the ones natively on Linux aren't much better. After being so completely fed up with all of these IDE's and switching all the time, I dumped all of them for a while and used a text editor with plain command line compiling. But for mostly the same reasons as MessiahAndrw mentioned, I like having an IDE. So because I pretty much have no choice left: I'm writing my own IDE that is specifically adapted to my own needs: almost everything is a plugin and can be disabled from loading, fully portable and fully natively 64-bit on Windows. May be a big pile of work for something as stupid as this, but it's been worthwhile up until now.