Форум программистов, компьютерный форум, киберфорум
Теория программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/346: Рейтинг темы: голосов - 346, средняя оценка - 4.69
 Аватар для Woozie
11 / 7 / 0
Регистрация: 04.06.2008
Сообщений: 179

Как создать свою ОС

09.11.2008, 10:20. Показов 66642. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите что нужно для создания собственной ОС? Не модификации Windows через nLite или vLite!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.11.2008, 10:20
Ответы с готовыми решениями:

Как создать свою компоненту???
Мне нужно создать компоненту класа TImage и добавить туда несколько свойств(Задание размера, выбор картинки) . Помогите кто чем может плз

Как создать свою библиотеку?
Как создать свою библиотеку со своими функциями и включить ее в основную программу?

Как создать свою библиотеку?
Много времени потратила на поиски какой-нибудь информации о том, как создать статическую библиотеку(не динамическую). Кто-нибудь может...

55
 Аватар для Mecid
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
05.04.2009, 16:23
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Evg Посмотреть сообщение
Без кодов на ассемблере ты ОС никогда не напишешь.
А как по твоему написаны никсы? тока загрузчик и пару элементов на асме все остальное на Си,можешь скачать исходники ядраи увидеть на чем оно написано
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
05.04.2009, 22:48
Цитата Сообщение от Mecid Посмотреть сообщение
А как по твоему написаны никсы? тока загрузчик и пару элементов на асме все остальное на Си,можешь скачать исходники ядраи увидеть на чем оно написано
Если у тебя есть под рукой исходники, то сделай 'grep asm arch/i386/*/*.[ch]' и 'grep asm include/asm-i386/*.h' - чисто ради научного интереса- узнаешь, сколько там ассемблерных вставок. Вся системная часть управления машиной делается через системные регистры, обращение к которым в принципе на языке написать нельзя.
0
 Аватар для Mecid
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
05.04.2009, 23:17
Как раз таки пару элементов
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
05.04.2009, 23:33
Цитата Сообщение от Mecid Посмотреть сообщение
Как раз таки пару элементов
Далеко не пара элементов. Хотя если говорить конкретно, то я имел в виду ядро линуха, а если более обще - то и в кодах других ядер этого добра не меньше

Добавлено через 12 минут 55 секунд
Ну так, чтоб в лес далеко не ходить, возьмём, к примеру, реализацию атомарных операций (а-ля семафор) - это по сутинабор операций, который должен исполниться обязательно от начала до конца без прерываний. В случае возникновения прерывания результат должен быть аннулирован и переисполнен заново. В языке программирования в принципе это не реализуется, т.к. предполагается, что код из-под языка будет исполняться в контексте операционной системы, которая обеспечивает "сплошную" работу кода (т.е. прерывания прозрачны для кода). А потому ни в одном языке программирования в принципе нет никаких встроенных возможностей для описания подобных конструкций. И это довольно простой случай. А есть ещё миллион сложных, которые на языке не выражаются.

С использованием ассемблерных вставок пишется в общем-то малая часть (по покрытию) ядра. Но эта часть самая важная, как правило растёт от начала входа в прерывание и, вообще говоря, работает постоянно. От качества написания этой части зависит качество работы всей ОС. И это далеко не "пара элементов", а на несколько порядков больше
2
Darwin_x86
25.12.2009, 19:14
Утопия. Но реально. Важно поставить перед собой цель не затмить все остальные ОС. А написать свою - пусть с одной программой для серфа интернета и все. Зато своя.

Но тут надо столько литературы перелопатить, а главное знать и уметь. Нужен опыт.

Если очень хочется, можно использовать готовые ядра и уже на их основе делать ОС. Пусть она будет не полностью своей, но все же.

Делать еще один дистрибутив линукса, основанный на дебиане, фряхе или т.д. - надоело. Можно попробовать восстановить проект OpenDarwin - ядро Mac OS X. Проект очень старый (2001 год) - уже закрытый, но шансы у него были, и если бы его не забросили, думаю все бы могло получится. Ядро не монолит. FS - hfs+. Все что требуется, пересобрать ядро, натянуть иксы, и вкорячить собсвенный оконный менеджер, а далее писать софт.

