What toolchain/environment/tools/workflow do you use?
What toolchain/environment/tools/workflow do you use?
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).
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).
- AndrewAPrice
- Member
- Posts: 2299
- Joined: Mon Jun 05, 2006 11:00 pm
- Location: USA (and Australia)
Re: What toolchain/environment/tools/workflow do you use?
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.
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.
Re: What toolchain/environment/tools/workflow do you use?
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
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/
Streaming OS development https://www.livecoding.tv/satoshi/
Re: What toolchain/environment/tools/workflow do you use?
Oh, a lot of new programs there for me.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
Arch linux is nice! My second choice after Linux Mint Also, do you use Visual Studio for OS dev?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.
Re: What toolchain/environment/tools/workflow do you use?
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:kutkloon7 wrote:do you use Visual Studio for OS dev?
- 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.
-
- Member
- Posts: 1146
- Joined: Sat Mar 01, 2014 2:59 pm
Re: What toolchain/environment/tools/workflow do you use?
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
Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
-
- 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?
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?
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.
- AndrewAPrice
- Member
- Posts: 2299
- Joined: Mon Jun 05, 2006 11:00 pm
- Location: USA (and Australia)
Re: What toolchain/environment/tools/workflow do you use?
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).kutkloon7 wrote:do you use Visual Studio for OS dev?
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.
Re: What toolchain/environment/tools/workflow do you use?
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 CMessiahAndrw wrote: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).kutkloon7 wrote:do you use Visual Studio for OS dev?
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).