What toolchain/environment/tools/workflow do you use?

All off topic discussions go here. Everything from the funny thing your cat did to your favorite tv shows. Non-programming computer questions are ok too.
Post Reply
kutkloon7
Member
Member
Posts: 98
Joined: Fri Jan 04, 2013 6:56 pm

What toolchain/environment/tools/workflow do you use?

Post 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).
User avatar
AndrewAPrice
Member
Member
Posts: 2298
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: What toolchain/environment/tools/workflow do you use?

Post 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.
My OS is Perception.
User avatar
Satoshi
Member
Member
Posts: 28
Joined: Thu Sep 13, 2012 2:18 pm

Re: What toolchain/environment/tools/workflow do you use?

Post 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
Trinix (written in D) https://github.com/Rikarin/Trinix
Streaming OS development https://www.livecoding.tv/satoshi/
kutkloon7
Member
Member
Posts: 98
Joined: Fri Jan 04, 2013 6:56 pm

Re: What toolchain/environment/tools/workflow do you use?

Post 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?
embryo

Re: What toolchain/environment/tools/workflow do you use?

Post 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.
onlyonemac
Member
Member
Posts: 1146
Joined: Sat Mar 01, 2014 2:59 pm

Re: What toolchain/environment/tools/workflow do you use?

Post 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).
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.

Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
no92
Member
Member
Posts: 307
Joined: Wed Oct 30, 2013 1:57 pm
Libera.chat IRC: no92
Location: Germany
Contact:

Re: What toolchain/environment/tools/workflow do you use?

Post 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.
User avatar
hometue
Member
Member
Posts: 100
Joined: Thu Dec 19, 2013 1:40 am
Location: Asia, Singapore

Re: What toolchain/environment/tools/workflow do you use?

Post 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).
CookieOS. Want a cookie? Its only black and white for now though, probably as bad as my baking skills.
User avatar
AndrewAPrice
Member
Member
Posts: 2298
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: What toolchain/environment/tools/workflow do you use?

Post 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).
My OS is Perception.
kutkloon7
Member
Member
Posts: 98
Joined: Fri Jan 04, 2013 6:56 pm

Re: What toolchain/environment/tools/workflow do you use?

Post 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 :P
Post Reply