Darwin немного отличается от freebsd/openbsd/netbsd/linux/windows - но часть bsd там имеется. Короче, я бы брался за эту ниточку, а то кроме как на асме коды бадяжить для ядра, нужно еще свою ФС создать, и короче лет 5-10 работы, чтобы вышло что-то типа 3.11 8)

Сорри что поднял старую тему, просто сабж искал в интеренете и решил отписаться *)
 Аватар для bug
5 / 5 / 0
Регистрация: 27.10.2009
Сообщений: 34
01.02.2010, 23:48
В принципе, очень многие программируют в Visual Studio. Но компании Trolltech не пришло в голову, что их Qt "нахрен никому не нужна". Понятно, что даже физически написать ВСЮ ОС невозможно, не говоря уже о прикладном ПО, но почему бы не поэкспериментировать с файловыми системами, просто ядром в конце концов? К тому же фанатики-единомышленники всегда найдутся. Мастер не должен думать, кому это надо, он должен просто делать, потому что ему ЭТО НРАВИТСЯ. А будущее всё расставит на свои места.

В конце концов это может быть просто хобби на всю жизнь. А чем лучше тот, кто таскает гири и таким образом "растёт над самим собой"? Каждому своё.

Добавлено через 9 минут
Впрочем, Торвальдс тоже не думал, что его ядро так обрастет софтом, и что из этого что-то получится. И тоже ковырялся в MINIX Танненбаума (а тот не думал, нахрен она будет нужна Торвальдсу). И громко говорят не о тех сотнях программистов, чьим трудом созданы все дистрибутивы, а именно о Торвальсе (я не пытаюсь уменьшить его заслуги, но всё-таки...)
1
109 / 95 / 9
Регистрация: 19.02.2009
Сообщений: 312
04.02.2010, 14:46
Посмотрите исходники MenuetOS (Kolibri). Там все на ASM, но при этом очень доступно написано, ядро очень компактное.
0
 Аватар для breate
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
04.02.2010, 16:16
Woozie, я бы так низко сразу не опускался, а написал что нить на высоком уровне - мелкое, консольное такое что
1 . принимает строковые команды от пользователя(псевдоконсоль)
2 . позволяет выполнять 2 и более операций одновременно\БЕЗ THREAD(реализация псевдомультизадачности)

Не по теме:

одновременно я имею ввиду что одна и вторая операция трудоёмкие и запущены пользователем


3 . запуск двух одинаковых операций
4 . позволяет доступ 2-м и более операциям к одному ресурсу(уход из тупиковых ситуаций)
5 . позволяет 2- и более приложениям пользоватся одной функцией в памяти(динамические библиотеки)

Не по теме:


всем кто против того, чтоб Woozie писал свою ОС
горшки не боги обжигают!
а почему бы и нет, человек поставил перед собой какую то цель и какими то способами стремится к ней, прося помощи у вас, можно занять 2 позиции
1. ты дурак, у тебя ничего не получится;
2. помогу чем смогу;
получится у него или нет это зависит только от него, простенькую ось написать не очень сложно (пример gluk os);

в любом случае написание ос лучше чем бухать возле подъезда стреляя сигареты и мобилы у прохожих! ИМХО!

0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.02.2010, 16:23
> всем кто против того, чтоб Woozie писал свою ОС

С учётом того, что товарищ уже полгода как на форуме не появляется, это уже неактуально

А если кому-то всё-таки интересно, то можно немного тут почитать:
https://www.cyberforum.ru/post475469.html
https://www.cyberforum.ru/post475565.html
1
 Аватар для breate
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
04.02.2010, 16:37
Цитата Сообщение от Mecid
Как раз таки пару элементов
- согласен с Evg на 100%
Цитата Сообщение от bug Посмотреть сообщение
Но компании Trolltech не пришло в голову, что их Qt "нахрен никому не нужна".
- мне нужна!. или мне на MFC программы под KDE писать?
0
 Аватар для _shef_
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 7
14.02.2010, 03:39
Доброго времени суток уважаемые. Извините, но у меня такая же задача - написать ОС. Слава Богу, что ее поставил себе я, а не начальство. Но все же.
Ваши ответы в большинстве своем дают понять, что никто из участников данного обсуждения не занимался разработкой ОС, и поэтому советов то дельных мало. Может я конечно и ошибаюсь, но так это выглядет.
Я как раз сейчас занят изучением литературы по данному вопросу. Могу немного разрядить обстановку. По мнению автора "Проектирование операционных систем для малых ЭВМ: пер.с англ. -М.:Мир,1986. -680с." - Кейслер С. - ассемблерный код используется в том и только в том случае, когда необходимо реализовать взаимодействие с аппаратной частью ЭВМ. А это, по словам автора, в любой ОС составляет 1% от общего кода.

