Page 1 of 1
What toolchain/environment/tools/workflow do you use?
Posted: Tue Jul 29, 2014 9:58 am
by kutkloon7
I bet there have been more of these topics, but I couldn't find them, so I made one again.
I bet most people use the GNU toolchain (GCC, binutils, make, etc...) as the main component of their toolchain, but I'm interested in everything besides that as well.
Currently I use:
Windows 8.1
- Sublime Text 2 (text editor, but I'm having some minor issues with it on windows 8.1 )
- HxD/Fhred/XIV as hex editor
- Nasm (assembler with the option to produce ELFs or flat assembly)
- Bochs (x86 emulator)
- Some binaries to handle the making of the floppy and cd image (bfi.exe, bootcopy.exe and mkisofs.exe)
- I used to use VirtualBox but I'm having major issues with the latest version (shared folders don't work and I have problems with my antivirus software)
- VMware, both to test my kernel and to run Linux Mint
Linux Mint (for the GNU toolchain)
- GNU toolchain
- Geany (text editor, I like it a lot
)
My workflow is a little inefficient, but hardly as much as you may think. To make changes, I boot up Linux Mint in VMware, make changes in Geany, hit a custom script from it to build my OS, switch to my other screen, run a bat file. Then I usually run in Bochs. All this takes about 5 seconds (but a complete rebuild will take longer, especially if the kernel gets bigger). Developing on Linux would be slightly faster indeed, but I'm too attached to visual studio to and simply too lazy to go use bochs on linux (it works fine like this).
Re: What toolchain/environment/tools/workflow do you use?
Posted: Tue Jul 29, 2014 11:06 am
by AndrewAPrice
My two work computers are:
Windows 7, Visual Studio 2013, QEMU.
Arch Linux, Sublime Text, GCC, QEMU.
Also have a home PC, but it's mostly for gaming.
Re: What toolchain/environment/tools/workflow do you use?
Posted: Tue Jul 29, 2014 11:18 am
by Satoshi
I programming under windows and compiling OS on my home linux server.
Win:
Xamarin Studio with D plugin
HxD
IDA
My own app for debugging OS by COM port.
putty link - for remote connection
VM Player
Linux:
Makefile
DMD v2
NASM
Samba
GCC
Re: What toolchain/environment/tools/workflow do you use?
Posted: Tue Jul 29, 2014 11:22 am
by kutkloon7
Bloodman wrote:I programming under windows and compiling OS on my home linux server.
Win:
Xamarin Studio with D plugin
HxD
IDA
My own app for debugging OS by COM port.
putty link - for remote connection
VM Player
Linux:
Makefile
DMD v2
NASM
Samba
GCC
Oh, a lot of new programs there for me.
MessiahAndrw wrote:My two work computers are:
Windows 7, Visual Studio 2013, QEMU.
Arch Linux, Sublime Text, GCC, QEMU.
Also have a home PC, but it's mostly for gaming.
Arch linux is nice! My second choice after Linux Mint
Also, do you use Visual Studio for OS dev?
Re: What toolchain/environment/tools/workflow do you use?
Posted: Wed Jul 30, 2014 3:09 am
by embryo
kutkloon7 wrote:do you use Visual Studio for OS dev?
If the OS is a bit non standard, then those widely used tools like GCC are useless. Because my OS is in Java I use:
- Eclipse (under Windows)
- Self made debugger + Qemu
- HxD to copy system image where I want it to be
But withing the tool-chain I have more fine grained components like assembler, compiler and so on. All in Java, of course.
Re: What toolchain/environment/tools/workflow do you use?
Posted: Wed Jul 30, 2014 5:42 am
by onlyonemac
I use Linux and I write my code in a standard text-editor (I use XFCE's Mousepad editor; I would use GEdit if only it had support for x86 assembler syntax colouring - I've tried to implement it myself a few times with absolutely no success). I use dd for preparing kernel images and writing to disk - it's good because I can take bits of a kernel from here and there and join them together in the right order and then put it all in the right place on the disk (the byte count and start offset features are very useful to me). I've prepared a couple of scripts to prepare each part of the kernel and then another to make it into a disk image (it calls the sub-scripts for the kernel if required) and then another to do the whole thing and follow it up by writing it to disk. I should use make, but currently my kernel compiles fast enough for me to re-build the whole thing every time something changes, and I've had too many issues where something doesn't work right because make didn't re-compile the required part (usually my fault for not making the makefile properly but it's still a pain).
Re: What toolchain/environment/tools/workflow do you use?
Posted: Wed Jul 30, 2014 6:37 am
by no92
Mine is pretty standard: clang, yasm, nasm, gcc, gas, Sublime Text 3 Beta, some Makefiles running on my primary machine (Ubuntu 14.04.1 LTS). I'm designing my own programming language right now, but that doesn't need any other tools. I do have Windows installed, but only for CS:GO and not for coding.
Re: What toolchain/environment/tools/workflow do you use?
Posted: Wed Jul 30, 2014 7:34 am
by hometue
My computer uses windows 7, and I have Virtualbox with Ubuntu (12.04 LTS) installed (yes, I heard it is bloated so I am planning to switch distros). Whenever I need to run my OS I go back to my windows installation and run Qemu/Bochs (I use a nifty trick which I share files from the host machine). For my windows installation, its more for the commercial apps that is hard to run in Linux, so other than cygwin there isn't much else. In my Ubuntu its installation default except that I have a GCC crosscompiler, and I just use Gedit to code (still much better than Notepad in Windows).
Re: What toolchain/environment/tools/workflow do you use?
Posted: Wed Jul 30, 2014 1:55 pm
by AndrewAPrice
kutkloon7 wrote:do you use Visual Studio for OS dev?
Yes. It comes with a C++ compiler that generates optimized machine code just like any other, and I like the IDE, and supports many popular architectures (ARM, EBC, IA64, MIPS, SH4, THUMB, X64, X86).
The caveat is that it only generates PE executables (unlike a cross-compiled GCC that supports COFF,/ ELF, A.Out, flat binaries, etc.), which isn't a big deal since only my kernel is written in C++ (you must find or write a bootloader that handles PE) and my user applications use my own toolchain. If you really hated PE files, I guess you could write a wrapper
I've actually been thinking about switching to the Intel compiler. The main criticism is that Microsoft removed inline assembly from their 64-bit C++ compiler, and this ticked a lot of people off (people who wrote video codecs and hand optimized their code specific to the CPU, and people who wrote JITs and write procedures for thunking into their JITed code).
Re: What toolchain/environment/tools/workflow do you use?
Posted: Wed Jul 30, 2014 3:25 pm
by kutkloon7
MessiahAndrw wrote:kutkloon7 wrote:do you use Visual Studio for OS dev?
Yes. It comes with a C++ compiler that generates optimized machine code just like any other, and I like the IDE, and supports many popular architectures (ARM, EBC, IA64, MIPS, SH4, THUMB, X64, X86).
The caveat is that it only generates PE executables (unlike a cross-compiled GCC that supports COFF,/ ELF, A.Out, flat binaries, etc.), which isn't a big deal since only my kernel is written in C++ (you must find or write a bootloader that handles PE) and my user applications use my own toolchain. If you really hated PE files, I guess you could write a wrapper
I've actually been thinking about switching to the Intel compiler. The main criticism is that Microsoft removed inline assembly from their 64-bit C++ compiler, and this ticked a lot of people off (people who wrote video codecs and hand optimized their code specific to the CPU, and people who wrote JITs and write procedures for thunking into their JITed code).
Oh yeah, I just found the ELF executables just a little bit nicer. To be honest, inline assembly seemed really great. Until I could actually use it: I didn't understand it (and I didn't like the AT&T syntax) and ended up writing assembly functions and calling them from C