Index: kernel/generic/include/str.h
===================================================================
--- kernel/generic/include/str.h	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
+++ kernel/generic/include/str.h	(revision 08e103d46af516da7dcb378db322a88e2c4aca0b)
@@ -72,15 +72,15 @@
 extern errno_t chr_encode(wchar_t ch, char *str, size_t *offset, size_t sz);
 
-extern size_t str_size(const char *str);
-extern size_t wstr_size(const wchar_t *str);
+extern size_t str_bytes(const char *str);
+extern size_t wstr_bytes(const wchar_t *str);
 
-extern size_t str_lsize(const char *str, size_t max_len);
-extern size_t wstr_lsize(const wchar_t *str, size_t max_len);
+extern size_t str_lbytes(const char *str, size_t max_len);
+extern size_t wstr_lbytes(const wchar_t *str, size_t max_len);
 
-extern size_t str_length(const char *str);
-extern size_t wstr_length(const wchar_t *wstr);
+extern size_t str_code_points(const char *str);
+extern size_t wstr_code_points(const wchar_t *wstr);
 
-extern size_t str_nlength(const char *str, size_t size);
-extern size_t wstr_nlength(const wchar_t *str, size_t size);
+extern size_t str_ncode_points(const char *str, size_t size);
+extern size_t wstr_ncode_points(const wchar_t *str, size_t size);
 
 extern bool ascii_check(wchar_t ch);
Index: kernel/generic/src/console/cmd.c
===================================================================
--- kernel/generic/src/console/cmd.c	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
+++ kernel/generic/src/console/cmd.c	(revision 08e103d46af516da7dcb378db322a88e2c4aca0b)
@@ -668,6 +668,6 @@
 	list_foreach(cmd_list, link, cmd_info_t, hlp) {
 		spinlock_lock(&hlp->lock);
-		if (str_length(hlp->name) > len)
-			len = str_length(hlp->name);
+		if (str_code_points(hlp->name) > len)
+			len = str_code_points(hlp->name);
 		spinlock_unlock(&hlp->lock);
 	}
@@ -919,5 +919,5 @@
 		spinlock_lock(&hlp->lock);
 
-		if (str_lcmp(hlp->name, (const char *) argv->buffer, str_length(hlp->name)) == 0) {
+		if (str_lcmp(hlp->name, (const char *) argv->buffer, str_code_points(hlp->name)) == 0) {
 			printf("%s - %s\n", hlp->name, hlp->description);
 			if (hlp->help)
@@ -1486,6 +1486,6 @@
 
 	for (test = tests; test->name != NULL; test++) {
-		if (str_length(test->name) > len)
-			len = str_length(test->name);
+		if (str_code_points(test->name) > len)
+			len = str_code_points(test->name);
 	}
 
Index: kernel/generic/src/console/console.c
===================================================================
--- kernel/generic/src/console/console.c	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
+++ kernel/generic/src/console/console.c	(revision 08e103d46af516da7dcb378db322a88e2c4aca0b)
@@ -271,5 +271,5 @@
 
 				count--;
-				offset = str_lsize(buf, count);
+				offset = str_lbytes(buf, count);
 				buf[offset] = 0;
 			}
Index: kernel/generic/src/console/kconsole.c
===================================================================
--- kernel/generic/src/console/kconsole.c	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
+++ kernel/generic/src/console/kconsole.c	(revision 08e103d46af516da7dcb378db322a88e2c4aca0b)
@@ -167,5 +167,5 @@
 {
 	link_t **startpos = (link_t **) ctx;
-	size_t namelen = str_length(name);
+	size_t namelen = str_code_points(name);
 
 	spinlock_lock(&cmd_lock);
@@ -178,5 +178,5 @@
 
 		const char *curname = hlp->name;
-		if (str_length(curname) < namelen)
+		if (str_code_points(curname) < namelen)
 			continue;
 
@@ -187,5 +187,5 @@
 
 			spinlock_unlock(&cmd_lock);
-			return (curname + str_lsize(curname, namelen));
+			return (curname + str_lbytes(curname, namelen));
 		}
 	}
@@ -233,5 +233,5 @@
 
 	while ((hint = hints_enum(name, NULL, &pos))) {
-		if ((found == 0) || (str_length(hint) > str_length(output)))
+		if ((found == 0) || (str_code_points(hint) > str_code_points(output)))
 			str_cpy(output, MAX_CMDLINE, hint);
 
@@ -249,5 +249,5 @@
 	}
 
