#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
void *thread_fun(void *arg)
{
fprintf(stderr, "child thread pid is %d\n", (int)getpid());
while(1);
return NULL;
}
int main(void)
{
pthread_t thread;
fprintf(stderr, "main thread pid is %d\n", (int)getpid());
pthread_create(&thread, NULL, &thread_fun, NULL);
while(1);
return 0;
}
воскресенье, 17 июня 2012 г.
TID
В интернете свободно доступна интересная и полезная книга о программировании в Линуксе: Advanced Linux Programming. К несчастью, некоторые темы устарели. Одна из них - 4.5 GNU/Linux Thread Implementation. В книге говорится, что треды GNU/Linux реализованы как процессы. Следующий код должен это подтвердить, но он этого не делает:
вторник, 12 июля 2011 г.
Life
Говорят, всё гениальное - просто. Сегодня я в этом убедился.
В поисках разминки для мозгов я бороздил просторы интернета, и набрёл на невзрачный снимок экрана на сайте http://screenshots.debian.net: Я слышал о "Жизни" и раньше, даже видел работающие примеры этой игры, но не полагал, что вся её суть кроется всего лишь в паре утверждений.
Ярлыки:
Жизнь,
моделирование,
программирование,
Си,
эмуляция,
Conway,
Life,
programming
пятница, 10 июня 2011 г.
Terminal
В книге "Современные операционные системы" Эндрю Таненбаум несколько раз говорит о том, что развитие компьютерной индустрии проходит по спирали: позабытые казалось бы технологии переживают своё рождение несколько раз на различных типах устройств, либо с течением времени обретают актуальность.
На раннем этапе развития компьютеров к ним подключались терминалы. Порой это были довольно большие устройства, предоставляющие сразу все устройства ввода-вывода для машины. С терминалом работал оператор. К тому времени разделение инжинеров и программистов уже произошло — человеку не нужно было больше глубоко разбираться в физике и технике, чтобы работать на компьютере.
Теперь к нашим временам. Office 365, Chromebook, Cloud Computing... Все эти новшества позволяют нам вобще не задумываться как и что работает, а сразу получать готовые, работающие машины. Нам даже не нужно администрировать систему, следить за ней (в случае с Chromebook). По сути компьютеры становятся лишь придатком, позволяющим нам подключаться к великой Паутине и жить там. Мозг и центр переносится на мощные серверы, которые обеспечивают нас всем необходимым, выдавая готовый результат вычислений и/или виртуализаций. Домашние компьютеры же становятся не чем иным как удаленным терминалом, набором устройств для ввода информации и получения в каком-либо виде её вывода.
От программистов теперь и окончательно отпочковались пользователи, порой совершенно не интересующиеся внутренностями своей машины или операционной системы. Есть результат, а какой магией он достигается совсем не важно. Со временем пользователи, видимо, станут только ещё тупее, погружаясь в пучину социальных сетей, глубоко пронизывающих всю жизнь. Мы постепенно проектируем Матрицу, не считаете? Что самое странное (впрочем, в фильме было подобное же) — люди сами охотно в неё ныряют. Жутко. Однако дети Эйнштейна были, есть, и будут. Это не может не радовать. Давайте не будем забывать о нашем интересе. В путь! Ковыряться в недрах системы, писать что-то своё, разбираться как это всё работает.
Правда?
Ярлыки:
виртуализация,
облака,
облачные вычисления,
Chromebook,
Cloud,
Office 365,
Terminal
вторник, 7 июня 2011 г.
Stability
Стабильность против свежести
или история любви
В нашем мире (свободного программного обеспечения) много священных войн. Это не плохо и не хорошо, это есть. Пожалуй вряд ли можно что-то с этим сделать. Сегодня я хочу рассказать об одном аспекте Linux, по поводу которого ведутся нескончаемые споры.На стабильность операционной системы смотрят обычно под двумя углами. Одни признают её необходимость и стремятся всячески достичь её. На таких дистрибутивах (естественно при некоторых настройках) вполне можно поднять какой-либо сервер и не беспокоиться за очередное обновление безопасности — операционная система обязана обновиться гладко и безболезненно. Другие полагают, что в дистрибутиве должны быть самые свежие пакеты ежедневно, первых они обычно обзывают некрофилами и клянут всяческими непотребными словами. На мой взгляд сравнивать (а тем паче спорить о том, что лучше) настолько разные системы глупо. Никто в здравом уме не станет ставить Ubuntu(дабы не привлечь на свою голову ненавистников, подчеркну, что речь не о Server Edition) или Fedora на сервер. Для этого есть Debian и CentOS. Любители же нового, любители эффектов и новых игр никогда не установят себе последние.
Так вот, я хотел поделиться некоторыми мыслями по поводу стабильности первого и второго типов систем. Так вышло, что недавно у меня ломался компьютер, и после смены жесткого диска сразу установить родной мне Debian я не смог — нужно было скачать образы. Попробовал то, что было.
Вспомнил начало своей жизни в Linux — поставил Ubuntu, посмотрел. Стала ещё красивее и удобнее. Что ж, здорово. Постоянная свежесть и все блага, которыми обладает Linux. Можно вполне себе играть в новейшие игры в последней версии Wine. Минусы? Постоянные обновления. Для Ubuntu нужен очень хороший канал связи, чего в нашем общежитии (естественно, университета связи!) как раз не хватает. Сами обновления порой меняют что-то настолько кардинально близкое и понятное, что даже теряешься (это я о Unity).
Попробовал несколько раз и Fedora. Новый Gnome очень красив. И пока что так же нестабилен. На мой взгляд, сейчас в нём работать — мука. Однако уверен, ситуация будет исправлена.
Затем я решил попробовать установить CentOS. Вот чёрт, столько мороки с установкой у меня не было никогда. Даже опыт установки Slackware парой недель ранее не помог. Я многократно и различными способами записывал образ на флешку, стартовал с неё загрузчик и не мог поставить систему. Первоначально это был liveCD, и я просто не нашёл в этой системе, как же можно установить CentOS. Затем был скачан DVD. Тысячекратные перезаписи на флешку, её вставляния и выдёргивания. Проблема системы установки CentOS для меня заключалась в том, что она не монтирует раздел при выборе пункта меню "с жесткого диска". Я опробовал это несколько раз. Когда мои нервы были на исходе, меня осенило. Загрузчик полностью выгружается в оперативную память! Я залил на флешку загрузчик и следом на неё же образ диска. Тогда и только тогда я установил CentOS.
Разочарование было велико. Community ENTerprise Operating System установлен в нашем университете и там работает вполне прилично. На нем приятно программировать. На нетбуке же он почему-то не создал сетевой интерфейс, хотя вроде бы определил сетевую карточку. Пакеты были древними (о, не старыми, именно древними — даже Debian по сравнению с этим более свеж). Заморачиваться с настройкой сил не было..
Теперь снова Debian.
Только что, второй раз затерев кэш и настройки браузера Chromium, я понял, что браузер падал из-за последней версии расширения Adblock plus. Которое: а) из официального источника Google просто не ставилось, принуждая обновляться; б) поставленное с сайта расширения роняло браузер. Попытки найти более старые версии расширения успехом не увенчались.
Некоторые выводы. Быть актуальным и свежим здорово. Но, чёрт возьми, быть назойливым и вынуждая всех обновляться ничуть не лучше, чем навязывать политические взгляды всем, кто думает не как ты. Полагаю, писать отчёт об ошибке в данном случае глупо — скажут, чтобы обновлялся. Пожалуй я найду расширение, спросив у дебианщиков. Хорошо ли это? Чёрт, я бы не сказал.
В очередной раз я убедился в правильности позиционирования Debian. Это действительно Универсальная операционная система, которая не стремится быть блестящей. Это проработанный и стабильный Linux. Я его обожаю. Обладая всеми функциями, необходимыми системе "рабочего стола", он вдобавок стабилен и обладает кучей пакетов, что позволяет настроить его под абсолютно любые нужды. Он гармонично сплетает в себе стабильность и красоту необходимых пакетов. Ничего лишнего. Только то, что хочешь ты.
Прошу не принимать сказанное близко к сердцу — не хочу разжечь очередной спор. Это мои мысли по поводу стабильности и свежести дистрибутивов. Спасибо за внимание.
Ярлыки:
обновления,
стабильность,
CentOS,
Debian,
Linux,
stability,
ubuntu
воскресенье, 15 мая 2011 г.
Обнаружил, что фильм "Социальная сеть" снял Дэвид Финчер. Сразу же решил посмотреть, хотя до этого не было желания. Как начинающему программисту, мне очень интересно было смотреть на реализацию некоторых идей. Недавно читал статью об архитектуре Facebook, теперь фильм. Марк Цукерберг определенно очень умный и талантливый программист. 500 миллионов пользователей! Настоящая всеобъемлющая паутина, которая затягивает человека.
С первых же слов опознал Билла Гейтса =) не зря читаю Таненбаума.
Очень порадовало то, что он даже не рассматривал другие варианты, когда ему понадобился высоконагруженный сервер: "Мне нужен комп с Linux, Apache и MySQL!". Старый добрый LAMP..
Фильм интересный, всем советую.
С первых же слов опознал Билла Гейтса =) не зря читаю Таненбаума.
Очень порадовало то, что он даже не рассматривал другие варианты, когда ему понадобился высоконагруженный сервер: "Мне нужен комп с Linux, Apache и MySQL!". Старый добрый LAMP..
Фильм интересный, всем советую.
Подписаться на:
Сообщения (Atom)


