diff --git a/Makefile b/Makefile
index 8151fd1..064a5f3 100644
--- a/Makefile
+++ b/Makefile
@@ -45,7 +45,8 @@
 	vmstat \
 	lsof \
 	daemon \
-	devmem
+	devmem \
+	mknod
 
 LOCAL_SRC_FILES:= \
 	toolbox.c \
diff --git a/mknod.c b/mknod.c
new file mode 100644
index 0000000..8b64e49
--- /dev/null
+++ b/mknod.c
@@ -0,0 +1,58 @@
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+static int usage()
+{
+    fprintf(stderr,"mknod <path> <type> [major] [minor]\n");
+    fprintf(stderr,"    type: b|c|p (block|character|pipe)\n");
+    return 1;
+}
+
+int mknod_main(int argc, char *argv[])
+{
+    if (argc < 3) {
+         return usage();
+    }
+
+    char *path;
+    char type;
+    dev_t dev = 0;
+    int major, minor;
+    mode_t mode = 0600;
+
+    path = argv[1];
+    type = argv[2][0];
+
+    switch (type) {
+    case 'b':
+         mode |= S_IFBLK;
+         if (argc != 5) return usage();
+         break;
+    case 'c':
+         mode |= S_IFCHR;
+         if (argc != 5) return usage();
+         break;
+    case 'p':
+         mode |= S_IFIFO;
+         break;
+    default:
+        return usage();
+    }
+
+    if (type == 'b' || type == 'c') {
+      major = strtol(argv[3], NULL, 0);
+      minor = strtol(argv[4], NULL, 0);
+      dev = makedev(major, minor);
+    }
+
+    if (mknod(path, mode, dev) == -1) {
+      perror("mknod");
+      return 1;
+    }
+    return 0;
+}
