Сообщения betalor
О разработке ядра
Привет!
Есть несколько вопросов о разработке линуксового ядра:
- какая из подсистем лучше всего подходит для изучения новичками с прицелом на дальнейшую разработку ядра?
- каким образом уважаемые специалисты организуют работу со списками рассылки? тот же lkml генерирует кучу сообщений в сутки. как продуктивнее всего его читать?
- какую литературу можете посоветовать новичкам? я начал читать «Разработка ядра Линукс» Роберта Лава, но терзают сомнения относительно актуальности информации, представленной в этой книге.
- есть ли среди посетителей ЛОРа разработчики ядра? как именно вы начали этим заниматься и чего смогли достичь? хочу услышать истории успеха или неуспеха.
Спасибо!
Fedora 17 установка в автоматическом режиме
Привет!
Пишу из горящего танка. Суть такова:
скачал Федора 17 live desktop. Потыкал палочкой и собрался устанавливать. выбрал автоматическую разметку:
|Device| Size, MB| Mount Point| Type
-----------------------------------------------------
|sda1 | 200 | /boot/efi | EFI system partition
-----------------------------------------------------
|sda2 | 500 | /boot | ext4
-----------------------------------------------------
|sda3 | 51200 | / | ext4
-----------------------------------------------------
|sda4 | 5920 | | swap
-----------------------------------------------------
|sda5 | 419119 | /home | ext4
Установка прошла без ошибок. В конце концов система предложила перезагрузится и извлечь установочный носитель. Но после перезагрузки система не загружается.
ткните носом в мануал по установке. спасибо.
Скорость чтения из NAND
Привет, ЛОР!
На досуге пытаюсь разобраться с отладочной платой PHYTEC, и у меня есть вопрос: я использую u-boot в качестве загрузчика и nand флэш, из которой грузится ядро. Дело в том, что процесс загрузки ядра из нанда занимает около 12 секунд, причем ядро весит около 2 метров.
Начал разбираться с проблемой. Зарылся в даташиты на нанд и на контроллер и позже выяснил, что в драйвере выставлены неправильные тайминги. Рассчитал нужные задержки для используемой микросхемы памяти, изменил и прошил новый u-boot. Грузится стало быстрее, но скорость все еще очень далека от пиковой скорости флэша: ядро размером 2,3 метра загружается за 6 секунд.
Как можно увеличить скорость чтения ядра из NAND памяти?
Спасибо!
ghc на opensuse
имеется сусе 12.2. в репах нет ghc. нужно установить свежие ghc и платформу.
ткните, пожалуйста, в мануал.
Про иерархию процессов
Есть утилита pstree, которая отображает дерево процессов в системе.
init(1)─┬─acpid(2206)
├─atd(2854)
├─autodir(2301)─┬─{autodir}(2309)
│ ├─{autodir}(2310)
│ ├─{autodir}(3217)
│ └─{autodir}(350)
├─avahi-daemon(2275)───avahi-daemon(2276)
├─cron(2874)
├─cupsd(2331)
├─dbus-daemon(2251)
├─dbus-daemon(2980)
├─dbus-launch(2979)
├─dcopserver(3018)
├─dhclient3(2226)
├─dirmngr(2342)
├─exim4(2614)
├─famd(2754)
├─gconfd-2(3069)
├─getty(2903)
├─getty(2904)
├─getty(2905)
├─getty(2906)
├─getty(2907)
├─getty(2909)
├─hald(2780)───hald-runner(2781)─┬─hald-addon-acpi(2811)
│ └─hald-addon-inpu(2801)
├─hcid(2820)
├─kaccess(3048)
├─kded(3022)
├─kdeinit(3015)─┬─kio_file(1851)
│ ├─klauncher(3020)
│ ├─konqueror(1782)
│ ├─konsole(3144)─┬─bash(2917)─┬─ltib(2933)───sh(2936)───mconf(2937)
│ │ │ └─pstree(3061)
│ │ ├─bash(3145)───mc(3163)───bash(3165)
│ │ ├─bash(3203)───minicom(3216)
│ │ └─bash(3226)───ssh(3239)
│ ├─kwin(3030)
│ └─pidgin(3056)
├─kdesktop(3032)───emacs(1981)
├─kdm(2889)─┬─Xorg(2896)
│ └─kdm(2919)───x-session-manag(2944)─┬─kwrapper(3027)
│ └─ssh-agent(2976)
├
├─kio_uiserver(1758)
├─klipper(3058)
├─knotify(3060)
├─kpowersave(3062)
├─ksmserver(3029)
├─kxkb(3044)
├─lisa(2624)
├─nepomukserver(3037)─┬─nepomukservices(3042)
│ ├─nepomukservices(3054)
│ ├─nepomukservices(3055)
│ └─{nepomukserver}(3041)
├─netserver(2628)
├─notification-da(13652)
├─nscd(2684)─┬─{nscd}(2697)
│ ├─{nscd}(2698)
│ ├─{nscd}(2699)
│ ├─{nscd}(2700)
│ ├─{nscd}(2701)
│ ├─{nscd}(2702)
│ ├─{nscd}(2703)
│ └─{nscd}(2704)
├─ntpd(2768)
├─portmap(1843)
├─rpc.idmapd(1900)
├─rpc.mountd(2674)
├─rpc.statd(1855)
├─rsyslogd(2195)─┬─{rsyslogd}(1561)
│ └─{rsyslogd}(1562)
├─sshd(2287)───sshd(4084)───sshd(4086)───bash(4087)───sh(4088)
├─start_kdeinit(3014)
└─udevd(1027)
Вопрос: кто и в какой момент запускает процесс init? Где в исходниках ядра это место?
debian sid и aptitude
дебиан сид
что-то странное творится:
aptitude purge apache2
aptitude -f install
в какую сторону копать?
конкатенация строк в bash
привет!
прошу помочь мне с башем. суть такова:
$cat /proc/aaa
aaa
$cat /proc/bbb
bbb
мне нужно сконкатенировать выхлопы этих команд и записать их в файл через разделитель в две колонки, чтобы получилось примерно так:
$cat file.txt
aaa bbb
aaa bbb
aaa bbb
подскажите как это можно сделать?
MDIO, ethernet phy сотоварищи
Привет. Пишу драйвер для самодельной сетевой карты. В качестве микросхемы физического уровня выбрана SMSC LAN911x Internal PHY. Подскажите, где я могу посмотреть примеры кода, который осуществляет запись/чтение регистров через шину MDIO?
вызов функций одного модуля из другого
Привет! Пытаюсь написать несколько модулей ядра в образовательных целях, в связи с чем есть вопрос: как можно вызвать функции, которые определены но не содержатся в директиве EXPORT_SYMBOL в одном модуле, из моего самописного модуля?
Отключить сеть
Привет!
Почему после ifconfig eth0 down светодиоды на сетевом разъеме продолжают мигать? Как их выключить?
powerdown в ядре
Привет!
Что происходит с работающими процессами и периферией при переводе системы в режим пониженного энергопотребления? Как ведет себя планировщик процессов? Как реализована поддержка powerdown в ядре?
Посоветуйте литературы (желательно на русском) чтобы разобраться в теме.
помогите придумать название проекту
Привет!
Несколько месяцев назад, насмотревшись ml-class, решил написать небольшую библиотеку с основными алгоритмами ML. Чтобы изучить что-то новое, решил писать ее на Си + CUDA. Кое-что уже вроде бы нормально работает, так что в скором времени планирую выложить ее в открытый доступ. В связи с чем у меня возникло два вопроса:
- какую лицензию выбрать? склоняюсь к WTFPL либо к BSD-like.
- как назвать проект? вот тут идей вообще нет никаких.
минус один
Скрепя сердце, с сожалением и горечью, но тем не менее, движимый рациональным подходом к делу, перевел код программы для своего стартапа с Common Lisp на Microsoft .NET, а именно на C#.
инструменты для NLP
Привет!
Какие инструменты наиболее часто применимы в сфере NLP? Видел питон и перл. Что еще используют? Что лучше учить?
проверка контрольной суммы
Привет!
Как отключить проверку контрольной суммы при загрузке ядра?
Это я вот о чем:
Entry Point: 80008000
Verifying Checksum ... OK <===============================
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux...............
Инструмент для числодробления
Привет!
На чем нынче модно писать многопоточные угрюмые числодробилки? Интересуют инструменты для высокопризводительных вычислений. Направьте на путь истинный)
данные для проверки нейросетей
Привет, научный ЛОР!
Подскажи, а в каких еще областях, кроме всякой биологии/генетики, есть сопоставимое количество экспериментального материала?
Начал разбираться с нейросетями. Нужны данные для тестов всяких.
ring buffer
Написал^W Нашел на википедии реализацию сабжа на си:
/* Circular buffer example, keeps one slot open */
#include <stdio.h>
#include <malloc.h>
/* Opaque buffer element type. This would be defined by the application. */
typedef struct { int value; } ElemType;
/* Circular buffer object */
typedef struct {
int size; /* maximum number of elements */
int start; /* index of oldest element */
int end; /* index at which to write new element */
ElemType *elems; /* vector of elements */
} CircularBuffer;
void cbInit(CircularBuffer *cb, int size) {
cb->size = size + 1; /* include empty elem */
cb->start = 0;
cb->end = 0;
cb->elems = (ElemType *)calloc(cb->size, sizeof(ElemType));
}
void cbFree(CircularBuffer *cb) {
free(cb->elems); /* OK if null */ }
int cbIsFull(CircularBuffer *cb) {
return (cb->end + 1) % cb->size == cb->start; }
int cbIsEmpty(CircularBuffer *cb) {
return cb->end == cb->start; }
/* Write an element, overwriting oldest element if buffer is full. App can
choose to avoid the overwrite by checking cbIsFull(). */
void cbWrite(CircularBuffer *cb, ElemType *elem) {
cb->elems[cb->end] = *elem;
cb->end = (cb->end + 1) % cb->size;
if (cb->end == cb->start)
cb->start = (cb->start + 1) % cb->size; /* full, overwrite */
}
/* Read oldest element. App must ensure !cbIsEmpty() first. */
void cbRead(CircularBuffer *cb, ElemType *elem) {
*elem = cb->elems[cb->start];
cb->start = (cb->start + 1) % cb->size;
}
int main(int argc, char **argv) {
CircularBuffer cb;
ElemType elem = {0};
int testBufferSize = 10; /* arbitrary size */
cbInit(&cb, testBufferSize);
/* Fill buffer with test elements 3 times */
for (elem.value = 0; elem.value < 3 * testBufferSize; ++ elem.value)
cbWrite(&cb, &elem);
/* Remove and print all elements */
while (!cbIsEmpty(&cb)) {
cbRead(&cb, &elem);
printf("%d\n", elem.value);
}
cbFree(&cb);
return 0;
}
помогите, пожалуйста, написать функцию удаления элемента из буффера.
Рекурсивные спин-локи
ЛОР, а в каких операционных системах есть рекурсивные спин-локи?
← предыдущие | следующие → |