Автор Тема: Проблем с "struct cdev" и "struct semaphore"  (Прочетена 12766 пъти)

tarator

  • Напреднали
  • *****
  • Публикации: 849
    • Профил
Проблем с "struct cdev" и "struct semaphore"
« Отговор #15 -: Aug 13, 2007, 17:06 »
halturata,

А тези регистри не можеш ли да ги променяш с "write"?
Активен

A gentleman is one who is never rude unintentionally. - Noel Coward

the_real_maniac

  • Напреднали
  • *****
  • Публикации: 1258
  • Kernel panic, me - no panic ;-) :-)
    • Профил
Проблем с "struct cdev" и "struct semaphore"
« Отговор #16 -: Aug 13, 2007, 17:33 »
Цитат (tarator @ Авг. 13 2007,18:05)
> Толкова ли много ти/ви пречи това, че не може да ползвате ioctl през
> мрежата :?

Да. Такива неща показват дали една операционна система е мрежова, или мрежата е добавена впоследствие и не толкова добре.

Да, съгласен, сега те/Ви разбирам напълно ;-) :-)

Ще си позволя едно лирично отклонение, примери по-скоро:

във вградени системи ... автоматизации , прочие...
датчиците са node-ове, да кажем, точки и се разглеждат като отделни у-ва.

Винаги има нужда от настройки , донастройване, калиброване и прочие ... (или поне все има нещо да се пипне и ще е най-добре, ако мжое да се прави отдалечено (и сигурно))./

И по тази логика, ако всеки датчик се разглежда като у-во , вместо да се прави собствен софтуер / характерен , специфичен ... / да да се разлежда като някакво по-стандартно у-во ...

като цяло това, което казваш аз си го пренасям в мойта сфера и му намирам приложение, наистина е вярно, че щеше да е уникално лесно, ако вместо да отварям socket-и и чудесии , да правя комуникации , протоколи , можех по един универсален и стандартен начин да влиая в/у устройствата , ктойо са ми отдалечение , но ... мрежови. ммда

:-)

Отделено вече говорим за компютри навързани в мрежа или някаква по компютърна периферия, принтери , all-in-one копир машини и прочие. ;-) :-)

пп: мисля ,че Ви разбрах правилно ? :-)

редакция: и ... това да пишете директно във файлове, засега се явява какво - най-добраият workaround , алтернатива :?
като цяло е simple ... => и най-вроятно стабилно => и лесно може да се подсигури. един файлов трансфер over ssh или ... мм пиша всичко това , понеже предпоалгам ,че се занимавате със Server организация или нещо подобно ;-) :-) А не толкова .. нещо в моята насока, датчици , авт. системи и прочие, но може и да греша :-)

Като цяло итерсна тема , а и много полезна за мен ;-)
Благодаря.



Активен

Powered by Debian GNU / LINUX /// Intel inside ...

„Насилието е последното убежище на некомпетентността“ - Айзък Азимов (1920 — 1992)

tarator

  • Напреднали
  • *****
  • Публикации: 849
    • Профил
Проблем с "struct cdev" и "struct semaphore"
« Отговор #17 -: Aug 13, 2007, 17:50 »
Могат да се дадат много примери как в Юникс не всичко е файл, и какви огромни предимства би имало ако наистина бяха файлове. Мързи ме да ги пиша, може да прочетеш това на български.
Активен

A gentleman is one who is never rude unintentionally. - Noel Coward

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Проблем с "struct cdev" и "struct semaphore"
« Отговор #18 -: Aug 13, 2007, 18:32 »
За да не заформям излишни спорове, бих казал, че предимствата са повече, отколкото ми трябват...лично на мене '<img'>

Обаче подхода на plan9 към TCP сокетите е готин, не мога да отрека '<img'>  Мерси за линка '<img'>



Активен

"Knowledge is power" - France is Bacon

tarator

  • Напреднали
  • *****
  • Публикации: 849
    • Профил
Проблем с "struct cdev" и "struct semaphore"
« Отговор #19 -: Aug 14, 2007, 05:42 »
> За да не заформям излишни спорове, бих казал, че предимствата са
> повече, отколкото ми трябват...лично на мене

Това е защото не си използвал системата и не можеш да си представиш как  би ти опростила живота.

Например връзваш принтер към десктоп-а си. За да го използваш на отдалечен сървър трябва да го конфигурираш там, или пък да го включиш в централната конфигурация на принтери в системата. В Plan9 принтера както всичко друго е йерархия от файлове, като се логнеш на някой сървър и се опиташ да печаташ, нещата _автоматично_ ще се отпечатат на същия принтер, който си конфигурирал на десктоп-а ти. Дори принтера е локален, пак ще се отпечата без никакви специални усилия.