-	if ((found > 1) && (str_length(output) != 0)) {
+	if ((found > 1) && (str_code_points(output) != 0)) {
 		printf("\n");
 		pos = NULL;
@@ -358,5 +358,5 @@
 				putwchar('\b');
 				printf("%ls ", current + position);
-				print_cc('\b', wstr_length(current) - position + 1);
+				print_cc('\b', wstr_code_points(current) - position + 1);
 				continue;
 			}
@@ -440,6 +440,6 @@
 				printf("%s> ", prompt);
 				printf("%ls", current);
-				position += str_length(tmp);
-				print_cc('\b', wstr_length(current) - position);
+				position += str_code_points(tmp);
+				print_cc('\b', wstr_code_points(current) - position);
 				continue;
 			}
@@ -448,8 +448,8 @@
 
 			printf("%ls", current + position);
-			position += str_length(tmp);
-			print_cc('\b', wstr_length(current) - position);
-
-			if (position == wstr_length(current)) {
+			position += str_code_points(tmp);
+			print_cc('\b', wstr_code_points(current) - position);
+
+			if (position == wstr_code_points(current)) {
 				/* Insert a space after the last completed argument */
 				if (wstr_linsert(current, ' ', position, MAX_CMDLINE)) {
@@ -472,5 +472,5 @@
 		if (ch == U_RIGHT_ARROW) {
 			/* Right */
-			if (position < wstr_length(current)) {
+			if (position < wstr_code_points(current)) {
 				putwchar(current[position]);
 				position++;
@@ -482,6 +482,6 @@
 			/* Up, down */
 			print_cc('\b', position);
-			print_cc(' ', wstr_length(current));
-			print_cc('\b', wstr_length(current));
+			print_cc(' ', wstr_code_points(current));
+			print_cc('\b', wstr_code_points(current));
 
 			if (ch == U_UP_ARROW) {
@@ -498,5 +498,5 @@
 			current = history[history_pos];
 			printf("%ls", current);
-			position = wstr_length(current);
+			position = wstr_code_points(current);
 			continue;
 		}
@@ -512,5 +512,5 @@
 			/* End */
 			printf("%ls", current + position);
-			position = wstr_length(current);
+			position = wstr_code_points(current);
 			continue;
 		}
@@ -518,10 +518,10 @@
 		if (ch == U_DELETE) {
 			/* Delete */
-			if (position == wstr_length(current))
+			if (position == wstr_code_points(current))
 				continue;
 
 			if (wstr_remove(current, position)) {
 				printf("%ls ", current + position);
-				print_cc('\b', wstr_length(current) - position + 1);
+				print_cc('\b', wstr_code_points(current) - position + 1);
 			}
 			continue;
@@ -531,9 +531,9 @@
 			printf("%ls", current + position);
 			position++;
-			print_cc('\b', wstr_length(current) - position);
-		}
-	}
-
-	if (wstr_length(current) > 0) {
+			print_cc('\b', wstr_code_points(current) - position);
+		}
+	}
+
+	if (wstr_code_points(current) > 0) {
 		history_pos++;
 		history_pos = history_pos % KCONSOLE_HISTORY;
@@ -690,6 +690,6 @@
 
 		if (str_lcmp(hlp->name, cmdline + start,
-		    max(str_length(hlp->name),
-		    str_nlength(cmdline + start, (size_t) (end - start)))) == 0) {
+		    max(str_code_points(hlp->name),
+		    str_ncode_points(cmdline + start, (size_t) (end - start)))) == 0) {
 			cmd = hlp;
 			break;
@@ -826,5 +826,5 @@
 	while (true) {
 		wchar_t *tmp = clever_readline((char *) prompt, stdin, buffer);
-		size_t len = wstr_length(tmp);
+		size_t len = wstr_code_points(tmp);
 		if (!len)
 			continue;
Index: kernel/generic/src/debug/symtab.c
===================================================================
--- kernel/generic/src/debug/symtab.c	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
+++ kernel/generic/src/debug/symtab.c	(revision 08e103d46af516da7dcb378db322a88e2c4aca0b)
@@ -120,5 +120,5 @@
 static const char *symtab_search_one(const char *name, size_t *startpos)
 {
-	size_t namelen = str_length(name);
+	size_t namelen = str_code_points(name);
 
 	size_t pos;
@@ -131,10 +131,10 @@
 			continue;
 
-		if (str_length(curname) < namelen)
+		if (str_code_points(curname) < namelen)
 			continue;
 
 		if (str_lcmp(name, curname, namelen) == 0) {
 			*startpos = pos;
-			return (curname + str_lsize(curname, namelen));
+			return (curname + str_lbytes(curname, namelen));
 		}
 	}
@@ -164,5 +164,5 @@
 
 	while ((hint = symtab_search_one(name, &pos))) {
-		if (str_length(hint) == 0) {
+		if (str_code_points(hint) == 0) {
 			*addr = uint64_t_le2host(symbol_table[pos].address_le);
 			found++;
@@ -206,5 +206,5 @@
 {
 #ifdef CONFIG_SYMTAB
-	size_t len = str_length(input);
+	size_t len = str_code_points(input);
 	struct symtab_entry **entry = (struct symtab_entry **)ctx;
 
@@ -220,5 +220,5 @@
 			continue;
 
-		if (str_length(curname) < len)
+		if (str_code_points(curname) < len)
 			continue;
 
@@ -227,5 +227,5 @@
 			if (help)
 				*help = NULL;
-			return (curname + str_lsize(curname, len));
+			return (curname + str_lbytes(curname, len));
 		}
 	}
Index: kernel/generic/src/lib/str.c
===================================================================
--- kernel/generic/src/lib/str.c	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
+++ kernel/generic/src/lib/str.c	(revision 08e103d46af516da7dcb378db322a88e2c4aca0b)
@@ -288,5 +288,5 @@
  *
  */
-size_t str_size(const char *str)
+size_t str_bytes(const char *str)
 {
 	size_t size = 0;
@@ -308,7 +308,7 @@
  *
  */
-size_t wstr_size(const wchar_t *str)
-{
-	return (wstr_length(str) * sizeof(wchar_t));
+size_t wstr_bytes(const wchar_t *str)
+{
+	return (wstr_code_points(str) * sizeof(wchar_t));
 }
 
@@ -326,5 +326,5 @@
  *
  */
-size_t str_lsize(const char *str, size_t max_len)
+size_t str_lbytes(const char *str, size_t max_len)
 {
 	size_t len = 0;
@@ -354,7 +354,7 @@
  *
  */
-size_t wstr_lsize(const wchar_t *str, size_t max_len)
-{
-	return (wstr_nlength(str, max_len * sizeof(wchar_t)) * sizeof(wchar_t));
+size_t wstr_lbytes(const wchar_t *str, size_t max_len)
+{
+	return (wstr_ncode_points(str, max_len * sizeof(wchar_t)) * sizeof(wchar_t));
 }
 
@@ -366,5 +366,5 @@
  *
  */
-size_t str_length(const char *str)
+size_t str_code_points(const char *str)
 {
 	size_t len = 0;
@@ -384,5 +384,5 @@
  *
  */
-size_t wstr_length(const wchar_t *wstr)
+size_t wstr_code_points(const wchar_t *wstr)
 {
 	size_t len = 0;
@@ -402,5 +402,5 @@
  *
  */
-size_t str_nlength(const char *str, size_t size)
+size_t str_ncode_points(const char *str, size_t size)
 {
 	size_t len = 0;
@@ -421,5 +421,5 @@
  *
  */
-size_t wstr_nlength(const wchar_t *str, size_t size)
+size_t wstr_ncode_points(const wchar_t *str, size_t size)
 {
 	size_t len = 0;
@@ -508,5 +508,5 @@
  * Do a char-by-char comparison of two NULL-terminated strings.
  * The strings are considered equal iff
- * min(str_length(s1), max_len) == min(str_length(s2), max_len)
+ * min(str_code_points(s1), max_len) == min(str_code_points(s2), max_len)
  * and both strings consist of the same sequence of characters,
  * up to max_len characters.
@@ -690,5 +690,5 @@
 bool wstr_linsert(wchar_t *str, wchar_t ch, size_t pos, size_t max_pos)
 {
-	size_t len = wstr_length(str);
+	size_t len = wstr_code_points(str);
 
 	if ((pos > len) || (pos + 1 > max_pos))
@@ -718,5 +718,5 @@
 bool wstr_remove(wchar_t *str, size_t pos)
 {
-	size_t len = wstr_length(str);
+	size_t len = wstr_code_points(str);
 
 	if (pos >= len)
@@ -748,5 +748,5 @@
 char *str_dup(const char *src)
 {
-	size_t size = str_size(src) + 1;
+	size_t size = str_bytes(src) + 1;
 	char *dest = malloc(size);
 	if (!dest)
@@ -779,5 +779,5 @@
 char *str_ndup(const char *src, size_t n)
 {
-	size_t size = str_size(src);
+	size_t size = str_bytes(src);
 	if (size > n)
 		size = n;
Index: kernel/generic/src/main/kinit.c
===================================================================
--- kernel/generic/src/main/kinit.c	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
+++ kernel/generic/src/main/kinit.c	(revision 08e103d46af516da7dcb378db322a88e2c4aca0b)
@@ -193,9 +193,9 @@
 	for (i = 0; i < init.cnt; i++) {
 		const char *arguments = init.tasks[i].arguments;
-		if (str_length(arguments) == 0)
-			continue;
-		if (str_length(init.tasks[i].name) == 0)
-			continue;
-		size_t arguments_size = str_size(arguments);
+		if (str_code_points(arguments) == 0)
+			continue;
+		if (str_code_points(init.tasks[i].name) == 0)
+			continue;
+		size_t arguments_size = str_bytes(arguments);
 
 		void *arguments_copy = malloc(arguments_size);
Index: kernel/generic/src/main/main.c
===================================================================
--- kernel/generic/src/main/main.c	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
+++ kernel/generic/src/main/main.c	(revision 08e103d46af516da7dcb378db322a88e2c4aca0b)
@@ -279,5 +279,5 @@
 	sys_waitq_init();
 
-	sysinfo_set_item_data("boot_args", NULL, bargs, str_size(bargs) + 1);
+	sysinfo_set_item_data("boot_args", NULL, bargs, str_bytes(bargs) + 1);
 
 	if (init.cnt > 0) {
Index: kernel/generic/src/printf/printf_core.c
===================================================================
--- kernel/generic/src/printf/printf_core.c	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
+++ kernel/generic/src/printf/printf_core.c	(revision 08e103d46af516da7dcb378db322a88e2c4aca0b)
@@ -156,7 +156,7 @@
 {
 	if (str == NULL)
-		return printf_putnchars(nullstr, str_size(nullstr), ps);
-
-	return ps->str_write((void *) str, str_size(str), ps->data);
+		return printf_putnchars(nullstr, str_bytes(nullstr), ps);
+
+	return ps->str_write((void *) str, str_bytes(str), ps->data);
 }
 
@@ -285,5 +285,5 @@
 
 	/* Print leading spaces. */
-	size_t strw = str_length(str);
+	size_t strw = str_code_points(str);
 	if ((precision == 0) || (precision > strw))
 		precision = strw;
@@ -301,5 +301,5 @@
 	/* Part of @a str fitting into the alloted space. */
 	int retval;
-	size_t size = str_lsize(str, precision);
+	size_t size = str_lbytes(str, precision);
 	if ((retval = printf_putnchars(str, size, ps)) < 0)
 		return -counter;
@@ -333,5 +333,5 @@
 
 	/* Print leading spaces. */
-	size_t strw = wstr_length(str);
+	size_t strw = wstr_code_points(str);
 	if ((precision == 0) || (precision > strw))
 		precision = strw;
@@ -349,5 +349,5 @@
 	/* Part of @a wstr fitting into the alloted space. */
 	int retval;
-	size_t size = wstr_lsize(str, precision);
+	size_t size = wstr_lbytes(str, precision);
 	if ((retval = printf_wputnchars(str, size, ps)) < 0)
 		return -counter;
Index: kernel/generic/src/sysinfo/sysinfo.c
===================================================================
--- kernel/generic/src/sysinfo/sysinfo.c	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
+++ kernel/generic/src/sysinfo/sysinfo.c	(revision 08e103d46af516da7dcb378db322a88e2c4aca0b)
@@ -530,9 +530,9 @@
 		if (spaces == 0) {
 			printf("%s", cur->name);
-			length = str_length(cur->name);
+			length = str_code_points(cur->name);
 		} else {
 			sysinfo_indent(spaces);
 			printf(".%s", cur->name);
-			length = str_length(cur->name) + 1;
+			length = str_code_points(cur->name) + 1;
 		}
 
@@ -747,5 +747,5 @@
 		size_t size = 0;
 		for (sysinfo_item_t *cur = subtree; cur; cur = cur->next)
-			size += str_size(cur->name) + 1;
+			size += str_bytes(cur->name) + 1;
 
 		if (dry_run) {
@@ -762,5 +762,5 @@
 			for (sysinfo_item_t *cur = subtree; cur; cur = cur->next) {
 				str_cpy(names + pos, size - pos, cur->name);
-				pos += str_size(cur->name) + 1;
+				pos += str_bytes(cur->name) + 1;
 			}
 
Index: kernel/generic/src/udebug/udebug_ops.c
===================================================================
--- kernel/generic/src/udebug/udebug_ops.c	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
+++ kernel/generic/src/udebug/udebug_ops.c	(revision 08e103d46af516da7dcb378db322a88e2c4aca0b)
@@ -432,5 +432,5 @@
 errno_t udebug_name_read(char **data, size_t *data_size)
 {
-	size_t name_size = str_size(TASK->name) + 1;
+	size_t name_size = str_bytes(TASK->name) + 1;
 
 	*data = malloc(name_size);
