смотрю, смартофоны/мобилы, имхо, хорошая тема для меня для начала, соображения такие: некоторые начальные знания в низкоуровневом прог-и есть, и этим хотелось заниматься. При этом и архитектура этих устройств, и операционная система их явно проще, чем архитектура Р4 + Винда, т.е. если нынешние зубры-системщики начинали с ХТ-шек под ДОСом (или вообще Спектрумов, а может разных там, "Искр", "ЕС" и т.д.) и эволюционировали вместе с усложнением всего этого добра, то на сейчас думаю, полезнее браться за проги для всяких смартофонов, контроллеров, с этого жить, и изучать по ходу системное программирование под компы.
Какие мнения, господа, по поводу такой мысли?
И еще по ходу пара вопросов: а где же берут мануалы по архитектуре всего этого добра, компиляторы С, да и того же ассма, а тем более библиотеки всякие полезные?
Сейчас заказы найти на это реально? И извечный вопрос, на который еще не было ответа (видно секреты никто не хочет выдавать, так мы ж и сами до всего докапаться можем ) : представьте, что у вас нет наработанных заказчиков или места работы, как бы вы постарались найти себе работу?
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
Народ, а чё вы все так зациклились на системном программировании? Есть такие прекрасные скриптовые языки как PHP, Perl (он кстати системный, но для WEB тоже подходит, хотя не без извращений конечно), ASP. В купе с этим используются базы данных (лично щас юзаю MySQL и PostgreSQL (офигительная штука)). И не говорите что это фуфло, легко выучить и.т.д. На самом деле это так кажется, пока делаешь что-то на уровне лишь бы делать или что нить лёгкое. На самом деле настоящий проф должен знать вдоль и поперёк тот же PHP, а это поверьте, не один год практики и учёбы. А уж про базы данных я вообще молчу. ИМХО, для WEB требуются более широкий спектр знаний, чем для системного программирования (с этого места шум, гам, избиение оратора и прочее безобразие). Скажете "НЕТ!! ВРЁШЬ!!" и.т.д.? Извольте поспорить В данный момент мне для действительно человеческой работы нужно знать:
1). HTML в перфекте, я полагаюсь на XHTML.
2). CSS со всеми его особенностями под разные браузеры, коих сейчас 3 - IE, FireFox/Mozilla, Opera
3). Уметь писать на JavaScript хотя-бы скрипты среднего уровня, учитывая разные объектные модели IE и мозилаподобных браузеров, что есть нереальнейшая головная боль и геморрой. Опера это вообще отдельный случай.
4). PHP
5). MySQL
Это минимальный набор... Так, что бы с голоду не умереть. Что же ещё желательно знать?
6). Apache, уметь его настроить.
7). XML. Применяется всё чаще и чаще. Так что можно отнести в первую категорию даже.
8). Знать хотя бы Linux, а лучше и Unix в добавко (FreeBSD, OpenBSD).
В добавок лично я ещё сейчас изучаю PostgreSQL, имею уже кое-какой опыт работы с ним. RTFM, RTFM и ещё раз RTFM будет ещё долго.
rusja_Odessa Лично я себе заказы нахожу в IRC'e =] И работу через IRC тоже надыбал постоянную. Кто ищет, тот найдёт
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
rusja_Odessa писал(а):
А на чем пишут под кпк/мобилы/смартофоны ? Я слышал, что на Java, но это, имхо, как-то неправдоподобно - в этих устройствах ведь нет мощных процессоров и больших объемов памяти чтобы исполнять мегабайты кода. Имхо, ассемблер бы подошел гораздо лучше.
Ни то ни другое, точнее на Java пишут, сам писал, но он слаб. Пишут на обычном C++, да на чем хочеш пиши, глявное использовать правильный компилятор
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Ну вот всеже, сам решить не могу. Java или .net? Я больше склоняюсь к Java, а насчет технологии МС все довольно опасно, уж очень любят они быстро отказываться от своих технологий и пока ее фанаты пересаживаються с одной на другую, МС пишет неплохие прикладные программные пакеты и чувствует себя спокойно
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
Берись за Java. Не привязан к платформе, под что хочешь, под то и пишешь. Хотя конечно каждому своё. Лично я себе поставил задачу - пишу кросплатформенно - значит так и буду, что бы это небыло - PHP, JavaScript или Java - должно работать везде, где оно может работать нормально
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Daemon писал(а):
Java или .net? Я больше склоняюсь к Java,
Зря На запада в основном спрос сейачс на Java и .NET, Но за .NET сам знаеш кто стоит и как бы уродски он не выглядел, версия 2.0 намного круче. Это я говорю со слов моего знакомого, который сейчас пишет все проги на .NET (раньше мы вместе в одной фирме софт на Delphi писали). Он говорит, что 2.0 просто скачек вперед. Я лично буду раз если так, потому как тормоза програм при обработке больших данных ( я имею в виджу Баз данных), когда приходится на форме иметь тучу контролов, меня просто добивают
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Ray Adams
Цитата:
На запада в основном спрос сейачс на Java и .NET, Но за .NET сам знаеш кто стоит
Угу, но сомневаюсь, что .net шагнет дальше Windows'a. Да и за .net фактически кроме M$ и ее денег никто больше не стоит.
Цитата:
Он говорит, что 2.0 просто скачек вперед. Я лично буду раз если так, потому как тормоза програм при обработке больших данных ( я имею в виджу Баз данных), когда приходится на форме иметь тучу контролов, меня просто добивают
Я тоже слышал, много раз читал, сулят золотые горы и неимоверную скорость работы, но ИМХО с такой прослойкой особо шустро он незаработает Как бы там нибыло ИМХО если разсматривать прикладное программирование, то .net надо также принимать во внимание, но приоритет и основное время отдавать Java.
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Daemon писал(а):
Да и за .net фактически кроме M$ и ее денег никто больше не стоит.
Тебе мало??? Подавляющее большиство сидит на Windows, а никак не на UNIX или этом самопале линухе.
Daemon писал(а):
и основное время отдавать Java.
Мдя, вот уж кто тормоз так это Java, .NET по сравнению с ним просто супер быстр Да и к Java у меня отношение еще хуже чем к .NET. Хоть я на Java и писал малость (правда под мобильники)
Мы вот на работе уже начали копать .NET тем более что на носу три большие программы. .NET был выбран как наиболее удачный вариант реализации прикладных програм, где требуется нормальная порддержка UNICODE, где есть (пусть не так супер как у Delphi) поддержка работы с базами данных. Да и в городе уже много заказов с NET связано.
так что тем кто еще думает и пока не решил, учите .NET + C#! Не пожалеете , по крайней мере месте в жизни найдете без проблем.
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
Ray Adams чистый С рулит мне предложили работу по созданию дров на сях и я доволен Вопрос: ты знаешь хотя бы еще один язык на котором было бы возможно и удобно писать дрова? ну, только асм не вспоминай штука хорошая.... на VB, Pascal, .NET слабо драйвер наваять? то-то же а .NET - мертворожденное дитя, хотя и конкурент билдерам 8) да, и не надо наезжать на линух. Винда - мастдайка по жизни, только не умирает она, да и не должна Недавно реверсили 2003SP1 обнаружили подставу от MS:
в начале каждой функции стоит "mov edi, edi", затем push и mov с esp/ebp, т.е. стандартное начало. Спрашивается зачем этот mov? смысла у него 0. При этом он появился только начиная с 2003СП1: в обычном 2003 его еще не было. Что это? M$ включает тормоза в ось? Типа переходите на Лонгхорн - супер-шуструю-надежную и что-то там ОСь Не люблю политику M$
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Root писал(а):
Вопрос: ты знаешь хотя бы еще один язык на котором было бы возможно и удобно писать дрова?
Я и не утверждаю обратное, сам пишу дрова на C++ + ASM
Root писал(а):
.NET слабо драйвер наваять?
Ты еще скажи на Java Это же грубо говоря интерпретаторы
Root писал(а):
в начале каждой функции стоит "mov edi, edi", затем push и mov с esp/ebp, т.е. стандартное начало. Спрашивается зачем этот mov? смысла у него 0. При этом он появился только начиная с 2003СП1: в обычном 2003 его еще не было
Вот нравятся мне такие люди, как root. Умные - закачаешься. Драйвера пишут, элита!
Драйвера на чем пишут? Правильно, пока только на С (asm не а счет), значит все остальные языки - отстой и "мертворожденные дити".
И про винду они все знают, до корочки. Что кривая знают, что мастдай и все такое. M$ добавила лишнюю инструкцию? Вот идиоты! Во все функции? Да они еще и саботажники! Все ясно!!!
И очень не любят политику M$. Ессно.
Root, я тебе один умный вещь скажу - только ты не обижайся. В M$ сидят люди поумней тебя. А в "mov edi, edi" смысл есть, поверь. Причем настолько серьезный, что этот код (кстати - очень быстро выполняющийся) действительно имело смысл включать во все функции. Учите матчасть, коллега, а потом наезжайте, а то очень уж глупо смотритесь со своими понтами.
Member
Статус: Не в сети Регистрация: 04.01.2004 Откуда: 31
Ray Adams писал(а):
Root писал(а): в начале каждой функции стоит "mov edi, edi", затем push и mov с esp/ebp, т.е. стандартное начало. Спрашивается зачем этот mov? смысла у него 0. При этом он появился только начиная с 2003СП1: в обычном 2003 его еще не было
Дай такую .dll хочу глянуть
И мне! Тоже очень любопытно посмотреть.
Добавлено спустя 11 минут, 34 секунды: Mong Вопрос, как отлично знающему матчасть, от не очень знающего , зачем все-таки этот mov? По теме нашел только здесь http://www.dore.ru/perl/nntp.pl?f=1&gid=4&mid=16107. Но, это не объясняет, зачем именно в начале функции. Как впрочем я не скажу, что этот mov существенно замедлит работу винды. Проще было бы запустить по умолчанию ещё одну левую службу.
Root писал(а):
Типа переходите на Лонгхорн - супер-шуструю-надежную и что-то там ОСьНе люблю политику M$
Судя по анонсам, ничего супер шустрого не ожидается. Не люблю MS вцелом
S.Q.Lapp Как правило в таких случаях говорят - "Если вы достаточно умны, чтобы этим заинтересоваться, значит вы должны быть достаточно умны, чтобы в этом разобраться".
На самом деле это очень изящная реализация концепции "горячей замены" функций при установке patch-ей. Я не уверен, что лучшая, но красивая. В любом случае - специалистам из MS я доверяю в этих вопросах несколько больше, чем доморощенным "экспертам", не способным даже вникнуть в суть проблемы.
Опять же - не знать не стыдно. Я тоже очень много чего не знаю и очень много в чем не разбираюсь. Но если я в чем-то не разбираюсь, то никуда не лезу со своими "умными" мыслями и не объявляю идиотами людей, являющихся признанными экспертами.
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
Mong товарыщ! вот уж поверьте, что я пытался выяснить у достаточно хорошо знающих в своей области людей, что означает этот код... Никто не смог сказать точно... Защита от дебуггера? не похоже... Выравнивание? Как будто предыдущие версии компилера VC не выравнивают код... Причем другими механизмами... А вот на тормоза похоже... только мотивы внедрения их в ОСь весьма странны а коли у Вас есть действительно достоверная инфа о том зачем это надо и как работает - выкладывайте. Зачем томить нас в ожидании и заставлять мучаться по поводу непознанного? а по поводу политики скажу еще адын умный вещь: pdbшки от Office у Вас есть? а вот винды? А теперь скажем стоит задача отладить один продукт, тесно работающий то с одним, то с другим, причем бага выползает в Офисе? Вдел тут сырцы винды Прелесть. В коде был "terrible & ugly compatibility hack" для работы Офиса вот так они работают там... Или вот история из жизни: Аэлита Софтваре. Программа для переноса данных из старого Exchange в новый. Имеем утечку в Exchange. Что делает M$? Делает ограничение в 10 на количество коннектов. : :die: Ну, и что с этим делать? Ругались, кстати, долго. Не обиделся я... А на что собственно говоря? S.Q.Lapp
Цитата:
Проще было бы запустить по умолчанию ещё одну левую службу.
как зачем? а так не виднее службу все найдут, кому не лень, а пару NOP'ов - только люди с дизасмом в руках. Ray Adams & S.Q.Lapp качайте W2003 SP1, дизасьмте... хотя бы нотепад оттуда. Я указал на факт. Если хотите проверяйте, если нет, то нет.
Добавлено спустя 7 минут, 24 секунды: PS: приду вечером - сяду детальнее разбираться PPS: уже который раз замечаю, что у M$ свой инструментарий, который только спустя долгое или не очень время выкладывается в общественность. Сначала так было с VC5 (ею была собрана НТ4, а затем его выложили), потом с VC6 (W2k), а теперь похоже с супер-пупер-VC8? Каждый компилер генерит свой уникальный ни на что не похожий код. Если надо приведу примеры. Так вот теперь самое странное: "mov edi, edi" ни в одном из компилеров от M$, ныне находящихся в public доступе (пускай и за $$$$), не генерится ни при каких настройках...
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Добавлено спустя 48 минут, 49 секунд: PS: те кто будет качать IDBшки пускай обратит внимание на align 8 или набор CCшек до сабжевой функции. Это и есть выравнивание. А теперь вопрос - зачем M$ понадобилось выравнивать два раза? бессмысленно получается... разве что кто-то хукать эти функции будет, но тогда причем тут notepad? хукать тогда надо ntdll.dll или что-нибудь в этом духе....
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
я пытался выяснить у достаточно хорошо знающих в своей области людей, что означает этот код
товарищ, а у гугла спрашивать не пробывали? Помогает. А это - всего лишь подтверждение степени компетенции знающих людей.
Ладно. Идея в следующем - как ставить заплатки, изменяющие код функций, без перезагрузки компьютера? Причем так, чтобы уже работающие процессы также использовали новый код, а не старый?
Нужно изменить код функции на лету. Сложно? Нет, просто. Но есть важное "но" - тело "исправляемой" функции уже может выполняться какием-либо процессом, а то и разными. Вышибать из под них работающий код и заменять его другим - русская рулетка. Может грохнется, а может и нет.
Усыплять потоки (выборочно) - тоже решение сомнительное. Сложно и может приводить к дедлокам.
Решение - заменить первый оператор метода на jmp адрес_новой_функции, которую внедряют в произвольное место в памяти. Причем именно и строго первый, иначе опять же - русская рулетка.
Как люди знающие вы должны понимать, что первый оператор должен быть двухбайтовым, иначе goto адекватно не влезет. Отсюда дополнительный оператор - двухбайтовый nop, так сказать, в каждой функции.
Такова идея. Про реализацию можно поспорить (только не со мной), но мотивация вроде понятная и даже правильная. Информация, подчеркну, получена из публичных источников.
А про кривизну продуктов MS... Они едва ли не самые прямые из всех масштабных продуктов ПО, которые я когда-либо видел. Попробуйте поработать с продукцией IBM, например, начнете молиться на дядю билли перед сном. Хотя есть и у меня коллекция любимых багов MS, которые так до сих пор и не исправлены. Все относительно...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения