uos – basic “operating system” services

The os module contains functions for filesystem access and urandom function.

Port specifics

The filesystem has / as the root directory and the available physical drives are accessible from here. They are currently:

/flash – the internal flash filesystem

/sd – the SD card (if it exists)



Change current directory.


Get the current directory.


This function returns an iterator which then yields 3-tuples corresponding to the entries in the directory that it is listing. With no argument it lists the current directory, otherwise it lists the directory given by dir.

The 3-tuples have the form (name, type, inode):

  • name is a string (or bytes if dir is a bytes object) and is the name of the entry;
  • type is an integer that specifies the type of the entry, with 0x4000 for directories and 0x8000 for regular files;
  • inode is an integer corresponding to the inode of the file, and may be 0 for filesystems that don’t have such a notion.

With no argument, list the current directory. Otherwise list the given directory.


Create a new directory.


Remove a file.


Remove a directory.

uos.rename(old_path, new_path)

Rename a file.


Get the status of a file or directory.


Get the status of a fileystem.

Returns a tuple with the filesystem information in the following order:

  • f_bsize – file system block size
  • f_frsize – fragment size
  • f_blocks – size of fs in f_frsize units
  • f_bfree – number of free blocks
  • f_bavail – number of free blocks for unpriviliged users
  • f_files – number of inodes
  • f_ffree – number of free inodes
  • f_favail – number of free inodes for unpriviliged users
  • f_flag – mount flags
  • f_namemax – maximum filename length

Parameters related to inodes: f_files, f_ffree, f_avail and the f_flags parameter may return 0 as they can be unavailable in a port-specific implementation.


Sync all filesystems.


Return a bytes object with n random bytes. Whenever possible, it is generated by the hardware random number generator.