Getting Started: Difference between revisions

[unchecked revision][unchecked revision]
Line 58:
In order to get the tools necessary, you should install the [[Cygwin]] environment. [[MinGW]] or [[DJGPP]] are alternatives, but Cygwin is strongly suggested as it is the most complete and compatible environment.
 
Microsoft has recently (as of writing) released the Windows Subsystem for Linux as an optional feature for Windows 10. It is basically a real Ubuntu command line distribution running on top of Windows WITHOUT the use of a VM. The latest GCC and Binutils (6.1.0 and 2.27 as of writing) compile and work correctly in this environment. Using the bashBash shell you can access your Windows hard disks through /mnt/<drive letter>. The advantage of this solution is that you can work with whichever Windows or Linux tools that you require, without having to find out if they work in Cygwin. Many of the needed tools can be installed using "apt-get".
 
For all of the above, it is strongly suggested to build a cross-compiler, not only because the default compilers target different [[Executable Formats|executable format]]s, but because it's generally a good idea. Check the [[GCC Cross-Compiler]] page for details and instructions.
 
You will also need an editor. Using Notepad will work, but it's easier if you have a more complete editor. For example, [http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] or [http://www.flos-freeware.ch/notepad2.html Notepad2] can and are used by many people. If you are comfortable with Unix editors, you can pick one from the choice Cygwin provides (which includes e.g. vimVim and Emacs, which take some getting-used-to but are very powerful).
 
It is also possible to use [[Visual Studio]], or the freely downloadable [http://www.microsoft.com/express/ Visual C++ Express Edition], to write and compile your operating system. You will require a special configuration file, and you will certainly be in the minority, but it does work quite well. You can even install the Windows SDK ontopon top, enabling 64 bit development. The only pitfall is this doesn't support inlineInline assemblyAssembly.
 
Other tools such as [[Watcom]] or [[Borland]] can be used, too, but they each have specific requirements of their own, and are not widely used for this kind of work.
Anonymous user