LINUX.ORG.RU

Первый развлекательный центр под Линукс


0

0

Компания CyberLink выпустила PowerCinema Linux, который превращает x86 компьютер в развлекательный центр, который поддерживает аналоговое и цифровое ТВ, радио, телетекст и просмотр электронного гида по программам. Система стартует в среднем за 10 секунд, в зависимости от прохождения POST компьютером. Центр снабжается стильным трёхмерным интерфейсом и поддерживает функцию удаленного управления через пульт, что облегчает просмотр DVD, прослушивание музыки и т.п.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от lokhin

> Programming Contest

Да не будет никакого соревнования. Для соревнования нужно как минимум двое участников и приз, а lenin как всегда перчатку не подымет. Или таки подымешь, а, ленин? А то могу поставить 500 баксов против 200 твоих, что я на шелле сделаю скриптик, в котором создам posix shared memory object размером в 4 кб, из-под рута запишу туда /etc/shadow, а потом к этому сегменту смогут прицепиться расшареные данные смогут прочесть все члены группы dba :-)

> Серьёзно: жду результатов

Да какие там могут быть результаты кроме правильных (описаных в документации то есть)? Функция shm_open возвращает дескриптор файла, аналогично open(). Естественно все флаги описаные в докментации и использованые в примере работают. Собственно это shared memory object в жизни оказывается файлом в /dev/shm, на который полностью применима концепция UNIX'овых атрибутов (ugo и rwx). Для SystemV shared memory реализована та же схема, с тем только отличием, что SysV-объекты не имеют явного файлового "хвоста" на файловой системе, но имеют также владельца и группу владельца, и 9 битов атрибутов (rwx для владельца, группы и остальных).

А ленин давно известен своей непроходимой глупостью - и лицензия на софт дескать у него недействительна поскольку на английском а значит софт теперь ему можно и не покупать, и компьютеры то он в стойке местами меняет чтобы они заработали в условиях помех, вместе того чтобы стойку и корпуса нормально заземлить, и картинки он сначала рисует в ох..нном разрешении и потом через opengl битмапы масштабирует вместо того чтобы осилить четыре страницы учебника аналитической геометрии, и программы у него рисуют и считают в одной процедуре (и если происходит wait на прорисовке, у него расчет колом встает... Он как-то раз даже заявлял что не читал man'ов и не собирается :-)

Вот такой вот он тут "герой"

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Да-да, no-dashi, только функции shm_open в ляликсе вообще нет. shm_open() failed: Function not implemented, понимаешь-ли, а shmget работает только с владельцем и рутом. Это проверено неоднократно. $500 высылай на кошелёк Z235616307616.

lenin
()
Ответ на: комментарий от lenin

Это под одним юзером запускаем

# include <stdio.h>
# include <sys/ipc.h>
# include <sys/shm.h>


# define KEY 5555

int main (void)
{
	int * Linux;
	int identifier;
	
	
	identifier = shmget(KEY, sizeof(int), IPC_CREAT|0644);
	
	if (identifier == -1)
	{
		perror("Main :: shmget");
		exit(1);
	}
	
	Linux = (int *) shmat(identifier, NULL, 0);
	
	if (Linux == (void *) -1)
	{
		perror("Main :: shmat");
		exit(1);
	}
	
	*Linux = 2;
	
	while (1)
	{
		sleep (1);
	}
}

lenin
()
Ответ на: комментарий от lenin

Это под другим 

# include <stdio.h>
# include <sys/ipc.h>
# include <sys/shm.h>


# define KEY 5555

int main (void)
{
	int * Linux;
	int identifier;
	
	
	identifier = shmget(KEY, sizeof(int), 0);
	
	if (identifier == -1)
	{
		perror("Main :: shm_get");
		exit(1);
	}
	
	Linux = (int *) shmat(identifier, NULL, 0);
	
	if (Linux == (void *) -1)
	{
		perror("Main :: shm_at");
		exit(1);
	}
	
	printf ("%d \n", *Linux);
	
	*Linux = 4;
	
	printf ("%d \n", *Linux);
	
	while (1)
	{
		sleep (1);
	}
}

lenin
()
Ответ на: комментарий от lenin

И видим, что нихера не работает. Гони $500, терминатор.

lenin
()

SHM_OPEN(3) Linux Programmer's Manual SHM_OPEN(3)

NAME
shm_open, shm_unlink - Create/open or unlink POSIX shared memory objects

SYNOPSIS
#include <sys/types.h>
#include <sys/mman.h>

int shm_open(const char *name, int oflag, mode_t mode);

int shm_unlink(const char *name);

DESCRIPTION
shm_open creates and opens a new, or opens an existing, POSIX shared memory object. A POSIX
shared memory object is in effect a handle which can be used by unrelated processes to
mmap(2) the same region of shared memory. The shm_unlink function performs the converse
operation, removing an object previously created by shm_open.

anonymous
()
Ответ на: комментарий от anonymous

Бл#дь, попробуйте хоть ОДНУ программу написать, чтицы манаф х#евы.

lenin
()
Ответ на: комментарий от anonymous

> типа на "shm_open linux" говорит "линкуй с librt" или опять не та кака?

А типа если не линоковать с librt оно не компилится вообще. Прикинь, да ?

lenin
()

если таки долистать man shm_open, то увидим такую фишку
NOTES
These functions are provided in glibc 2.2 and later. Programs using these functions must
specify the -lrt flag to cc in order to link against the required ("realtime") library.

POSIX leaves the behavior of the combination of O_RDONLY and O_TRUNC unspecified. On Linux,
this will successfully truncate an existing shared memory object -- this may not be so on
other Unices.

The POSIX shared memory object implementation on Linux 2.4 makes use of a dedicated file
system, which is normally mounted under /dev/shm.

и вот ведь блин - не врет ман!

проверил на
$ uname -a
Linux wmg 2.6.10-gentoo-r6 #1 Mon Feb 14 13:18:03 KRAT 2005 i686
Intel(R) Pentium(R) 4 CPU 1.80GHz GenuineIntel GNU/Linux

anonymous
()
Ответ на: комментарий от lenin

>А типа если не линоковать с librt оно не компилится вообще. Прикинь, да?
а чо прикидывать то?
нужная тебе фича в линухе есть?
дока на нее подробная есть (и гугло не нужно оказалось)?
все есть, и все пашет...
где засада?

anonymous
()
Ответ на: комментарий от lenin

>А типа если не линоковать с librt оно не компилится вообще. Прикинь, да ?

Как-как? %)

