Thanks a million for... ! Sent from my iPhone > On Oct 7, 2020, at 2:11 PM, Sebastian Fricke <sebastian.fricke.linux@xxxxxxxxx> wrote: > > Hello, > > after my current research on that topic, I fear that my question is > probably way too broad and unspecific, as there seem to be multiple > viable ways, so I try to narrow it down. > First of what is my motivation? > I try to implement these standard file descriptors within a practice > operating system, in order to get file-system specific system calls like > open, read, write and close to work. > > What I currently (believe to) know: > - The standard file descriptors are an abstraction layer in between an > output device like a monitor and an input device like a keyboard. In > the old days, these were configured directly to the terminals. > - In glibc (https://github.com/bminor/glibc/blob/master/libio/stdfiles.c), > they are defined there as FILE struct instances that associate to the > specific file descriptors. > - I can locate the file descriptors of a specific process within Linux > under: /proc/{process_id}/fd/{0,1,2} > root@basti:/proc/self# ls -l fd > total 0 > lrwx------ 1 root root 64 Oct 7 07:54 0 -> /dev/pts/4 > lrwx------ 1 root root 64 Oct 7 07:54 1 -> /dev/pts/4 > lrwx------ 1 root root 64 Oct 7 07:54 2 -> /dev/pts/4 > lrwx------ 1 root root 64 Oct 7 07:54 255 -> /dev/pts/4 > > they all point to /dev/pts/4, if I look in the /dev/pts directory: > > root@basti:/dev/pts# ls -l > total 0 > crw--w---- 1 basti tty 136, 0 Oct 7 07:53 0 > crw--w---- 1 basti tty 136, 1 Oct 6 20:59 1 > crw--w---- 1 libvirt-qemu tty 136, 2 Oct 4 16:27 2 > crw--w---- 1 basti tty 136, 3 Oct 7 07:56 3 > crw------- 1 basti tty 136, 4 Oct 7 07:56 4 > c--------- 1 root root 5, 2 Oct 4 12:10 ptmx > > Here I can see that they all point to a character device, with the > group tty. And I know that /dev/pts/4 is a pseudeo teletype, which is > a slave of the ptmx multiplexor. > > The gaps I currently have: > - Who creates that device /dev/pts/4 ? I was currently not able to > locate this information. > - How is that device connected to my keyboard/monitor? > - Could I maybe create a simplified version, which just utilizes a file > for STDIN, STDOUT, STDERR. That are created by the init process and > inherited to all child processes? Maybe I could then redirect the > keyboard output to the STDIN file, the STDOUT file to the monitor > device etc. > > Thanks in advance for any help! > > Greetings > Sebastian > > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies@xxxxxxxxxxxxxxxxx > https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies