add utility take(source, n)
add open_reading for Linux
add make_file_source for Linux