Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
Alex Keda
- стреляли...
- Сообщения: 35480
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2009-03-05 8:33:50
Код: Выделить всё
srv# cat /var/db/resusage/txt/h1200.all.txt
0 0 0
0 0.9 3
0.5 1.1 3
0 0 0
0.8 1.1 3
0 0 0
0.7 1.1 3
0.1 1.1 3
0 1.1 3
0 1.1 3
0.4 1.1 3
0.6 1.1 3
1.3 1.1 3
0 1.1 3
0.6 1.2 3
1.4 1.1 3
srv#
srv#
srv#
srv# cat /var/db/resusage/txt/h1200.all.txt | awk '{cpu += $1; mem += $2 }; {print cpu, mem}'
0 0
0 0
0 1
0 1
0 2
0 2
0 3
0 4
0 5
0 6
0 7
0 8
1 9
1 10
1 11
2 12
srv#
Убей их всех! Бог потом рассортирует...
Alex Keda
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
Alex Keda
- стреляли...
- Сообщения: 35480
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2009-03-05 9:02:33
в русской локали, разделитель - запятая.
закрыто

Убей их всех! Бог потом рассортирует...
Alex Keda
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-03-05 12:05:33
чего ж закрывать
можно продолжить флейм про то какая бсд не полноценная
и что в ядре к примеру нельзя делать операции с плавающей точкой))))
paradox
-
Alex Keda
- стреляли...
- Сообщения: 35480
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2009-03-05 12:08:57
а зачем тебе они в ядре?
Убей их всех! Бог потом рассортирует...
Alex Keda
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-03-05 12:16:45
ну это вопрос насчет "что такое полноценная ОС" )))
в винде например в ядре можно использовать операции с плавающей точкой
в бсд что то ни вкакую((((
в линухе незнаю.....
paradox
-
chd
- мл. сержант
- Сообщения: 79
- Зарегистрирован: 2009-01-06 21:09:50
- Откуда: msk
Непрочитанное сообщение
chd » 2009-03-05 12:45:32
а для чего в ядре float? чего считать надо интересно..
chd,
Have fun!
chd
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-03-05 12:49:13
ну мне float нужен был для драйвера
там уровень сигнала нужно было перевести
в итоге конечно выкрутился и сделал на %
но имхо бред
что нельзя заюзать плавающую точку
это недописаная ОС
если она не умеет этого)
paradox
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2009-03-05 13:10:27
Код: Выделить всё
zg# cat 1.c
#include<stdio.h>
int main(void)
{
float d = 1.000009;
printf("%.20f\n", d);
return 0;
}
zg# cc 1.c -o 1.bin && ./1.bin
1.00000894069671630859
zg#
флоат как флоат, не лучше не хуже

zg
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-03-05 13:12:21
ты модулем сделай)))
что бы в ядре
а не в приложении верхнего уровня
paradox
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2009-03-05 13:20:58
paradox писал(а):ты модулем сделай)))
каким макаром? скажи как, может попробую -))
paradox писал(а):а не в приложении верхнего уровня
странно, вроде операции с плавающей запятой давным давно появились в процах

