version=pmwiki-2.2.130 ordered=1 urlencoded=1 agent=Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0 author=xfnw charset=UTF-8 csum=fix some grammatical errors ctime=1631917902 host=71.246.231.249 name=9.9 rev=7 targets= text=(:title 9:)%0ain 1970 UNIX was created as a small version of multiics on PDP-11 asm language, few years later it got rewritten on C.%0aone of reasons of UNIX popularity was unified file system view, everything was on files, hence you could use same toolbox.%0aas time goes, it gets replaced by the fact that everyone uses UNIX because everyone uses UNIX.%0aand started to port alien programs, using alien ways and alien interface.%0a%0ahowever, all UNIXes share these problems, even on most modern and advanced versions of *nix-like systems:%0a%0a* UNIX was a multiuser system for mainframes, poorly ported to PC (i386 and amd64) platform and still doesn't fit. and it will be worse on Risc-V/aarch64.%0a%0a* Research UNIX itself was about the showing all resources as files, this is ignored by modern UNIX as there are many examples for it. (on graphics, networking, audio and security)%0a%0a* networking on UNIX is most of time is done using sockets (BSD and Linux) and STREAMS (SystemV) both apply poorly to modern networking.%0a%0aNo version of UNIX was able to solve these problems, as all UNIXes are trying to do something in different ways.%0aPlan9 however, doesn't try to be a UNIX. it doesn many stuff on UNIX such as (sym, hard)links, sockets, X11, sh, chroot, NFS, teletype terminals, sysctls, daemons, ssh, dynamic linked programs, /etc, dotfiles and root.%0a%0aInstead of all of those features on UNIX, Plan9 solves problems with two key ideas:%0a%0a* 9p: a unified protocol for programs to create do file operations, on userland, which solves many problems about files and makes a unified UI. which makes usage of everything is file possible by *whole* system. %0a* private namespaces: which allows each process has it's own view on file system, which solves many problems about security and makes extending system without touching it possible.%0a%0afor example let's say you have your httpd and you want to do chroot on /var/www for httpd.%0aon OpenBSD it would be like:%0a[@%0a1) copy all files needed to run httpd to /var/www/%0a2) chroot%0a3) httpd%0a@]%0a%0aif you have ever bothered to it, you know how hard it is to do. thanks to magic of dynamic linked programs.%0aon Plan9 it can be done in two ways:%0a[@%0a1) bind /var/www to /%0a2) httpd%0a@]%0a%0athis one will be more like classic chroot, besides that there is no dynamic linked httpd to annoy you it's same.%0aall sub-process will see /var/www as / and there is no way to escape it, all other procs will work as expected.%0ahowever, the magic will happen on other way:%0a%0a1) bind everything you don't need to a empty place.%0a2) httpd%0a%0athis will be more like unveil, OpenBSD used it as easier way for users to handle this problem.%0athe drawback of unveil is it will need some serious hacking around the program, binds don't have this problem.%0a%0aanother example:%0alet's say you don't want to have /secret-data folder to be visable by httpd.%0a%0a[@%0a%25 mkdir empty%0a%25 bind empty/ /secret-data %0a%25 httpd%0a@]%0a%0ahttpd will never know what is really on /secret-data, it just will see whatever is on empty/%0aall other procs (besides httpd forks), will see /secret-data as is. time=1640172607 title=9 author:1640172607=xfnw csum:1640172607=fix some grammatical errors diff:1640172607:1640168629:=7,10c7,10%0a%3c however, all UNIXes share these problems, even on most modern and advanced versions of *nix-like systems:%0a%3c %0a%3c * UNIX was a multiuser system for mainframes, poorly ported to PC (i386 and amd64) platform and still doesn't fit. and it will be worse on Risc-V/aarch64.%0a%3c %0a---%0a> however, all UNIXes share these problems, even on most modern and advacned versions of *nix-like systems:%0a> %0a> * UNIX was a multiuser system for mainframes, poorly ported to PC (i386 and amd64) platform and still doesn't fit. and it will be worth on Risc-V/aarch64.%0a> %0a13,17c13,17%0a%3c * networking on UNIX is most of time is done using sockets (BSD and Linux) and STREAMS (SystemV) both apply poorly to modern networking.%0a%3c %0a%3c No version of UNIX was able to solve these problems, as all UNIXes are trying to do something in different ways.%0a%3c Plan9 however, doesn't try to be a UNIX. it doesn many stuff on UNIX such as (sym, hard)links, sockets, X11, sh, chroot, NFS, teletype terminals, sysctls, daemons, ssh, dynamic linked programs, /etc, dotfiles and root.%0a%3c %0a---%0a> * networking on UNIX is most of time is done using sockets (BSD and Linux) and STREAMS(SystemV) both apply poorly to modern networking.%0a> %0a> No version of UNIX was able to solve these problems, as all UNIXes are trying to do samething on differnt ways.%0a> Plan9 however, doesn't try to be a UNIX. it doesn many stuff on UNIX such as (sym, hard)links, sockets, X11, sh, chroot, NFS, teletype terminals, sysctls, deamons, ssh, dynamic linked programs, /etc, dotfiles and root.%0a> %0a20c20%0a%3c * 9p: a unified protocol for programs to create do file operations, on userland, which solves many problems about files and makes a unified UI. which makes usage of everything is file possible by *whole* system. %0a---%0a> * 9p: a unified protocol for programs to create do file opertations, on userland, which solves many problems about files and makes a unified UI. which makes usage of everything is file possible by *whole* system. %0a host:1640172607=71.246.231.249 author:1640168629=mkf csum:1640168629="Streams means something different when shouted"" diff:1640168629:1631931654:=13c13%0a%3c * networking on UNIX is most of time is done using sockets (BSD and Linux) and STREAMS(SystemV) both apply poorly to modern networking.%0a---%0a> * networking on UNIX is most of time is done using sockets (BSD and Linux) and streams (SystemV) both apply poorly to modern networking.%0a host:1640168629=2.178.205.209 author:1631931654=mkf diff:1631931654:1631927961:minor=25d24%0a%3c [@%0a29,30c28%0a%3c @]%0a%3c %0a---%0a> %0a33d30%0a%3c [@%0a36d32%0a%3c @]%0a host:1631931654=198.251.81.133 author:1631927961=mkf diff:1631927961:1631927404:=45c45%0a%3c let's say you don't want to have /secret-data folder to be visable by httpd.%0a---%0a> let's say you don't want to have /secret-datafolder to be visable by httpd.%0a host:1631927961=198.251.81.133 author:1631927404=mkf diff:1631927404:1631918002:minor=2c2%0a%3c in 1970 UNIX was created as a small version of multiics on PDP-11 asm language, few years later it got rewritten on C.%0a---%0a> in 1970 UNIX was created as a small version of multicis on PDP-11 asm language, few years later it got rewritten on C.%0a45,47c45,46%0a%3c let's say you don't want to have /secret-datafolder to be visable by httpd.%0a%3c %0a%3c [@%0a---%0a> let's say you don't want to have /secret-data folder to be visable by httpd.%0a> %0a51d49%0a%3c @]%0a host:1631927404=2.178.137.21 author:1631918002=mkf diff:1631918002:1631917902:=0a1%0a> %0a42,44c43%0a%3c the drawback of unveil is it will need some serious hacking around the program, binds don't have this problem.%0a%3c %0a%3c another example:%0a---%0a> the drawback is it will need some serious hacking around the program.%0a host:1631918002=198.251.81.133 author:1631917902=mkf csum:1631917902=Hi. :) diff:1631917902:1631917902:=1,51d0%0a%3c %0a%3c (:title 9:)%0a%3c in 1970 UNIX was created as a small version of multicis on PDP-11 asm language, few years later it got rewritten on C.%0a%3c one of reasons of UNIX popularity was unified file system view, everything was on files, hence you could use same toolbox.%0a%3c as time goes, it gets replaced by the fact that everyone uses UNIX because everyone uses UNIX.%0a%3c and started to port alien programs, using alien ways and alien interface.%0a%3c %0a%3c however, all UNIXes share these problems, even on most modern and advacned versions of *nix-like systems:%0a%3c %0a%3c * UNIX was a multiuser system for mainframes, poorly ported to PC (i386 and amd64) platform and still doesn't fit. and it will be worth on Risc-V/aarch64.%0a%3c %0a%3c * Research UNIX itself was about the showing all resources as files, this is ignored by modern UNIX as there are many examples for it. (on graphics, networking, audio and security)%0a%3c %0a%3c * networking on UNIX is most of time is done using sockets (BSD and Linux) and streams (SystemV) both apply poorly to modern networking.%0a%3c %0a%3c No version of UNIX was able to solve these problems, as all UNIXes are trying to do samething on differnt ways.%0a%3c Plan9 however, doesn't try to be a UNIX. it doesn many stuff on UNIX such as (sym, hard)links, sockets, X11, sh, chroot, NFS, teletype terminals, sysctls, deamons, ssh, dynamic linked programs, /etc, dotfiles and root.%0a%3c %0a%3c Instead of all of those features on UNIX, Plan9 solves problems with two key ideas:%0a%3c %0a%3c * 9p: a unified protocol for programs to create do file opertations, on userland, which solves many problems about files and makes a unified UI. which makes usage of everything is file possible by *whole* system. %0a%3c * private namespaces: which allows each process has it's own view on file system, which solves many problems about security and makes extending system without touching it possible.%0a%3c %0a%3c for example let's say you have your httpd and you want to do chroot on /var/www for httpd.%0a%3c on OpenBSD it would be like:%0a%3c 1) copy all files needed to run httpd to /var/www/%0a%3c 2) chroot%0a%3c 3) httpd%0a%3c %0a%3c if you have ever bothered to it, you know how hard it is to do. thanks to magic of dynamic linked programs.%0a%3c on Plan9 it can be done in two ways:%0a%3c 1) bind /var/www to /%0a%3c 2) httpd%0a%3c %0a%3c this one will be more like classic chroot, besides that there is no dynamic linked httpd to annoy you it's same.%0a%3c all sub-process will see /var/www as / and there is no way to escape it, all other procs will work as expected.%0a%3c however, the magic will happen on other way:%0a%3c %0a%3c 1) bind everything you don't need to a empty place.%0a%3c 2) httpd%0a%3c %0a%3c this will be more like unveil, OpenBSD used it as easier way for users to handle this problem.%0a%3c the drawback is it will need some serious hacking around the program.%0a%3c let's say you don't want to have /secret-data folder to be visable by httpd.%0a%3c %0a%3c %25 mkdir empty%0a%3c %25 bind empty/ /secret-data %0a%3c %25 httpd%0a%3c %0a%3c httpd will never know what is really on /secret-data, it just will see whatever is on empty/%0a%3c all other procs (besides httpd forks), will see /secret-data as is.%0a\ No newline at end of file%0a host:1631917902=198.251.81.133