Если не линковать --- то не компилится?! Это в мемориз!!!

Какие еще у тебя проблемы? Если не компилишь --- то не линкуется? :)))

MYMUR ★★★★
()
Ответ на: комментарий от MYMUR

Компиляйте запускайте убеждайтесь что не работает.


# include <sys/types.h>
# include <sys/mman.h>

# include <sys/types.h>
# include <sys/stat.h>
# include <fcntl.h>



int main (void)
{
	int Linux;
	char * ptr;
	
	
	Linux = shm_open("posix_shm_obj_name", O_RDWR | O_CREAT, 0624);
	
	if(Linux < 0) 
	{
		perror("shm_open() failed");
		exit(-1);
	}
	
	ptr = mmap(0, 40, PROT_READ | PROT_WRITE, MAP_SHARED, Linux, 0);
	
	if(ptr == MAP_FAILED) 
	{
		perror("mmap() failed");
		exit(-1);
	}
	
	ptr [1] = 2;
	
	while (1)
		sleep (1);
	
	close(Linux);
	
}

lenin
()

кста приколись - я на C никогда в жизни (компы юзаю с 83 года) не писал - даже 'Hello word' и у меня на экране два xterм 1 - man shm_open 2 - lynx www.linux.org

anonymous
()
Ответ на: комментарий от anonymous


# include <sys/types.h>
# include <sys/mman.h>

# include <sys/types.h>
# include <sys/stat.h>
# include <fcntl.h>




int main (void)
{
        int fd;
        char *ptr;

        fd = shm_open("posix_shm_obj_name", O_RDONLY,  0);
        if(fd < 0) {
                perror("shm_open() failed");
                exit(-1);
        }

        ptr = mmap(0, 40, PROT_READ, MAP_SHARED, fd, 0);
        if(ptr == MAP_FAILED) {
                perror("mmap() failed");
                exit(-1);
        }

        printf("%d\n", ptr [1]);
        close(fd);


}

lenin
()

а денюшки?

каждому за консультацию?

anonymous
()

а вот ответь, lenin, (между нами девочками) : ПОЧЕМУ? почему у тя такой бешенный наезд на эту оску? должна же быть какая-то реальная причина такой постоянной энергозатраты?

вечно твой - ну очень ленивый программер в машинных кодах

anonymous
()
Ответ на: комментарий от anonymous

>затих чего-то lenin
>наверное за деньгами побежал

Скорее, регистрироваться заново под другим ником =) Не факт, что в первый раз...

anonymous
()
Ответ на: комментарий от lenin

Не забудь ещё сделать харакири за RTOS и за реакторы.

Про RTOS маленькая поцвсказка - есть RT-железо (такое, как CANbus).

anonymous
()
Ответ на: комментарий от lenin

> Не, работает. Баньте меня нах.

Дааа... Да, уж... Ну Вы, батенька, дали стране угля...

lokhin
()
Ответ на: комментарий от lenin

Финальный тест? :-)

$ cat shmtest_crt.c 
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <string.h>
void sigusr1(int n) { return; }
int main (void) {
        int fd;
        char * ptr;
        signal(SIGUSR1,sigusr1);
        fd = shm_open("posix_shm_obj_name", O_RDWR | O_CREAT, 0624);
        if(fd < 0) {
            perror("shm_open() failed");
            return 1;
        }
        lseek(fd, 1023, SEEK_SET);
        write(fd, &fd, 1); // "В лоб" выделим один килобайт
        ptr = mmap(0, 1024, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
        if (ptr == MAP_FAILED) {
            perror("mmap() failed");
            return 1;
        }
        strcpy(ptr, "Hello, lenin!");
        printf("I'm writer. My UID=%d, text is \"%s\"\n", getuid(), ptr );
        pause();
        printf("I'm writer. My UID=%d, and I will unlink segment\n", getuid());
        shm_unlink("posix_shm_obj_name");
        close(fd);
}
$ cat shmtest_read.c 
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
int main (void) {
        int fd;
        char * ptr;
        fd = shm_open("posix_shm_obj_name", O_RDONLY, 0);
        if(fd < 0) {
                perror("shm_open() failed");
                return 1;
        }
        ptr = mmap(0, 1024, PROT_READ, MAP_SHARED, fd, 0);
        if (ptr == MAP_FAILED) {
                perror("mmap() failed");
                return 1;
        }
        printf("I'm reader. My UID=%d, text data is %s\n", getuid(), ptr );
        close(fd);
}
$ gcc -o shmtest_crt -lrt shmtest_crt.c 
$ gcc -o shmtest_read -lrt shmtest_read.c 
$ ./shmtest_crt &
[2] 6359
I'm writer. My UID=500, text is "Hello, lenin!"
$ su oracle
Password: 
$ ./shmtest_read 
I'm reader. My UID=502, text data is Hello, lenin!
$ exit
exit
$ kill -USR1 6359
I'm writer. My UID=500, and I will unlink segment
$ 
[2]-  Done                    ./shmtest_crt
$ cat /proc/mounts | grep shm
/dev/shm /dev/shm tmpfs rw 0 0
$ uname -r
2.6.15
$

no-dashi ★★★★★
()
Ответ на: комментарий от lenin

> Не, работает. Баньте меня нах

А смысл? Дать тебе залогиниться под другим именем и снова троллить?

Не пойдет - условия спора ты принял, бабки требовать быстренько кинулся, так что будь добр ответить за свои слова и решения. Можешь выбирать - делаешь ли ты donation в FSF, либо в Mozilla Foundation, либо спонсируешь ими девелоперов MPlayer'а - на выбор.

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

да фиг с ними - деньгами (оставим полную продажность следующему поколению)
пущай лучше с толком/чувством пару-тройку манов переведет

очень ленивый кодер

anonymous
()
Ответ на: комментарий от no-dashi

блин - я из-за lenina сегодня аж 3 программы на C написал
точнее он ваял - а я копи-пастил и компилял
блин - страшный день - потерял чистоту мыслей


ленивый

anonymous
()
Ответ на: комментарий от Vetal80

Подключаешь пакет eskdpz и оно само приводит диплом к гостовому виду.

ugoday ★★★★★
()
Ответ на: комментарий от bsh

<agrin, спасибо тебе за этот диалог с лениным - давно так не смеялся :).>

Да вроде он сам нашелся. Я лишь подправил одного утверждающего про то, что софт управляет реактором. Люди не различают управление мощностью реактора, и управление реактором.

Управление реактором по мощности достаточно простая задача, с этим справитья любой писюк. Но совсем другое дело полное управление ректором во всех мыслимых и немыслимых состояниях.Я примерно описал объем информации, который нужен для этого дела.

Я исходил из того, что тема эта нейтральная, и ленин будет вести себя вменяемо.

Но похоже такого состояния у него не бывает, или в таком состоянии он на лоре не появляется

argin ★★★★★
()
Ответ на: комментарий от Abnormal

<Так то очень тупая и ламерская статья. КГ/АМ.>

Да может быть, просто по заяве автор вроде из разработчиков таких систем был

argin ★★★★★
()
Ответ на: комментарий от lenin

<Шёл бы ты в Бабруйск вместе с кретинами, которые когда-то что-то идели и думают, что что-то знают.>

Ильич, ты можешь конкретно выразисться о ком ты это говорил, когда говорил о людях, которые когда то, что то видели, и думают что знают ?

