There are several OS development related tutorials on this wiki. This page is an overview of tutorials that are around, sorted by subject area and difficulty.
These are "bare bones" tutorials that will land you with a basic kernel that's safe enough to use as a starting point for your own.
Bare Bones - Write a basic 32-bit kernel in C for x86
User:Zesterer/Bare Bones - Write a basic 32-bit kernel in C for x86 (improved tutorial by zesterer)
Meaty Skeleton - Template operating system
Setting Up Long Mode - Switching to long mode
Creating a 64-bit kernel - An introduction to 64-bit kernels
Real mode assembly bare bones - A tutorial series on writing a basic assembly language kernel
Pascal Bare Bones - A basic kernel in Pascal
Ada Bare bones - A tutorial on writing a basic kernel in Ada
FreeBasic Bare Bones - A basic kernel in FreeBasic
We also have bare bones for other platforms
GameBoy Advance Barebones - A tutorial on writing a basic GBA kernel
Sparc Barebones - A basic kernel for SparcStations
How to create a basic kernel in assembly
Babystep1 - Your first boot sector.
Babystep2 - Writing a message using the BIOS.
Babystep3 - A look at machine code
Babystep4 - Printing to the screen without the BIOS
Babystep5 - Interrupts
Babystep6 - Entering protected mode
Babystep7 - Unreal Mode
Babystep8 - 32-bit printing
Appendix A - Additional information
A Java Primer on dealing with languages in general and Java in particular that would normally be unsuitable for OS development.
FlingOS Getting Started video series - A third party series of video tutorials giving a practical start to writing your first OS (aimed at x86, full examples available in each of ASM, C and C#)
Going Further on x86 - A guide that shall cover the basics of kernel internals
Setting Up Paging - A tutorial that deals with setting up and maintaining a system with paging enabled
Setting Up Paging With PAE - As above, but with PAE enabled
Writing a memory manager - A tutorial on how to handle the RAM in a computer.
Writing A Page Frame Allocator - How to write a simple page frame allocator
Processes and Threads
Kernel Multitasking - How to create a kernel-space multitasking system.
Getting to User Mode- How to context switch into user mode.
Graphics & Video
Double Buffering - A handy way to prevent artifacts.
Bootable CD - A tutorial that explains how to create a bootable CD
Bootable El-Torito CD with GRUB Legacy - A tutorial that explains how to create a bootable GRUB CD
Rolling Your Own Bootloader - Describes what steps to take when writing a bootloader.
Writing a bootloader - A basic tutorial on creating a bootloader
Writing a bootloader for UEFI - A basic tutorial on creating a bootloader utilising UEFI
Writing GRUB Modules - A tutorial on writing modules that add custom functionality to GRUB.
Makefile - A guided demonstration of how Makefiles can be used
OS Specific Toolchain - A guide on adapting GCC and Binutils to a platform
CMake Build System - A guide demonstrating adapting KitWare's CMake Build System for building an operating system.
GCC Cross-Compiler - A guide that helps build GCC targeting a different platform
GDC Cross-Compiler - Same as the previous, but this time for the D programming language.
Executable File Formats
ELF Tutorial - A guide that details the process of loading ELF executables.
Manually Creating an ELF Executable - A guide that demonstrates how ELF binaries work, and how to build one from scratch using only a hex editor.
Porting Newlib - A guide on porting a common C library to another operating system
Using Libsupc++ - A guide on porting libsupc++ to get more out of the features of C++
Porting Python - A guide on porting python to another operating system