Или пък да се върнем на TCP стека. Всеки потребител може да има собствен TCP стек, например VPN към някоя отдалечена мрежа и може да си го конфигурира както си иска без да пречи на останалите потребители. Нещо повече, потребителя може да има _няколко_ VPN-a, в различни прозорци.

И още много други подобни улеснения. '<img'>
Активен

A gentleman is one who is never rude unintentionally. - Noel Coward

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Проблем с "struct cdev" и "struct semaphore"
« Отговор #20 -: Aug 14, 2007, 09:36 »
Ясно, но според мен администрацията на мрежа от машини с такава ОС, с достатъчно много потребители и привилегии, ще е един малък ад '<img'>
Активен

"Knowledge is power" - France is Bacon

halturata

  • Напреднали
  • *****
  • Публикации: 20
    • Профил
Проблем с "struct cdev" и "struct semaphore"
« Отговор #21 -: Aug 14, 2007, 10:32 »
@the_real_maniac: Да това се оказа проблема, просто "главния" хедър с дефинициите на структури за драйвера съм го инклуднал без да мисля и от там проблемите.
@tarator: Ами то работата е малко по-сложна: устройството (Industry Pack модул) се намира на един carrier board, който board е "закачен" за VME bus, който бъс го управлява контролер "закачен" за PCI. Аз имам драйвер за PCI-tо-VME контролера, но ми трябва и драйвер, който да генерира прекъсвания по VME бъса, когато дадено събитие настъпи (малко послъгах че е само четене/писане, просто досега дотам съм го докарал). Всъщност въпросното устройство е тайминг модул, който при получаване на дадено събитие, да подаден тригер на няколко ADC-та (които също са "закачени" за VME бъса) да започнат data taking и да уведоми чрез прекъсване процес в user space, че има данни за "събиране" от паметта на ADC-тата. Четенето и писането в "контролните" регистри на таймера е за да определиш колко да забави тригера към ADC-тата и прекъсването към user space процеса, за да може да се уцели точния момент за дата такинг (става въпрос за милисекунди и обикновено event generation-а е програмиран така че да се разпространява по тайминг системата маалко преди събитието реално да настъпи).
Та в този контекст, как мога да използвам "write" и какво точно имаше предвид с твоето предложение?

Целия този setup е за един малък ускорител (Photo Injector Test Facility Zeuthen - PITZ), но понеже сега на физиците им е писнало да плащат луди пари за SPARC/Solaris за VME крейтовете си, искат да пробват с PowerPC/Linux как ще стане '<img'> Днеска ще питам шефовете дали мога да постна една снимка на "желязото", да придобиете по ясна представа за какво говоря.
Понеже и на мене са ми малко неясни нещата още, ще се радвам на въпроси, тъкмо обяснявайки, ще затвърждавам и мойте знания.

И като малко допълнение към лирическото отклонение - тук пак има доста устройства, които трябва да се контролират и от които трябва да се изчитат данни. За целта е разработена тъй наречената Distributed Object Oriented Control System (DOOCS) , където се използват RPC calls.
Активен

tarator

  • Напреднали
  • *****
  • Публикации: 849
    • Профил
Проблем с "struct cdev" и "struct semaphore"
« Отговор #22 -: Aug 14, 2007, 17:31 »
> Ясно, но според мен администрацията на мрежа от машини с такава ОС,
> с достатъчно много потребители и привилегии, ще е един малък ад

Мислиш като Юникс сисадмин, който по неволя трябва да контролира всичко. В Юникс трябва да се дефинира какви права има даден потребител да използва определен ресурс на _всеки_ компютър (потребител А може да печата на принтер П на сървър С). И понеже това е ужасно трудно, се налага авторитатно управление, при което конфигурациите са централни и ако даден потребител поиска нещо малко по-различно започват мъките му с администраторите.

В Plan9 правата се дават за ресурс, независимо къде ще се използват. Ако можеш да четеш и пишеш даден файл, можеш да го правиш от всеки компютър '<img'> Потребителя има "root" (т.е. пълни права) на терминала, който използва (все пак има физически достъп до него). И по-точно файловете, предоставящи достъп до локалните устройства са собственост на потребителя, който се е логнал. Ако той поиска, може да даде достъп на други потребители до тях.
Активен

A gentleman is one who is never rude unintentionally. - Noel Coward