Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Знание OS Internals, Для разработчика 
:(
    Опции темы
S.A.G.
Дата 28.2.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



Странно, но новичкам которые хотели бы изучать программирование как правило рекомендуют прочитать книгу по одному из популярных языков программирования (в зависимости от того с чем хочет работать начинающий в будущем). Однако на мой взгляд в первую очередь стоило бы почитать про OS в которой придеться работать. Не даром говорят что, к примеру, Windows не самая подходящая среда для обучения программированию. Каково ваше мнение, уважаемые разработчики, умудренные опытом работы с C/C++?


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
Fazil6
Дата 28.2.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



язык программирования никак с ОС не связан.

PM MAIL   Вверх
S.A.G.
Дата 28.2.2007, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



Это я знаю. Это и не имелось ввиду smile Можно научиться кодить логику т.е. переводить алгоритм в код на конкретном языке. Но особенности платформы придеться учитывать а значит ее необходимо знать.


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
vitlic
Дата 28.2.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 22.2.2007
Где: где home(){return где="тут"}

Репутация: 1
Всего: 1



Таненбаум Э. "Современные операционные системы" 3-е издание

Наверно лучшая книга в этой области там всё есть, и процессы, и трейды, и файловая система, да и все остальное. С примерами из проглого и настаящего. 

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

А вот после этой книжки, можно и про окна у Петзольда прочитать, и даже написать что-нибудь.
PM WWW   Вверх
Fazil6
Дата 28.2.2007, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата

Это я знаю. Это и не имелось ввиду  Можно научиться кодить логику т.е. переводить алгоритм в код на конкретном языке. Но особенности платформы придеться учитывать а значит ее необходимо знать.

и что? 
сначала нужно научиться языку, а уж потом особенностям его применения в различных ситуациях. 
Или Вы предлагаете начинать изучение программирования с синхронизирования потоков или WinAPI? 
PM MAIL   Вверх
S.A.G.
Дата 28.2.2007, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



Я предлагаю сначала узнать самое основное об архитектуре системы чтобы поменьше возникало вопросов в процессе изучения языка программирования и тех его аспектов которые зависимы от ОС в которой он будет применяться. Например в стандарте про язык C четко выписано что размер типа данных char зависит от кодировки применяемой в каждой конкретной ОС. Есть и другие вещи.

Бегло осмотрев Руссиновича, узнал что в Windows применяеться Unicode, а значит размер типа char должен быть равен 2 байтам для этой ОС.

vitlic,
У тебя есть эта книга? smile Можешь выложить/указать место где она лежит? Буду очень признателен.

Это сообщение отредактировал(а) main - 28.2.2007, 16:47


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
Fazil6
Дата 28.2.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата

начит размер типа char должен быть равен 2 байтам

галиматья какая-то.
кто тебе сказал, что это зависит от виндовс? С чего ты взял, что в Windows нельзя пользоваться однобайтным char?
PM MAIL   Вверх
S.A.G.
Дата 28.2.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



Цитата(Fazil6 @ 28.2.2007,  16:51)
Цитата

начит размер типа char должен быть равен 2 байтам

галиматья какая-то.
кто тебе сказал, что это зависит от виндовс? С чего ты взял, что в Windows нельзя пользоваться однобайтным char?

Приведу цитату из книги С.Праты "Язык программирования C":

"Если говорить в общем, то в языке С гарантируеться, что данные типа char имеют достаточно большие размеры для того, чтобы вместить основной набор символов той вычислительной системы, в которой реализован язык C.... В языке C байт определяеться как число битов, используемых для представления данных типа char, поэтому в такой системе байт должен иметь длину не 8 битов, а 16 (по крайней мере, так следует из документации по языку C)"

Как известно, байт не может быть большим чем 8 битов, поэтому в C тип char должен иметь размер 16 битов чтобы уместить основной набор символов Windows(Unicode). Так записано в стандарте.

Мне кажеться термина "Однобайтный char" в языке С для Windows нет. Скорее всего имееться ввиду часть таблицы Unicode, вмещающая стандартные коды ASCII. 

Это сообщение отредактировал(а) main - 28.2.2007, 17:06


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
vinter
Дата 28.2.2007, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



все это галиматья, все то что ты привел, это особенности архитектуры x86, а не ОС, в никсах так же есть юникод, изучать надо язык, а уж потом особенности ОС если это вообще понадобится(СП), а если нет то нафиг это не нужн, программирование есть алгоритмическая база.

Добавлено @ 17:10 
Цитата

Мне кажеться термина "Однобайтный char" в языке С для Windows нет. Скорее всего имееться ввиду часть таблицы Unicode, вмещающая стандартные коды ASCII. 

канешно нет, char всегда однобайтный и никаких уточнений здесь не надо smile

Добавлено @ 17:11 
Цитата

Как известно, байт не может быть большим чем 8 битов, поэтому в C тип char должен иметь размер 16 битов чтобы уместить основной набор символов Windows(Unicode). Так записано в стандарте.

стандарт не читал, но вообще этот тип называется wchar_t


--------------------
Мой блог
PM MAIL WWW   Вверх
S.A.G.
Дата 28.2.2007, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



vinter,
Цитата
все это галиматья, все то что ты привел

Ничего не придумал. Информация почерпана только из книги С.Праты а он в написании своей книги опирался на стандарт.
Цитата
это особенности архитектуры x86, а не ОС

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

Думаю с этим согласяться не все. Мне кажеться что перед тем как начать изучать язык (чтобы его потом применить для написания приложений в конкретной ОС), желательно ознакомиться хотябы с самыми общими принцыпами ее работы.


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
vitlic
Дата 28.2.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 22.2.2007
Где: где home(){return где="тут"}

Репутация: 1
Всего: 1



размер char равен 1. Это неписанная истина) 