Не темни, когда надо себя показать свою несостоятельность ты вроде себя не стесняешься , а тут такая стыдливость, не к лицу эта недомолвка вождю прогрессивного человечества

argin ★★★★★
()
Ответ на: комментарий от argin

> Ильич, ты можешь конкретно выразисться

Не сможет. Можно даже эккаунт не блокировать - в этом топике он влез в г..но так глубоко, что вернуться под своим эккаунтом уже не рискнет (как огр после симлинков :-)).

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

> (как огр после симлинков :-)).

Не сим, а хард. И огр таки тогда не пропадал.

anonymous
()
Ответ на: комментарий от no-dashi

По моему, он ни когда своих ошибок не признает. Просто он исчезает на время, и потом может появиться в том же топике, и так же агрессивно продолжать.

Я даже удивился, что он признал свою ошибку. Может кто то выкрал его пароль ?

:-)

argin ★★★★★
()
Ответ на: комментарий от argin

Да, точно, ещё никогда раньше, как бы сильно в лужу не пукал, а ошибок он не признавал. Да и сейчас как-то очень вяло и неуверенно покаялся.

anonymous
()
Ответ на: комментарий от sin_a

Он предлагал делать вещи, которые были бы равносильны самоубийству, для для оператора принявшего такое решение :-)

Если он не стеснялся делать такие заявления, чего это вдруг он чего то должен стесняться ?

argin ★★★★★
()
Ответ на: комментарий от argin

>Он предлагал делать вещи, которые были бы равносильны самоубийству, для для оператора принявшего такое решение :-)
>Если он не стеснялся делать такие заявления, чего это вдруг он чего то должен стесняться ?
Ну а чо, предложить пойти на йух гораздо проще, чем предложить взять ... :-) Без фанатизма :-)))))

anonymous
()
Ответ на: комментарий от anonymous

2 AChulkovDotNet: > Не,не.... Давай как положено. Никаких альтернатив и т.п. Есть > изначальное условие, программа, в которой работаем. Надо - > оздавать, редактировать и обновлять репорты. Вот как? Под линукс.

Cognos

anonymous
()
Ответ на: комментарий от AChulkovDotNet

Ну да прямо-таки домашние юзеры покупают винду у Гейтса : что на лотках продают - то они и берут . Согласитесь, не кождый ведь отдаст 3 - 5 тысяч за программу . А надежность вашей винды зачастую зависит от того , сколько еще систем впихнули на компакт-диск . Бизнес - не знаю , но для университетов и школ Линукс -просто находка , не зря Wolfram Research давно выпускает свою математику под линукс . А что насчет Windows - заставить такую монструозную и тяжелую систему нормально работать часто во много раз труднее чем в Линукс.Согласен,что не все дистрибутивы стабильны,но те , которые сделаны с умом - те да .

anonymous
()
Ответ на: комментарий от anonymous

> Wolfram Research давно выпускает свою математику под линукс

Это случайность. Первые версии Mathematica были под всяческие Unix и VMS, и потом только под dos и венду портанули. Если бы сразу делали под венду, то скорее всего не стали бы тратиться на версию для маргинальных лялихов.

anonymous
()
Ответ на: комментарий от anonymous

> Это случайность. Первые версии Mathematica были под всяческие Unix и VMS, и потом только под dos и венду портанули. Если бы сразу делали под венду, то скорее всего не стали бы тратиться на версию для маргинальных лялихов.

Это не случайность. Практически все тяжелые пакеты имеют 20+ летнюю историю, т.е. начинались разрабатываться на юниксе. Также немаловажный фактор играет то обстоятельство, что забугорные универсистеты, способные родить вещь типа математики, зачастую используют в академических целях юниксы.

Кроме того, можно взять для сравнения дешёвую вендовую паделку маткад и ужаснуться, что могут наваять студенты-вендузятники. Помнится, когда пришлось столкнутся с ЭТИМ, там даже парсер глючил.

anonymous
()

Да,ребята,что ни день,все флеймите.Да, работают люди,что-то сделать пытаются,улучшить уже существующее.А от вас все время одно и то же читаешь :"Ни нужен НАМ ваш Линукс,винда надежнее,под нее хоть софт есть,пираты нам помогут..." Если так,то какое вам дело до Линукса и до движения за свободные программы ? Возвращайтесь назад " в свои клетки" , используйте дальше свой винамп ,фотошоп ,ищите краки к ним...если вам так проще.Но не мешайте другим сделать СВОЙ выбор.А что насчет темы форума,то у меня уже есть свой медиа-центр - компьютер под управлением Debian GNU/Linux 3.1 . Поставил еще VectorLinux 5 SOHO - тоже понравился , хорошо поработали разработчики, может и эти ребята довели Линукс до ума и поставили на свой продукт.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.