Автор Тема: Web програмиране на асемблер - не е чак толкова трудно.  (Прочетена 8519 пъти)

johnfound

  • Участник
  • *****
  • Публикации: 35
  • Distribution: Manjaro Linux
  • Window Manager: XFCE, LXDE
    • Профил
    • WWW
Някъде във форума прочетох, че се дискутира този въпрос. Обаче, тъй като темата беше старичка, реших да започна нова - ако някой все още се интересува.

Става въпрос за един мой проект - CMS написана изцяло на асемблер.
Проекта се казва MiniMagAsm. Написах я, защото ми писна от PHP-то, а ми трябваше енджин за сайта ми. Всъщност започна като пренаписване на стария енджин, който беше написан на PHP. Обаче проекта се разви и стана със значително по-големи възможности.

Получи се изключително малка система (около 20KB), на която не и трябва нито PHP нито какъвто и да било интерпретатор. Използва изключително малко системни ресурси. При това, целият дизайн е на шаблони и може да се конфигурира свободно. За форматиране на статиите се използва диалект на markdown, което за мене е много удобно.

Системата работи на всякакви x86 сървъри под Линукс 32 или 64 битов (няма нужда от 32 битови библиотеки) и Windows.

Проекта, разбира се е свободен с отворен код.

В момента имам два сайта работещи с нея, чийто дизайн е доста различен:
http://fresh.flatassembler.net  (на комерсиален хостинг) и сайта по-долу, който е моят домашен сървър (на Linux Mint 32битов, обикновен десктоп, който се използва и за работа).

Ето и връзкa към страницата на проекта: Страница на MiniMagAsm - на страницата има и връзки към сорса, ако някой се заинтересува. :)
« Последна редакция: Юни 15, 2016, 15:42 от johnfound »
Активен

go_fire

  • Участник
  • *****
  • Публикации: 5072
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Човек ти изби рибата. Написал си СУС, интегрирана среда и дори договор за разпространение, като само последният не е на асемблер, което си е странно. До вчера щях да кажа, че е странно да има интегрирана среда за асемблер.

Само едно пожелание. Дай си договора за одобрение от ФСС, та да знаем всички те какво мислят по въпроса. Иначе изглежда добре, ама ако не си юрист, сто процента си пропуснал нещо и те ще го открият.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

johnfound

  • Участник
  • *****
  • Публикации: 35
  • Distribution: Manjaro Linux
  • Window Manager: XFCE, LXDE
    • Профил
    • WWW
Ъ-ъ-ъ, за какъв договор говорим? Ако за лиценза на програмите - това е версия (леко модифицирана и съвместима) на Artistic License, който си е FOS както и да го погледнеш.
Активен

go_fire

  • Участник
  • *****
  • Публикации: 5072
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Точно за него говорим. То се вижда, че е свободен, не е километричен и се чете лесно и бързо. Въпроса е, че вероятно нещо си пропуснал и затова те съветвах да го пратиш за разглеждане от ФСС или ФСС Европа.

Иначе колкото повече ти чета страницата/дневника, все повече се изумявам. Едва вторият българин си, които зная да пише сериозно на този великолепен език, като първият обясняваше в една култова статия, че ИБМ и М$ имат повече общо с компотите, отколкото с технологиите.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

johnfound

  • Участник
  • *****
  • Публикации: 35
  • Distribution: Manjaro Linux
  • Window Manager: XFCE, LXDE
    • Профил
    • WWW
Да уточним - лиценза е стандартен, не съм го измислил аз и е одобрен от OSI: http://opensource.org/licenses/Artistic-1.0
Впрочем, добре, че повдигнахме темата - може би е добре да обновя текста до версия 2.0: http://opensource.org/licenses/Artistic-2.0

Относно асемблера - преди няколко години минах изцяло на асемблер и се чувствам великолепно от това. :D
Активен

gat3way

  • Участник
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Това е мазохизъм :)
Активен

"Knowledge is power" - France is Bacon

johnfound

  • Участник
  • *****
  • Публикации: 35
  • Distribution: Manjaro Linux
  • Window Manager: XFCE, LXDE
    • Профил
    • WWW
Това е мазохизъм :)

Голяма заблуда и предразсъдък. Асемблерът е език с много ясни правила. С приятен и много четлив синтаксис. Той е много по-близък до човешкото мислене от езиците от високо ниво.
А с подходящата среда и библиотеки програмирането става песен.

Специално MiniMagAsm ми беше много лесно да направя, тъй като използвах код, писан по други поводи. Например по-голямата част от парсера на markdown форматиращия език го написах като задача от един спор "асемблер vs C++" на един друг форум. ;) Библиотеката за работа със стрингове е част от проекта Fresh IDE и т.н.

Впрочем, в момента работя и над уеб сървър, с което ще мога да прехвърля целият хостинг изцяло на асемблерски софтуер.
Активен

