Getting Started: Difference between revisions

m
Reverted edits by Melina148 (talk) to last revision by Heat
[unchecked revision][unchecked revision]
m (Reverted edits by Melina148 (talk) to last revision by Heat)
 
(7 intermediate revisions by 6 users not shown)
Line 61:
Common editors are [[Wikipedia:Vim (text editor)|Vim]], [[Wikipedia:Emacs|Emacs]], [[Wikipedia:KDevelop|KDevelop]], [[Wikipedia:Komodo_Edit|Komodo Edit]], etc. Some prefer lightweight editors instead of an IDE, such as [[Wikipedia:gedit|gedit]], [[Wikipedia:Geany|Geany]] and [[Wikipedia:SciTE|SciTE]]. Many like [[Wikipedia:Midnight_Commander|Midnight Commander]] which has a [[Text UI]] and a built-in editor (mcedit) and therefore extremely lightweight and lightning fast.
 
About which distributions you should use, consult the [https://en.wikipedia.org/wiki/List_of_Linux_distributions list of Linux distributions]. They come in all shapes and sizes, but as long as they're relatively general-purpose, they should be fine.
About which distributions you should use, consult the [https://en.wikipedia.org/wiki/List_of_Linux_distributions list of Linux distributions]. They came in every shape and sizes, and not all suited for kernel development. Do not use a distro that has a specific goal, like security (Kali, Qubes, BackTrack, Parrot etc.), science applications (eg. Scientific), firewalls and routing (eg. DD-WRT), system recovery or embedded environments (Knoppix, Rescatux, TinyCore) or specifically targeted toward beginners (like Linux Mint, Nitrux etc.) Although a beginner friendly Linux could do, choose one that's a general purpose distro. Also use a distro which has up-to-date packages, best to pick one which uses rolling-release. Debian is easy to use, but often ships ancient, and patched versions (the tools might not behave as described). Many beginners like Ubuntu, which is fine, but it is reported to have problems with some toolchains and compilation environments (if you compile your own [[GCC_Cross-Compiler|cross-compiler]] instead of using an installed one, this is a non-issue).
 
If you are unsure, try Ubuntu, Fedora or ManjaroLinux Mint.
Best distros for kernel development are (but keep in mind this is also a matter of personal taste, so these distros are not required rather suggested, and they usually require some experience): Arch, Gentoo, Solus, Slackware, void etc. even Puppy.
 
If you are unsure, try Ubuntu or Manjaro.
 
===Windows===
Line 80 ⟶ 78:
 
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.
 
Another consideration is that you will probably have as a goal for your OS to be self-hosting, that is, you can compile your operating system using your operating system. If your OS is written in C, your minimal requirements will therefore be a C compiler and C library. If you intend for your OS to be a Windows clone rather than another POSIX-compliant OS, you will need a C library that does Windows calls instead of POSIX calls, and you will need a C compiler that uses just the C library instead of doing POSIX calls. [http://pdos.org GCCWIN + PDPCLIB] fits this bill.
 
===MacOS===
Line 98:
We cannot stress this point strongly enough: if you are not using source control already, you should start doing so immediately. You only need make a serious mistake in your code once to realize the importance of having your code securely versioned and easily retrievable. While it may seem like overkill for a small, private hobby project, once you get into the habit of using revision control, you'll wonder how you ever did without it.
 
For Git you can create your project on [https://github.com/ GitHub]. or [https://bitbucket.org Bitbucket] is also a good alternative as it supports both Git and Mercurial. Both come with free, private repositories.
 
An additional benefit of using version control on a network-accessible repository is that it makes it a lot easier to collaborate with and get help from others. This can be quite useful, especially in the forums, as it can avoid the need for constantly posting updated versions of your code to a message thread--you simply point the conversation towards your repository, and the others in the thread will have direct access to your most current changes. It is also crucial if, as the project grows, you begin to work with other developers on the project (just [[Beginner Mistakes#Teamwork|don't expect that to happen overnight]]).
Line 104:
==Common starting points==
 
The easiest way to get a "helloHello worldWorld" 64-bit [[Higher Half Kernel|higher half kernel]] going is the [[Limine Bare Bones]] tutorial. A different approach would be to learn how the computer itself starts up, on the [[Boot Sequence]] page.
 
There are many other [[Tutorials]] available, too.
Anonymous user