Система виртуальной памяти FreeBSD представляет сильно настроенную версию реализации виртуальной памяти 4.4BSD. Она содержит в себе эффективную поддержку для разделения памяти, четкое отделение машинно-независимых и машинно-зависимых средств, а также поддержку многопроцессорности. Процессы могут отображать файлы в любом месте своего адресного пространства. Они могут делать общими части своего адресного пространства, создавая разделяемые отображения одного и того же файла.
Требованиям предъявлемым к 4.2ВSD были поддержка больших разрозненных адресных пространств, отображенных файлов и разделяемой памяти. Был определен интерфейс, названный ттар(), который позволял несвязанным процессам запрашивать разделяемое отображение файла в свои адресные пространства. Если несколько процессов отображали один и тот же файл в свои адресные пространства, изменения адресного пространства, относящиеся к отображенному файлу для одного процесса, были бы отражены в области, отображенной другими процессами, а также в самом файле.
У каждого процесса есть свое собственное отдельное адресное пространство. Адресное пространство изначально разделено на три логических сегмента: кода или текста (text), данных и стека. Сегмент text является сегментом только для чтения и содержит машинные инструкции программы. Сегменты данных и стека можно и читать, и записывать. Сегмент данных содержит разделы инициализированных и неинициализированных данных программы, тогда как сегмент стека содержит стек приложения времени выполнения. Сегмент стека автоматически расширяется ядром по мере выполнения процесса.