Index: boot/Makefile
===================================================================
--- boot/Makefile	(revision 32355bc2675221a81e8722fb213071b8c8b14979)
+++ boot/Makefile	(revision ecf56f8012dce1cff83b7c7cd0cdab2b6e1d082f)
@@ -38,4 +38,5 @@
 
 build_dist: clean_dist
+	cp -r -L -T -u "$(USPACE_PATH)/dist" "$(DIST_PATH)"
 	mkdir -p "$(DIST_PATH)/app/"
 	mkdir -p "$(DIST_PATH)/cfg/"
@@ -49,64 +50,8 @@
 	mkdir -p "$(DIST_PATH)/w/"
 
-	for srv in $(RD_SRVS) ; do \
-		srv_dir="`dirname "$$srv"`" ; \
-		srv_name="`basename "$$srv"`" ; \
-		mkdir -p "$(DIST_PATH)/srv/$$srv_dir" ; \
-		cp "$(USPACE_PATH)/srv/$$srv/$$srv_name" "$(DIST_PATH)/srv/$$srv" ; \
-	done
-
-	for file in $(RD_LIBS) ; do \
-		cp "$$file" "$(DIST_PATH)/lib/" ; \
-	done
-
 ifeq ($(CONFIG_DEVEL_FILES), y)
-	mkdir -p "$(DIST_PATH)/inc/c/"
-	cp -r -L "$(USPACE_PATH)/lib/c/include/." "$(DIST_PATH)/inc/c/"
-	cp -r -L "$(ROOT_PATH)/abi/include/." "$(DIST_PATH)/inc/c/"
-	cp -r -L "$(USPACE_PATH)/lib/c/arch/$(UARCH)/include/." "$(DIST_PATH)/inc/c/"
-	cp -L "$(USPACE_PATH)/lib/c/crt0.o" "$(DIST_PATH)/lib/"
-	cp -L "$(USPACE_PATH)/lib/c/crt1.o" "$(DIST_PATH)/lib/"
 	cp -L "$(LIBGCC_PATH)" "$(DIST_PATH)/lib/"
 endif
 
-	for app in $(RD_APPS) ; do \
-		app_dir="`dirname "$$app"`" ; \
-		app_name="`basename "$$app"`" ; \
-		mkdir -p "$(DIST_PATH)/app/$$app_dir" ; \
-		cp "$(USPACE_PATH)/app/$$app/$$app_name" "$(DIST_PATH)/app/$$app" ; \
-	done
-	for file in $(RD_DATA) ; do \
-		cp "$$file" "$(DIST_PATH)/" ; \
-	done
-
-ifeq ($(CONFIG_PCUT_TESTS),y)
-	for file in $(RD_TESTS) ; do \
-		cp "$$file" "$(DIST_PATH)/test/" ; \
-	done
-endif
-
-ifeq ($(CONFIG_PCUT_SELF_TESTS),y)
-	for file in $(USPACE_PATH)/lib/pcut/test-libpcut-*; do \
-		cp "$$file" "$(DIST_PATH)/test/" ; \
-	done
-endif
-
-	for drv in $(RD_DRVS) ; do \
-		drv_dir="`dirname "$$drv"`" ; \
-		drv_name="`basename "$$drv"`" ; \
-		mkdir -p "$(DIST_PATH)/$(DRVS_PATH)/$$drv_name" ; \
-		cp "$(USPACE_PATH)/$(DRVS_PATH)/$$drv_dir/$$drv_name/$$drv_name" "$(DIST_PATH)/$(DRVS_PATH)/$$drv_name/" ; \
-		cp "$(USPACE_PATH)/$(DRVS_PATH)/$$drv_dir/$$drv_name/$$drv_name.ma" "$(DIST_PATH)/$(DRVS_PATH)/$$drv_name/" ; \
-	done
-	for file in $(RD_DRV_CFG) ; do \
-		file_dir="`dirname "$$file"`" ; \
-		file_name="`basename "$$file"`" ; \
-		cp "$(USPACE_PATH)/$(DRVS_PATH)/$$file_dir/$$file_name/"*".dev" "$(DIST_PATH)/$(DRVS_PATH)/$$file_name/" ; \
-	done
-	for file in $(RD_DRVS_FW) ; do \
-		file_dir="`dirname "$$file"`" ; \
-		file_name="`basename "$$file"`" ; \
-		cp "$(USPACE_PATH)/$(DRVS_PATH)/$$file_dir/$$file_name/$$file_name.fw" "$(DIST_PATH)/$(DRVS_PATH)/$$file_name/" ; \
-	done
 	if ls $(DIST_OVERLAY_PATH)/* >/dev/null 2>/dev/null; then \
 		cp -r -L $(DIST_OVERLAY_PATH)/* "$(DIST_PATH)"; \
Index: boot/Makefile.common
===================================================================
--- boot/Makefile.common	(revision 32355bc2675221a81e8722fb213071b8c8b14979)
+++ boot/Makefile.common	(revision ecf56f8012dce1cff83b7c7cd0cdab2b6e1d082f)
@@ -45,5 +45,5 @@
 KERNEL_PATH = $(ROOT_PATH)/kernel
 USPACE_PATH = $(ROOT_PATH)/uspace
-DIST_PATH = $(USPACE_PATH)/dist
+DIST_PATH = $(ROOT_PATH)/dist
 DIST_OVERLAY_PATH = $(USPACE_PATH)/overlay
 TOOLS_PATH = $(ROOT_PATH)/tools
@@ -67,22 +67,22 @@
 
 INIT_TASKS = \
-	$(USPACE_PATH)/srv/ns/ns \
-	$(USPACE_PATH)/srv/loader/loader \
-	$(USPACE_PATH)/app/init/init \
-	$(USPACE_PATH)/srv/locsrv/locsrv \
-	$(USPACE_PATH)/srv/bd/rd/rd \
-	$(USPACE_PATH)/srv/vfs/vfs \
-	$(USPACE_PATH)/srv/logger/logger
+	srv/ns \
+	srv/loader \
+	app/init \
+	srv/locsrv \
+	srv/bd/rd \
+	srv/vfs \
+	srv/logger
 
 ifeq ($(RDFMT),tmpfs)
-	INIT_TASKS += $(USPACE_PATH)/srv/fs/tmpfs/tmpfs
+	INIT_TASKS += srv/fs/tmpfs
 endif
 
 ifeq ($(RDFMT),fat)
-	INIT_TASKS += $(USPACE_PATH)/srv/fs/fat/fat
+	INIT_TASKS += srv/fs/fat
 endif
 
 ifeq ($(RDFMT),ext4fs)
-	INIT_TASKS += $(USPACE_PATH)/srv/fs/ext4fs/ext4fs
+	INIT_TASKS += srv/fs/ext4fs
 endif
 
@@ -146,23 +146,4 @@
 	block/ahci \
 	block/virtio-blk
-
-RD_DRV_CFG =
-
-RD_DRVS_FW_NON_ESSENTIAL = \
-	nic/ar9271
-
-RD_LIBS =
-
-ifeq ($(CONFIG_DEVEL_FILES), y)
-	RD_LIBS += \
-		$(USPACE_PATH)/lib/c/libc.a
-endif
-
-ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)
-	RD_LIBS += \
-		$(USPACE_PATH)/lib/c/libc.so.0 \
-		$(USPACE_PATH)/lib/math/libmath.so.0 \
-		$(USPACE_PATH)/lib/dltest/libdltest.so.0
-endif
 
 RD_APPS_ESSENTIAL = \
@@ -243,27 +224,7 @@
 endif
 
-RD_TESTS = \
-	$(USPACE_PATH)/lib/c/test-libc \
-	$(USPACE_PATH)/lib/label/test-liblabel \
-	$(USPACE_PATH)/lib/posix/test-libposix \
-	$(USPACE_PATH)/lib/sif/test-libsif \
-	$(USPACE_PATH)/lib/uri/test-liburi \
-	$(USPACE_PATH)/lib/math/test-libmath \
-	$(USPACE_PATH)/drv/bus/usb/xhci/test-xhci \
-	$(USPACE_PATH)/app/bdsh/test-bdsh \
-	$(USPACE_PATH)/srv/net/tcp/test-tcp \
-	$(USPACE_PATH)/srv/volsrv/test-volsrv \
-
-RD_DATA_ESSENTIAL = \
-	$(USPACE_PATH)/app/bdsh/demo.txt
-
-RD_DATA_NON_ESSENTIAL = \
-	$(USPACE_PATH)/app/modplay/demo.xm \
-	$(USPACE_PATH)/app/viewer/logo.tga
-
-
 COMPONENTS = \
 	$(KERNEL_PATH)/kernel.elf \
-	$(INIT_TASKS) \
+	$(addprefix $(DIST_PATH)/,$(INIT_TASKS)) \
 	$(INITRD).img
 
@@ -279,12 +240,8 @@
 	RD_APPS = $(RD_APPS_ESSENTIAL)
 	RD_DRVS = $(RD_DRVS_ESSENTIAL)
-	RD_DRVS_FW = $(RD_DRVS_FW_ESSENTIAL)
-	RD_DATA = $(RD_DATA_ESSENTIAL)
 else
 	RD_SRVS = $(RD_SRVS_ESSENTIAL) $(RD_SRVS_NON_ESSENTIAL)
 	RD_APPS = $(RD_APPS_ESSENTIAL) $(RD_APPS_NON_ESSENTIAL)
 	RD_DRVS = $(RD_DRVS_ESSENTIAL) $(RD_DRVS_NON_ESSENTIAL)
-	RD_DRVS_FW = $(RD_DRVS_FW_ESSENTIAL) $(RD_DRVS_FW_NON_ESSENTIAL)
-	RD_DATA = $(RD_DATA_ESSENTIAL) $(RD_DATA_NON_ESSENTIAL)
 endif
 
Index: boot/Makefile.initrd
===================================================================
--- boot/Makefile.initrd	(revision 32355bc2675221a81e8722fb213071b8c8b14979)
+++ boot/Makefile.initrd	(revision ecf56f8012dce1cff83b7c7cd0cdab2b6e1d082f)
@@ -27,12 +27,19 @@
 #
 
+INIT_FILES := $(addprefix $(DIST_PATH).initrd/,$(INIT_TASKS))
+INIT_FILES := $(INIT_FILES) $(addsuffix .gz,$(INIT_FILES))
+
 $(INITRD).img:
+	rm -rf $(DIST_PATH).initrd
+	cp -R $(DIST_PATH) $(DIST_PATH).initrd
+	rm -f $(INIT_FILES)
+	rm -rf $(DIST_PATH).initrd/boot
 ifeq ($(RDFMT),tmpfs)
-	tar -c -f $@ -C $(DIST_PATH) .
+	tar -c -f $@ -C $(DIST_PATH).initrd .
 endif
 ifeq ($(RDFMT),fat)
-	$(MKFAT) 1048576 $(DIST_PATH) $@
+	$(MKFAT) 1048576 $(DIST_PATH).initrd $@
 endif
 ifeq ($(RDFMT),ext4fs)
-	$(MKEXT4) 1048576 $(DIST_PATH) $@
+	$(MKEXT4) 1048576 $(DIST_PATH).initrd $@
 endif
Index: boot/arch/amd64/Makefile.inc
===================================================================
--- boot/arch/amd64/Makefile.inc	(revision 32355bc2675221a81e8722fb213071b8c8b14979)
+++ boot/arch/amd64/Makefile.inc	(revision ecf56f8012dce1cff83b7c7cd0cdab2b6e1d082f)
@@ -27,47 +27,6 @@
 #
 
-RD_SRVS_ESSENTIAL += \
-	audio/hound \
-	devman
-
-RD_DRVS_ESSENTIAL += \
-	intctl/apic \
-	intctl/i8259 \
-	platform/pc \
-	block/ata_bd \
-	bus/pci/pciintel \
-	bus/isa \
-	audio/sb16 \
-	char/i8042 \
-	hid/ps2mouse \
-	hid/xtkbd
-
-RD_DRVS_NON_ESSENTIAL += \
-	audio/hdaudio \
-	char/ns8250 \
-	char/pc-lpt \
-	time/cmos-rtc \
-	bus/usb/ehci\
-	bus/usb/ohci \
-	bus/usb/uhci \
-	bus/usb/usbdiag \
-	bus/usb/usbflbk \
-	bus/usb/usbhub \
-	bus/usb/usbmid \
-	bus/usb/vhc \
-	bus/usb/xhci \
-	block/usbmast \
-	hid/usbhid
-
 RD_DRV_CFG += \
 	bus/isa
-
-RD_APPS_ESSENTIAL += \
-	edit \
-	mixerctl \
-	wavplay
-
-RD_DATA_NON_ESSENTIAL += \
-	$(USPACE_PATH)/app/wavplay/demo.wav
 
 POST_OUTPUT = $(ROOT_PATH)/image.iso
Index: boot/arch/arm32/Makefile.inc
===================================================================
--- boot/arch/arm32/Makefile.inc	(revision 32355bc2675221a81e8722fb213071b8c8b14979)
+++ boot/arch/arm32/Makefile.inc	(revision ecf56f8012dce1cff83b7c7cd0cdab2b6e1d082f)
@@ -58,35 +58,4 @@
 EXTRA_CFLAGS = -march=$(subst _,-,$(PROCESSOR_ARCH)) -mno-unaligned-access
 
-ifeq ($(MACHINE), gta02)
-	RD_SRVS_ESSENTIAL += \
-		hid/s3c24xx_ts \
-		hw/char/s3c24xx_uart
-endif
-
-ifeq ($(MACHINE), $(filter $(MACHINE),beagleboardxm beaglebone))
-	RD_DRVS_ESSENTIAL += \
-		platform/amdm37x \
-		fb/amdm37x_dispc
-endif
-
-ifeq ($(MACHINE), integratorcp)
-	RD_DRVS_ESSENTIAL += \
-		char/pl050 \
-		hid/atkbd \
-		hid/ps2mouse \
-		intctl/icp-ic \
-		platform/icp
-endif
-
-RD_DRVS_ESSENTIAL += \
-	bus/usb/ehci \
-	bus/usb/ohci \
-	bus/usb/usbdiag \
-	bus/usb/usbflbk \
-	bus/usb/usbhub \
-	bus/usb/usbmid \
-	block/usbmast \
-	hid/usbhid
-
 SOURCES = \
 	arch/$(BARCH)/src/asm.S \
Index: boot/arch/arm64/Makefile.inc
===================================================================
--- boot/arch/arm64/Makefile.inc	(revision 32355bc2675221a81e8722fb213071b8c8b14979)
+++ boot/arch/arm64/Makefile.inc	(revision ecf56f8012dce1cff83b7c7cd0cdab2b6e1d082f)
@@ -53,11 +53,4 @@
 EXTRA_LDFLAGS = -Wl,-shared
 
-ifeq ($(MACHINE), virt)
-	RD_DRVS_ESSENTIAL += \
-		char/pl011 \
-		intctl/gicv2 \
-		platform/arm64virt
-endif
-
 SOURCES = \
 	arch/$(BARCH)/src/asm.S \
Index: boot/arch/ia64/Makefile.inc
===================================================================
--- boot/arch/ia64/Makefile.inc	(revision 32355bc2675221a81e8722fb213071b8c8b14979)
+++ boot/arch/ia64/Makefile.inc	(revision ecf56f8012dce1cff83b7c7cd0cdab2b6e1d082f)
@@ -34,8 +34,4 @@
 EXTRA_CFLAGS = -fno-unwind-tables -mfixed-range=f32-f127 -mno-pic -mno-sdata
 
-RD_SRVS_NON_ESSENTIAL +=
-
-RD_SRVS_ESSENTIAL +=
-
 SOURCES = \
 	arch/$(BARCH)/src/boot.S \
@@ -67,34 +63,2 @@
 	arch/$(BARCH)/src/ski.c
 endif
-
-ifeq ($(MACHINE),i460GX)
-RD_DRVS_ESSENTIAL += \
-	platform/pc \
-	bus/pci/pciintel \
-	bus/isa \
-	char/i8042 \
-	hid/xtkbd
-
-RD_DRVS_NON_ESSENTIAL += \
-	char/ns8250 \
-	time/cmos-rtc \
-	bus/usb/ehci\
-	bus/usb/ohci \
-	bus/usb/uhci \
-	bus/usb/usbdiag \
-	bus/usb/usbflbk \
-	bus/usb/usbhub \
-	bus/usb/usbmid \
-	bus/usb/vhc \
-	block/usbmast \
-	hid/usbhid
-
-RD_DRV_CFG += \
-	bus/isa
-endif
-
-ifeq ($(MACHINE),ski)
-RD_DRVS_ESSENTIAL += \
-	char/ski-con \
-	platform/ski
-endif
Index: boot/arch/mips32/Makefile.inc
===================================================================
--- boot/arch/mips32/Makefile.inc	(revision 32355bc2675221a81e8722fb213071b8c8b14979)
+++ boot/arch/mips32/Makefile.inc	(revision ecf56f8012dce1cff83b7c7cd0cdab2b6e1d082f)
@@ -50,27 +50,4 @@
 endif
 
-ifeq ($(MACHINE), $(filter $(MACHINE),bmalta lmalta))
-	RD_DRVS_ESSENTIAL += \
-		platform/malta \
-		intctl/i8259 \
-		block/ata_bd \
-		bus/pci/pciintel \
-		bus/isa \
-		char/i8042 \
-		char/ns8250 \
-		hid/ps2mouse \
-		hid/xtkbd
-
-	RD_DRV_CFG += \
-		bus/isa
-endif
-
-ifeq ($(MACHINE),msim)
-	RD_DRVS_ESSENTIAL += \
-		platform/msim \
-		block/ddisk \
-		char/msim-con
-endif
-
 SOURCES = \
 	arch/$(BARCH)/src/asm.S \
Index: boot/arch/ppc32/Makefile.inc
===================================================================
--- boot/arch/ppc32/Makefile.inc	(revision 32355bc2675221a81e8722fb213071b8c8b14979)
+++ boot/arch/ppc32/Makefile.inc	(revision ecf56f8012dce1cff83b7c7cd0cdab2b6e1d082f)
@@ -38,19 +38,4 @@
 EXTRA_CFLAGS = -mcpu=powerpc -msoft-float -m32
 
-RD_DRVS_ESSENTIAL += \
-	platform/mac \
-	bus/adb/cuda_adb \
-	bus/pci/pciintel \
-	bus/usb/ohci \
-	bus/usb/usbdiag \
-	bus/usb/usbflbk \
-	bus/usb/usbhub \
-	bus/usb/usbmid \
-	bus/usb/vhc \
-	block/usbmast \
-	hid/adb-kbd \
-	hid/adb-mouse \
-	hid/usbhid
-
 SOURCES = \
 	arch/$(BARCH)/src/asm.S \
Index: boot/arch/sparc64/Makefile.inc
===================================================================
--- boot/arch/sparc64/Makefile.inc	(revision 32355bc2675221a81e8722fb213071b8c8b14979)
+++ boot/arch/sparc64/Makefile.inc	(revision ecf56f8012dce1cff83b7c7cd0cdab2b6e1d082f)
@@ -49,7 +49,4 @@
 	intctl/obio \
 	char/ns8250
-
-RD_DRV_CFG += \
-	bus/isa
 endif
 