Немного о себе: уверенно пидалирую на ассемблере, правда для микроконтроллеров. Четко представляю алгоритмизацию любого процесса. На уровне квадратиков на бумаге наверное могу уже и ОСь нарисовать, но вот как это все реализовать в коде. Нет в принципе можно и на асме, но что потом?
Потом я начну писать процессы под это свое ядро, и чё? Так на асме и продолжать?
Для тех у кого слабые нервы поясняю. Желаемая ОС не будет иметь такого понятия как виртуальная память - это я исключил сразу. Процессов динамически создавать тоже не надо, нужны только потоки (нити) работающие в одном адресном пространстве - вроде тоже облегчает задачу. Наверное единственное над чем придется помозговать - это планировщик процессорного времени - шедулер или как хотите его называйте.
Реализация планируется на базе ARM архитектуры. 7,9,10 или 11 - на данный момент трудно оценить, но наличие требования "памяти должно быть много, ну хотя бы 1Гб" просто вынуждает смотреть в сторону 11-х.
А по-сути решение должно быть черным ящиком - сервером, который выполняет определенные функции. Никакого ГУЙя, никаких ИКСов. В крайнем случае - терминал.

Собственно о чем это я. Ах да. КАК ПИСАТЬ НА СИ, ПРИ ЭТОМ ПОЛНОСТЬЮ ВЛАДЕТЬ ПРОЦЕССОМ ПОСТРОЕНИЯ ПРИЛОЖЕНИЯ КАК НА АСМЕ? Например как я на Сях буду реализовывать стеки для каждого процесса и следить что бы они не переполнились без всяких там сегментов и страниц?

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

Если кто участвовал в подобном г... - дайте знать плиз.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
14.02.2010, 18:35
Цитата Сообщение от _shef_ Посмотреть сообщение
Желаемая ОС не будет иметь такого понятия как виртуальная память - это я исключил сразу. Процессов динамически создавать тоже не надо, нужны только потоки (нити) работающие в одном адресном пространстве - вроде тоже облегчает задачу. <skiped> . В крайнем случае - терминал.
Та фактически делаешь однозадачную систему (а точнее, с одним-единственным процессом, который может быть многопоточным). Либо много задач, но для каждой задачи статически расписывается физическая память. Сие означает, что изменения в одной задаче потребуют перекомпиляции всех остальных задач (поскольку ты не хочешь поддерживать виртуальную память).

Цитата Сообщение от _shef_ Посмотреть сообщение
Ах да. КАК ПИСАТЬ НА СИ, ПРИ ЭТОМ ПОЛНОСТЬЮ ВЛАДЕТЬ ПРОЦЕССОМ ПОСТРОЕНИЯ ПРИЛОЖЕНИЯ КАК НА АСМЕ? Например как я на Сях буду реализовывать стеки для каждого процесса и следить что бы они не переполнились без всяких там сегментов и страниц?
На Си + ассемблерные вставки + ассемблерные файлы. Могу тебе на 100% сказать, что gcc для таких целей - самое оно

