Plan9
15 отговора
544 прегледа
Plan9
I. Основни идеи
1. Всички системни обекти са представени като именувани файлове. Операциите с
обектите се извършват чрез четене и запис в тези файлове.
2. Всеки процес има независима от останалите структура на файловата система
(private namespace). Процеса може да променя тази структура без да има
изключителни права.
II. Namespace и Файлов Сървър
Системните извиквания за работа с файловата структура са:
mount
bind
unmount
Системното извикване mount добавя (монтира) дърво сервирано от файлов сървър
в текущия namespace. Като връзка към файловия сървър, ядрото получава файлов
дескриптор. Комуникацията м/у ядрото и сървър-а се извършва чрез писане и
четене в този дескриптор. Протокола на съобщенията се нарича 9P и позволява
обхождане на дървото, четене/запис на съдържанието на файловете и т.н.
Системното извикване bind позволява монтирането на част от вече
съществуващия namespace на друго място.
Plan9 позволява при монтиране, предишното съдържание на директорията да
продължи да е достъпно. При извикване на mount или bind, може да се укаже
дали новото дърво да се "залепи" най-отпред, най-отзад, или напълно да
замени съдържанието на директорията в която се монтира. При обхождане на
директориите, всички монтирани в нея дървета се обхождат в съответния ред.
Пример1. В Plan9 променливата от обкръжението PATH не се използва. Вместо
това всички директории до които потребителя иска да има достъп за изплнение,
се монтират в /bin.
Пример2. Ако някои процес иска да чете съобщения от мишката, отваря
/dev/mouse. В случай че не е стартиран windowing system, процеса чете от
истинското (предоставено от ядрото) устройство. В случай че процеса е
стартиран в прозорец, window manager-a се е погрижил файла /dev/mouse да е
заменен с друг, чрез който процеса получава само събитията, станали в
рамките на прозореца на процеса. Нещо подобно на /dev/tty в Unix, но
обобщено и реализирано за _всички_ устройства (клавиатура, мишка, рисуване
на екрана (и графика)).
III. Работа в мрежа
Архитектурата на Plan9 показва предимствата си много добре при работа в
мрежа. Простотата на връзката м/у ядро и файлов сървър прави много лесно
отдалеченото използване на файлови сървъри. Използвайки командите import и cpu
потребителя може да забрави къде се записват файловете му и на коя машина се
изпълняват процесите му.
Командата import позволява на потребителя да монтира в текущия namespace
част от namespace-a на отдалечена машина. Обикновено потребителя работи на
бездисков компютър, използвайки файловата система предоствена от файлов
сървър.
Командата cpu е по-интересна. Да предположим че потребителя има изградена
някаква файлова структура на локалния си компютър (монтирайки различни
локални и отдалечени файлови сървъри). В един момент потребителя решава че
локалния му компютър е много бавен за програмата която иска да ползва. Пише
cpu veryfastserver
и се озовава на ужасно бързия сървър veryfastserver, запазвайки напълно
файловата йерархия която е виждал на терминала. За него единственото което
се е променило е скоростта на изпълнение на програмата. Да предположим че
програмата е написана така, че докато изпълнява много бавната си задача, се
опитва да забавлява потребителя свирейки нещо на звуковата карта. Тъй като
файловата йерархия е същата като на локалния компютър, устройството
/dev/audio сочи към звуковата карта на локалния компютър, а не към тази на
сървъра. И потребителя ще чуе мелодията в неговите слушалки, вместо да
стряска другите потребители седящи близо до сървър-а :). Или пък ако
потребителя си е конфигурирал мрежата по специален начин, напр. да рутира
през друг рутер, програмата ще използва неговата конфигурация на локалната
машина, въпреки че се изпълнява на сървър-а на които има друга конфигурация
на мрежата.
IV. Примери за файлови сървъри
Всичко в Plan9 се вижда като сбор от файлове -- ethernet карта, IP протокол,
процес и т.н. Тъй като не всички компютри в мрежата са с еднакви процесори,
създателите на ОС-а са решили (и спазват до голяма степен) да ползват
текстови команди за управление на системните обекти. Така ако трябва да се
изпрати параметър 20, той се записва като низ "20" вместо като поредица от
байтове с някакъв вид endianness. На пръв поглед това решение не е удачно,
но то има някои предимства които не се забелязват веднага.
Ще се опитам да покажа как са представени някои системни обекти и какви са
предимствата от такова представяне:
1. Процес
Предстаявянето на процеса като сбор от файлове е подобно на това в Unix. За
всеки процес в /proc има директория с име pid-a на процеса. Едно от
различията които си заслужава да спомена е файла ctl. Писането на текстови
съобщения в този файл, променя различни параметри на процеса. Например
stop спира процеса
start възстановява изпълнението на процеса
kill убива процеса
pri n сменя приоритета на процеса
wire n "залепя" процеса към n-тия процесор
Всичката информация която дебъгер-а ползва за процеса, се намира в
/proc/XXX. По този начин отдалеченото дебъгване на процес на машината X от
машината Y се състои от импортирането на файловата система /proc на машината
X някаде във файловата система на Y и указването на мястото на монтиране на
дебъгера.
2. IP интерфейс
Структурата на файловия сървър представящ IP протокола изглежда така:
/net/ipifc/clone
/net/ipifc/stat
/net/ipifc/N
/net/ipifc/N/status
/net/ipifc/N/ctl
където N е число представящо номера на интерфейса. За да се създаде нов
интерфейс, се отваря файла /net/ipifc/clone. Това създава нова поддиректория
и връща номера на новия интерфейс. Писането във файла /net/ipifc/N/ctl
конфигурира интерфейс-а. Например за да се "върже" интерфейса 3 към втората
ethernet карта, се извиква:
$ echo bind ether /net/ether1 > /net/ipifc/3/ctl
/net/ether1 е пътя до директорията, описваща втората Ethernet карта. За да
се зададат локални IP адреси на интерфейса се извиква:
$ echo add 192.168.33.1 255.255.255.0 > /net/ipifc/3/ctl
Разбира се съществуват и команди които вършат същата работа, но е приятно да
знаеш че можеш да конфигурираш всичко само със shell script и echo ;)
3. TCP стек
Структурата на файловия сървър представящ TCP стека изглежда така:
/net/tcp/clone
/net/tcp/stats
/net/tcp/N
/net/tcp/N/data
/net/tcp/N/ctl
.
.
/net/tcp/N/listen
Да предположим че искаме да отворим TCP връзка до компютъра с адрес
192.168.10.1 на порт 22.
$ cat /net/tcp/clone
5
създава нова връзка която може да се контролира чрез файловете в /net/tcp/5.
$ echo conect 192.168.10.1!22 > /net/tcp/5/ctl
$
След тази команда, четенето и записа във файла /net/tcp/5/data осъществява
четене и запис по TCP връзката.
Отново, има C функции (dial), които вършат черната работа вместо програмиста.
V. Някои прозволни факти (не всички положителни)
1. В Plan9 няма суперпотребител (root).
2. Няма symbolic links -- bind върши работата по-добре.
3. Няма динамични библиотеки
4. Файловия сървър обикновено е определен компютър, които не върши нищо
друго освен да сервира файлове. На него не могат да се пускат никакви
процеси, ядрото му е специално и т.н. Върши само едно нещо, но го върши
добре ;). Интересно е, че всяка вечер файловия сървър прави нещо като backup
на файловата система. Всички файлове от 5 септември 1999 могат да се
прочетат от директорията /n/dump/1999/0905. Това е нещо като poor's man
versioning system, който в действителност върши доста добра работа --
обикновено човек помни какво е правил последния ден ...
1. Всички системни обекти са представени като именувани файлове. Операциите с
обектите се извършват чрез четене и запис в тези файлове.
2. Всеки процес има независима от останалите структура на файловата система
(private namespace). Процеса може да променя тази структура без да има
изключителни права.
II. Namespace и Файлов Сървър
Системните извиквания за работа с файловата структура са:
mount
bind
unmount
Системното извикване mount добавя (монтира) дърво сервирано от файлов сървър
в текущия namespace. Като връзка към файловия сървър, ядрото получава файлов
дескриптор. Комуникацията м/у ядрото и сървър-а се извършва чрез писане и
четене в този дескриптор. Протокола на съобщенията се нарича 9P и позволява
обхождане на дървото, четене/запис на съдържанието на файловете и т.н.
Системното извикване bind позволява монтирането на част от вече
съществуващия namespace на друго място.
Plan9 позволява при монтиране, предишното съдържание на директорията да
продължи да е достъпно. При извикване на mount или bind, може да се укаже
дали новото дърво да се "залепи" най-отпред, най-отзад, или напълно да
замени съдържанието на директорията в която се монтира. При обхождане на
директориите, всички монтирани в нея дървета се обхождат в съответния ред.
Пример1. В Plan9 променливата от обкръжението PATH не се използва. Вместо
това всички директории до които потребителя иска да има достъп за изплнение,
се монтират в /bin.
Пример2. Ако някои процес иска да чете съобщения от мишката, отваря
/dev/mouse. В случай че не е стартиран windowing system, процеса чете от
истинското (предоставено от ядрото) устройство. В случай че процеса е
стартиран в прозорец, window manager-a се е погрижил файла /dev/mouse да е
заменен с друг, чрез който процеса получава само събитията, станали в
рамките на прозореца на процеса. Нещо подобно на /dev/tty в Unix, но
обобщено и реализирано за _всички_ устройства (клавиатура, мишка, рисуване
на екрана (и графика)).
III. Работа в мрежа
Архитектурата на Plan9 показва предимствата си много добре при работа в
мрежа. Простотата на връзката м/у ядро и файлов сървър прави много лесно
отдалеченото използване на файлови сървъри. Използвайки командите import и cpu
потребителя може да забрави къде се записват файловете му и на коя машина се
изпълняват процесите му.
Командата import позволява на потребителя да монтира в текущия namespace
част от namespace-a на отдалечена машина. Обикновено потребителя работи на
бездисков компютър, използвайки файловата система предоствена от файлов
сървър.
Командата cpu е по-интересна. Да предположим че потребителя има изградена
някаква файлова структура на локалния си компютър (монтирайки различни
локални и отдалечени файлови сървъри). В един момент потребителя решава че
локалния му компютър е много бавен за програмата която иска да ползва. Пише
cpu veryfastserver
и се озовава на ужасно бързия сървър veryfastserver, запазвайки напълно
файловата йерархия която е виждал на терминала. За него единственото което
се е променило е скоростта на изпълнение на програмата. Да предположим че
програмата е написана така, че докато изпълнява много бавната си задача, се
опитва да забавлява потребителя свирейки нещо на звуковата карта. Тъй като
файловата йерархия е същата като на локалния компютър, устройството
/dev/audio сочи към звуковата карта на локалния компютър, а не към тази на
сървъра. И потребителя ще чуе мелодията в неговите слушалки, вместо да
стряска другите потребители седящи близо до сървър-а :). Или пък ако
потребителя си е конфигурирал мрежата по специален начин, напр. да рутира
през друг рутер, програмата ще използва неговата конфигурация на локалната
машина, въпреки че се изпълнява на сървър-а на които има друга конфигурация
на мрежата.
IV. Примери за файлови сървъри
Всичко в Plan9 се вижда като сбор от файлове -- ethernet карта, IP протокол,
процес и т.н. Тъй като не всички компютри в мрежата са с еднакви процесори,
създателите на ОС-а са решили (и спазват до голяма степен) да ползват
текстови команди за управление на системните обекти. Така ако трябва да се
изпрати параметър 20, той се записва като низ "20" вместо като поредица от
байтове с някакъв вид endianness. На пръв поглед това решение не е удачно,
но то има някои предимства които не се забелязват веднага.
Ще се опитам да покажа как са представени някои системни обекти и какви са
предимствата от такова представяне:
1. Процес
Предстаявянето на процеса като сбор от файлове е подобно на това в Unix. За
всеки процес в /proc има директория с име pid-a на процеса. Едно от
различията които си заслужава да спомена е файла ctl. Писането на текстови
съобщения в този файл, променя различни параметри на процеса. Например
stop спира процеса
start възстановява изпълнението на процеса
kill убива процеса
pri n сменя приоритета на процеса
wire n "залепя" процеса към n-тия процесор
Всичката информация която дебъгер-а ползва за процеса, се намира в
/proc/XXX. По този начин отдалеченото дебъгване на процес на машината X от
машината Y се състои от импортирането на файловата система /proc на машината
X някаде във файловата система на Y и указването на мястото на монтиране на
дебъгера.
2. IP интерфейс
Структурата на файловия сървър представящ IP протокола изглежда така:
/net/ipifc/clone
/net/ipifc/stat
/net/ipifc/N
/net/ipifc/N/status
/net/ipifc/N/ctl
където N е число представящо номера на интерфейса. За да се създаде нов
интерфейс, се отваря файла /net/ipifc/clone. Това създава нова поддиректория
и връща номера на новия интерфейс. Писането във файла /net/ipifc/N/ctl
конфигурира интерфейс-а. Например за да се "върже" интерфейса 3 към втората
ethernet карта, се извиква:
$ echo bind ether /net/ether1 > /net/ipifc/3/ctl
/net/ether1 е пътя до директорията, описваща втората Ethernet карта. За да
се зададат локални IP адреси на интерфейса се извиква:
$ echo add 192.168.33.1 255.255.255.0 > /net/ipifc/3/ctl
Разбира се съществуват и команди които вършат същата работа, но е приятно да
знаеш че можеш да конфигурираш всичко само със shell script и echo ;)
3. TCP стек
Структурата на файловия сървър представящ TCP стека изглежда така:
/net/tcp/clone
/net/tcp/stats
/net/tcp/N
/net/tcp/N/data
/net/tcp/N/ctl
.
.
/net/tcp/N/listen
Да предположим че искаме да отворим TCP връзка до компютъра с адрес
192.168.10.1 на порт 22.
$ cat /net/tcp/clone
5
създава нова връзка която може да се контролира чрез файловете в /net/tcp/5.
$ echo conect 192.168.10.1!22 > /net/tcp/5/ctl
$
След тази команда, четенето и записа във файла /net/tcp/5/data осъществява
четене и запис по TCP връзката.
Отново, има C функции (dial), които вършат черната работа вместо програмиста.
V. Някои прозволни факти (не всички положителни)
1. В Plan9 няма суперпотребител (root).
2. Няма symbolic links -- bind върши работата по-добре.
3. Няма динамични библиотеки
4. Файловия сървър обикновено е определен компютър, които не върши нищо
друго освен да сервира файлове. На него не могат да се пускат никакви
процеси, ядрото му е специално и т.н. Върши само едно нещо, но го върши
добре ;). Интересно е, че всяка вечер файловия сървър прави нещо като backup
на файловата система. Всички файлове от 5 септември 1999 могат да се
прочетат от директорията /n/dump/1999/0905. Това е нещо като poor's man
versioning system, който в действителност върши доста добра работа --
обикновено човек помни какво е правил последния ден ...
Re: Plan9
Мерси за въведението!
Сега ми е малко по-ясно какво означава "everything is namespace" в Plan 9 спрямо "everything is file" в Unix.
По повод на /proc Linus има идеята някой ден нишките да се виждат като /proc/<pid>/thread/<tid>/.
Много елегантно изглежда, но в Linux има шанс да влязат само нещата, които запазват съвместимостта с API-тата на Unix. След няколко години, когато Linix ядрото няма да се променя толкова динамично, вероятно ще се появят много fork-ове и в това число и нещо съвсем като Plan 9, но с всичките драйвери и екстри от Linux.
А да пратиш "20" като стринг по мрежата, вместо като число, и на пръв, и на втори поглед ми изглежда прекрасно. Никакви притеснения за endiannes, никакви htonl/ntohl и братовчеди... Изобщо по отношение на текста са още по-последователни от стила на Unix и това най-много ми хареса.
Сега ми е малко по-ясно какво означава "everything is namespace" в Plan 9 спрямо "everything is file" в Unix.
По повод на /proc Linus има идеята някой ден нишките да се виждат като /proc/<pid>/thread/<tid>/.
Много елегантно изглежда, но в Linux има шанс да влязат само нещата, които запазват съвместимостта с API-тата на Unix. След няколко години, когато Linix ядрото няма да се променя толкова динамично, вероятно ще се появят много fork-ове и в това число и нещо съвсем като Plan 9, но с всичките драйвери и екстри от Linux.
А да пратиш "20" като стринг по мрежата, вместо като число, и на пръв, и на втори поглед ми изглежда прекрасно. Никакви притеснения за endiannes, никакви htonl/ntohl и братовчеди... Изобщо по отношение на текста са още по-последователни от стила на Unix и това най-много ми хареса.
Re: Plan9
malko za texta ne sum suglasen -
ako imash seriozni audio ili video danni - pak taka li pak shte gi preprashtash? - wse pak naj-mnogo 2x 3x poveche neshta da se pratjat (neznam kak tochno e formatiraneto).
Kak se obrabotwat greshki ako pratish 1015ABDD34GH304050 (GH e greshno - verojatno trjabwa da procheta).
Inache interesen metod - realno podobno neshto mozhe da se abstrahira i do C/C++ klasove i da se portne - ideata rabira se - ama tova ot pruw pogled - navutre mozhe da sa dosta po-slozhni neshtata...
tirulirutatuutuu
ako imash seriozni audio ili video danni - pak taka li pak shte gi preprashtash? - wse pak naj-mnogo 2x 3x poveche neshta da se pratjat (neznam kak tochno e formatiraneto).
Kak se obrabotwat greshki ako pratish 1015ABDD34GH304050 (GH e greshno - verojatno trjabwa da procheta).
Inache interesen metod - realno podobno neshto mozhe da se abstrahira i do C/C++ klasove i da se portne - ideata rabira se - ama tova ot pruw pogled - navutre mozhe da sa dosta po-slozhni neshtata...
tirulirutatuutuu
Re: Plan9
i nai-interesnoto e che pri prashtane na '20' habish po-malko bandwidth otkolkoto pri prashtaneto mu w dvoichen vid :)
mislia che kato se napravi osrednenie, bandwidth-a shte e syshtia, samo deto w tekstov vid prostosmyrtnite hora (i shell scripts) mogat da razberat za kakwo stava wypros.
edin ot aktivnite developeri na Plan9 (Russ Cox) kazwa che chak kato minal na Linux ot Windows zabeliazal kolko mnogo neposledovatelnosti ima w interface-a mu. Kato minal na Plan9 ot Linux, zabeliazal oshte tolkowa neposledovatelnosti na Linux-a spriamo Plan9.
Razbira se Plan9 nikoga niama da poluchi market share-a na Linux (kolkoto i malyk da e toi :). Plan9 e izpusnal wlaka, kogato AT&T sa iskali > $150000 za source code license. Kato sa se usetili che nikoi niama da dade tolkowa pari, weche e bilo twyrde kysno ...
No pyk ot druga strana az nikoga ne sym polzwal Linux zaradi market share-a mu. Kato zapochnah da go polzwam, beshe edna igrachka, w koiato imashe potencial. Sega go polzwam zashtoto mi wyrshi rabota. Opitwam se da polzwam Plan9 zashtoto ima potencial. Dano niakoi den i da mi wyrshi rabota ;)
mislia che kato se napravi osrednenie, bandwidth-a shte e syshtia, samo deto w tekstov vid prostosmyrtnite hora (i shell scripts) mogat da razberat za kakwo stava wypros.
edin ot aktivnite developeri na Plan9 (Russ Cox) kazwa che chak kato minal na Linux ot Windows zabeliazal kolko mnogo neposledovatelnosti ima w interface-a mu. Kato minal na Plan9 ot Linux, zabeliazal oshte tolkowa neposledovatelnosti na Linux-a spriamo Plan9.
Razbira se Plan9 nikoga niama da poluchi market share-a na Linux (kolkoto i malyk da e toi :). Plan9 e izpusnal wlaka, kogato AT&T sa iskali > $150000 za source code license. Kato sa se usetili che nikoi niama da dade tolkowa pari, weche e bilo twyrde kysno ...
No pyk ot druga strana az nikoga ne sym polzwal Linux zaradi market share-a mu. Kato zapochnah da go polzwam, beshe edna igrachka, w koiato imashe potencial. Sega go polzwam zashtoto mi wyrshi rabota. Opitwam se da polzwam Plan9 zashtoto ima potencial. Dano niakoi den i da mi wyrshi rabota ;)
Re: Plan9
tochno zatowa kazah che se opitvat da spazwat tozi princip :)
audio i video se prashtat binarno. obiknoveno wyw format koito ne zavisi ot endianness-a.
audio i video se prashtat binarno. obiknoveno wyw format koito ne zavisi ot endianness-a.
Re: Plan9
> No pyk ot druga strana az nikoga ne sym polzwal Linux zaradi market share-a mu. Kato zapochnah da go polzwam, beshe edna igrachka, w koiato imashe potencial. Sega go polzwam zashtoto mi wyrshi rabota. Opitwam se da polzwam Plan9 zashtoto ima potencial. Dano niakoi den i da mi wyrshi rabota ;)
Хе :) Аз минах на Linux по чисто политически причини, когато прочетох в slashdot за него и GNU и бях омагьосан от идеята. Регистрационният ми номер там е по-малък от този на Алън Кокс (не че мога да се сравнявам с него като програмист :)) и съм модератор всяка седмица.
Бях писал доста под ДОС и в това число доста freeware. Като разбрах, че имало много такива, все едно за пръв път усетих планетата населена. Само че като си сам и нямаш коректив, допускаш сериозни грешки в дизайна. Морето от API-та в Windows ме отказа временно от програмирането, докато не открих Linux да ми върне радостта от компютрите.
Спомням си екстаза когато си купих Borlandc 3.1, най-вече заради документацията на хартия, и открих, че цялата библиотека я има в сорс. По онова време нито интернет имаше, нито книги и това си беше едно откровение. Е, сега вече имам и ядрото и компилатора в сорс, все за мен.
Ok, maybe I do need to get a life
Хе :) Аз минах на Linux по чисто политически причини, когато прочетох в slashdot за него и GNU и бях омагьосан от идеята. Регистрационният ми номер там е по-малък от този на Алън Кокс (не че мога да се сравнявам с него като програмист :)) и съм модератор всяка седмица.
Бях писал доста под ДОС и в това число доста freeware. Като разбрах, че имало много такива, все едно за пръв път усетих планетата населена. Само че като си сам и нямаш коректив, допускаш сериозни грешки в дизайна. Морето от API-та в Windows ме отказа временно от програмирането, докато не открих Linux да ми върне радостта от компютрите.
Спомням си екстаза когато си купих Borlandc 3.1, най-вече заради документацията на хартия, и открих, че цялата библиотека я има в сорс. По онова време нито интернет имаше, нито книги и това си беше едно откровение. Е, сега вече имам и ядрото и компилатора в сорс, все за мен.
Ok, maybe I do need to get a life
Re: Plan9
kogato az zapochnah da polzwam linux, oshte niamashe slashdot, a osnovnoto sredstvo za prenasiane na informacia w BG biaha 5 1/2 disketi, a ne internet ;)
Re: Plan9
> kogato az zapochnah da polzwam linux, oshte niamashe slashdot, a osnovnoto sredstvo za prenasiane na informacia w BG biaha 5 1/2 disketi, a ne internet ;)
Така си е. Linux се появи няколко години по-рано в България. Като ми казаха, че имало някаква си нова ОС, хич и не им обърнах внимание. Какво като има, ще догони ли по популярност на Microsoft ОС-овете? Ама тя била безплатна... Ами на мен времето ми не е безплатно, а почти всичко без компилатора ми беше "пиратско". Доста едномерно виждах нещата поради липса на информация.
А от 5 инчовите дискети все още имам купища :)
Така си е. Linux се появи няколко години по-рано в България. Като ми казаха, че имало някаква си нова ОС, хич и не им обърнах внимание. Какво като има, ще догони ли по популярност на Microsoft ОС-овете? Ама тя била безплатна... Ами на мен времето ми не е безплатно, а почти всичко без компилатора ми беше "пиратско". Доста едномерно виждах нещата поради липса на информация.
А от 5 инчовите дискети все още имам купища :)
Re: Plan9
Много нещо си изписал. Ще коментирам по-подробно съботата или неделята. Накратко, това което не ми харесва е че така както си го описал изглежда че:
1. Ще работи по-бавно особено мрежовата част при създаването на нови tcp връзки.
2. Специализираните файлови сървъри са ненужни за повечето бизнеси. Ако някой ползва специализиран файлов сървър най-вероятно си е хвърлил парите на вятъра (или попада сред изключенията)
3. Донякъде Plan9 е по-удобна за разработчиците на програми заради по-лесната работа с хардуера.
4. Не е ясна работата с динамичните библиотека. Какво ползват за да няма дублиране на код?
5. Няма кой-знае какви проблеми някой конзолен потребител да премине от Plan9 на Linux или обратно
6. Мигрирането на процеси между различните машини е интересна черта, но дори от потребителската база на Linux, не са много тези които разполагат с няколко компютъра и им се _налага_ да я ползват. Въпреки че става за някой университет или изследователски екип който прахосва пари на данъкоплатците :-)
1. Ще работи по-бавно особено мрежовата част при създаването на нови tcp връзки.
2. Специализираните файлови сървъри са ненужни за повечето бизнеси. Ако някой ползва специализиран файлов сървър най-вероятно си е хвърлил парите на вятъра (или попада сред изключенията)
3. Донякъде Plan9 е по-удобна за разработчиците на програми заради по-лесната работа с хардуера.
4. Не е ясна работата с динамичните библиотека. Какво ползват за да няма дублиране на код?
5. Няма кой-знае какви проблеми някой конзолен потребител да премине от Plan9 на Linux или обратно
6. Мигрирането на процеси между различните машини е интересна черта, но дори от потребителската база на Linux, не са много тези които разполагат с няколко компютъра и им се _налага_ да я ползват. Въпреки че става за някой университет или изследователски екип който прахосва пари на данъкоплатците :-)
Re: Plan9
> Много нещо си изписал. Ще коментирам по-подробно съботата или
> неделята. Накратко, това което не ми харесва е че така както си го описал
> изглежда че:
> 1. Ще работи по-бавно особено мрежовата част при създаването на нови
> tcp връзки.
kato cialo mrejovia code na plan9 e okolo 20% po-bawen ot tozi na Linux. dokolkoto znam plan9 e polzwan kato OS w niakoi ruteri na Lucent, kakto i za upravlenie na telco centrali.
> 2. Специализираните файлови сървъри са ненужни за повечето бизнеси. Ако
> някой ползва специализиран файлов сървър най-вероятно си е хвърлил
> парите на вятъра (или попада сред изключенията)
ne znam zashto si mislish taka -- dosega wyw wsichki firmi koito sym rabotil e imalo serveri koito se polzwat samo za servirane na failove. wyw firmata w koiato rabotia w momenta tezi serveri sa desetki :)
> 3. Донякъде Plan9 е по-удобна за разработчиците на програми заради по-
> лесната работа с хардуера.
> 4. Не е ясна работата с динамичните библиотека. Какво ползват за да няма
> дублиране на код?
i na men ne mi e iasno :). w obshti linii kazwat che niama nujda ot dublirane na kod. ako neshto triabwa da se polzwa ot poweche ot 1 programa, to se pishe failov server koito da go wyrshi i wsichki polzwat failovia server :)
> 5. Няма кой-знае какви проблеми някой конзолен потребител да премине от
> Plan9 на Linux или обратно
ne e tolkowa lesno kolkoto izglejda :) w Plan9 na praktika niama console-a :)
> 6. Мигрирането на процеси между различните машини е интересна черта,
> но дори от потребителската база на Linux, не са много тези които
> разполагат с няколко компютъра и им се _налага_ да я ползват. Въпреки че
> става за някой университет или изследователски екип който прахосва пари
> на данъкоплатците :-)
procesi ne mogat da migrirat ot edna mashina na druga. migrirat samo namespaces.
ne znam zashto smiatash che ne sa mnogo horata koito razpolagat s niakolko computer-a. wkashti imam 2 laptop-a, 2 desktop-a i dva PDAs (running linux). mislia da si kupia oshte 2-3 desktop-a da stane po-interesno. Powecheto semeistva w US imat pone 2 computer-a -- po edin za wseki koito ima nujda (wkliuchitelno decata nad 5 godini :)
> неделята. Накратко, това което не ми харесва е че така както си го описал
> изглежда че:
> 1. Ще работи по-бавно особено мрежовата част при създаването на нови
> tcp връзки.
kato cialo mrejovia code na plan9 e okolo 20% po-bawen ot tozi na Linux. dokolkoto znam plan9 e polzwan kato OS w niakoi ruteri na Lucent, kakto i za upravlenie na telco centrali.
> 2. Специализираните файлови сървъри са ненужни за повечето бизнеси. Ако
> някой ползва специализиран файлов сървър най-вероятно си е хвърлил
> парите на вятъра (или попада сред изключенията)
ne znam zashto si mislish taka -- dosega wyw wsichki firmi koito sym rabotil e imalo serveri koito se polzwat samo za servirane na failove. wyw firmata w koiato rabotia w momenta tezi serveri sa desetki :)
> 3. Донякъде Plan9 е по-удобна за разработчиците на програми заради по-
> лесната работа с хардуера.
> 4. Не е ясна работата с динамичните библиотека. Какво ползват за да няма
> дублиране на код?
i na men ne mi e iasno :). w obshti linii kazwat che niama nujda ot dublirane na kod. ako neshto triabwa da se polzwa ot poweche ot 1 programa, to se pishe failov server koito da go wyrshi i wsichki polzwat failovia server :)
> 5. Няма кой-знае какви проблеми някой конзолен потребител да премине от
> Plan9 на Linux или обратно
ne e tolkowa lesno kolkoto izglejda :) w Plan9 na praktika niama console-a :)
> 6. Мигрирането на процеси между различните машини е интересна черта,
> но дори от потребителската база на Linux, не са много тези които
> разполагат с няколко компютъра и им се _налага_ да я ползват. Въпреки че
> става за някой университет или изследователски екип който прахосва пари
> на данъкоплатците :-)
procesi ne mogat da migrirat ot edna mashina na druga. migrirat samo namespaces.
ne znam zashto smiatash che ne sa mnogo horata koito razpolagat s niakolko computer-a. wkashti imam 2 laptop-a, 2 desktop-a i dva PDAs (running linux). mislia da si kupia oshte 2-3 desktop-a da stane po-interesno. Powecheto semeistva w US imat pone 2 computer-a -- po edin za wseki koito ima nujda (wkliuchitelno decata nad 5 godini :)
Re: Plan9
A kak se opredelq kolko e dylyg stringa?
Shtoto az sym pisal razni raboti deto mqtat Big Numbers i tam nqma kak trqbva da sa stringove, ama zapochvat s edin integer kolko sa dylgi, shoto s terminirashta nula stavat edni bozi :(((( pyk i pochvat da se poqvqvat ogranicheniq vyv formata na paketite...
e vsyshtnost kato pochti vsichko v sistemata se bazira na stringove edva li e takyv problem...
IF JADEN THEN
GOTO BIRARIA;
Shtoto az sym pisal razni raboti deto mqtat Big Numbers i tam nqma kak trqbva da sa stringove, ama zapochvat s edin integer kolko sa dylgi, shoto s terminirashta nula stavat edni bozi :(((( pyk i pochvat da se poqvqvat ogranicheniq vyv formata na paketite...
e vsyshtnost kato pochti vsichko v sistemata se bazira na stringove edva li e takyv problem...
IF JADEN THEN
GOTO BIRARIA;
Редактирано от Aл Koxoнe на
Re: Plan9
ami kogato chislata sa w tekstov format, logichno e razdelitelia da e ' ' ili '\n' ;)
ako formata e tekstov, wsichko e tekst
ako formata e tekstov, wsichko e tekst
Re: Plan9
wsyshtnost, predishnoto mi mnenie e greshno -- logichnia razdelitel za chisla, predstaveni w tekstov format e wseki simwol razlichen ot tezi koito mogat da se sreshtat w chisloto ([0-9] :)
naprimer pri otwarianeto komandata za otwariane na socket se polzwat 3 razdelitelia -- '.' w IP address-a, '!' m/u IP address-a i port-a i ' ' na ostanalite mesta :)
naprimer pri otwarianeto komandata za otwariane na socket se polzwat 3 razdelitelia -- '.' w IP address-a, '!' m/u IP address-a i port-a i ' ' na ostanalite mesta :)
Re: Plan9
:))) zvuchi dobre... ama izvinqvai toq koito go e izmislil naistina mai e izpushil neshto predi tova ;) ne che ima losho ;)
trqbva da im vidq sorsovete na parsera, sigurno e jelezen :)))))
IF JADEN THEN
GOTO BIRARIA;
trqbva da im vidq sorsovete na parsera, sigurno e jelezen :)))))
IF JADEN THEN
GOTO BIRARIA;
Re: Plan9
> Shtoto az sym pisal razni raboti deto mqtat Big Numbers i tam nqma kak trqbva da sa stringove, ama zapochvat s edin integer kolko sa dylgi, shoto s terminirashta nula stavat edni bozi :(((( pyk i pochvat da se poqvqvat ogranicheniq vyv formata na paketite...
Има стандарт за предаване на произволно дълги числа, не в стринг, и пак endiannes независим. Описан е в ASN.1 и се ползва в MIB-овете на SNMP. Общо взето, опира до първия бит в байта - той ти показва дали байтът е последен от поредицата, или има и следващ. В Perl даже има вградени функции за такива дълги числа. Забележи, че те могат да са много по-дълги от машинната дума. При това, не се предава никаква дължина.
Има стандарт за предаване на произволно дълги числа, не в стринг, и пак endiannes независим. Описан е в ASN.1 и се ползва в MIB-овете на SNMP. Общо взето, опира до първия бит в байта - той ти показва дали байтът е последен от поредицата, или има и следващ. В Perl даже има вградени функции за такива дълги числа. Забележи, че те могат да са много по-дълги от машинната дума. При това, не се предава никаква дължина.
Re: Plan9
Vijdal sym go, ama na slab procesor (Intel 960) s kyvto mi se nalaga da bachkam predimno, izchisleniqta s tqh otnemat masa vreme. Dosta po udobno e v string, a mai nai-udobno e da se polzva big number biblioteka kato v openssl-a. Imash 4 baita dylgina i posle tolkova baita bigendian chislo. Sybiraneto i izvajdaneto sa lesni, a i za ostanalite deistviq (umnojenie, delenie, stepenuvane i t.n.) ima hitri algoritmi :))) Obache ako si na zor i za mqsto i ne mojesh da si pozvolish oshte edna biblioteka mai stringa e prilichen kompromis.
IF JADEN THEN
GOTO BIRARIA;
IF JADEN THEN
GOTO BIRARIA;