go_fire

  • Участник
  • *****
  • Публикации: 5072
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Сигурен съм, че има поне няколко готови сървъра. Защо да почваш от нулата?
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

gat3way

  • Участник
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Спор няма, проблемът е че сравнително прости неща са голяма играчка. Доколкото разбирам в случаят това наподобява SSI и не се налага да обработваш кой знае колко входни данни. Обаче ако трябва да го правиш по-усилено, примерно да парсваш json глупости изпратени от някой client-side js, ще се видиш в чудо да го правиш на асемблер.

Активен

"Knowledge is power" - France is Bacon

backinblack

  • Участник
  • *****
  • Публикации: 3201
    • Профил
Това е мазохизъм :)

Френд, струва ми се, че само така ти изглежда, но на пръв поглед!
Хората сме устроени да мислим в идеята на някой който е постигнал някакви резултати. Много ора имат добри идеи, но поради това общо мислене не получават подкрепа(точно когато най-много имат нужда) поради недоверие, и когато въпрки всичкото това недоверие я получат с неистов труд, след време всички го признават, но никой не се замисля дали щеше да се стигне до тук, ако се следваха шаблоните!

Дали щеше да има Линукс или БСД, ако всички следваха утвърдените шаблони!?
Активен

johnfound

  • Участник
  • *****
  • Публикации: 35
  • Distribution: Manjaro Linux
  • Window Manager: XFCE, LXDE
    • Профил
    • WWW
@go_fire - както се оказа, сериозни уеб сървъри написани на асемблер няма. Има един, два опита, които аз използвах за да се запозная с материята. Само че, на мене ми трябва сериозно решение, което да може да се пренася поне между 2..3 операционни системи.

@gat3way - номерът на писането на асемблер е, че сложните проблеми се решават по прост начин. Това е и причината нещата написани на асемблер да са толкова малки и толкова бързи.
« Последна редакция: Яну 25, 2013, 06:59 от johnfound »
Активен

gat3way

  • Участник
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Ще навлезем в дълъг и безсмислен спор, който няма смисъл да водим. Според мен е въпрос на гледна точка. За мен специално, от гледна точка на производителността е по-голямо предизвикателство да накарам компилатора да генерира по-ефективен код, отколкото да пренаписвам някаква част от кода на асемблер. Това от чисто статистически наблюдения, защото сериозни изключения има и в двете посоки. Като под "компилатор" разбирам C компилатор, същото примерно с C++ за мен е с порядъци по-сложно предвид че съм достатъчно глупав да не знам добре как работи. Та нямам нищо против асемблера, но за мен е по-скоро read-only.
« Последна редакция: Яну 25, 2013, 08:29 от gat3way »
Активен

"Knowledge is power" - France is Bacon

johnfound

  • Участник
  • *****
  • Публикации: 35
  • Distribution: Manjaro Linux
  • Window Manager: XFCE, LXDE
    • Профил
    • WWW
И сега, няколко години по-късно можем да си продължим темата. ;D

Тъй като закона на Мур вече не действа особено добре, цените за хостинг никой не смята да ги намалява, а изискванията към уеб приложенията нарастват, то въпросът с производителността на сървърния софтуер стои все още открит.

Програмирането на асемблер е една от алтернативите. ;)

Първо, вече има пълноценен и много мощен уеб сървър написан на асемблер - rwasa, написан от един австралийски другар. ;)

От моя страна, тъй като системата MiniMagAsm, описана по-горе, има някои проблеми с мащабируемостта и мрежовата производителност (заради използването на CGI интерфейс) реших да напиша фреймуърк който да работи през FastCGI.

Резултата от тази работа стана форум енджина AsmBB (демо инсталация), написан изцяло на асемблер и притежаващ прекрасна мащабируемост и много ниско потребление на ресурси. 

Предполагам, че въпросния енджин може да спокойно да издържи няколко хиляди потребителя онлайн без видимо натоварване на сървъра.

Кода разбира се е отворен: http://asm32.info/fossil/repo/asmbb и се разпространява под лиценза EUPL (GPL съвместим).
Активен

rcbandit2

  • Участник
  • *****
  • Публикации: 11
    • Профил
Може ли повече информация какво точно имаш в предвид под

съветвах да го пратиш за разглеждане от ФСС или ФСС Европа.
Активен

johnfound

  • Участник
  • *****
  • Публикации: 35
  • Distribution: Manjaro Linux
  • Window Manager: XFCE, LXDE
    • Профил
    • WWW
Може ли повече информация какво точно имаш в предвид под

съветвах да го пратиш за разглеждане от ФСС или ФСС Европа.

Постовете над последния ми пост са от 2013г. Въпросната забележка касае MiniMagAsm, която беше пусната под модифициран Artistic лиценз. Този лиценз наистина има известни несъобразности, но не са актуални, тъй като напоследък използвам главно стандартен EUPL, а с него не може да има проблеми, тъй като е разработван от купчина адвокати от ЕС.
Активен