Цитата Сообщение от _shef_ Посмотреть сообщение
Настроить таймер, считать тики, передавать управление потокам, менять контекст, организовать очереди сообщений, семафоры - это понятнее как то для меня. Но некоторые вещи я пока видимо не готов понять.
Твоя позиция выглядит примерно так. Ты "экономишь" на работе с виртуальной памятью. В качестве компенсации получаешь абсолютно нестабильную систему, где малейшая ошибка напрочь ломает всю ось. Плюс полный комплект порнографии, которая возникает при написании задач, написанных под использование физической памяти
0
 Аватар для _shef_
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 7
15.02.2010, 03:39
Цитата Сообщение от Evg Посмотреть сообщение
Та фактически делаешь однозадачную систему (а точнее, с одним-единственным процессом, который может быть многопоточным). Либо много задач, но для каждой задачи статически расписывается физическая память. Сие означает, что изменения в одной задаче потребуют перекомпиляции всех остальных задач (поскольку ты не хочешь поддерживать виртуальную память).
Да перекомпиляция меня не пугает. Если у меня одна задача - то тут загрузкой программ с внешней памяти не пахнет. Все должно быть собрано раз и навсегда - под конкретную таску.

Цитата Сообщение от Evg Посмотреть сообщение
На Си + ассемблерные вставки + ассемблерные файлы. Могу тебе на 100% сказать, что gcc для таких целей - самое оно
Вот тут я пока не разобрался. Видимо мой Си слишком слаб. Надо попрактиковаться. Просто привык быть хозяином своего счастья при работе на асме, а тут компилятору доверять надо.

Цитата Сообщение от Evg Посмотреть сообщение
Твоя позиция выглядит примерно так. Ты "экономишь" на работе с виртуальной памятью. В качестве компенсации получаешь абсолютно нестабильную систему, где малейшая ошибка напрочь ломает всю ось. Плюс полный комплект порнографии, которая возникает при написании задач, написанных под использование физической памяти
Да это возможно. Опыта в таких делах у меня нет, поэтому про описанную выше порнографию можно только догадываться. Ну что ж, если дело не умрет так и не начавшись (как это обычно бывает :-)) то будем дебажить.

Спасибо за ответ.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
15.02.2010, 20:10
Цитата Сообщение от _shef_ Посмотреть сообщение
Вот тут я пока не разобрался. Видимо мой Си слишком слаб. Надо попрактиковаться. Просто привык быть хозяином своего счастья при работе на асме, а тут компилятору доверять надо.
В своё время разжёвывал работу по комбинации Си + вставки на примере gcc. Речь шла со всем о других вещах, но для общего развития пригодится: https://www.cyberforum.ru/post219569.html

Добавлено через 7 часов 36 минут
Хотя я начинаю догадываться, что тебе нужно. Тебе нужно просто заставить на железке работать некоторый сервер. При этом это будет единственная задача. Таким образом, программа-сервер по сути является встроенной в ОС. Правда всё это дело уже сложно называть словом ОС, но тем не менее. Т.е. это будет ОС, ядро которой выполняет роль сервера. При этом в процессе работы будут рождаться дополнительные потоки. Файловая система не нужна. Возможно, будет дополнительный поток, обеспечивающий работу терминала (который может быть либо консолью, либо вообще реализован через порт ввода-вывода или сеть) - т.е. некое подобие shell, но тоже встроенное в ядро. При такой постановке задачи овчинка действительно стОит выделки. Система в момент отладки будет нестабильной, но это компенсируется простотой

Собственно, примерно такая же постановка задачи в качестве первых шагов ставилась мною по ссылкам из 29-го поста
1
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
15.02.2010, 20:15
общего развития пригодится: https://www.cyberforum.ru/post219569.html
Мне пригодится.
0
 Аватар для _shef_
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 7
16.02.2010, 02:30
Цитата Сообщение от Evg Посмотреть сообщение
Хотя я начинаю догадываться, что тебе нужно. Тебе нужно просто заставить на железке работать некоторый сервер. При этом это будет единственная задача. Таким образом, программа-сервер по сути является встроенной в ОС.
Вы совершенно верно уловили суть происходящего. Именно так я себе все и представляю. Терминал - Да. Интерпретатор - Да. Сервер TCP/IP - Да. Порождаемые потоки - опять таки Да. Файловая система - Нет. Для энергонезависимого хранения данных, и только данных, планируется SD/MMC.

Спасибо за ссылочку - дельная статья.