книжка лежит тут 
Так как она в формате djvu, там и прога для просмотра.
PM WWW   Вверх
vinter
Дата 28.2.2007, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата
Архитектура определяет какую кодировку удобнее применить для ОС?


нет, байтовую структуру
Цитата

Думаю с этим согласяться не все. Мне кажеться что перед тем как начать изучать язык (чтобы его потом применить для написания приложений в конкретной ОС), желательно ознакомиться хотябы с самыми общими принцыпами ее работы.

зачем?? я вот столкнулся с такой проблемой, только когда надо было писать дефрагментатор и все, сначала язык надо знать!
как ты думаешь зачем стандарт нужен?? если будешь писать по стандарту(исп. ф-ии описанные в стандарте), то получишь кроссплатформенное приложения, и тебе будет плевать на особенности ОС.



--------------------
Мой блог
PM MAIL WWW   Вверх
S.A.G.
Дата 28.2.2007, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



vitlic,
Цитата
размер char равен 1. Это неписанная истина)

В таком случае возникали бы проблемы при вводе/выводе символов из таблицы Unicode. А их ведь нет smile

Спасибо за книгу!


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
Fazil6
Дата 28.2.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата

В таком случае возникали бы проблемы при вводе/выводе символов из таблицы Unicode. А их ведь нет

ты прямо открыл мне глаза....
Я то все эти годы думал, что под Windows пишу и однобайтный char использую.

char предназначен для символов ASCII , а для символов Unicode нужно применять другой тип. 
PM MAIL   Вверх
S.A.G.
Дата 28.2.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



Fazil6,
Цитата
char предназначен для символов ASCII , а для символов Unicode нужно применять другой тип.

В стандарте такого нет. Вероятно так была разрешена проблема разработчиками компиляторов C для Windows - для обработки ASCII использовать однобайтный char, а для виндового юникода ввести специальный двухбайтовый тип. Но ведь можно было ввести и двухбайтный char.. наверное от такого решения отказались чтобы обеспечить поддержку старого кода/программ.

vitlic,
но ты говорил о 3-ем издании книги, а там 2-е. Может ошибся?

vinter,
Цитата
нет, байтовую структуру

Что имееться ввиду?

В случае кроссплатформенных приложений ты прав.
Цитата
если будешь писать по стандарту(исп. ф-ии описанные в стандарте), то получишь кроссплатформенное приложения, и тебе будет плевать на особенности ОС.

Согласно стандарту, размер типа char в Windows должен быть равен 2 байтам а не 1. Однако тут разработчики компиляторов поступили по-другому. Если бы я захотел обработать символы Unicode, используя при этом тип char(стандарт), то ничего хорошего бы у меня не вышло. О никакой кроссплатформенности тут уже речь не идет, нетак-ли?

Думаю ознакомиться с OS Internals необходимо перед чтением книги про конкретный язык, чтобы знать и понимать о чем идет речь. Ведь часто описываються операции с файлами, ввод/вывод. А это уже зависимые от конкретной системы вещи..

Это сообщение отредактировал(а) main - 28.2.2007, 17:55


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.