zg
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-03-05 13:23:55
в процах да))
а что бы реализовать в ядре нужно умеючи переключать контексты многозадачной ОС
и еще что то там....
да возьми любой модуль в бсд
какой то сетевки с которой ты работаешь
выгрузи его с ядра
попробуй собери отдельным модулем
что бы работала и загружалась
ну и все
дальше попробуй простой
флоат и принтФ )))
расскажешь как там оно....
paradox
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2009-03-05 13:36:30
Код: Выделить всё
zg# pwd
/usr/src/sys
zg# grep -ir float net*
net/route.c: * one more rtentry floating around that is not
net/route.c: * One more rtentry floating around that is not
netatm/spans/spans_kxdr.h:extern bool_t xdr_float(XDR *, float *);
netinet/sctp_bsd_addr.c: * make sure we lock any IFA that exists as we float through the
netinet/sctp_structs.h: uint32_t chunks_on_out_queue; /* total chunks floating around,
zg#
походу spans_kxdr.h как-то умеет с ним работать -)))
zg
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-03-05 13:42:39
ты забыл uname -a
)))
а то как то в 7 8 я такого не наблюдаю
а про 4 уже незнаю(((
может там чего и работало
paradox
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2009-03-05 13:47:39
paradox писал(а):ты забыл uname -a
Код: Выделить всё
zg# uname -a
FreeBSD zg.test.ru 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008 root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
zg#
у меня даже и дистра четвёрки нету
но вообще да, ситуация с float довольно странная, хотя заметил, что некоторые абстрагируют, но это костыль
zg
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-03-05 13:51:40
в RELENG_7
почикали
netatm/spans/spans_kxdr.h:extern bool_t xdr_float(XDR *, float *);
уже нету
paradox
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2009-03-05 14:11:49
нда... чё ещё заметил - константы с плавающей запятой есть, но в модулях они не используются
paradox писал(а):уже нету
угу, покоцали

что-то тут не чисто

zg
-
MAK
- ст. сержант
- Сообщения: 344
- Зарегистрирован: 2008-09-17 2:23:21
Непрочитанное сообщение
MAK » 2009-03-05 16:15:51
Тоже удивился - и правда нетуть
Код: Выделить всё
#include <sys/param.h>
#include <sys/module.h>
#include <sys/kernel.h>
#include <sys/systm.h>
static int event_handler(struct module *module, int event, void *arg)
{
int e = 0;
switch (event)
{
case MOD_LOAD:
printf("hello: loaded\n");
float d = 1.000009;
printf("%.20f\n", d);
break;
case MOD_UNLOAD:
printf("hello: unloaded\n");
break;
default:
e = EOPNOTSUPP;
break;
}
return(e);
}
static moduledata_t hello_conf = {
"hello",
event_handler,
NULL
};
DECLARE_MODULE(hello, hello_conf, SI_SUB_DRIVERS, SI_ORDER_MIDDLE);
Код: Выделить всё
Mar 5 16:10:31 makbook kernel: hello: loaded
Mar 5 16:10:31 makbook kernel: %.20f
MAK
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-03-05 16:25:32
ты не туда смотрел
ты попробуй поделить числа %))
еще и приводя к типу
оно и компилять незахочет
paradox
-
chd
- мл. сержант
- Сообщения: 79
- Зарегистрирован: 2009-01-06 21:09:50
- Откуда: msk
Непрочитанное сообщение
chd » 2009-03-05 16:31:19
ну контексты переключаются и так... иначе не было бы флоату в узерспайс.
тут я думаю нормальная схема работы должна быть между ядром, девайсом, и консумером.
по идее ядро не должно выполнять лишних действий, а просто уведомить/передать консумеру сигнал о наличие/данные.
обработка данных в ядре слишком дорого обойдется всей системе. я так думаю.
chd,
Have fun!
chd
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-03-05 16:38:12
ну как я помню
там состояние FPU нужно сохранять и восстанавливать
этот контекст имел ввиду
давно вообщем было когда учили...
но факт)))
в винде пашет на ура
и как то не сильно влияет на производительности
а никсах нет
и толку

paradox
-
chd
- мл. сержант
- Сообщения: 79
- Зарегистрирован: 2009-01-06 21:09:50
- Откуда: msk
Непрочитанное сообщение
chd » 2009-03-05 17:06:37
ну так оно и сохраняется и прочее все такое
а я то говорю что ета бэд дизайн в ядре обрабатывать данные не ядра.
chd,
Have fun!
chd
-
Гость
- проходил мимо
Непрочитанное сообщение
Гость » 2009-03-05 17:11:42
хмм, а это забытый кусок?
Код: Выделить всё
> grep -r '^[[:space:]]*float' /sys/
/sys/sys/acct.h: float ac_utime; /* user time */
/sys/sys/acct.h: float ac_stime; /* system time */
/sys/sys/acct.h: float ac_etime; /* elapsed time */
/sys/sys/acct.h: float ac_mem; /* average memory usage */
/sys/sys/acct.h: float ac_io; /* count of IO blocks */
/sys/dev/drm/radeon_drm.h: float f[5];
Гость
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-03-05 17:34:36
>chd
из того что я помню
для fpu там чуть ли не отдальное сотояние задачи
что бы в случае чего
если на каком то месте кода происходят операции с плавающей точкой
то помимо сохранение и переключение контекста задачи
нужно еще и смотреть происходят ли в этом констексте операции с плавающей точкой
и делать еще кучу сложных телодвижений
>гость
смотреть надо
простых обьявлений мало
я когда писал сс3 драйвер
тоже думал что все просто
а там тупо компилятор не разрешает включать операции с плавающей точкой для ядра
paradox
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2009-03-05 19:02:03
Гость писал(а):хмм, а это забытый кусок?
нет, просто есть заглушка
Код: Выделить всё
#ifdef _KERNEL
#define float uint32_t
#endif
zg