Я тут не сложу в голове 2+2. Подскажите если есть возможность. Когда я в едином адресном пространстве для потоков выделяю области памяти под их стеки. Как обеспечить НЕпереполняемость стека? - перед каждым PUSH проверку делать, что ли?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
16.02.2010, 09:55
На всех современных процессорах память реализована страничным образом. Поэтому выходы за границу стека контролируются очень просто - под стэк отводится нужное количество страниц памяти. Если мы залетаем в неразмеченную страницу, то происходит прерывание, уход в ОС и там уже делаются все проверки. Но это работает в том случае, когда включен механизм виртуальной адресации. Работает ли это при физической адресации - я не знаю (даже теоретически не знаю, потому как никто таким образом не работает, хотя подозреваю, что для физической памяти такие механизмы НЕ должны работать).

Черезж..ным программным способом можно делать так. Если ты пишешь программу на языке (например, Си), то стековое пространство для каждой процедуры выделает компилятор в прологе процедуры. Поэтому в начале каждой процедуры можно делать ассемблерную вставку, которая щупает stack pointer и проверяет его значение на валидность. Это хоть как-то будет работать при условии, что в процессе работы процедуры не будет динамического выделения стека (например, alloca или ассемблерная вставка, которая выделает стековое пространство)
0
 Аватар для _shef_
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 7
23.02.2010, 12:50
Цитата Сообщение от Evg Посмотреть сообщение
На всех современных процессорах память реализована страничным образом. Поэтому выходы за границу стека контролируются очень просто - под стэк отводится нужное количество страниц памяти. Если мы залетаем в неразмеченную страницу, то происходит прерывание, уход в ОС и там уже делаются все проверки. Но это работает в том случае, когда включен механизм виртуальной адресации. Работает ли это при физической адресации - я не знаю (даже теоретически не знаю, потому как никто таким образом не работает, хотя подозреваю, что для физической памяти такие механизмы НЕ должны работать).
Да действительно. Посмотрел я как работает MMU. Все плохо. Частично его не заюзаешь. Но в его использовании нет ни одного плюса для меня. Как утверждает доктор Santanu Chaudhury (тут), при смене контекста процесса происходит и смена таблицы дескрипторов страниц, и перезагрузка буфер ассоциативной трансляции, и еще и очистка кешей инструкций и команд!!!

Короче, переключать процессы становится в принципе очень накладно. А поскольку у меня предполагается один процесс, то это для меня избыточно.

А со стеком мне тут посоветовали решение, применяемое в ОС реального времени (RTOS). В частности, в ThreadX. Решение красивейшее:

В дальнюю границу стека записывают какое-то, наперед известное, число. И шедулер при переключении контекста проверяет это число на соответствие. Если не совпадает - значит стек переполнился. Ну а дальше по ситуации. Лично мне такое решение очень понравилось.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
23.02.2010, 13:12
С контролем стека через guard (запись конце стека) - думаю, сам понимаешь, что в общем случае решение сопливое и далеко не на 100% надёжное: эффект будет давать только при отсутствии программерских ошибок в коде потока и то не всегда
0
 Аватар для _shef_
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 7
25.02.2010, 01:04
Да, согласен. Но пока это наверное оптимальное решение. В общем пора наверно от теории переходить к коду, по крайней мере в симуляторе поглядеть как оно там будет. А то книг уже начитался просто кошмар, а ни строчки кода пока не написал :-)

По мере реализации будут конечно возникать проблемы - Буду задавать вопросы.

Благодарю за отзывчивость.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.02.2010, 01:04
Помогаю со студенческими работами здесь

Как создать свою подпрограмму ?
Создал свою &quot;функцию&quot; без использования подпрограмм. Как мне из нее сделать собственную подпрограмму ?

Как создать свою БД на Java?
Как создать БД на Java?

как создать свою кодировку
Подскажите пожалуйста, есть TextBox нужно получить &quot;код&quot; его содержимого... Каким образом можно получить его.

Как создать свою кодировку?
Я хочу создать кодировку, которая будет состоять из 9 бит, то есть в ней будет 512 символов (2^9). Я знаю что существует utf-8 и utf-16, но...

Как создать свою функцию?
Прошу прощения за тупой вопрос.. но в очередной раз столкнулся с &quot;неприятными особенностями&quot; языка Visual C++. Подскажите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru